购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 学习指南

在学习Linux时,把Linux当作Windows一样经常使用,自然可以快速掌握Linux。

本章将带领读者一起“初窥Linux的门径”。这个门径就是Linux的文件操作命令。希望读者在翻阅书中的例子时,可以亲手操作一遍。“知行合一,方能致远。”

3.1.1 Linux命令与Shell

在Linux的命令行界面(Command Line Interface,CLI)下,一切操作都是使用“命令”进行操作的。这个命令的执行器称为Shell。我们通常看到的输入命令的窗口也称为Shell界面。

事实上,包括Windows、macOS在内的所有系统一开始都没有GUI界面。这个Shell界面是操作系统的界面。Shell的本意即“壳”。

我们在Windows中用到的“cmd”也是Shell,Win10的“Power Shell”更是从命名上证明了这一点。与cmd、PowerShell一样,UNIX/Linux/macOS也有“sh”“bash”“zsh”“fish”等不同的“Shell命令解释器”。

Shell的作用是根据输入的命令找到对应的程序,并执行各种系统内核暴露的API,将其反馈给调用者。

本章作为Linux命令的入门篇,会带领读者用Shell的各种内置或外置命令,将文件相关的常用操作学习一遍。用一句话概括这些内容就是“文件目录的增删改查与解压缩”。

但Linux中的文件并不只是通常意义上所指的txt、word文档。在后续的学习中会发现,无论是CPU、内存、磁盘、网卡,还是应用软件、系统进程等,它们都是以文件或文件描述符的形式存储在Linux中。

记住一个理念:在Linux中一切皆是文件(描述符)。Everything is a file(descriptor)。

注意: sh是UNIX上最初的Shell,全称为Bourne Shell,是由“AT&T贝尔实验室”的斯蒂芬·伯恩(Stephen Bourne)在1977年开发的一款UNIX管理界面。后来sh成为很多UNIX系统默认的Shell。而bash(Bourne Again Shell)是布莱恩·福克(Brian J.Fox)在1987年为GNU计划(GNU is Not UNIX,开源运动发起组织)编写的管理界面。在当前的Linux发行版本中,bash已经是大多数Linux发行版本的默认Shell。它兼容最初的Bourne Shell,并遵循IEEE的“POSIX”规范(Portable Operating System Interface,可移植操作系统接口),成为Shell的标准。

3.1.2 快捷键

Linux下有一些操作命令的快捷键,我们在与Linux打交道时经常会用到。Linux常用快捷键如表3.1所示。

表3.1 Linux常用快捷键

续表

注意: 在“Ctrl+C”快捷键中,“+”为意指,其使用方式与Windows上的复制快捷键一样,先按“Ctrl”键,再按“C”键。其他快捷键也是同样的操作方式。

3.1.3 帮助命令

Linux中有3个命令用于帮助使用Shell,分别是man、help、info。

(1)man命令的使用。

man命令是系统帮助文档调阅的命令,其使用方式为“man命令”,示例如下:

使用“:q”命令退出man文档。

可以看到,man命令列出的系统手册中关于ls命令的内容详细而丰富。

(2)help命令的使用。

help命令有两种使用方式,一种是“help [内置命令]”,另一种是“[外置命令]-help”。

由于篇幅有限,这里不列出所有输出结果。读者根据实际操作就能看出,在help命令中输出的帮助说明较为简短,可以看到最后一行“info coreutils'ls invocation”。即如果要查看完整的文档,那么使用info命令来调用ls命令。

(3)info命令的使用。

info命令是GNU的超文本帮助系统命令,能够更完整地显示出GNU信息。但是info命令并不常用,一般使用man、help命令较多。

可以看到,info命令的输出结果是全英文的,并没有像man命令一样有中文社区的开发者翻译。info命令是一个大的文档集合,使用“info ls”命令只是跳转到了ls命令相关的页面。如果继续上下翻阅这个文档,那么还可以看到其他命令的帮助内容。

3.1.4 历史命令

在Linux中可以查看过往执行的Linux命令,可用history命令或上下方向键查看。(1)使用history命令查看历史命令。

输入命令“history”,可查看曾在这个服务器上执行的历史命令,示例如下:

(2)使用上下方向键可查看曾经执行的Linux命令。

(3)使用“![命令行号]”直接执行历史命令,示例如下:

(4)历史记录的保存文件。

history 命令既然能记录历史命令,就要有地方保存这些命令。这些命令保存在用户根目录下的bash_history文件中,可以用命令“cat~/.bash_history”查看。

3.1.5 FAQ

本节将列举一些在使用Linux Shell执行Linux命令时可能遇到的一些问题、疑惑与常识。

(1)本书使用的Linux版本为CentOS 7.x,可以保证本书中所有命令都是真实可用的。但在使用其他Linux发行版本或UNIX、类UNIX的系统时可能会出现不一致情况,如Debian、macOS、AIX、Ubuntu的命令都可能有细微差别。

(2)在Linux中的所有命令与选项、参数间都要用空格隔开,如“cd/root”“ls-l/var”。

(3)命令一般都有参数或选项,可使用man或help命令查看其作用。命令选项写法一般为“-”开头。例如,“ls-l”表示竖排显示当前目录下的所有文件。“-l”选项的作用就是以长格式显示文件信息,竖排显示文件权限等详细情况;“rm-f xxx.txt”表示不提示删除xxx.txt文件,“-f”的含义是即使没有这个文件也不提示删除。

(4)有时也会把选项、参数的含义混着用。为了避免混淆,在本书中使用命令时会将如“rm-f xxx.txt”中的“-f”固定为选项,“xxx.txt”作为参数。

(5)符号“#”为Linux Shell中的注释符,意味着“#”以后的字符串都是作为注释文本的,即使字符串中写了命令也不会执行,如“ls-l#cd/root”,“#”后的cd/root不会执行,只执行“ls-l”命令。

(6)使用命令时,同一个选项中的长选项与短选项等价。例如,“cat-A xxx.log”等同于“cat--show-all xxx.log”。

(7)在Linux中,很多命令都是与文件相关的,查看命令帮助时可能会出现提示:“没有文件,或当文件为‘-’时,读取标准输入。”标准输入即stdin(standard-in),标准输出即stdout (standard-out)。标准输入一般是指键盘输入设备,标准输出是命令结果,一般会打印到Shell控制台。先记住这两个概念,在使用Linux的过程中,读者会渐渐深入了解。 x/nJ1Mw9iGUxd+J7GKGctd3UETr+QaSw7E3eAOpdEQyXN5EBY1bQupsSDMiOdHWE

点击中间区域
呼出菜单
上一章
目录
下一章
×