5.4. Linux常用命令

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

  • 文件和目录管理

  • 文本处理和搜索

  • 用户和权限管理

  • 系统信息和管理

  • 网络管理

  • 其他命令

表 5.1 Linux常用操作命令

命令

功能

命令

功能

ls

列出目录的内容

pwd

显示当前工作目录的路径

cd

更改工作目录

mkdir

创建新目录

rm

删除文件

cp

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

mv

移动或重命名文件和目录

touch

创建新的空文件

ln

链接文件或目录

zip 和 unzip

创建和提取 ZIP 归档

tar

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

nano、 vi

使用文本编辑器编辑文件

cat

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

grep

在文件中搜索字符串

sed

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

diff

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

find

输出文件或文件夹的位置

sudo

以超级用户身份运行命令

chmod

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

chown

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

useradd 和 userdel

创建和删除用户帐户

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 – 将文件大小转换为可读格式,如 MB、GB 和 TB 。

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允许用户使用像 nano 或 vi 这样的文本编辑器来编辑文件,命令语法:

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.txt 和 hue.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 do 或 sudo 是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 用户名

useradd 和 passwd 命令都需要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个信号可用于终止程序,但 SIGTERM 和 SIGKILL 是最常用的。 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 命令通过 HTTP、 HTTPS 或 FTP 协议从互联网下载文件。以下是语法示例:

wget [选项] [URL]

32. scp

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

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

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

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

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

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

33. ifconfig 命令

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

ifconfig [接口] [选项]

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

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

  • up 和 down – 启用和禁用网络接口。

  • inet 和 inet6 – 为网络接口分配 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 创建软链接。