shell

来源:互联网 发布:淘宝上靠谱的猫粮店 编辑:程序博客网 时间:2024/04/29 22:47

管理整个计算机硬件的其实是操作系统的内核(kernel),这个内核是需要被保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们所想要达到的工作。

我们必须要通过“Shell”将我们输入的命令与内核通信,好让内核可以控制硬件来准确无误地工作。

用户可以通过应用程序来指挥内核,让内核达成我们所需要的硬件任务,应用系统其实是在最外层,就如同鸡蛋的外壳一样,因此这个也就被称呼为shell。

其实shell的功能只是提供用户操作系统的一个接口,因此这个shell需要可以调用其他软件才好。只要能够操作应用程序的接口都能够被称为shell。狭义的shell指的是命令行方面的软件,包括bash等。

Linux默认就是使用bash。

为什么我们系统上合法的shell要写入/etc/shells 这个文件?这是因为系统某些服务在运行过程中,会去检查用户能够使用的shells ,而这些shell 的查询就是借助/etc/shells这个文件。


当我登录的时候系统就会给我一个shell让我来工作了。而这个登录取得的shell就记录在/etc/passwd 这个文件内。


在每一行的最后一个数据,就是你登录后可以取得的默认的shell。

bash shell 的功能

/bin/bash 是linux默认的shell。bash 主要的优点:

命令记忆能力(history)

它能记忆使用过的命令,命令记录在你的主文件夹内的.bash_history中。~/.bash_history 记录的是前一次登录以前所执行过的命令,而至于这一次登录所执行的命令都被暂存在临时内存中,当你成功注销系统后,该命令记忆才会记录到.bash_history当中。最大的好处就是可以查询曾经做过的操作。如此可以知道你的执行步骤,那么就可以追踪你曾执行过的命令,以作为排错工具。

命令别名设置功能(alias)

你在命令行输入alias就可以知道目前的命令别名有哪些了。也可以直接执行命令来设置别名。

alias ll='ls -al'


作业控制、前台、后台控制(job control, foreground, background)

作业控制,可以让我们随时将工作丢到后台中执行。而不怕不小心使用了[Ctrl+C] 来中断该进程。此外也可以在单一登录的环境中达到多任务的目的。

程序脚本(shell script)

通配符(Wildcard)

除了完整的字符串之外,bash还支持许多的通配符来帮助用户查询与命令执行。举例来说,想要知道/usr/bin 下面有多少以X为开头的文件吗?使用“ls -l /usr/bin/X*” 就知道了。

bash shell 的内置命令:type

type [-tpa] name

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

-t: 当加入-t 参数时,type会将name以下面这些字眼显示出它的意义:

file:表示为外部命令

alias: 表示该命令为命令别名所设置的名称;

builtin: 表示该命令为bash 内置的命令功能。

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

-a: 会由PATH 变量定义的路径中,将所有含name 的命令都列出来,包含alias













0 0
原创粉丝点击