Shell
Shell这个单词的原意是 “外壳”,跟kernel(内核)相对应,比喻内核外面的一层,即用户跟内核交互的对话界面。
Shell是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境(command line interface,简写为CLI)。Shell接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户。Shell是一个命令解释器,解释用户输入的命令。它支持变量、条件判断、循环操作等语法,所以用户可以用Shell命令写出各种小程序,又称为Shell脚本。这些脚本都通过Shell的解释执行,而不通过编译。Shell是一个工具箱,提供了各种小工具,供用户方便地使用操作系统的功能。
Shell 的种类
Shell有很多种,只要能给用户提供命令行环境的程序,都可以看作是 Shell。
历史上,主要的Shell 有下面这些:
- Bourne Shell(sh)
- Bourne Again shell(bash)
- C Shell(csh)
- TENEX C Shell(tcsh)
- Korn shell(ksh)
- Z Shell(zsh)
- Friendly Interactive Shell(fish)
其中Bash是目前最常用的Shell。MacOS 中的默认Shell就是 Bash。
通过执行echo $SHELL命令可以查看到当前正在使用的Shell。还可以通过cat /etc/shells查看当前系统安装的所有Shell种类。
命令
命令行提示符
进入命令行环境以后,用户会看到Shell的提示符。提示符往往是一串前缀,最后以一个美元符号$ 结尾,用户可以在这个符号后面输入各种命令。
执行一个简单的命令pwd:
[root@iZm5e8dsxce9ufaic7hi3uZ ~]# pwd
/root命令解析:
root:表示用户名;iZm5e8dsxce9ufaic7hi3uZ:表示主机名;~:表示目前所在目录为家目录,其中root用户的家目录是/root普通用户的家目录在 /home 下;#:指示你所具有的权限(root用户为#,普通用户为$)。- 执行
whoami命令可以查看当前用户名; - 执行
hostname命令可以查看当前主机名;
关于如何创建、切换、删除用户,在后面的用户与权限会具体讲解,这里先使用root用户进行演示。
[备注]root是超级用户,具备操作系统的一切权限。
命令格式
command parameters(命令 参数)长短参数
单个参数:ls -a(a 是英文 all 的缩写,表示“全部”)
多个参数:ls -al(全部文件 + 列表形式展示)
单个长参数:ls --all
多个长参数:ls --reverse --all
长短混合参数:ls --all -l参数值
短参数:command -p 10(例如:ssh root@121.42.11.34 -p 22)
长参数:command --paramters=10(例如:ssh root@121.42.11.34 --port=22)快捷方式
在开始学习Linux命令之前,有这么一些快捷方式,是必须要提前掌握的,它将贯穿整个Linux使用生涯。
- 通过上下方向键 ↑ ↓ 来调取过往执行过的
Linux命令; - 命令或参数仅需输入前几位就可以用 Tab 键补全;
Ctrl + R:用于查找使用过的命令(history命令用于列出之前使用过的所有命令,然后输入!命令加上编号 (!2) 就可以直接执行该历史命令);Ctrl + L:清除屏幕并将当前行移到页面顶部;Ctrl + C:中止当前正在执行的命令;Ctrl + U:从光标位置剪切到行首;Ctrl + K:从光标位置剪切到行尾;Ctrl + W:剪切光标左侧的一个单词;Ctrl + Y:粘贴Ctrl + U | K | Y剪切的命令;Ctrl + A:光标跳到命令行的开头;Ctrl + E:光标跳到命令行的结尾;Ctrl + D:关闭Shell会话;
文件和目录
文件的组织
查看路径
pwd:显示当前目录的路径
which:查看命令的可执行文件所在路径,Linux下,每一条命令其实都对应一个可执行程序,在终端中输入命令,按回车的时候,就是执行了对应的那个程序,which命令本身对应的程序也存在于Linux中。
总的来说一个命令就是一个可执行程序。
浏览和切换目录
ls:列出文件和目录,它是Linux最常用的命令之一。
【常用参数】
-a显示所有文件和目录包括隐藏的-l显示详细列表-h适合人类阅读的-t按文件最近一次修改时间排序-i显示文件的inode(inode是文件内容的标识)









