基本 Linux 命令

17 Mar 2025 | 阅读 17 分钟

命令是用户提供的一组指令,指示系统执行单个程序或一组相互连接的程序。通常,命令通过在命令行中指定并按回车键发出,回车键将命令传递给 shell。shell 可以定义为可以读取这些命令并执行它们的程序。

这些 shell 是用户与计算机交互的最常用技术。所有类 UNIX 操作系统都包含至少一个 shell。Bash 几乎是所有 Linux 系统的默认 shell。

程序是 CPU(计算机的主要逻辑单元)可读的指令序列。它说明了 CPU 必须对一组数据执行哪些操作。

通常,程序或文件可以存储在 bin 目录之一中,例如 /usr/local/bin/bin/usr/bin。类 UNIX 操作系统上的命令可以是外部命令,也可以是内置命令。前者是 shell 的分支。后者结合了可执行文件和 shell 脚本。

这些可执行文件是使用 Java、C++、C 等编程语言指定,然后编译成二进制的程序。

shell 脚本可以定义为用 Shell 编程语言(如 sh、ksh、cshbash)指定的程序,它允许用户发出单个命令来执行命令的合并,包括带参数或/和选项以及重定向的命令。这些 shell 脚本非常适合自动化通用任务和创建自定义过滤器。

选项有时也称为标志开关。选项是单个字母的代码,有时是一组单词或单个单词。它可以在一些预定方式上改变命令的性质。

当使用多个单字母选项时,每个字母彼此紧密排列,并且可以是任何顺序。通常,选项组应以单个连字符开头,之间没有空格。

参数也称为命令行参数。它可以是文件名或提供给命令的任何其他数据,以便命令将其用作输入。

命令包含命令的名称,通常后跟多个字符串(字符顺序),这些字符串组合了参数和选项。所有字符串都由空白(包含多个制表符或空格)分隔。

命令的基本语法是

这些方括号表示插入的项是可选的。几乎所有命令都包含至少一些选项,并且可能需要(或接受)参数。但是,有一些命令不接受参数,有些则没有选项。

pwd 命令代表 print working directory(打印工作目录)。它告诉用户当前目录的位置和名称(即用户当前正在工作的目录),并且不接受参数。相反,它通过 shell 获取其输入。

它只包含两个非常常见的选项:version 和 help。因此,它始终只按以下方式应用:


Basic Linux Commands

shell 会忽略在 pwd 命令之后在同一行中输入的任何内容,除了其选项之外,并且不会返回任何错误消息。

其他不接受参数只接受选项的命令示例是 psdmegdmeg 命令显示系统启动时(或引导时)由内核(即操作系统的核心)生成的消息。

ps 命令显示系统上当前正在执行的进程(即正在执行的程序)。ps 命令很特殊,因为其选项前面的连字符是可选的(至少在某些版本中)。因此,它不接受参数。它无法将无连字符的选项与参数一起使用。因此,以下两个命令会生成相同的结果:


Basic Linux Commands

并且,


Basic Linux Commands

基本命令

现在,下面讨论一些在 Linux 中广泛使用的基本命令:

rmdir 和 mkdir 命令

如果我们需要创建一个目录或文件夹,请使用 mkdir 命令。例如,如果我们要创建一个名为 "DIY" 的目录,我们可以输入 "mkdir DIY"

如果我们要创建一个名为 "DIY Hacking" 的目录,我们可以输入 "mkdir DIY\Hacking"

使用 rmdir 命令删除任何目录。但是,rmdir 命令只能用于删除空目录。要删除包含文件的任何目录,我们可以使用 rm

rmdir 中的选项

  • --help:此选项将帮助打印命令的基本语法以及可与 rmdir 命令一起使用的几个选项,并提供所有选项的简短详细信息。
Basic Linux Commands
  • rmdir -p:所有目录参数都称为路径名,如果它们已经为空,则将删除其每个组件,从末尾组件开始。
  • -verbose, rmdir -v:它显示每个正在处理的目录的详细信息。
  • rmdir -ignore-fail-on-non-empty:它不报告任何仅由于目录非空而出现的故障。当命令被指定为正常删除任何非空目录时,它只会报告一个错误。此选项组合了所有这些错误消息。
  • rmdir -version:它可用于显示版本退出和信息。

rm 命令

使用 rm 命令删除目录和文件。使用 "rm -r" 仅删除目录。如果只使用 rm 命令,它将删除目录及其包含的文件和文件夹。

rm 命令中的选项

  • rm -i:此选项将在删除所有文件之前进行确认。有些人将 rm 别名为自动执行此操作(键入 "alias" 进行检查)。相反,考虑使用 rm -I,它只会在尝试删除三个以上文件时询问一次。
  • rm -r:此选项将递归删除目录及其所有内容。
  • rm -f:此选项将强制删除文件,无需确认。当我们将 rm 别名为 "rm -i",但希望删除多个文件而无需询问所有文件时,它最有用。

touch 命令

此命令用于创建文件。它可以是空 zip 文件,也可以是空 txt 文件。例如,"touch new.txt"。它是 Linux/UNIX 操作系统中使用的标准命令。

它用于修改、更改和创建文件的时间戳。此命令用于创建不带内容的文件。touch 命令用于创建空文件。当用户在创建文件时没有要存储的数据时,也可以使用它。

Touch 命令用于创建新文件:我们可以一次使用 touch 命令创建一个文件。

语法


Basic Linux Commands

创建的文件可以使用 ls 命令查看。此外,我们可以使用长列表命令 ls -l 或 ll 命令获取文件的更多详细信息。

Touch 命令用于创建多个文件:Touch 命令可以一次创建多个文件。但是,这些文件在创建时将是空的。

语法


Basic Linux Commands

Touch 命令中的选项

touch 命令包含与其他命令类似的几个选项。这些选项用于多种目的:

1. touch -a:此选项用于更改访问时间。-a 命令可用于更新或更改任何文件的上次修改或访问时间。

语法


Basic Linux Commands

2. touch -c:此选项可用于检查文件是否已创建。如果文件未创建,则不创建。此外,此选项会忽略创建文件。

语法


Basic Linux Commands

3. touch -c-d:它用于更新修改和访问时间。

语法


Basic Linux Commands

3. touch -m:此选项用于更改修改时间。它只能更新上次修改时间。

语法


Basic Linux Commands

4. touch -r:它可用于使用其他文件的时间戳。

语法


Basic Linux Commands

5. touch -t:它可用于在特定时间创建文件。

语法


Basic Linux Commands

man 和 --help 命令

我们可以使用 man 命令详细了解命令以及如何使用它。它显示命令的手册页。

例如,"man cd" 显示 cd 命令的手册页。在命令中键入名称和参数会显示命令的使用方式(例如,cd --help)。

它提供了命令的总体视图,其中包含名称、描述、概要、选项、返回值、退出状态、文件、错误、作者、示例、版本等。

所有手册都分为以下几个部分:

  • Shell 命令或可执行程序
  • 库调用(程序库中的函数)
  • 系统调用(内核提供的函数)
  • 游戏
  • 文件约定和格式,例如 /etc/passwd
  • 特殊文件(通常在 /dev 中找到)
  • 非标准内核例程
  • 系统管理命令(通常只用于 root)
  • 其他(包括宏约定和包),例如 groff(7)

语法

man 命令中的选项

1. 无选项:它显示命令的整个手册。

语法

示例

输出

Basic Linux Commands

2. Section-num:由于我们知道手册分为多个部分,因此此命令用于仅显示手册的特定部分。

语法

示例

输出

Basic Linux Commands

3. -a 选项:它支持我们按顺序显示 intro 手册的每一页。

语法

示例

输出

Basic Linux Commands

4. -k 选项:它可以在每个手册中将提供的命令作为正则表达式进行搜索,并返回所有手册页以及检测到该命令的章节号。

语法

示例

输出

Basic Linux Commands

5. -w 选项:它返回提供的命令手册页的可用位置。

语法

示例

输出

Basic Linux Commands

6. -I 选项:它将命令视为区分大小写。

语法

示例

输出

Basic Linux Commands

cp 命令

使用 cp 命令从命令行复制文件。它可以接受两个参数:

  1. 要复制的文件位置
  2. 复制到哪里

cp 的完整形式是 copy。它可用于复制目录、文件组或文件。它可以在磁盘上创建文件的相似图像,并带有不同的文件名。cp 命令在其参数中至少需要两个文件名。

语法

第二个和第一个语法用于将源文件复制到目录或目标文件。

第三个语法可用于复制多个源文件目录。

cp 中的操作模式

cp 命令可以在三种基本操作模式下实现,这些操作依赖于传递给 cp 命令的参数类型和数量:

1. 两个文件名:当命令包含文件名时,它会将第一个文件的内容复制到第二个文件。如果第二个文件不存在,它将创建一个并复制内容到其中。

2. 多个参数:在多个参数的情况下,描述文件名并跟随这些参数(描述目录名的参数,然后命令会将所有源文件复制到其目标目录,并带有相似的名称),如果不存在则创建,如果已存在则覆盖。

3. 两个目录名:cp 命令会将每个源目录文件复制到目标目录。如果 cp 命令包含两个目录名,它会创建所需的任何目录或文件。此操作需要一个额外的选项(通常是 R)来指示目录的递归复制。

cp 命令中的选项

命令中有几个选项。我们将解释一些有用且有帮助的选项。

1. -i 选项:此选项表示交互式复制。系统在覆盖目标文件之前会警告用户。cp 命令会提示响应,当我们点击 y 时,它会覆盖文件。

示例

Basic Linux Commands

2. -b 选项:该命令可以在类似文件夹中创建目标文件的备份,并具有不同的格式和名称。

示例

Basic Linux Commands

3. -f 选项:它代表强制。有时系统无法使用 cp 命令打开目标文件进行写入操作。在这种情况下,-f 选项会找到目标文件,并将内容从源文件复制到目标文件。

示例

Basic Linux Commands

4. -R 或 -r:它用于复制目录结构。cp 命令通过递归复制整个目录结构来显示其递归性质。

示例

Basic Linux Commands

5. -p:它代表保留。cp 命令可以使用此选项保留所有源文件在相关目标文件中的以下特征:上次数据更改时间、上次访问时间、文件的权限位和所有权。

注意:我们必须是系统的 root 用户才能保留这些特征,否则特征将改变。

示例

Basic Linux Commands

mv 命令

使用 mv 命令从命令行移动文件。此外,我们还可以使用 mv 命令重命名任何文件。假设,如果我们要将文件 "text" 重命名为 "new",那么我们可以使用 "mv text new"。它将像 cp 命令一样接受两个参数。它表示移动。此命令包含两个不同的功能,如下所示:

  • 它可以重命名文件夹或文件。
  • 它可以将一组文件移动到不同的目录。

重命名时不会占用磁盘上的额外空间。通常,此命令默默地工作。它定义为无需确认提示。

语法

示例

mv 命令中的选项

1. -i 选项:它表示交互式。此选项使命令在移动将覆盖现有文件的文件之前询问用户授权,就像在 cp 命令中一样。我们需要点击以确认移动。

当文件不存在时,此选项不生效。它只是将其移动或重命名到新位置。

示例

Basic Linux Commands

2. -n 选项:它代表 no-clobber。使用 -n 选项,mv 命令可防止覆盖现有文件。

示例

Basic Linux Commands

3. -b 选项:使用此选项可以更轻松地保留将被此 mv 命令覆盖的现有文件的备份。它将创建一个带有波浪号 (~) 字符的文件备份。

示例

Basic Linux Commands

4. -version:它可用于显示我们系统上当前正在执行的 mv 命令的版本。

示例

Basic Linux Commands

locate 命令

此命令用于在 Linux 系统中查找文件,类似于 Windows 中的(搜索命令)。当不知道文件存储在哪里或文件的实际名称时,locate 命令很有用。

使用 -i 参数和命令可以避免大小写(无论是小写还是大写都不重要)。因此,如果我们希望查找包含单词 "john" 的文件,当我们输入 "locate -i john" 时,它会提供 Linux 系统中包含单词 "john" 的每个文件的列表。

如果我们记住两个单词,那么我们可以使用星号 (*) 将它们隔开。例如,要查找包含单词 "john""jonny" 的任何文件,我们可以使用命令 "locate -i *john*jonny"

locate 实用程序比 find 命令更快更好,因为它在启动文件搜索时不会在文件系统中查找,而是在数据库中查找。该数据库包含文件及其在系统上的相关路径的部分和位。locate 命令默认不检查数据库中检测到的文件是否仍然可用。

语法

locate 命令的退出状态:如果检测到任何描述的匹配项,locate 命令以 0 状态退出。如果未检测到匹配项或遇到任何致命错误,则以 1 状态退出。

locate 命令中的选项

  1. -basename, -b:它只将基本名称与描述的模式匹配,这与 -wholename 相反。
  2. -count, -c:我们可以只写入匹配的条目,而不是将文件名写入标准输出。
  3. -database DBPATH, -d:将数据库(默认)替换为 DBPATH。它是冒号 (:) 分隔的数据库文件名列表。当描述多个 -database 选项时,最终路径将是分隔路径的附加。空的数据库文件名由默认数据库替换。数据库文件名也称为标准输入

注意:数据库只能通过标准输入读取一次。

  1. -existing, -e:它只打印在 locate 执行期间分配给可用文件的条目。
  2. -follow, -L:在检查文件是否可用时(如果描述了 -existing 选项),它会跟踪尾随符号链接。此选项具有默认性质。可以使用 -nofollow 选项描述相反的情况。
  3. -help, -h:在标准输出上写入现有选项的摘要并成功退出。
  4. -ignore-case, -i:如果匹配模式,则忽略大小写差异。
  5. -mmap, -m:它被忽略,但为了与 GNU 和 BSD locate 兼容而添加。
  6. -n LIMIT, -limit, -l:检测到 LIMIT 条目后成功退出。此外,当描述了 -count 选项时,最终计数限制为 LIMIT。
  7. -H, -nofollow, -P:在检查可用文件时(如果描述了 -existing 选项),我们不应跟踪尾随符号链接。此选项与 -follow 选项相反。
  8. -null, -0:使用 ASCII NUL 字符而不是将所有条目写入隔离行,将标准输出上的条目隔离开。此选项是为与 GNU xargs-null 选项的互操作性而开发的。
  9. -statistics, -S:将所有读取数据库的统计信息写入标准输出,而不是查找每个文件并成功退出。
  10. -quiet, -q:在处理和读取数据库期间,不指定遇到的错误消息。
  11. -regex:此选项用于将每个 PATTERN 解释为扩展正则表达式。
  12. -stdio, -s:为了与 GNU 和 BSD locate 兼容,此选项被忽略。
  13. -version, -V:它在标准输出上写入 locate 的许可证和版本信息,并成功退出。
  14. -wholename, -w:它只将路径的整个名称与描述的模式匹配。-wholename 选项是默认性质。可以使用 -basename 选项描述相反的情况。

locate 命令的示例

查找具有特定名称的文件的命令

上述命令在特定目录中查找 note.txt。

将搜索查询限制为特定数量

上述命令将显示以 .html 结尾的文件的 10 个搜索结果。

显示匹配的条目数

上述命令计算以 .txt 结尾的文件。

中级命令

下面列出并讨论了一些最常用的中级命令:

1. echo:echo 命令支持我们通常将一些数据、文本移动到文件中。例如,如果我们要创建一个新的文本文件或包含一个已创建的文本文件,那么我们只需键入 "echo hello, my name is john >> new.txt"

我们不需要在这里用反斜杠分隔空格。这是因为如果我们需要指定什么,我们会把它放在两个尖括号内。

示例

Basic Linux Commands

2. cat:此命令代表 concatenate。它允许我们创建单个或多个文件,连接文件,查看文件内容,将结果重定向到文件或终端。

我们可以使用 cat 命令显示文件内容。通常,它用于轻松查看程序。cat 命令可以读取文件中的数据并将其内容作为结果提供。

  • 查看单个文件的命令
  • 查看多个文件的命令
  • 查看文件内容并附带行号的命令
  • 创建文件的命令
  • Cat 命令可以使用 tac 命令以相反的顺序显示内容
  • 突出显示行尾的命令

示例

Basic Linux Commands

sudo:它是 Linux 终端中一个常用的命令。它代表“SuperUser Do”。

因此,如果您希望使用 root 或管理权限执行命令,我们可以应用此命令。例如,如果我们要编辑任何需要 root 权限的文件,例如 viz.alsa-base.conf,我们可以应用 sudo nano also-base.conf 命令。我们可以使用 "sudo bash" 命令使用 root 命令行。

此外,我们可以使用“su”命令来执行此操作,但在此之前我们需要为 root 设置密码。我们可以使用“sudo command”命令。之后输入新的 root 密码。

示例

Basic Linux Commands

df:我们可以使用 df 命令查看系统中所有分区中存在的磁盘空间。

我们只需在终端中键入 df 命令,就可以看到所有已挂载的分区以及它们以 KB 和 % 表示的可用/已用空间。如果我们要以 MB 显示,可以使用“df -m”命令。

示例

Basic Linux Commands

du:我们可以使用 du 命令来了解系统中文件的磁盘使用情况。如果您想了解 Linux 中特定文件或文件夹的磁盘使用情况,我们可以键入 df 命令以及文件或文件夹的名称。

例如,如果我们要了解 Linux 中文档文件夹占用的磁盘空间,我们可以使用“du Documents”命令。此外,我们可以使用“ls -lah”命令查看文件夹中每个文件的大小。

示例

Basic Linux Commands

tar:我们可以使用 tar 命令在 Linux 终端中处理 tar 包。它包含很长的用户列表。

它可以用于压缩和解压缩不同类型的归档文件,例如 .tar.bz2、.tar.gz、.tar 等。它根据提供给它的各种参数进行操作。例如,“tar -cvf”用于创建 .tar 归档文件,“-xvf”用于解压缩 tar 归档文件,“-tvf”用于列出归档内容等。

示例

Basic Linux Commands

unname:我们可以使用 unname 命令显示我们的 Linux 发行版正在执行的系统信息。unname -a 命令可以打印大多数系统详细信息。它可以打印处理器类型、版本、内核发布日期。

示例

Basic Linux Commands

zip 和 unzip:我们可以使用 zip 命令将文件压缩到 zip 归档文件中,使用 unzip 从 zip 归档文件中提取文件。

Zip 示例

Basic Linux Commands

Unzip 示例

Basic Linux Commands

jed, vi, nano: vi 和 nano 是 Linux 终端中安装的文本编辑器。nano 命令是一个更好的文本编辑器,它用颜色表示关键字,并且可以诊断大多数语言。vi 命令比 nano 命令更容易。我们可以使用此编辑器创建新文件或更改文件。

假设我们需要创建一个名为“create.txt”的文件,我们可以使用“nano create.txt”命令创建它。编辑后,我们可以使用 Ctrl+X,然后按 Y 的序列保存文件。对于 HTML 编辑,Nano 命令似乎不是很好,因为它的颜色,这就是为什么我们推荐 jed 文本编辑器。

apt-get:我们可以使用 apt 命令处理 Linux 终端中的各种软件包。此外,我们还可以使用 apt-get 命令安装软件包。

它需要 root 权限;因此,我们可以将 sudo 命令与它一起使用。例如,如果我们要安装 jed 文本编辑器,我们可以输入“sudo apt-get install jed”命令。

同样,可以安装各种软件包。每次尝试安装任何新软件包时,更新我们的存储库都是很好的。我们可以使用“sudo apt-get update”命令来完成。

我们可以使用“sudo apt-get upgrade”命令升级我们的系统。此外,我们可以使用“sudo apt-get dist-upgrade”命令升级我们的发行版。

“apt-cache search”命令可用于搜索任何软件包。如果我们要搜索一个,我们可以使用“apt-cache search jed”命令(它不需要 root 权限)。

示例

Basic Linux Commands
下一主题Kill 命令