五周第三次课(4月20号)笔记

时间:2022-09-19 14:24:08

8.1 shell介绍
8.2 命令历史
8.3 命令补全和别名
8.4 通配符
8.5 输入输出重定向

Shell介绍
shell是命令解释器(提供用户和机器之间的交互),支持特定语法,如逻辑判断,循环
CentOS7的默认shell是bash (Bourne Agin Shell)
创建一个普通用户默认shell为bin bash
yum list |grep zsh/ksh 搜索

命令历史

命令历史 ls /root/.bash_history 中 history 查看条数,默认最大1000条记录

由环境变量HISTSIZE决定  echo $HISTSIZE

history -c 清空内存中的命令历史,不会删除存储命令的配置文件

vi /etc/profile   /HISTSIZE 可修改

source /etc/profile 或重新登录终端让上述变量生效

显示敲命令的时间,重新赋值变量:

HISTTIMEFORMAT= "%Y/%m/%d' %H:%M:%S "

echo $HISTTIMEFORMAT 仅支持当前窗口

想要在新的窗口也让该环境变量生效,需vim /etc/profile 把HISTTIMEFORMAT参数加入,source后重新打开窗口

永久保存命令: chattr +a ~/.bash.history (例外:如果没有正常退出系统,当前敲的命令不会完全保存到.bash/history中)

!!运行最后一条命令

!n 运行第n条命令

!word 在命令历史中倒着找,, 如!echo 执行倒数第一个以echo为开头的命令 

命令补全和别名

tab,敲一下,敲两下(搜索文件多于2个)

安装bash-completion 包,重启系统参数补全包生效

rpm -qa bash-completion查看是否安装

alias xxx= '   '    可简化并自定义命令行, unalias取消自定义别名

执行alias可直接查看

用户家目录下的vi .bashrc下有3条alias

 /etc/profile. d/ 中有alias

.bashrc  /etc/profile.d/  

通配符

*表通配 如 *.txt

?表示一个任意字符 

ls [0-3].txt 方框中的数字表范围

ls{0-3}.txt 或 字符中需要加,

输入输出重定向

输出重定向

> : 把前面的内容重写到后面中

>>:追加

2>  把文件的错误信息写入

2>> 把文件的错误信息追加

> +2>==&>

使用cat命令查看已定向的输出信息

e.g. ls [12].txt aaa.txt &>a.txt (前者txt存在,第二个不存在)

补充:同时有正确和错误的输出

ls [12].txt aaa.txt > 1.txt 2>a.txt

cat 1.txt  1.txt 2.txt

cat a.txt ls:无法访问aaa.txt:没有那个文件和目录

 输入重定向

<表示输入重定向   e.g. wc -l (查看文本文档的行数) 2.txt < 1.txt 报错,左边必须为命令 

    wc -l > 1.txt  = = wc -l <1.txt