当前位置: 代码迷 >> 综合 >> 保障训练-20200814
  详细解决方案

保障训练-20200814

热度:11   发布时间:2024-01-03 13:31:15.0

8.1 shell介绍

8.2 命令历史

8.3 命令补全和别名

8.4 通配符

8.5 输入输出重定向

8.6 管道符和作业控制

一、shell介绍

Shell是一个命令解释器,提供用户和机器之间的交互,你敲命令,它出结果

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

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

CentOS7默认shell为bash(Bourne Agin Shell)

还有zsh,ksh等

二、命令历史

我们使用过的命令,即命令历史,会存放在用户家目录下/root/.bash_history. history命令,可以查看使用过的命令历史,这个命令历史数量限制为1000条

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

注意:刚刚敲过的命令,只有当用户正常退出终端时,才会保存到.bash_history文件中去

环境变量HISTSIZE在/etc/profile中定义,可以vi /etc/profile,找到HISTSIZE并修改参数,然后执行命令# source/etc/profile,使修改马上生效

修改命令历史格式,可以更加方便我们能直观的查看

该格式只适用于当前终端,若想环境变量生效,需要# vi /etc/profile,在配置文件中添加

想命令历史永久保存并不被别人删除,运行chattr +a ~/.bash_history(只能追加,不能删除)

显示历史命令执行时间:设置环境变量:HISTTIMEFORMAT= “%Y/%m/%d %H:%M:%S” 可以显示历史命令执行时间

当然前面的设置只是当前终端生效,如果重新登录或者重启系统就会失效,可以将命令写入~/.bash_profile或者/etc/profile(全局登录生效)文件中来永久生效

!!表示执行最后一条命令

!n表示运行第几条命令(n代表数字)

!echo表示会在命令历史里面,最近一次执行以 echo开头的命令

三、命令补全和别名

按一次tab可以补全一个命令,一个路径或者是一个文件名;连续按两次tab键,则把所有的命令或者文件都列出来。在centos7里支持参数自动补全,需要安装安装包bash-completion;然后重启系统(reboot),才会生效

我们可以通过alias把一个常用且很长的指令另取名一个简单易记的指令,如果不想用了,也可以使用unalias取消别名,直接执行alias命令,则会看到系统中所有的别名

alias存放:

第一个在用户家目录下.bashrc文件下

第二个在 /etc/profile.d目录下的 colorgrep.sh,colorls.sh这些脚本中定义的

使用unalias可以取消别名。命令格式: unalias alias_name

四、通配符

通配符*, 表示零个或多个字符

通配符?,表示任意一个字符

中括号【】,ls【0-9】.txt表示0-9范围内的任意.txt文件

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

五、输入输出重定向

cat 1.txt > 2.txt,大于号>表示将前面的命令输出,直接输入到后面的文件里面去,这里是指将1.txt的内容重定向到2.txt里面去,之前2.txt的内容会被删除

cat 1.txt>> 2.txt,两个大于号>>表示追加,不会删除2.txt的内容,将1.txt的内容追加到2.txt里面去

ls cdjdj 2> a.txt,2大于号表示将命令产生的错误信息输入到一个文件里去

ls afhvjbh 2>>a.txt,表示错误信息追加重定向

ls {1,2}.txt bb.txt &> a.txt 2>b.txt,表示将正确和错误的信息都输入到a.txt中

ls {1,2}.txt bb.txt &>> a.txt,表示将正确和错误的输出信息都追加到a.txt中

ls {1,2}.txt bb.txt > a.txt 2>b.txt;表示将正确的输出信息都输入到a.txt中;错误的输出信息都输入到b.txt中

wc -l < 1.txt,表示把1.txt文件内容输入重定向到命令wc -l 中去,(左边必须要是命令,不能由文件到文件,很少用,了解即可)

六、管道符和作业控制

管道符l,用于将前一个指令的输出作为后一个指令的输入

命令wc -l:统计文件数量

命令grep:是用来过滤指定关键词的命令,只要文件中含有关键词,就会把这一行过滤出来

作业控制

ctrl+z暂停一个正在执行的任务

然后使用fg (foreground)命令恢复

如果暂停多个任务,可以用jobs查看在后台运行的任务

如果想重新调回,需要输入fg【id】,同理也可以使用bg (background)命令放到后台运行去,用法bg【id】

bg【id】=background把任务调到后台运行

fg【id】=foreground把任务调到前台运行

sleep命令;sleep 100=意思相当于让机器休眠静止100秒

“&”命令:后面加&相当于直接把任务调到后台运行