8.1shell基础
1、shell是一个命令解释器,提供用户和机器之间的交互
2、登录的终端可以运行命令查看结果,登录用户名密码,出来的这个界面其实这个就是一个shell,用户配置文件最后一段就是shell 3、支持特定语法,比如逻辑判断、循环 4、每个用户都可以有自己特定的shell 5、CentOS7默认shell为bash(Bourne Agin Shell) 6、其他shell还有zsh、ksh等,同bash有区别 7、 yum list |grep zsh 8、 yum list |grep ksh8.2 命令历史
1、history命令
2、ls /root/.bash_history 历史命令存在于用户家目录下的.bash_history 这个文件中,这个文件最大存1000条,由$HISTSIZE这个环境便令配置的,当时运行的命令暂时先存在内存中,只有退出终端的时候,命令才会保存到.bash_history中 3、history -c 清空内存中的历史命令,仅仅是清空内存中的历史命令,但是不会删除存命令的文件中的内容(家目录下的.bash_history文件) 4、# vi /etc/profile 中的HISTSIZE的数值为.bash_history的保存条数,生效方式,①重启终端,或者使用# source /etc/profile 此条命令,使/etc/profile中的配置生效 5、如果想输入history后的结果出现使用时间,需要将变量HISTTIMEFORMAT赋值# 'HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
只能在当前终端生效。如果想每次都生效需要将此条变量加入到/etc/profile中
6、永久保存命令历史 chattr +a /root/.bash_history,a权限,用户只能对文件进行内容追加,不能删除 7、不通过logout或者exit退出,家目录下的.bash_history文件不能记录完整所执行的命令 8、!!即为上一条命令 9、!n 运行第n条命令 10、!word,执行最近一次以word开头的命令,例如:!echo从命令历史中找到第一个以echo开头的命令8.3 命令补全和别名
1、tab键,敲一下补全命令或者路径,敲两下显示出可输入的文件
2、yum install -y bash-completion 安装完这个包后需要重新启动系统reboot才可以生效,可以补全参数 3、alias 别名,用户家目录下的.bashrc文件中有几条、/etc/profile.d/目录中的其他文件中 4、ls /etc/profile.d 5、unalias 别名 取消别名8.4 通配符
1、'*'可以通配多个字符
2、'?'可以通配1个字符 3、'[]'范围 使用方式,例如:ls [0-3].txt或者ls [123].txt或者ls [0-9a-zA-Z].txt 4、'{}'范围 ls {1,2,3}.txt8.5 输入输出重定向
5、cat 1.txt >2.txt 重定向,将原内容删除
6、cat 1.txt>>2.txt 追加不会删除原内容 7、lsaaa.txt 2>err.txt 2>将错误信息重定向到目标文件中 8、lsaaa.txt 2>>err.txt 2>>将错误信息追加到err.txt 9、>+2>等同于&> 将正确和错误信息都重定向到某个文件中 10、>>+2>>等同于&>>将正确和错误信息都追加到某个文件中 10、ls [12].txt aaa.txt >1.txt 2>err.txt将正确的重定向到1.txt,错误的到err.txt 11、wc -l < 1.txt 左边必须为一个命令,右侧可以是一个文件 12、总结