shell介绍
什么是shell?
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
shell是一个命令解释器,提供用户和机器之间的交互
支持特定语法,比如逻辑判断、循环
每个用户都可以有自己特定的shell
CentOS7默认shell为bash(Bourne Agin Shell)
还有zsh、ksh等,只是细微的差别不同
命令历史
在执行命令时候,可以ongoing键盘上额方向键进行查找之前执行过的历史命令。为什么会有记录呢?由于历史命令都存在当前用户的家目录下,/oot/.bash_history 文件中。
history命令 选项-c
[root@centos7~]#history查看当前存了多少条历史命令 [root@centos7~]#history-c清空当前内存中的历史命令,但无法清空配置文件中的 [root@centos7~]#cat/root/.bash_history查看文件内容 [root@centos7~]#echo$HISTSIZE查看系统配置的环境变量 1000#默认最大只能存一千条
可以在etc/profile配置文件中找到HISTSIZE变量重新赋值,当修改值后可以用source /etc/profile命令或重新退出终端再登录生效。
[root@centos7~]#HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"指定变量的格式 [root@centos7~]#echo$HISTTIMEFORMAT只能当前终端生效 %Y/%m/%d%H:%M:%S #如果需要永久生效可以把变量增到profile文件中,跟HISTSIZE放在一起 [root@centos7~]#history可看到增加了时间参数 22017/11/1522:34:36history 32017/11/1522:35:22cat/root/.bash_history 42017/11/1522:37:02echo$HISTSIZE 52017/11/1522:38:31vi/etc/profile 62017/11/1522:43:38sudovi/etc/profile 72017/11/1522:47:41HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S" 82017/11/1522:47:51echoHISTTIMEFORMAT="%Y/%m/%d%H:%M:%S" 92017/11/1522:48:15echoHISTTIMEFORMAT 102017/11/1522:48:22HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S" 112017/11/1522:48:25echoHISTTIMEFORMAT 122017/11/1522:48:41echo$HISTTIMEFORMAT 132017/11/1522:51:10history
在有些特定情况下需要对执行过的命令进行记录,可以用chattr + a ~/.bash_history 增加a权限,让文件内容只能追加无法删除。但是非正常退出,命令将保存不全。
[root@centos7~]#!!执行最后一条命令 [root@centos7~]#!10执行第10行历史命令 [root@centos7~]#!echo执行最近一次echo开头的命令
命令补全和别名
tab键,当输入的匹配的命令只有一个符合的时候,敲一下补全;当输入的匹配命令多个的时候,敲两下显示匹配的结果。
centos7默认是不支持参数补全的,需要安装yum install -y bash-completion包,安装之后不能使用,需要重启系统才生效。
[root@centos7~]#aliasrestartnet='systemctlrestartnetwork.service'设置别名 [root@centos7~]#alias aliascp='cp-i' aliasegrep='egrep--color=auto' aliasfgrep='fgrep--color=auto' aliasgrep='grep--color=auto' aliasl.='ls-d.*--color=auto' aliasll='ls-l--color=auto' aliasls='ls--color=auto' aliasmv='mv-i' aliasrestartnet='systemctlrestartnetwork.service'#成功设置 aliasrm='rm-i' aliaswhich='alias|/usr/bin/which--tty-only--read-alias--show-dot--show-tilde' [root@centos7~]#unaliasrestartnet取消别名
ls /etc/profile.d/
通配符
#*表示所有 #?表示一个任意的字符 #[0-9]表示0-9范围取一个值或[123]表示取123文件 #{1,2}表示取12文件同等于[12]
#>>>分别表示正确输出重定向追加输出重定向 #2>2>>分别表示错误输出重定向追加输出重定向 #<表示输入重定向基本用不到