认识Bash 这个Shell

来源:互联网 发布:平价好用口红知乎 编辑:程序博客网 时间:2024/06/05 17:19

一、Shell概念:

 声卡是数字信号与声波模拟信号转换的一个硬件,扬声器接受声波模拟信号发出声音,内核处理声卡传来的数字信号,但是要让内核识别出声卡就需要声卡驱动程序,内核是被保护起来的,不让用户操作内核,避免用户随意操作,使得整个操作系统崩溃,但是用户总是要和内核沟通的,于是提供了shell应用程序,这个shell程序就提供用户与内核之间的一个沟通

shel(命令行界面)就是操作系统和用户进行交互操作的界面,类似于shell功能的还有KDE、application、X WINDOWS(图形化界面)

图形化界面缺点:虽然界面是图形化,非常的人性化,但是毕竟是将所利用到的软件都整合到一组的应用程序而已,所以当你升级或使用其他套件管理模块时候,就会操成配置的困扰了,

命令行界面:像这种文字接口传输速度一定比较快,且较不容易出现断线或者是信息外流的问题

 

 

二、Shell种类:

Bsh :70年代中期诞生于贝尔实验室,已经被/bin/bash所取代

Bash :Bsh的升级版,Linux系统中默认的Shell

Csh:80年代早期诞生于加利福利亚大学,使用C语言风格,已经被tcsh取代

tcsh:  整合C Shell ,提供更多的功能

Ksh:兼具Bsh的语法和Csh的交互特性(Bsh和Csh结合)

Zsh:基于ksh发展出来,功能更强大的shell

 查看Linux支持的shell:

某些服务在运行的过程中,会去检查使用者要使用的shell是不是支持的,就在etc/shells文件里检查。

[root@desktop30 ~]# cat /etc/shells       #在linux系统中,/etc/shells文件里记录了你的平台(系统)所有支持的shell环境,如果你的平台不支持Zsh环境,那么你需要去安装Zsh这个软件包,然后你就支持Zsh环境

[root@desktop30 ~]# chsh  -l              #使用chsl  -l 也可以查看

Shell切换:

[root@desktop30 ~]# grep  root /etc/passwd        #每个用户使用什么shell环境,都会在login时读取/etc/passwd里定义的shell

root:x:0:0:root:/root:/bin/bash

[root@desktop30 ~]# chsh -s  /bin/csh  root          #Chsh -s  [shell]  [username]  shell环境切换命令

[root@desktop30 ~]# grep  root /etc/passwd

root:x:0:0:root:/root:/bin/csh

特殊的shell:/sbin/nologin

使用了/sbin/nologin的账号是无法登陆的,即使给了密码也不行,所谓“无法登陆”指的是这个用户无法使用bash或其他shell来登陆而已,并不是说这个账号无法使用系统资源,例如:www服务有apache这个账号在管理,他们都可以进行系统程序的工作,只是无法登陆主机。在比如邮件服务器,在这部主机上面的账号,大部分都是用来收主机的信件而已,并不需要登陆主机,使用的shell就应该是/sbin/nologin


三、Bash shell 功能

1、命令编修能力(history)

2、命令别名配置功能(alias)

3、bash快捷键

4、命令与文件补全功能:(tab)

5、工作公知、前景背景控制(job control,foreground,background)

6、程序化脚本(shell  scripts)

7、通配符(Wildcard)

8、bash shell的内建命令(type)

用type可以查看这个命令属于内建命令还是外部命令

   type              

                             不加任何参数时,type会显示命令是外部命令还是bash内建命令  

                    -t         当加入-t参数时,type会将显示出使用该命令时是通过别名还是内部命令,还是外部命令方式来使用的

                   -p       如果后面接的命令为外部命令时,才会显示完整的文件名

                   -a        列出使用该命令的全部方式

[root@desktop30 ~]#  type  ls

ls  is  aliased  to  ’ls  --color=tty‘

[root@desktop30 ~]# type   -t  ls

alias

[root@desktop30 ~]# type  -a  ls

ls  is  aliased  to    ’ls  --color=tty‘

ls  is  /bin/ls

[root@desktop30 ~]# type  alias

alias is a shell builtin

 注意:在我们写脚本的时候,你要判断你写的命令是外部命令还是内置命令,外部命令一定要写完全格式,cd的完全格式为/usr/bin/cd

 

敲enable命令,然后确定,你会发现enable后面可以敲的命令有这么多,enable  -n alias关闭别名,关闭别名后,再敲enable,会发现没有alias那一项了,说明alias被关闭了,敲enable  alias开启别名,再敲enable,会发现又有alias了,说明alias被开启了。

[root@desktop30 ~]# enable

enable alias

[root@desktop30 ~]# enable -n  alias

[root@desktop30 ~]# enable

[root@desktop30 ~]# alias

[root@desktop30 ~]# enable alias

[root@desktop30 ~]# alias

alias cp='cp -i'


一些开发商开发系统会基于开源的系统内核上来开发系统,那么它会把系统内核的内置命令给关掉,然后自己开发外部命令让用户来使用

功能开关:

 [root@desktop30 ~]# set -o  noglob  on   #开启通配符功能

[root@desktop30 ~]# set  -o    #查看shell功能开关

noclobber           off        #重定向功能关闭

noglob             on           #通配符功能开启


0 0