6.28

1、shell介绍

  shell是一个命令解释器,提供用户和机器之间的交互,支持特定语法,比如逻辑判断、循环等。

  每个用户都可以有自己特定的shell

  centos7默认shell为bash(bourne agin shell)

  还有zsh、ksh等多种shell

2、命令历史

  用户执行过的命令保存在用户的家目录下,例如root用户的命令历史保存在/root/.bash_history中:

  默认最大可以保存1000条,该值是在环境变量中配置,通过echo $HISTSIZE可以进行查看

 

  执行history -c可以清空当前内存中保存的命令,但是不能清空配置文件中记录的命令,只有在退出终端时,内存中的命令才会保存到配置文件中:

  HISTSIZE的值在/etc/profile中定义:

 

  如果修改为5000,修改完/etc/profile后,再重新打开终端或执行source /etc/profile命令,则再查看该环境变量值时,显示为5000:

  在默认情况下,执行history命令只会显示ID号和命令,如果需要显示具体的时间信息,需要修改环境变量HISTTIMEFORMAT="%Y/%m/%d %H;%M;%S ",修改以后只在本终端有效,再打开新的终端时,不会发生改变,如果想让该变量永久有效,可以通过编辑/etc/profile文件。

  执行chattr +a ~/.bash_history,可以将命令文件永久保存,即使在超过保存命令上限后,仍然不会删除,但是当终端非正常退出时,配置文件中可能无法完全保存所有的命令。

  !!:执行上一条命令

  !n:运行指定的命令,如!6,执行第6条命令

  !word:从后向前找最后一个以word开头的命令,如:!echo就是指从后向前找最后一个以echo开头的命令

3、命令补全和别名

  tab键:可以补全命令或路径,默认不支持,需要执行yum install -y bash-completion,然后重启系统生效。

  敲一下:补全命令

  敲两下:当遇到有多个开头相同的命令或路径时,敲两下可以显示所有相同开头的命令或路径

  别名,比如给systemctl restart network.service做个别名:alias restartnet='systemctl restart network.service',完成之后执行restartnet就可以达到原来整条命令的作用。

  执行alias命令,可以列出系统中所有的alias命令,包括自定义的别名:

  alias部分配置文件保存在用户家目录下的.bashrc里:

  在/etc/profile.d/目录下保存其他的别名配置文件:

  执行unalias命令可以取消配置的别名,如下所示:

4、通配符

   *:表示通配,不仅可以放到前面,也可以放到后面

  ?:表示一个任意的字符

  [0-3]:表示满足0-3中的任意一个字符,可以直接写全所有的数字[0123]

  {1,2}:相当于[12],其中的参数的关系为或

5、输入输出重定向

   >:将前面命令的输出,输入到后面的文件中去,并且会覆盖后面文件中的内容

  >>:将前面命令的输出,追加到后面的文件中去,并且不会覆盖后面文件中的内容

  2>:将前面命令执行的错误信息输入到后面的文件中

  2>>:将前面命令执行的错误信息追加到后面的文件中

  &>:将>和2>结合使用,将前面文件中输出的正确和错误信息输入到后面文件

  &>>:将>>和2>>结合使用,将前面文件中输出的正确和错误信息追加到后面文件

 

  执行ls 1.txt 2.txt >a.txt 2>b.txt,将正确的输出结果输入到a.txt,将错误的输出结果输入到b.txt

  <:输入重定向(使用较少),将右边的文件内容重定向到一条命令中,左边必须是命令,无法从文件重定向到文件

猜你喜欢

转载自www.cnblogs.com/w494129131/p/9236394.html
今日推荐