标签:介绍 难点 终端 tab 开头 重启 匹配 输出内容 常用
8.1 shell介绍shell是一个命令解释器,提供用户和机器之间的交互,它支持特定的语法,比如逻辑判断,循环等.
每个用户都可以有自己特定的shell,CentOS7默认的shell为bash(Bourne Agin Shell),此外还有zsh,ksh等shell.
我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令。这些命令保存在用户的家目录中的.bash_history文件中。有一点需要你知道的是,只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中。
echo $HISTSIZE #查看系统设置历史命令数目,HISTSIZE是在etc/profile中定义的,设置完需重新进终端才会生效(或者是执行source /etc/profile也会生效)
history #查看之前的命令
history -c #清空内存中的命令历史
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" #设置history查看的历史命令加上使用时的日期和时间
永久保存历史命令 chattr +a ~/.bash_history
!! #执行上一条指令
!n #n为数字,表示执行命令历史中第n条指令
!word #表示执行命令历史中最近一次以word为开头的指令
(1)命令补全
tab键按一次 --> 补全一个命令/路径/文件名。
tab键按两次 --> 系统则会把所有的指令或者文件名都列出来
CentOS7默认不支持命令参数补全,安装bash-completion才支持(装完需重启系统才生效)
(2)别名
通过alias可以把一个常用的并且很长的指令别名一个简洁易记的指令,其语法:
alias 命令别名=‘具体的命令‘
例如,alias kh=‘pwd‘
用unalias解除别名功能
直接敲alias则会看到目前系统预设的alias.
每个用户都有自己配置别名的文件~/.bashrc(即家目录下的.bashrc文件),用户自定义的alias都放在这里.
alias别名除了在家目录下~/.bashrc中定义的,其他的都在/etc/profile.d/目录下的配置文件中定义.
在bash下,可以使用 来匹配零个或多个字符,而用 ? 匹配一个字符。
ls .txt #列出当前目录中所有以.txt结尾的目录和文件
ls ?.txt #列出当前目录中所有以.txt结尾的且名字只有一个字符的目录和文件
ls [0-9a-z].txt #列出当前目录中所有以.txt结尾的且名字为0-9中任意一个或a-z中任意一个的目录和文件
ls {1,2,3,a,b,c}.txt #列出当前目录中所有以.txt结尾的且名字为1,2,3,a,b,c中任意一个的目录和文件
cat 1.txt > 2.txt #将1.txt的内容替换2.txt的内容
cat 1.txt >> 2.txt #将1.txt的内容追加到2.txt内容的末尾
ls aaa.txt 2>err #2>表示错误重定向,此行命令表示将执行ls aaa.txt产生的错误信息重定向err文件中去
ls aaa.txt 2>>err #2>>表示错误重定向,此行命令表示将执行ls aaa.txt产生的错误信息追加重定向err文件中去
wc -l < 1.txt #其中<表示输入重定向,此行命令表示统计1.txt文件内容的行数
疑难点:
(1)
&>相当于> + 2>
表示将执行一条命令正确和错误的输出内容都重定向到某处
(2)
command > 1.txt 2>&1
将执行command命令正确和错误的输出内容都重定向到1.txt中
&1 表示标准正确输出目标,因为前面已经定义了 >1.txt 标准正确输出到了1.txt,所以&1就是1.txt
标签:介绍 难点 终端 tab 开头 重启 匹配 输出内容 常用
原文地址:http://blog.51cto.com/13517946/2059656