Linux系统的20个实用命令详解
1. ls 命令
ls
命令是Linux中最常用的命令之一,用于列出目录中的文件和子目录。不加任何参数时,它会显示当前工作目录的内容。常用的选项包括 -l
(以长格式显示详细信息,如权限、所有者、大小和修改时间)、-a
(显示所有文件,包括隐藏文件,即以点开头的文件)以及 -h
(与 -l
结合使用,以人类可读的格式显示文件大小,如K、M、G)。掌握 ls
命令是熟练操作Linux文件系统的基础。
2. cd 命令
cd
命令用于切换当前工作目录。这是导航文件系统的基本命令。使用 cd
后跟目标目录的路径即可进入该目录。一些特殊符号非常有用:cd ..
切换到上一级目录,cd ~
或直接输入 cd
会切换到当前用户的家目录,cd -
则可以在最近工作的两个目录之间快速切换。熟练使用 cd
可以让你在复杂的目录结构中高效移动。
3. pwd 命令
pwd
命令(Print Working Directory)的作用非常简单但至关重要:它显示你当前所在目录的绝对路径。当你在深度嵌套的目录中工作时,很容易忘记当前位置,此时使用 pwd
可以立即获得完整的路径信息,避免操作错误的目标目录。
4. cp 命令
cp
命令用于复制文件或目录。其基本语法是 cp [选项] 源文件 目标文件
。如果要复制目录,需要加上 -r
(或 -R
)递归选项,这样才能复制目录及其内部的所有子目录和文件。-i
选项可以在覆盖已存在文件前进行确认提示,增加操作安全性。-v
选项可以显示复制过程的详细信息。
5. mv 命令
mv
命令有两个主要功能:移动文件和重命名文件。移动文件的语法是 mv 源文件 目标路径
。如果源文件和目标路径在同一个目录下,则效果就是重命名。与 cp
命令类似,-i
选项用于覆盖前提示,-v
选项显示操作详情。这是一个非常高效的文件管理命令。
6. rm 命令
rm
命令用于删除文件或目录。这是一个需要谨慎使用的命令,因为删除操作通常是不可逆的。删除文件直接使用 rm 文件名
。删除目录需要使用 -r
(递归)选项,即 rm -r 目录名
。-f
选项会强制删除,忽略不存在的文件和确认提示,非常危险。强烈建议初学者使用 -i
选项进行交互式删除 ,以避免误删重要文件。对于目录删除,也可以使用 rmdir
命令,但它只能删除空目录。
7. mkdir 命令
mkdir
命令用于创建新目录。基本用法是 mkdir 目录名
。一个非常有用的选项是 -p
,它可以一次性创建多级嵌套的目录。例如,mkdir -p project/src/main/java
会同时创建 project、src、main 和 java 目录,如果中间目录不存在也会自动创建。这大大简化了目录结构的创建过程。
8. cat 命令
cat
(concatenate的缩写)命令主要用于查看文件内容、将多个文件连接起来以及创建小文件。最常用的功能是快速查看文件内容:cat filename
。它会将文件的全部内容一次性输出到终端。对于大文件,这可能会造成屏幕滚动过快,此时应使用 less
或 more
命令。此外,cat > file.txt
可以创建一个新文件并开始输入内容(按Ctrl+D结束)。
9. less 和 more 命令
less
和 more
命令都是用于分页查看大文件内容的工具,可以一页一页地浏览,避免信息快速滚过屏幕。more
命令较老,只能向下翻页。less
是 more
的增强版,功能更强大,支持上下翻页、搜索等操作,因此更受推荐。在 less
界面中,可以用空格键向下翻页,b
键向上翻页,/
键后跟字符串可以进行搜索,按 q
键退出。
10. grep 命令
grep
是一个强大的文本搜索工具,它使用正则表达式来搜索文本,并打印出匹配的行。其基本语法是 grep [选项] '搜索模式' 文件名
。常用选项包括 -i
(忽略大小写)、-r
(递归搜索目录下的所有文件)、-n
(显示匹配行的行号)和 -v
(反向选择,即显示不包含匹配模式的行)。grep
经常与其他命令通过管道(|)结合使用,用于过滤输出结果。
11. find 命令
find
命令用于在指定目录树下查找文件。它功能非常强大,可以根据文件名、类型、大小、修改时间等多种条件进行搜索。基本语法是 find [路径] [选项] [操作]
。例如,find /home -name .txt
会在 /home 目录下查找所有扩展名为 .txt 的文件。-type f
表示查找普通文件,-type d
表示查找目录。-exec
选项可以对查找到的文件执行特定的命令。
12. chmod 命令
chmod
命令用于改变文件或目录的访问权限。Linux系统中的权限分为读(r,数字4)、写(w,数字2)和执行(x,数字1),分别对应于文件所有者、所属组和其他用户。可以使用符号模式(如 chmod u+x file
给所有者增加执行权限)或数字模式(如 chmod 755 file
表示所有者有rwx权限,组和其他用户有rx权限)来设置权限。理解并正确设置权限是系统安全的重要一环。
13. chown 命令
chown
命令用于更改文件或目录的所有者和所属组。通常需要root权限才能执行此命令。语法为 chown [新所有者][:新所属组] 文件名
。例如,chown user:group file.txt
将 file.txt 的所有者改为 user,所属组改为 group。如果只更改所有者,可以省略组名:chown user file.txt
。使用 -R
选项可以递归更改目录下所有文件的所有权。
14. ps 命令
ps
命令用于报告当前系统的进程状态。它可以显示正在运行的进程信息,如进程ID(PID)、终端、运行时间、命令等。常用的组合是 ps aux
,它会以BSD格式列出所有用户的详细进程信息。另一个常用组合是 ps -ef
,以标准格式列出完整信息的进程列表。通过 ps
命令,可以查看哪些进程正在运行,并获取它们的PID,为进程管理(如结束进程)提供依据。
15. kill 命令
kill
命令用于向进程发送信号以终止进程。它通常与 ps
命令配合使用,先通过 ps
找到想要终止的进程的PID,然后用 kill PID
来结束它。默认情况下,kill
发送的是 TERM(终止)信号(信号编号15),这是一种温和的终止方式,允许进程进行清理工作。如果进程不响应,可以使用 kill -9 PID
发送 KILL 信号(信号编号9),这会强制立即终止进程,但可能导致数据丢失。
16. tar 命令
tar
命令是Linux下最常用的归档工具,用于将多个文件或目录打包成一个文件(归档),并可选择进行压缩。常用选项组合:tar -czvf archive.tar.gz dirname/
用于创建gzip压缩的归档文件(c表示创建,z表示gzip压缩,v表示显示过程,f指定文件名)。tar -xzvf archive.tar.gz
用于解压gzip压缩的归档文件(x表示提取)。-j
选项用于bzip2压缩,-J
用于xz压缩。
17. wget 和 curl 命令
wget
和 curl
都是在命令行下从网络下载文件的工具。wget
更专注于下载,支持递归下载、断点续传等功能,使用简单,如 wget [URL]
。curl
功能更广泛,支持多种协议,不仅可以下载文件,还可以上传、发送请求等,是一个强大的数据传输工具,如 curl -O [URL]
可以下载文件。两者在脚本和自动化任务中都非常有用。
18. ssh 命令
ssh
(Secure Shell)命令用于远程安全登录到另一台计算机。它通过加密的连接提供安全的命令行界面。基本用法是 ssh username@hostname
,例如 ssh user@192.168.1.100
。首次连接时会提示确认主机密钥。SSH是管理远程服务器、传输文件(通过scp或sftp)和执行远程命令的核心工具,对于系统管理员和开发者来说是必不可少的。
19. top 和 htop 命令
top
命令提供了一个动态实时查看系统运行状态的界面,包括CPU使用率、内存使用、负载均衡和进程列表等信息。它会持续更新显示。它是一个强大的系统性能监控工具。htop
是 top
的一个增强版,提供了更友好、更直观的界面,支持鼠标操作、颜色高亮、垂直和水平滚动查看完整的进程列表和命令行,通常比 top
更受用户欢迎,但可能需要额外安装。
20. man 命令
man
命令可能是Linux中最重要、最实用的命令之一,它是所有其他命令的手册页(manual pages)查看器。当你忘记某个命令的用法或需要了解其详细选项时,可以使用 man 命令名
来获取完整的官方文档。手册页通常包含命令的名称、语法、描述、选项列表和示例等信息。养成遇到新命令或不确定时查阅 man
页面的习惯,是成为Linux高手的关键。