五周第三次课(4月20日)

时间:2021-10-13 13:03:12

8.1 shell介绍

shell是一个命令解释器,提供用户和机器之间的交互

支持特定语法,比如逻辑判断、循环

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

Centos7的默认shell为bash(Bourne Agin Shell)

还有其他的shell,如zsh、ksh等


8.2 命令历史

方向键的上下键是可以一条一条的查看之前执行过的命令,这些命令存放在/root/.bash_history中

五周第三次课(4月20日)


查看之前执行的程序

#history

五周第三次课(4月20日)

最大存储默认为1000条  这个是由环境变量HISTSIZE设定的

#echo $HISTSIZE

五周第三次课(4月20日)


修改HISTSIZE

#vi /etc/profile

五周第三次课(4月20日)

要让修改生效,需要重新登录终端或者使用命令source

#source /etc/profile

五周第三次课(4月20日)


#history  -c 清空命令历史,但不会清除命令.bash_history中的内容

五周第三次课(4月20日)

注意:当前登录输入的命令并不会立即存入.bash_history中,在退出终端之后才存入


修改命令历史的显示格式

#HISTTIME="%Y/%m/%d %H:%M:%S "

五周第三次课(4月20日)

这个是临时修改只在当前终端生效,要想总是生效需要修改配置文件,并添加如下内容

#vi /etc/profie

五周第三次课(4月20日)

#source /etc/profile


想让命令历史永久保存,只能追加内容

#chattr +a  ~/.bash_history


重新执行上一条命令

#!!

五周第三次课(4月20日)


执行之前执行过的第n条命令

#!28

五周第三次课(4月20日)


执行最近执行以某些字符开头的命令 !word

#!vi

五周第三次课(4月20日)


8.3 命令补全和别名

tab键,可以补全命令,也可以补全命令

只有一个候选时,直接补全,

多个候选时按两下tab列出所有候选

五周第三次课(4月20日)


补全参数,默认不支持,需要安装一个包

# yum install -y bash-completion

重启生效

五周第三次课(4月20日)



命令比较长,可以设置别名来提高效率

#alias restartnet="systemctl restart network.service"

五周第三次课(4月20日)

取消用unalias

查看所有的别名

五周第三次课(4月20日)


alias的存放位置

 ~/.bashrc

#vim ~/.bashrc

五周第三次课(4月20日)

/etc/profile.d/

五周第三次课(4月20日)

8.4 通配符

*表示统配

五周第三次课(4月20日)

?表示一个任意的字符

五周第三次课(4月20日)


[ ],表示选取满足方括号内项,是或的关系

五周第三次课(4月20日)

同时也支持范围

[0-9]

五周第三次课(4月20日)


{},选取满足花括号内的项,以逗号分隔,选项之间是或的关系

五周第三次课(4月20日)



8.5 输入输出重定向

>:把前一个命令的输出,输入到下一个文件之中并替换原来的内容

# cat 1.txt > 2.txt

>>:把前一个命令的输出,追加到下一个文件之中

#cat 1.txt >> 2.txt


2>:把一个命令的错误信息输入到指定的文件(替换原内容)

# ls aa.txt 2> 2.txt

五周第三次课(4月20日)


2>>:错误追加到指定的文件

# lkjlkj 2>> 1.txt
五周第三次课(4月20日)

&>:把正确和错误的信息都输入到指定的文件

# ls [12].txt aa.txt &>3.txt

五周第三次课(4月20日)


&>>:把正确和错误的信息追加到指定文件

五周第三次课(4月20日)


也可以把正确和错误的信息分别重定向到两个文件中

五周第三次课(4月20日)


<:输入重定向,把右边的内容输入到左边的命令