一、shell基础
shell基础_第1张图片

二、命令历史
我们使用过的命令,即命令历史,会存放在系统家目录下面/root/.bash_history history命令可以查看使用的命令历史,系统默认为1000条
shell基础

history -c 可以清空内存里面的命令历史,但是不会清空/root/.bash_history里面的命令
shell基础

注:只有正常退出终端时,敲过的命令才会保存到/root/.bash_history里面去
环境变量HISTSIZE可以在/etc/profile里面自定义命令历史条数,可以vi /etc/profile 找到HISTSIZE参数,修改,然后执行命令 source /etc/profile
shell基础

修改命令历史格式,增加时间选项,可以更直观的查看
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
shell基础_第2张图片
该格式只在当前终端生效,如果想在其他终端也生效,需要编辑配置文件 vi /etc/profile,在配置文件添加HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

shell基础_第3张图片

想要命令历史永久保存,并不会被别人删除,chattr +a ~/.bash_history只能追加,不能删除
!!表示执行最后一条命令

shell基础_第4张图片

!n(代表数字)

shell基础_第5张图片
!history,则会在命令历史里面找到最后一次以history开头的命令

shell基础_第6张图片

三、命令补全及别名

按一次tab键可以补全一次命令,一个文件,或者一个目录,连续按两次tab键,则会把所有命令或者文件名列出来,centos7里面支持参数自动补全,需要安装包bash-completion;然后重启系统生效
shell基础_第7张图片

我们可以通过alias把一个常用但是命令很长的命令设置一个别名,如果不想使用,可以使用unalias取消别名,直接执行alias可以查看所有别名

shell基础_第8张图片

alias存放路径:
第一个存放在家目录.bashrc文件下
第二个存放在/etc/profile.d目录下的colorgrep.sh colorls.sh 这些脚本中自定义
unalias取消别名,格式 unalias alias_name

四、通配符

通配符*,表示零个或者多个字符
shell基础
通配符?,表示任意一个字符
shell基础

中括号[] ls [0-9].txt表示0-9范围内的任意.txt文件

shell基础_第9张图片

花括号{},ls {1,2,3}表示括号内任意txt文件

shell基础_第10张图片
五、输入输出重定向

cat 1.txt >2.txt,大于号>表示将前面的命令输出,直接输入到后面的文件里面去,这里是将1.txt的内容重定向到2.txt里面去,之前2.txt的内容会被删除
shell基础_第11张图片
cat 1.txt >>2.txt,两个大于号表示追加,不会删除之前2.txt里面的内容,把1.txt里面的东西追加到2.txt里面去
shell基础_第12张图片
ls asas 2>a.txt大于号表示将命令产生的错误信息输入到一个文件里面去

shell基础_第13张图片
ls asdfgh 2>>a.txt,表示将错误信息追加重定向
shell基础_第14张图片
ls {1,2}.txt bc.txt &>a.txt 2>b.txt,表示将正确和错误的信息输入到a.txt中
shell基础_第15张图片
ls {1,2}.txt bc.txt &>a.txt,表示将正确和错误的输出信息都追加到a.txt中
shell基础_第16张图片
ls {1,2}.txt bc.txt >a.txt 2>b.txt 表示将正确的输出信息输入到a.txt中,错误的输出信息输入到b.txt中
shell基础_第17张图片
wc -l <1.txt,表示把1.txt文件内容输入重定向到命令wc -l中去,左边必须是命令,不能由文件到文件,了解即可

shell基础

六、管道符合作业控制
管道符|,勇于将前一个命令的输出做为后一个命令的输入
cat 1.txt |wc -l;cat 1.txt |grep 'ccc'
命令wc -l :统计文件数量
命令grep:用来过滤关键词,只要文件含有关键词,就可以把这一行过滤出来、

作业控制
ctrl +z 暂停一个正在执行的任务
shell基础
fg命令恢复
shell基础
如果暂停多个任务,可以用jobs查看在后台运行的任务
shell基础_第18张图片
如果想重新调回,输入fg+id 也可以使用bg放在后台运行,用法bg+id
bg+id 把任务调到后台运行
fg +id 把任务调到前台运行
shell基础_第19张图片
sleep命令,sleep 100相当于让机器休眠静止100秒
shell基础_第20张图片
“&”命令,后面加&相当于把任务直接调到后台运行
shell基础