本文共 1081 字,大约阅读时间需要 3 分钟。
Shell :将我们输入的命令与内核通信,好让内核可以控制硬件来正确无误的工作。 Shell 本身是一个用C语言编写的程序,用户的大部分工作都是通过Shell来完成的。 Shell的功能只是提供用户操作系统的一个接口。狭义的Shell指的是命令行方面的软件,包括linux默认的bash.广义的Shell则包括图形界面的软件,因为图形界面其实也能够操作各种应用程序来调用内核工作。
可以说Shell使用的熟练程度反应了用户对Unix/Linux使用的熟练程度。 Shell 初学者注意:在平常应用中,建议不要用root账号运行Shell。作为普通用户都无法破坏系统;但如果是root,只要敲几个字母,就可能导致灾难性的后果。 Shell有两种执行命令的方式: 1.交互式(命令行界面的Shell):解释执行用户的命令,用户输入一条,Shell就解释一条。 2.批处理:用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲。 注意:Shell脚本与编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译。 Shell是一种脚本语言,就必须有解释器来执行这些脚本。Linux上的脚本解释器有 bash,ksh,csh,zsh等。bash的内部命令共有40个。 ???为什么要使用bash作为默认的Shell呢??? 命令记忆能力(history):默认的命令记忆功能可以到达1000个,记录在主文件内的 .bash_history中; 命令与文件补全功能(Tab); 命令别名设置功能(alias); 作业控制,前台,后台控制; 通配符(*,?); 包含了自身的帮助功能; 可通过方向键快速查找和修改命令。 bash 已经“内置”了很多命令,例如 cd ,那我们怎么知道这个命令是来自外部命令(指的是其他非bash所提供的命令)或是内置在bash当中的呢? 答案:使用type 命令 语法:type [-tpa] name 参数: type:不加任何参数时,type会显示name是外部命令还是bash 内置命令 -t :type会以下面这些字眼显示出它的意义: file :表示为外部命令 alias :表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能。 -p :如果后面接的name为外部命令时,才会显示完整文件名。 -a :会由PATH变量定义的路径中,将所有含name 的命令都列出来,包括alias 范例: