wstlwl 发表于 2018-8-24 08:40:00

第二十二课 Shell的基础知识

  一、shell介绍
  1、shell是一个命令解释器,提供用户和机器进行交互,每个用户都可以有自己特定的shell ,
  2、CentOS7 默认shell为bash,还有zsh,ksh它们有细节上的差异而已,
  我们可以查下系统中是否存在zsh: yum list |grep zsh
  bash有哪些特性?
  二、命令历史(history)
  1、它的存储的文件为:/root/.bash_history
  2、当我们退出终端后,它才会储存到以上的文件中。
  它的配制文件为:/etc/profile ,如果你修改里面的文件,不想退出终端就想生效
  运行命令:source /etc/profile 然后用命令查看是否生效:echo $HISTSIZE
  3、更改historyntnt属性,比如增加记录时间:
  HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S”
  1、用vim编辑/etc/profile 把HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S” 变量放到变量HISTSIZE下面
  然后保存退出,

  2、让我们的命令历史永久保存,给它增加一个a权限:chattr +a /root/.bash_history, 然后用lsattr查看一下吧
  3、!! 最后一条命令
  4、!n (n是数字)比如说你想运行66命令:!66
  5、!echo 它会在从历史命令中最后找以echo开头的命令

  三、命令补全及别名
  1、tab 敲一下补全,敲两下   (在cenos6 里面不支持命令参数补全,在centos7里面是支持命令参数补全)
  2 、比如我们要让systemctl restart network.service 我们需要安装包:yum install-ybash-completion,重启:
  3、我们可以把上面的命令做别名:alias restartnet="systemctl restart network.service"
  自定义的alias放到〜/.bashrc里面了,
  四、通配符
  1、在bash下,我们可以用“* ”来匹配多个字符,用?匹配一个字符。
  2、用?号匹配一个任意的字符。
  3、用[] 给一个范围的字符。例:ls .txt
  4、用{} 也是给一个范围。但要多个,号;例:ls {1,2,3,4}.txt

  五、输入输出重定向
  1、输入重定向命令:<   例:
  2、输出重定向的命令: > 把一个文件内容重定向到一个文件里面去。例:cat 1.txt > 2.txt
  3、错误重定向命令: 2> 把错误信息定向到你一个文件里面去。例:我们输入一个错误命令,要把信息定向到一个文件里面去:
  lsbbbb 2> 1.txt
  追加错误重定向:2>>
  +2> == &>结合了正确和错误信息。例:
  ls .txt aaa.txt &> a.txt   同时我们可以让正确的命令跟错误的命令分文件存储: ls .txt aaa.txt >1.txt2>a.txt
  同样支持追加 &>>
  4、追加重定向命令:>>   例:cat 1.txt >>2.txt


页: [1]
查看完整版本: 第二十二课 Shell的基础知识