Linux 命令行简介
Linux 命令行概述
Linux 命令行的重要作用
Linux 命令行是Linux 系统的核心,利用命令行可以对系统进行各种配置。要熟练并成功地管理Linux 操作系统,必须对Linux 下的命令行有深入的理解。Linux 下的命令行有助于初学者了解系统的运行情况和计算机的各种设备,如中央处理器、内存、磁盘驱动、键盘、鼠标及其他输入/输出设备和用户文件都是在Linux 系统管理命令下运行的。可以说,Linux 的命令行对于整个系统的运行,以及设备与文件之间的协调具有核心的作用。
虽然近几年个人计算机的潮流已经从命令行的方式向图形界面的方式转换,用户也热衷于利用鼠标在图形界面下对系统进行操作,但是命令行仍然有其强大的生命力,如系统管理员必须经常和命令行打交道。与图形界面相比,利用命令行对系统进行管理和操作显得更为快捷与安全。特别是在服务器应用方面,Linux 命令行更是一种核心的应用,这主要是因为在字符界面下的操作具有更好的稳定性和安全性。
Linux 命令行介绍
在 Linux
操作系统中,命令行处于核心的地位。命令行是一种对操作系统的输入和输出界面,与图形界面对应。目前,在计算机操作系统中图形界面成为主流。然而,作为字符界面的命令行由于具有占用系统资源少、性能稳定并且非常安全等特点仍发挥着重要作用,Linux 命令行在服务器中一直有着广泛应用。利用命令行可以对系统进行各种操作,这些操作虽然没有图形化界面那样直观明了,但是却显得快捷而顺畅。在 Linux 中,命令行命令有大小写的区分,且所有的 Linux 命令行命令和选项都区分大小写,如-V 和-v 是两个不同的命令,这与 Windows操作系统有所区别。在 Windows
操作系统环境下,所有的命令都没有大小写的区别。初学者应遵循“所有控制台命令的输入均小写”这一原则。例如查看当前目录文件,在命令行下输入:
[justice@localhost ~]$ ls
1.txt 2.txt 3.txt 4.txt 5.txt
若是在命令行输入以下命令:
[justice@localhost ~]$ Ls
-bash: Ls: command not found
系统将给出命令错误的信息“命令未找到”。
Linux 命令行的启动及退出
启动桌面发行版的 Linux 系统,进入图形界面后,可以通过 init 3 命令回到命令行登录界面,按 Alt+Fn (n=1,2,3,…,6) 组合键进入字符界面,例如按 Alt+F3 组合键即可进入虚拟控制台 tty3(tty7 通常运行 X Window 的图形界面),此时输入正确的用户名及登录密码后即可进行字符界面的命令行操作,如图 1-1 所示。
在这个示例中,第一次输入的是一个错误的密码,系统提示登录不正确并提示重新登录,直到输入了正确的用户名和登录密码后,登录成功。注意,Linux 系统不会显示输入的密码,而且不论是输入的用户名错误还是输入的密码错误,系统都将给出同样的错误信息并提示重新输入用户名和密码。
如果要退出 Linux 命令行,可在命令提示符后面输入命令 exit 或按 Ctrl+D 组合键。例如,在上例中的命令提示符“$”后输入exit,然后按Enter键或 Ctrl+D 组合键,即可退出登录的系统。
Linux 命令行提示符
Linux 命令行下的提示符有两种:“$”和“#”。通常登录到命令行后看到的提示符为美元符号“$”,如图1-1 所示。在示例中最后一行的“$”符号即为 Linux 的一种命令提示符(也称
Shell 提示符),代表当前用户具有普通用户权限,cjh 为登录的用户名,“@”后面的 localhost 为主机名,主机名后是当前的工作目录,代字符“~”表示用户的主目录,即当前工作目录为用户主目录。若当前工作目录为主目录下的 tmp 目录,则“~”将被“tmp”所代替。通过 pwd 命令即可显示当前工作目录的绝对路径,如下:
$ pwd
/home/cjh
如果当前用户是超级用户 root(即以用户名root 登录系统),将会看到另一种命令行提示符“#”,表示用户拥有最高权限,可对系统做任意修改,如图1-2 所示。
从示例中可以看出,此处的代字符“~”代替的路径是“/root”,而上一例中“~”代替的路径是“/home/cjh”,即代字符“~”代替的路径始终是当前用户的主目录,其绝对路径名随登录用户的不同而改变。
命令行的历史记录和编辑
目前的 Linux 发行版默认使用 Bash Shell 命令行,它已成为 Linux 系统的实际标准。Bash Shell 命令行具有非常强大的功能,它提供的一些特性使输入命令变得更加容易。
命令行的历史记录
可以通过重复按向上方向键 ↑ 遍历近来在控制台下输入的命令,按向下方向键 ↓ 可以向前遍历,与 Shift 键联用可以遍历以往在该控制台中的输出。例如可以在命令行下重复按向上方向键 ↑,直到出现近来在控制台下输入的命令 ls 为止,然后按 Enter 键执行这一命令。
编辑命令行
在命令行下按 Ctrl+R 组合键将进入向后增量搜索模式,命令行界面出现如下命令:
(reverse-i-search)`l': ls
此时尝试输入以前输入过的命令,每输入一个字符,命令行都会滚动显示历史命令。当显示到想要查找的命令时,直接按 Enter 即可执行该历史命令。仍以 ls 命令为例,当输入字符 l 时,搜索出来的命令是所需要的历史命令 ls,然后按 Enter 键即执行该命令。在命令行下按 Ctrl+P 或者 Ctrl+N 组合键可以快速向前或向后滚动查找一个历史命令,这样可以快速提取刚刚执行过不久的命令。例如,在命令行下输入如下命令:
echo "Hello,Linux world"
命令行下将出现字符“Hello,Linux world”,然后按Ctrl+P 组合键,命令行下将出现刚刚输入过的命令。
命令行快捷键
通过一些功能键可以快速浏览并编辑命令行。下面给出常用的完成一般编辑的快捷键,如下表所示。
快 捷 键 | 说 明 |
---|---|
↑ 或 Ctrl+P | 显示上一条命令 |
↓ 或 Ctrl+N | 显示下一条命令 |
→ 或 Ctrl+F | 光标向右移动一个字符 |
← 或 Ctrl+B | 光标向左移动一个字符 |
Alt+F | 光标向右移动一个单词 |
Alt+B | 光标向左移动一个单词 |
Ctrl+R | 逆向搜索包含输入字符串的命令,继续按Ctrl+R组合键,再向上搜索,可使用Ctrl+C组合键中断命令 |
Ctrl+A | 光标移动到开头 |
Ctrl+E | 光标移动到结尾 |
Ctrl+L | 清屏 |
Ctrl+U | 剪切光标所在处之前的所有字符(不包括自身) |
Ctrl+K | 剪切光标所在处之后的所有字符(包括自身) |
Ctrl+W | 剪切光标所在处之前的一个词(以空格、标点等为分隔符) |
Ctrl+Y | 粘贴 |
Alt+D | 删除从光标当前位置到当前字的结尾字符 |
Alt+U | 将光标所在处的单词转换为大写(从光标处到词的结尾) |
Alt+L | 将光标所在处的单词转换为小写(从光标处到词的结尾) |
Alt+C | 将光标所在处的单词转换为首字母大写(从光标处到词的结尾) |
Ctrl+C | 中断命令 |
Ctrl+S | 挂起当前 Shell |
Ctrl+Q | 重新启用挂起的 Shell |
Ctrl+Z | 暂停命令 |
!$ | 重复前一个命令最后的参数 |
Ctrl+(X U) | 按住 Ctrl 键的同时先后按 X 键和 U 键,撤销刚才的操作 |
Esc+T | 颠倒光标所在处及其相邻单词的位置 |
在命令行下使用 Linux 帮助信息
许多初学者安装完Linux 操作系统后不知道从哪里入手学习 Linux,特别是感觉到没有帮助信息。Linux 发行版本对用户提供的技术支持时间比较短。其实在安装了一个完整的 Linux
系统后,其中已经包含了一个强大的帮助系统,只是可能用户还没有发现和使用它的技巧。下面以 RHEL 8 为例,帮助读者深入挖掘隐藏在 Linux 系统中的帮助信息。
使用 help 命令获得 bash 的内部命令帮助
bash 的内部命令有40 个,主要包括 exit、less、lp、kill、cd、pwd、fc、fg 等。bash 内置的命令列表通过在命令行输入help 即可获得。这些内部命令没有独立的命令程序(即无法搜索到这些命令)和帮助文件,help 命令提供这些命令的在线帮助。有趣的是,help 命令本身也是内部命令。下面使用 help 命令获取它提供帮助命令的列表,如图 1-3 所示。
与 MS-DOS 一样,要想看到该命令的所有帮助内容,需要在命令后添加一个选项参数。可以在命令提示符下输入命令:
[justice@localhost ~]$ help | more
即可看到 help 命令列表的第一页,再次按 Enter 键将一行行向后翻页,按 Space 键将直接跳转到最后一页。若想在中途退出帮助文档,可以按Q 键,这样将直接退出文档,回到命令提示符下。
使用 help 命令提供某命令的帮助方法非常简单,在 help 命令后输入空格和命令名称即可。例如:
[justice@localhost ~]$ help kill
help 命令提供的 kill 命令参数很详细,当用户对Linux 有一定了解后往往只需要主要的语法,那么可以使用“-s”参数。
[justice@localhost ~]$ help -s kill
kill: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
使用 man 获取帮助信息
man 简介和使用
在文本窗口中浏览文件的方式在普遍使用 HTML 和 PDF 的时代似乎有些过时了,但在终端窗口中阅读文件仍有其优势。对于那些 Linux 开发者来说,这种方式是可取的,因为大部分工作是在终端窗口中完成的。从 man 页面上获取信息比打开浏览器或 PDF 浏览器要快得多。man 页面具有简明的格式,这就意味着它采用线性格式来显示。简单的工具通过一个 man 页面就可以获取,作为它们唯一的文件来源;较为复杂的工具和程序库依赖于合适的 man 页面作为文档。创建 man 页面的工具可以选择更多的字符编码,例如 UTF-8,所以现在 man 页面可以用任何语言来编写。
使用过 UNIX 的用户比较熟悉 man 手册页。man 是 manual(手册)的缩写,是在 Linux系统中存储的一部联机使用的手册,以供用户在终端上查找。例如,如果使用 ps 命令时遇到困难,可以输入 man ps 得到帮助信息,这时会显示出 ps 的手册页,如图 1-4 所示。
手册页 man 是用 less 程序来看的(可以方便地使屏幕上翻和下翻),所以在 man 页面中可以使用 less 的所有选项。在 less 中比较重要的功能键有:[q]退出,[Enter]一行行地下翻,[Space]一页页地下翻,[b]上翻一页,[/]后跟一个字符串,[Enter]查找字符串,[n]发现上一次查找的下一个匹配。手册页(man page)在很小的空间里提供了大量的信息。大多数手册页中都有的部分,即Linux 手册页的主要部分有以下几个。
- 1:用户命令的使用方法、可以使用的参数等。
- 2:系统调用,只有系统才能执行的函数。
- 3:库调用,大多是 libc 函数,如 qsort(3)。
- 4:设备和特殊文件。
- 5:文件格式和约定。
- 6:游戏。
- 7:宏命令包和约定。
- 8:系统管理命令,多数只有 root 可以执行。
- 9:内核程序。
- n:Tcl 或 Tk 指令。
man 手册页文件存放在 /usr/share/man
目录下。Linux 手册页布局如下。
- NAME:程序或者命令的名称、手册节号及发布日期。
- SYNOPSIS:怎样调用命令,带有所有选项和参数的完整列表。
- DESCRIPTl0N:命令及其用法的简短小结。
- RETURN VALUES:程序或者库函数返回值,以及产生特定返回值的环境。
- EXIT STATUS:经常用来替代 TURNVALUS。
- OPTIONS:按字母顺序排列的选项和参数清单(如果有的话)。
- FILES:命令使用的或者能使用的文件清单。
- USAGE:用程序的语言说明的简明语法(如果有的话)。
- ENVIROMENT:命令使用的或者能使用的环境变量清单。
- DIAGNOSTICS:命令产生的错误信息及其解决办法的清单。
- NOTES:不能归入其他任何一种类别下的所有信息。
- CONFORMING TO:列出程序遵循的任何标准,比如 POSIX 或ISO。
- SEE ALSO:与命令有关的交叉索引和信息。
- BUGS:指出已知的 bug 和错误功能,以及怎样和程序的作者联系修正它们。
- AUTHOR:命令的作者或者维护者的名字,可能带有电子邮件地址或 URL 地址。
说明
在 Linux 系统中 man 存放在不同的 man 文件夹下,例如 man1、man2 等,每部分都描述了相关工具的使用方法,最常用的是 man1(用户命令)、man5(文件格式)和
man8(系统管理)。有些情况下,不同工具的手册对应相同的名字。例如,在命令行输入 man clear 可以查看 clear 程序的 man 页,而输入 man 3 clear 则可以查看
clear 子程序的 man 页。
汉化 man
yum update
yum install man-pages-zh-CN
echo "alias cman='man -M /usr/share/man/zh_CN'" >> ~/.bashrc
source ~/.bashrc
使用 info 获取帮助信息
info 是 Linux 系统提供的另外一种格式的帮助信息。和 man 相比,info 具有更好的交互功能,它支持链接跳转。通常使用 info 和 pinfo 命令来阅读 info 文档。Linux
中的大多数软件开发工具都来自自由软件基金会的 GNU 项目,这些软件的在线文档都以 info 文件的形式存在。 info 程序是 GNU 的超文本帮助系统。
运行 info
可以在 Shell 提示符后输入 info(不要参数),它将列出一个文档清单,如图 1-6 所示。
如果没有发现所需要的,那是因为没有安装包含那个文档的软件包,安装后再试。info 帮助系统的初始屏幕将显示一个主题目录,可以将光标移动到带有 * 的主题菜单上面,然后按Enter 键进入该主题;也可以输入 m,后跟主题菜单的名称进入该主题。例如,输入 m,然后再输入 gcc 就会进入 gcc 主题中。info 系统是一个超文本系统,任何高亮显示的文字都有一个链接导向更多的信息。按 Tab 键将光标移到链接处,并按 Enter 键进入链接,按 p 键返回上一页,按 n 键翻到下一页,按 u 键回到文档的上一层。用 C-h 获得帮助,用 m 进入菜单界面。如果要在主题之间频繁跳转,记住如下几个命令键。
- n:跳转到该节点的下一个节点。
- p:跳转到该节点的上一个节点。
- m:指定菜单名而选择另外一个节点。
- f:进入交叉引用主题。
- l:进入该窗口中的最后一个节点。
- Tab:跳转到该窗口的下一个超文本链接。
- RET:进入光标处的超文本链接。
- u:转到上一级主题。
- d:回到 info 的初始节点目录。
- h:调出 info 教程。
- q:退出 info。
使用 pinfo
pinfo 兼容 info 的功能,并且支持彩色链接文本、鼠标选定支持等功能。运行 pinfo,代码如下:
pinfo
pinfo 提供的基于浏览器风格的 info 文档程序界面如图 1-7 所示,使得操作更加简单、界面更加友好。
pinfo 快捷键定义在 /etc/pinforc
文档中,这些快捷键可以更改。常用的快捷键如下。
- s:该帮助的所有节点查询。
- /:该帮助的当前节点查询。
- h:父节点。
- j:文档下翻一行。
- k:文档上翻一行。
- Space:下一页。
- e:最后一页。
- H:最前一页。
- d info:所有指令的目录。
用发行版的系统手册
RHEL 7.0 作为出色的发行版本提供了一套优秀的文档:发行版系统手册。可以从 RedHat 的官方网站下载该手册。下载网址为https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/。RHEL 7.0 手册页如下表所示。
手册内容 | 文件名称 | 语 言 | 格 式 |
---|---|---|---|
发行注记 | RELEASE-NOTES-x86-zh_CN | 中文 | .pdf,.html,.epu |
部署指南 | Deployment_Guide | 中文 | .pdf,.html,.epu |
安装指南 | Installation_Guide | 中文 | .pdf,.html,.epu |
安全指南 | Security_Guide | 中文 | .pdf,.html,.epu |
迁移规划指南 | Migration_Planning_Guide | 中文 | .pdf,.html,.epu |
性能调节指南 | Performance_Tuning_Guide | 中文 | .pdf,.html,.epu |
虚拟化指南 | Virtualization | 英文 | .pdf,.html,.epu |
系统管理指南 | SystemAdministrator’s Guide | 英文 | .pdf,.html,.epu |
网络指南 | Networking Guide | 英文 | .pdf,.html,.epu |
群集器管理 | Cluster_Administration | 英文 | .pdf,.html,.epu |
全球网络块设备 | Global_Network_Block_Device | 英文 | .pdf,.html,.epu |
SELinux | 使用指南SELinux User’s and Administrator’s Guide | 英文 | .pdf,.html,.epu |
负载均衡指南 | Load Balancer Administration | 英文 | .pdf,.html,.epu |
群集器逻辑卷管理 | Cluster_Logical_Volume_Manager | 英文 | .pdf,.html,.epu |
虚拟服务器管理 | Virtual_Server_Administration | 英文 | .pdf,.html,.epu |
从 Internet 获得帮助
Internet上提供了许多Linux 方面的站点及相关文档,除此以外,还可以利用搜索引擎,如百度(www.baidu.com)、Google(www.google.com),输入遇到的错误信息进行搜索,通常可以找到问题的相关介绍和解决办法。
Linux 文档项目
Linux文档项目(Linux Documentation Project,LDP)提供了大量关于Linux 的免费发布书籍,其历史几乎和Linux一样长,内容包括使用指南、FAQ、HOWTO、杂志、man 页等。LDP的主页是www.tldp.org,主页支持多种语言,可以进行本地搜索,简单易用。提供的文档类型如下。
- HOWTOs 文档:HOWTOs 文档采用多种格式发行,如.txt、.html、.pdf 等流行的文档格式都有,读者可以根据需要下载相应的文档压缩包进行离线阅读。HOWTOs 的作者会根据需要不定期地对文档进行版本更新,通常文档的更新是跟随某个相关软件或发行版本的升级而进行的。
- mini-HOWTOs 文档:mini-HOWTOs 文档内容和风格与 HOWTOs 文档非常相似,只是文档的主题和篇幅要比 HOWTOs 文档小一些。由于其主题小而对于解决某个问题更有针对性,多为某个类型问题的使用技巧。通过 mini-HOWTOs 文档通常可以快速解决现有问题。
- man 手册页:和联机手册页相比,LDP 的 man 手册页会定期进行更新,读者可以在 LDP 的站点获得最新的命令手册页。
- FAQ 文档:FAQ 文档采用一问一答的形式对常见的问题给出解决方法,往往能够在找到问题之后快速解决问题(见 http://www.tldp.org/FAQ/LDP-FAQ/)。
- Guide 文档:Guide 文档是对 Linux 某个方面应用的指南,主体范围较大、篇幅较长,读者可以把它作为比较系统的教程来阅读(见 http://www.tldp.org/guides.html)。
GNU
在 GNU(GNU’s Not UNIX)的主页(www.gnu.org)上可以得到很多 GNU 的文档及其他资源。与 LDP 一样,GNU 的文档也提供多语言版本,在 www.gnu.org/manual 站点可以获得 GNU 的手册页。
各 Linux 发行版官方网站及 BBS 论坛
大多数 Linux 发行版都有其主页和 BBS,上面提供了许多文档,若有问题也可以在 BBS上留言寻求帮助。其中 Debian(www.debian.org)、Ubuntu(www.ubuntu.org)、Gentoo(www. gentoo.com)和 RedHat 的网站上都提供了非常优秀的材料。此外还可以在一些非常优秀的 BBS上寻求帮助,如中国 Linux 论坛(www.linuxforum.net)、ChinaUnix(www.chinaunix.net)、 www.linuxsir.org 等。