shell的简单介绍

一 什么叫shell,shell 是什么  

  如果考虑到操作系统其实是一组软件,我们可以发现应用程序其实是在最外层,就如同鸡蛋的外壳一样,因此这个也就被称为shell。

  其实shell的功能只是提供用户操作系统的一个接口,一次这个shell需要可以调用其他软件才好,比如 man,chmod,chown,vi等命令,这些命令都是独立的应用程序,但是我们可以通过shell(命令行模式)来操作这些应用程序,让这些应用程度调用内核来运行所需的工作。

  也就是说,只要能够操作应用程序的接口都能够称为shell。狭义的shell指的是命令行方面的软件,包括bash等。广义的shell则包括图形界面的软件,因为图形界面其实也能够操作各种应用程序来调用内核工作。

二 shell 新增

  /etc/shells

[root@iz2ze5xd9ppdog0cch5vs0z etc]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

  如果有一些新的shell,就需要把那些新的写在/etc/shells里。

三 我这个用户什么时候取得shell工作呢?我这个用户默认会取得哪一个shell?

  

[root@iz2ze5xd9ppdog0cch5vs0z etc]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
... ...

  如上所示,在每一行的最后一个数据,就是你登录后可以取得的默认的shell。你会看到,root是/bin/bash,不过系统账户bin与daemon等就是用sbin/nologin/

四 判断命令是来自于外部命令(其他非bash提供的命令)或是内置在bash当中的呢?

  利用 type 这个命令来查看。

[root@iz2ze5xd9ppdog0cch5vs0z etc]# type cd
cd is a shell builtin
[root@iz2ze5xd9ppdog0cch5vs0z etc]# type pwd
pwd is a shell builtin
[root@iz2ze5xd9ppdog0cch5vs0z etc]# type mkdir
mkdir is /usr/bin/mkdir
[root@iz2ze5xd9ppdog0cch5vs0z etc]# type ls
ls is aliased to `ls --color=auto'

  

猜你喜欢

转载自www.cnblogs.com/654321cc/p/9280107.html