5.4. Linux常用命令¶
我们总结了37个Linux常用命令,见 表 5.1 ,主要归纳为以下几部分:
文件和目录管理
文本处理和搜索
用户和权限管理
系统信息和管理
网络管理
其他命令
命令 |
功能 |
命令 |
功能 |
|---|---|---|---|
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 创建软链接。