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 | 保存的历史命令记录条数 | 邮件保存路径 | |
PS1 | Bash解释器的提示符 | EDITOR | 用户默认的文本编辑器 |