5.4. Linux常用命令

我们总结了37个Linux常用命令,见 表 5.1 ,主要归纳为以下几部分:

  • 文件和目录管理

  • 文本处理和搜索

  • 用户和权限管理

  • 系统信息和管理

  • 网络管理

  • 其他命令

表 5.1 Linux常用操作命令

命令

功能

命令

功能

ls

列出目录的内容

pwd

显示当前工作目录的路径

cd

更改工作目录

mkdir

创建新目录

rm

删除文件

cp

复制文件和目录,包括其内容

mv

移动或重命名文件和目录

touch

创建新的空文件

ln

链接文件或目录

zipunzip

创建和提取 ZIP 归档

tar

以 TAR 格式归档文件,不进行压缩

nanovi

使用文本编辑器编辑文件

cat

将文件的内容列出、合并和写入标准输出

grep

在文件中搜索字符串

sed

在文件中查找、替换或删除模式

diff

比较两个文件的内容及其差异

find

输出文件或文件夹的位置

sudo

以超级用户身份运行命令

chmod

修改文件的读取、写入和执行权限

chown

更改文件、目录或符号链接的所有权

useradduserdel

创建和删除用户帐户

df

显示系统的整体磁盘使用情况

du

检查文件或目录的存储消耗

top

显示运行中的进程和系统资源使用情况

htop

类似于 top,但具有交互式用户界面

ps

创建所有运行进程的快照

uname

打印有关机器内核、名称和硬件的信息

systemctl

管理系统服务

kill

终止正在运行的进程

shutdown

关闭或重启系统

ping

检查系统的网络连通性

wget

从 URL 下载文件

scp

安全地将文件或目录复制到另一个系统

ifconfig

显示系统的网络接口及其配置

netstat

显示系统的网络信息,如路由和套接字

man

显示命令的手册

echo

将消息作为标准输出打印

5.4.1. 文件和目录管理

1. ls命令

ls 命令用于列出系统中的文件和目录。以下是其语法:

ls [/目录/文件夹/路径]

如果省略路径,ls 命令将显示当前工作目录的内容。您可以使用以下选项修改命令:

  • -R – 列出子目录中的所有文件。

  • -a – 显示所有文件,包括隐藏文件。

  • -lh – 将文件大小转换为可读格式,如 MBGBTB

2. pwd命令

pwd 命令用于打印当前工作目录的路径,例如 /home/目录/路径 。以下是命令语法:

pwd [选项]

它支持两个选项。-L–logical 选项打印环境变量内容,包括符号链接。而 -P–physical 选项输出当前目录的实际路径。

3. cd命令

使用 cd 命令在Linux中浏览文件和目录。要使用它,请以sudo权限运行以下语法:

cd /目录/文件夹/路径

根据当前位置,它可能需要完整路径或目录名称。例如,如果您已经在 /用户名/目录/文件夹 中,可以省略 /用户名

如果省略了参数,将进入主文件夹。以下是一些导航快捷方式:

  • cd ~[用户名] – 进入另一个用户的主目录。

  • cd .. – 向上移动一个目录。

  • cd- – 切换到上一个目录。

4. mkdir命令

使用 mkdir 命令创建一个或多个目录,并设置它们的权限。确保您有权限在父目录中创建新文件夹。以下是基本语法:

mkdir [选项] [目录名称]

要在目录中创建一个文件夹,请使用路径作为命令参数。例如, mkdir a/c 将在 a 目录内创建一个 c 文件夹。以下是一些常见的 mkdir 命令选项:

  • -p – 在两个现有文件夹之间创建一个目录。例如, mkdir -p a/b/c 将创建一个新的 b 目录。

  • -m – 设置文件夹的权限。例如,输入 mkdir -m777 目录 以创建一个对所有用户可读、可写和可执行的目录。

  • -v – 对每个创建的目录打印一条消息。

5. rmdir命令

使用 rmdir 命令在Linux中删除空目录。用户必须在父目录中具有 sudo 权限。以下是语法:

rmdir [选项] 目录名

如果文件夹包含子目录,则该命令将返回错误。要强制删除非空目录,请使用 -p 选项。

6. rm命令

使用 rm 命令永久删除目录中的文件。以下是一般的语法:

rm [文件名1] [文件名2] [文件名3]

根据需要调整命令中的文件数量。如果遇到错误,请确保您在目录中具有 写入 权限。

要修改命令,添加以下选项:

  • -i - 在删除之前提示确认。

  • -f - 允许无需确认删除文件。

  • -r - 递归删除文件和目录。

警告! 谨慎使用 rm 命令,因为删除操作是不可逆转的。避免使用 -r-f 选项,因为它们可能会删除您的所有文件。始终添加 -i 选项以避免意外删除。

7. cp命令

使用 cp 命令从当前位置复制文件或目录,包括其内容,到另一个位置。它有各种用途,例如:

  • 将一个文件从当前目录复制到另一个文件夹。指定文件名和目标路径:

cp 文件名.txt /home/用户名/文档
  • 将多个文件复制到目录中。输入文件名和目标路径:

cp 文件名1.txt 文件名2.txt 文件名3.txt /home/用户名/文档
  • 将一个文件的内容复制到同一目录中的另一个文件。输入源文件和目标文件:

cp 文件名1.txt 文件名2.txt
  • 复制整个目录。使用**-R**标志,后跟源目录和目标目录:

cp -R /home/用户名/文档 /home/用户名/文档备份

8. mv命令

使用 mv 命令移动或重命名文件和目录。要移动项目,请输入文件名,然后是目标目录:

mv 文件名.txt /home/用户名/文档

同时,使用以下语法使用 mv 命令在Linux中重命名文件:

mv 旧文件名.txt 新文件名.txt

9. touch命令

touch 命令允许您在特定目录路径中创建一个空文件。以下是语法:

touch [选项] /home/目录/路径/文件.txt

如果省略路径,则该命令将在当前文件夹中创建项目。您还可以使用 touch 在Linux命令行中生成和修改时间戳。

10. zip、unzip命令

zip 命令允许你以最佳的压缩比将项目压缩成 ZIP 文件。以下是语法:

zip [选项] zipfile file1 file2....

例如,这个命令将 note.txt 压缩到当前工作目录下的 archive.zip 中:

zip archive.zip note.txt

使用 unzip 命令来`解压缩被压缩的文件:

unzip [选项] file_name.zip

11. tar命令

tar命令可以将多个项目归档到 TAR**文件中,这是一种类似于 **ZIP 的格式,可以选择进行压缩。以下是语法:

tar [选项] [archive_file] [目标文件或目录]

例如,输入以下命令在 /home/user/Documents 目录中创建一个名为 newarchive.tar 的新归档:

tar -cvzf newarchive.tar /home/user/Documents

5.4.2. 文本处理和搜索

12. nano、vi命令

Linux允许用户使用像 nanovi 这样的文本编辑器来编辑文件,命令语法:

nano 文件名
vi 文件名

如果目标文件不存在,这些编辑器将创建一个新文件。

13. cat命令

Concatenate**(连接)或 **cat 是最常用的Linux命令之一。它列出、合并并将文件内容写入标准输出。以下是语法:

cat 文件名.txt

有多种使用 cat 命令的方式:

  • cat > 文件名.txt – 创建一个新文件。

  • cat 文件1.txt 文件2.txt > 文件3.txt – 合并 文件1.txt文件2.txt ,并将输出存储在 文件名3.txt 中。

  • tac 文件.txt – 以相反的顺序显示内容。

14. grep命令

全局正则表达式grep 命令允许你通过搜索文件内容来查找单词。这个Linux命令打印出包含匹配字符串的所有行,对于过滤大型日志文件非常有用。

例如,要显示 notepad.txt 文件中包含 blue 的行,输入以下命令:

grep blue notepad.txt

15. sed命令

sed 命令允许你在文件中查找、替换和删除模式,而无需使用文本编辑器。下面是一般的语法:

sed [选项] '脚本' 输入文件

脚本包含了要搜索的正则表达式模式、替换字符串和子命令。使用 s 子命令替换匹配的模式,使用 d 删除它们。

最后,指定包含要修改的模式的文件。以下是一个将 colors.txthue.txt 中的 red 替换为 blue 的命令示例:

sed 's/red/blue' colors.txt hue.txt

16. diff命令

diff 命令比较两个文件的内容并输出它们之间的差异。它用于在不修改代码的情况下更改程序。下面是一般的格式:

diff [选项] 文件1 文件2

以下是一些可接受的选项:

  • -c – 以上下文形式显示两个文件之间的差异。

  • -u – 显示输出时省略冗余信息。

  • -i – 使 diff 命令对大小写不敏感。

17. find命令

使用 find 命令在特定目录中搜索文件。以下是语法:

find [选项] [路径] [表达式]

例如,要在 directory 文件夹及其子文件夹中查找名为 file1.txt 的文件,使用以下命令:

find /home -name file1.txt

如果省略路径,该命令将在当前工作目录中搜索。你也可以使用以下命令查找目录:

find ./ -type d -name directoryname

5.4.3. 用户和权限管理

18. sudo命令

Superuser dosudo 是Linux中最基本的命令之一。它以管理员或root权限运行你的命令。以下是一般的语法:

sudo (命令)

当你运行sudo命令时,终端会要求输入root密码。例如,下面的代码片段使用超级用户权限运行 useradd 命令:

sudo useradd username

你还可以添加选项,例如:

  • -k – 使时间戳文件无效。

  • -g – 以指定的组名或ID执行命令。

  • -h – 在主机上运行命令。

警告! 以sudo权限运行命令可以修改系统的所有方面。由于滥用可能会破坏系统,请谨慎运行该命令,并仅在了解可能的后果时运行。

19. chmod命令

chmod 命令用于在Linux中修改目录或文件的权限。以下是基本的语法:

chmod [选项] [权限] [文件名]

在Linux中,每个文件都与三个用户类(所有者、组成员和其他用户)相关联。它还有三个权限(读、写和执行)。如果所有者希望授予所有用户所有权限,则命令如下:

chmod -rwxrwxrwx note.txt

20. chown命令

chown 命令允许你将文件、目录或符号链接的所有权更改为指定的用户名。以下是语法:

chown [选项] 所有者[:组] 文件(们)

例如,要将 filename.txt 的所有者更改为 linuxuser2 ,使用以下命令:

chown linuxuser2 filename.txt

21. useradd、userdel命令

使用 useradd 创建新的Linux用户账户,并使用 passwd 命令更改其密码。以下是语法:

useradd [选项] 用户名
passwd 用户名

useraddpasswd 命令都需要sudo权限。要删除用户,使用 userdel 命令:

userdel 用户名

5.4.4. 系统信息和管理

22. df命令

使用 df 命令以百分比和千字节( KB )的形式检查Linux系统的磁盘空间使用情况。以下是语法:

df [选项] [文件]

如果不指定项目,该命令将显示有关每个已挂载文件系统的信息。以下是一些可接受的选项:

  • -m – 以 MB 的形式显示文件系统使用情况。

  • -k – 以 KB 的形式打印文件系统使用情况。

  • -T – 在新列中显示文件系统 类型

23. du命令

使用 du 命令检查文件或目录的存储消耗。在使用此命令时,请记得指定目录路径,例如:

du /home/user/Documents

du 命令有几个选项,例如:

  • -s – 显示指定文件夹的总大小。

  • -m – 以 MB 的形式提供文件夹和文件信息。

  • -k – 以 KB 的形式显示信息。

  • -h – 显示显示的文件夹和文件的最后修改日期。

24. top命令

top 命令显示正在运行的进程和系统的实时情况,包括资源利用情况。它有助于识别资源密集型进程,方便您轻松禁用它们。

25. htop命令

htop 命令是一个交互式程序,用于监控系统资源和服务器进程。与 top 不同,它提供了额外的功能,如鼠标操作和可视化指示器。以下是命令语法:

htop [选项]

它支持的选项包括:

  • -d – 以十分之一秒为单位显示更新之间的延迟。

  • -C – 启用单色模式。

  • -h – 显示帮助消息并退出。

26. ps命令

ps 命令在系统中创建所有正在运行的进程的快照。在不使用选项或参数执行它将以以下信息列出正在运行的进程:

  • 唯一进程ID( PID )。

  • 终端类型( TTY )。

  • 运行时间( TIME )。

  • 启动进程的命令( CMD )。

ps 命令接受多个选项,包括:

  • -T – 显示与当前shell会话关联的所有进程。

  • -u 用户名 – 列出与特定用户关联的进程。

  • -A – 显示所有正在运行的进程。

27. systemctl命令

systemctl 命令可让您管理Linux系统中安装的服务。以下是基本语法:

systemctl [命令名称] [服务名称]

要使用该命令,用户必须具有 root 特权。它有几个用途,包括启动、重启和终止服务。您还可以检查服务的状态和依赖关系。

systemctl 命令仅适用于具有 Systemd init系统 的Linux发行版。

28. kill命令

使用 kill 命令通过其标识号(PID)终止一个无响应的程序。要检查PID,请运行以下命令:

ps ux

要停止程序,请输入以下语法:

kill [信号选项] pid

有64个信号可用于终止程序,但 SIGTERMSIGKILL 是最常用的。 SIGTERM 是默认信号,允许程序在停止之前保存其进度。而 SIGKILL 强制程序停止并丢弃未保存的进度。

29. shutdown命令

Linux shutdown 命令可让您在特定时间关闭或重启系统。以下是语法:

shutdown [选项] [时间] "消息"

您可以使用24小时格式的绝对时间,也可以使用相对时间,如 +5 ,表示在五分钟后计划关闭。 消息 是发送给已登录用户的有关系统关闭的通知。

要重启系统而不是关闭,请使用 -r 选项。要取消计划的重启,请使用 -c 选项运行命令。

5.4.5. 网络管理

30. ping命令

ping 命令是Linux中最常用的命令之一。它允许您检查网络或服务器是否可达,这对于故障排除连接问题很有用。以下是语法:

ping [选项] [主机名或IP地址]

例如,运行以下命令以检查与**Baidu**的连接和响应时间:

ping baidu.com

31. wget

使用 wget 命令通过 HTTPHTTPSFTP 协议从互联网下载文件。以下是语法示例:

wget [选项] [URL]

32. scp

scp 命令可安全地在网络上的系统之间复制文件或目录。以下是语法示例:

scp [选项] [源用户名@IP]:/[目录和文件名] [目标用户名@IP]:/[目标目录]

对于本地机器,省略主机名和 IP 地址。使用以下选项修改复制行为:

  • -P – 更改复制的端口。默认为 22

  • -l – 限制 scp 命令的带宽。

  • -C – 压缩传输的数据以减小文件大小。

33. ifconfig 命令

ifconfig 命令用于列出和配置系统的网络接口。在较新的Linux 发行版中,它等效于 ip 命令。以下是基本的语法示例:

ifconfig [接口] [选项]

不带参数运行它会显示系统中所有网络接口的信息。要检查特定接口,请将其名称作为参数而不带选项。为了执行更具体的任务,可以使用以下选项:

  • -s – 汇总网络接口及其配置的信息。此选项在接口名称之前。

  • updown – 启用和禁用网络接口。

  • inetinet6 – 为网络接口分配 IPv4 和 IPv6 地址。

  • netmask – 指定与 IPv4 地址一起使用的子网掩码。

34. netstat 命令

netstat 命令用于显示系统的网络信息,如套接字和路由。以下是命令的语法:

netstat [选项]

使用不同的选项修改显示的信息。一些常见的选项包括:

  • -a – 显示监听和关闭的套接字。

  • -t – 显示 TCP 连接。

  • -u – 列出 UDP 连接。

  • -r – 显示路由表。

  • -i – 显示有关网络接口的信息。

  • -p – 列出程序的名称和进程 ID。

  • -c – 实时监控连续输出的网络信息。

5.4.6. 其他命令

35. man 命令

man 命令提供 Linux 终端工具的用户手册,包括它们的名称、描述和选项。以下是命令的语法:

man [选项] [节号] 命令名

如果只使用命令名作为参数,终端会显示完整的用户手册。以下是查询 ls 命令手册第 1 节的示例命令:

man 1 ls

36. echo 命令

echo 命令将一行文本显示为标准输出。以下是基本的命令语法:

echo [选项] [字符串]

例如,通过输入以下命令,您可以显示 Hello, SudoSim

echo "Hello, SudoSim"

此命令支持许多选项,例如:

  • -n – 显示输出时不包括尾随换行符。

  • -e – 启用对以下反斜杠转义字符的解释:

  • \b – 删除文本中的空格。

  • \c – 不生成进一步的输出。

37. ln

ln 命令允许您在文件或目录之间创建链接,以简化系统管理。以下是语法示例:

ln [选项] [] [目标]

该命令将创建目标文件或目录,并将其链接到源。默认情况下,它创建硬链接,意味着新项目连接到与源相同的数据块。一般使用选项 -s 创建软链接。