2019独角兽企业重金招聘Python工程师标准>>>
一 shell介绍
shell 是一个命令解释器。本质上是用户与计算机之间的交互。
用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。
每个用户都可以有自己特定的shell。
CentOS7默认shell为bash(Bourne Again Shell)。
还有zsh,ksh等。
[root@localhost ~]# yum list|grep zsh
zsh.x86_64 5.0.2-28.el7 base
zsh-html.x86_64 5.0.2-28.el7 base
二 命令历史
执行过的命令都会记录。这些命令保存在用户的家目录的.bash_history文件中。
注意: 只有当用户退出当前shell时,在当前shell中运行的命令才会保存在.bash_history文件中。
运行命令
[root@localhost ~]# history
显示命令历史,结果如下:
可以记录1000条命令历史( 变量HISTSIZE)。
[root@localhost ~]# echo $HISTSIZE
1000
在/etc/profile中修改。
与命令历史有关的一个特殊字符!
常见应用:
- !! :执行上一条指令。
[root@localhost ~]# !!
ls -l /etc/profile //上一条指令
-rw-r--r--. 1 root root 1795 11月 6 2016 /etc/profile
- !n : 执行命令历史中的第n条指令
[root@localhost ~]# !723
ls /usr/local/apache2/
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
- !word(字符串 大于等于1):执行最近一次以word开头的命令。
[root@localhost ~]# !723
ls /usr/local/apache2/
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
[root@localhost ~]# !ls
ls /usr/local/apache2/
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
三 通配符
* 匹配0个或多个字符。
? 匹配1个字符。
实例如下:
1 匹配*
[root@localhost /]# cd tmp
[root@localhost tmp]# ls
1 3.txt
11 systemd-private-4c298191af864cd1a3f133883d308ceb-vmtoolsd.service-xr6HDH
12.tar test
13.tar.gz test.zip
1.txt yum_save_tx.2018-01-09.22-27.7kaeYH.yumtx
1.txt.zip zsh-5.0.2-28.el7.x86_64.rpm
2.txt
[root@localhost tmp]# ls *.txt
1.txt 2.txt 3.txt
2 匹配?
[root@localhost tmp]# ls ?.txt
1.txt 2.txt 3.txt
[root@localhost tmp]# ls ?.zip
ls: 无法访问?.zip: 没有那个文件或目录
3 [0-9] 表示范围,或的关系。 {1,2}或的关系。
[root@localhost tmp]# ls [0-9].txt
1.txt 2.txt 3.txt
[root@localhost tmp]# ls {1,2}.txt
1.txt 2.txt
四 输入/输出重定向
< 输入重定向
> 输出重定向 将命令的结果输入到文件中。
2> 错误重定向
>> 追加重定向
实例如下:
[root@localhost tmp]# echo "123">1.txt //输出重定向
[root@localhost tmp]# echo "123">>1.txt //追加输出
[root@localhost tmp]# cat 1.txt
123
123[root@localhost tmp]# wc -l < 1.txt //输入重定向
2
[root@localhost tmp]#