管道符、重定向和环境变量

1 输入输出重定向

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令输入。
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。

输入重定向中用到的符号及其作用

符号 作用
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2

输出重定向中用到的符号及其作用

符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1
命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
[root@localhost ~]# wc -l anaconda-ks.cfg 
46 anaconda-ks.cfg
[root@localhost ~]# wc -l < anaconda-ks.cfg 
46
[root@localhost ~]# cat anaconda-ks.cfg | wc -l
46
[root@localhost ~]# grep '/sbin/nologin' /etc/passwd | wc -l
33
[root@localhost ~]# ls -l /etc/ | head -n 2
[root@localhost ~]# ls -l /etc/ | tail -n 2

无询问的修改密码:

[root@localhost ~]# echo root | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.

–stdin:This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.

使用管道符,无交互的发送一封正文为“你好,我是邮件正文”,主体是“This is Subject”给root用户
在这里插入图片描述

2 命令行的通配符

* 匹配零个或多个字符,
? 匹配单个字符,
[0-9] 匹配0~9之间的单个数字的字符,
[abc] 匹配a、b、c三个字符中的任意一个字符

[root@localhost ~]# ls -l /dev/sda*
brw-rw----. 1 root disk 8, 0 Aug 11 16:38 /dev/sda
brw-rw----. 1 root disk 8, 1 Aug 11 16:38 /dev/sda1
brw-rw----. 1 root disk 8, 2 Aug 11 16:38 /dev/sda2
[root@localhost ~]# ls -l /dev/sda?
brw-rw----. 1 root disk 8, 1 Aug 11 16:38 /dev/sda1
brw-rw----. 1 root disk 8, 2 Aug 11 16:38 /dev/sda2

定义变量,及单引号,双引号使用:

反斜杠 \ :使反斜杠后面的一个变量变为单纯的字符串。
单引号 '' :转义其中所有的变量为单纯的字符串。
双引号 "" :保留其中的变量属性,不进行转义处理。
反引号 ``:把其中的命令执行后返回结果。

[root@localhost ~]# PRICE=5
[root@localhost ~]# echo "Price is $PRICE"
Price is 5
[root@localhost ~]#  echo "Price is $$PRICE" 
Price is 2086PRICE
[root@localhost ~]# echo "Price is \$$PRICE"
Price is $5

$$作用是显示当前程序的进程ID号码

[root@localhost ~]# alias hhh="grep -n network anaconda-ks.cfg"
[root@localhost ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias hhh='grep -n network anaconda-ks.cfg'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

变量名称 作用 变量名称 作用
HOME 用户的主目录(即家目录) PATH 定义解释器搜索用户执行命令的路径
SHELL 用户在使用的Shell解释器名称 LANG 系统语言、语系名称
HISTSIZE 输出的历史命令记录条数 RANDOM 生成一个随机数字
HISTFILESIZE 保存的历史命令记录条数 MAIL 邮件保存路径
PS1 Bash解释器的提示符 EDITOR 用户默认的文本编辑器

猜你喜欢

转载自blog.csdn.net/Michael_lcf/article/details/85864647#comments_25493036