这篇文章上次修改于 1667 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
Bash功能介绍
命令别名
alias #查看系统当前所有的别名
演示结果
[root@Hyui-VM ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
定义新的别名和取消别名定义
[root@Hyui-VM ~]# alias h5='head -5' #定义 unalias h5 #取消定义
管道与重定向
- Linux中的重定向符有: <、>、<<、>>、| 以用来定义输入与输出
管道使用示例
[root@Hyui-VM ~]# rpm -qa | grep python2 #查询系统中是否安装了python2软件 [root@Hyui-VM ~]# python2-rpm-macros-3-32.el7.noarch
重定向使用示例
2 3
[root@Hyui-VM ~]# ls > list #将输出保存到list文件中,当前屏幕无输出 使用>符号的重定向会覆盖文件内容
[root@Hyui-VM ~]# echo "root" >> list #将root添加到list文件末尾 使用>>符号的重定向会增加到文件末尾
[root@Hyui-VM ~]# ls -la abc list #输出当前目录的abc文件和list文件
ls: cannot access abc: No such file or directory #发现没有abc这个文件
-rw-r--r-- 1 root root 16 Feb 12 10:42 list应对错误信息的重定向可以用2>和2>>
[root@Hyui-VM ~]# ls -la abc list 2> error #仅仅只将错误重定向,不影响正常的输出
-rw-r--r-- 1 root root 16 Feb 12 10:42 list #正常的输出
[root@Hyui-VM ~]# ls -la abc list > all 2>&1 #标准输出与错误输出全导入到all文件
[root@Hyui-VM ~]# ls -la abc list >> all 2>&1 #标准输出与错误输出全导入到all文件的末尾
[root@Hyui-VM ~]# ls -la abc list &> all #标准输出与错误输入均导入至all文件# Bash使用技巧 ## 命令序列使用
Linux中控制命令执行方式的控制字符: ;、&&、||、&
- [&]控制符使命令开启一个子Shell,并在后台执行
- [;]控制符可以把多个命令结合,但是多个命令之间不存在逻辑关系,只按照顺序执行
- [&&]控制符可以将多个命令组合,只有前一个命令执行成功才会执行&&控制符后面的命令
[||]控制符与[&&]相反,只有前一个命令执行失败才会执行||后的命令
[root@Hyui-VM ~]# firefox #firefox浏览器通过图形界面启动,当前Shell无法使用 [root@Hyui-VM ~]# firefox & #后台运行firefox,不影响当前Shell使用 [root@Hyui-VM ~]# ls / ; ls /etc ; ls /root #不管命令是否错误,都会按顺序执行 [root@Hyui-VM ~]# ls list && cat list #只有list文件存在才会运行查看list内容的命令 [root@Hyui-VM ~]# cat log || cat list #只有当前目录中没有log文件的时候才会显示list文件的内容
/dev/null的使用
- Linux提供了一个特殊的设备/dev/null,任何东西往里写入都会永远消失。
举例
[root@Hyui-VM ~]# id hyui 2> /dev/null #当前系统没有hyui用户,输出的错误信息会重定向到/dev/null并消失
作业控制
[root@Hyui-VM ~]# firefox & ##我们当前在后台运行了firefox [root@Hyui-VM ~]# jobs [1]+ Running firefox & [root@Hyui-VM ~]# fg 1 #将firefox调回前台执行
花括号使用技巧
- 2 3
[root@Hyui-VM ~]# echo file{1,2,3}
file1 file2 file3
[root@Hyui-VM ~]# echo {1..10} 2 3 4 5 6 7 8 9 10
[root@Hyui-VM ~]# echo num{3..-3}
num3 num2 num1 num0 num-1 num-2 num-3
[root@Hyui-VM ~]# touch ./file{1,2,3}
[root@Hyui-VM ~]# ls -ld ./file{1,2,3}
-rw-r--r-- 1 root root 0 Feb 12 11:34 ./file1
-rw-r--r-- 1 root root 0 Feb 12 11:34 ./file2
-rw-r--r-- 1 root root 0 Feb 12 11:34 ./file3
没有评论