标签:不能 无法 通过 restart work root用户 错误 attr 情况下
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
<:输入重定向(使用较少),将右边的文件内容重定向到一条命令中,左边必须是命令,无法从文件重定向到文件
标签:不能 无法 通过 restart work root用户 错误 attr 情况下
原文地址:https://www.cnblogs.com/w494129131/p/9236394.html