首页 > 代码库 > Shell编程基础
Shell编程基础
shell简介
shell是用户和linux内核进行交流的中间层,它提供了用户与内核进行交互操作的一种接口。接受用户输入的命令,并且把命令送入内核去执行。
查看当前系统安装的shell
1.查看/etc/shells
2.ll /bin/*sh
可以看出当前系统中存在的shell只有bash、dash、tcsh三种,csh只是链接到tcsh,sh则是链接到了bash。
可以使用echo $SHELL 命令来查看当前正在使用的shell
关于nologin
不知道大家有没有注意到用第一种方法查看shell种类比第二种多出了/sbin/nologin。其实nologin并不是一种shell
那nologin到底是什么作用呢?我们知道在linux系统中存在很多用户,这些用户默认情况下是不允许登录系统的,这
类用户我们成为 虚拟用户
在/etc/passwd文件中将这些用户的默认shell置为/sbin/nologin就可以禁止用户登入系统。
在/etc/passwd文件中可以找到哪些用户不允许登录系统(如下图)
当我们偏要切换到上述这些用户(比如apache用户)的时候,系统会给出错误提示
其实Linux系统是允许自定义上述的错误提示信息的,我们只需要编辑/etc/nologin.txt文件(不存在的话,就touch一个)
并在里面加入自定义的错误提示就可以了。
例如我们可以把错误提示改为:Your current login shell is /sbin/nologin…。
然后在切换到apche用户,请看这时候的错误提示:
有这么一种特殊情况,可能系统由于特殊原因需要维护,系统管理员需要暂时禁止所有非root用户的登录。这时候Linux提供了相应的机制。
只需要提供/etc/nologin文件,并在该文件中写入要展示给用户的信息即可。此时,logout出当前用户,用非root用户登录,已经不能登入系统了。
如果系统维护完毕,删除该文件即可。
安装其他shell
linux发展到现在,已经有很多shell可以选择。有最基本的sh、增强版的sh->bash、兼容c语法适合shell编程的csh、zsh、ksh等。
用户可以根据自己不同的需求来选择相应的shell。下面以安装ksh为例子介绍其他shell的安装,很简单:
执行yum –y install ksh
安装完毕查看当前系统shell
设置shell命令别名-alias的使用
1.可以直接在shell(这里是bash)命令提示符下输入:
alias 别名=原始命令
通过此种方式设置一个别名:
alias listall=’ls -al’
通过此种方式设置的别名只是对当前shell起作用,重新启动一个shell该别名就会失效。
2.在~/.bashrc文件中设置别名
重新启动一个shell,上述文件就会被读取,且每次启动新的shell别名都有效,这也是设置个人偏好的最好的地方
3.在/etc/bashrc文件中设置别名:
alias lsr=‘ls –r’
重新启动一个shell,别名就会生效。
通过这种方式设置的别名,对所有用户都会生效,重启也不会失效
上述三种设置别名的方式涉及几个配置文件,大家可能比较迷惑。从网上(感谢博主)拷贝一张图片,表述的比较清晰
待续…