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
是文件内容的标识)