bash及其特性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash及其特性相关的知识,希望对你有一定的参考价值。
一、bash介绍
linux给用户提供的人机交互接口有两种方式:
1.GUI(图形接口):GHOME,KDE,XFCE
2.CUI(命令行接口):sh,csh,ksh,bash,zsh。tcsh
什么是程序,什么是进程?简单了解下:进程是程序的一个副本,是程序的执行实例,进程是独立存在,在进程看来,当前主机只存在内核和进程本身;每个常规用户在登录到系统后,都会运行一个bash程序,这就是一个进程,用户注销退出时,bash进程也会结束,进程与进程之间不相互影响。
用户bash工作环境:
#:表示root管理员用户
$:表示普通用户
bash作用:
1.历史命令、命令补全
history:查看历史命令
history -c:清空当前bash中缓存的历史命令
history -w:将当前缓存中的历史命令写入到配置文件中(在用户家目录下的.bash_history,是个隐藏文件)
history -d n:如history -d 30 删除第三十条命令
!n:执行历史中第几条命令,如!3,执行第三条
!!:执行上一条命令
方向键 上下 可以翻出历史命令
历史命令默认是缓存1000条,可以修改HISTSIZE的变量值,修改缓存的大小
Tab键:按两下Tab键可以将你没完成的命令补全,也可以补全路径,如果有多种符合,会将所有的可能例举出来。
2.管道(|)、重定向(<,>)
3.命令别名(alias)
查看当前用户中有那些别名:alias命令即可查看
设置别名:如alias cls=clear’,表示cls命令就是clear命令
清空别名:unalias cls清除cls的别名;在命令的前面加 表示不使用命令的别名,如ls,使用原生的ls命令
注意:alias尽对当前的bash有效,要使之永久生效需要写入家目录下的.bashrc中。
4.命令行编辑
光标跳转:如果你在命令行接口上输入一串很长的命令,突然发现最前面的命令些错了,此时你不需要将光标一步步移到最前面,可以使用 Ctrl+a 组合键跳到命令的最前面,Ctrl+e跳到命令的最后面,Ctrl+d删除光标右边的一个字符,Ctrl+c终止当前命令。
5.命令替换:把命令中的某个子命令替换成其执行结果$(command),`command`,`是反引号,在Tab键上面
如果你要打印出当前目录,假如在/root下,应该怎么打印?echo ‘current directory is /root’,可以打印出,但是如果你cd切换到/tmp目录了,过了一会儿又切换到/var下?按照上面的方式打印的话虽然也可以,但是很麻烦,此时你可以使用命令替换:echo "current directory is $(pwd)",可以打印出,这条命令表示先执行pwd这条命令,再把返回的结果替换掉$(pwd),使用 `pwd` 是一样的;
练习:创建一个file文件,并且在后面跟上当前日期,如file.2018-06-17-18:07:50,方法如下:
touch file."$(date "+%Y-%m-%d-%H:%M:%S")"
注意:说下单引号‘’和双引号“”的区别,如:echo ‘$(pwd)‘ 只能打印出$(pwd)这串字符,不能变量替换,echo “$(pwd)” 双引号支持变量替换,会打印出当前目录。
6.文件名通配符
*:任意长度的任意字符
?:任意单个字符
[ ]:匹配指定范围内的任意单个字符,如:
[abc]表示abc中任意一个;
[a-z]表示a到z中任意一个字符;
[A-Z]表示A-Z中任意一个字符;
[a-zA-Z]表示a-z或A-Z中任意一个字符;
[0-9]表示0到9中任意一个数字;
[:space:]表示空白字符;
[:punct:]表示标点符号;
[:alnum:]表示数或字母;
...
[^ ]:表示指定范围之外的单个字符
注意:[ ]内与字符之间不能有空格!
练习:首先touch a123 cd6 c78m c1 my m.z ‘k 67‘ 8yu 789这些文件
1.找出以a或c开头的文件:
2.显示所有文件中含有数字的文件:
注意:最后一个k 67是一个文件,中间是空格。
3.找出不以数字开头的文件
4.显示含有空格的文件
5.找出有特殊字符的文件
7.变量
环境变量:
PATH:命令的搜索路径
查看PATH变量:echo $PATH
添加新的路径到坏境变量中:PATH=$PATH:/newpath,需要注意的是:路径是以:分隔,=号之间不能有空格,不要使用PAHT=/newpath这种方式赋值,否则会把PATH中原有的路径清空掉
HISTSIZE:历史命令缓存区大小
HISTSIZE=500,将缓存区大小设置为500,也就是说只能保存500条命令
注意:不管是PATH设置还是HISTSIZE设置都只是对当前的bash环境生效,即使你用同一个用户,登陆到同一个系统中也是无效的,退出登陆,清空设置,要想永久生效,需要写在配置文件当中(在当前用户家目录下的.bashrc中,是个隐藏文件,只对同一个用户有效)
8.编辑等
二、总结
使用命令修改bash的环境,只对当前bash进程有效,退出登陆,或者登陆到另一个终端都无效,想要永久生效必须写到配置文件当中。
以上是关于bash及其特性的主要内容,如果未能解决你的问题,请参考以下文章