8.1 shell介绍

shell 是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell 为bash(Bourne Agin Shell) 还有zsh、ksh等 yum zsh和ksh

[root@centos-01 ~]# yum list |grep zsh
 zsh.x86_64                                 5.0.2-25.el7_3.1            updates  
 zsh-html.x86_64                            5.0.2-25.el7_3.1            updates  
[root@centos-01 ~]# yum list |grep ksh
ksh.x86_64                                 20120801-26.el7             base     
mksh.x86_64

8.2 命令历史

history 命令 bash_history 最大1000条 变量HISTSIZE /etc/profile中修改 HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S" 永久保存chattr+a~/.bash_history !! !n !word

敲过的命令保存在用户的家目录下 
[root@aminglinux-001 httpd-2.2.34]# ls /root/.bash_history
/root/.bash_history

显示所有的敲过的命令
[root@centos-01 ~]# cat /root/.bash_history

如果需要统计多少数量,可以输入
[root@centos-01 ~]# history

可以保存1000条
[root@centos-01 ~]# echo $HISTSIZE
1000

清空历史命令
[root@centos-01 ~]# history -c

变量HISTSIZE可以通过以下命令修改参数
[root@centos-01 ~]# vi /etc/profile
修改HISTSIZE=5000
退出
[root@centos-01 ~]# echo $HISTSIZE
1000
[root@centos-01 ~]# source /etc/profile                   //需要输入此命令保  存生效//
 -bash: ii: 未找到命令
 -bash: /: 是一个目录
 [root@centos-01 ~]# echo $HISTSIZE
5000

如何记录下历史命令是什么时候运行的
在编辑模式下
[root@centos-01 ~]# vim /etc/profile

HISTSIZE=5000               在此条命令下一行插入以下命令
HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"
退出

[root@centos-01 ~]# source !$
source /etc/profile

!!最后一条命令

!n表示想运行第几行的命令

!echo  从下往上找以echo为首的命令的一行

8.3 命令补全和别名

tab键,敲一下,敲两下参数补全,安装bash-completion alias别名给命令重新起个名字 各用户都有自己配置别名的文件 ~/.bashrc ls/etc/profike.d/ 自定义alias放到~/.bashrc

tab键,敲一下补全,敲两下列出可能的参数

安装bash-completion

 [root@centos-01 ~]# yum install -y bash-completion

alias是查看命令的别名,或者可以给一串命令起个别名

8.4-8.5 通配符 输入输出重定向

ls *.txt //列出所有前缀的txt文件// ls ?.txt //列出所有前缀只有一个位数的txt文件// ls [0-9].txt //列出括号内任选其一的文件// ls{1,2}.txt //跟上面一样,或者的意思// cat 1.txt>2.txt //把前面命令的输出输入到后面的文件中// cat 1.txt>>2.txt //追加// ls aaa.txt 2>err //错误重定项// ls aaa.txt 2>>err //错误追加重定项// wc -l <1.txt //把右边的一个文件或者内容输入左边重定项,左边必须是一个命令// command >1.txt 2>&1 //把正确和错误的都输入右边重定项//