Linux 系统常用命令大全:从入门到实战
在 Linux 系统的日常使用和开发工作中,命令行操作是效率的核心。无论是文件管理、系统监控还是网络配置,掌握常用命令都能让工作事半功倍。本文整理了 Linux 系统中最常用的命令,涵盖文件操作、系统管理、用户权限、网络操作等多个维度,并附带实用示例,适合新手入门和开发者日常查阅。
一、文件与目录操作命令
文件和目录是 Linux 系统中最基础的元素,以下命令能帮助你高效管理文件和目录。
ls:列出目录内容
ls 命令用于列出当前目录或指定目录中的文件和子目录。常用选项:
- -l:以长格式显示,包含文件权限、所有者、大小、修改时间等信息。
- -a:显示所有文件和目录,包括以 . 开头的隐藏文件。
- -h:与 -l 配合使用,以人类可读的格式显示文件大小(如 KB、MB)。
示例:
# 列出当前目录所有文件(包括隐藏文件)的详细信息
ls -la
# 列出 /home 目录中文件的详细信息,文件大小以人类可读格式显示
ls -lh /home
cd:切换目录
cd 命令用于切换当前工作目录。
示例:
# 切换到 /usr/local 目录
cd /usr/local
# 切换到当前用户的家目录(等效于 cd ~)
cd
# 切换到上一级目录
cd ..
# 切换到之前所在的目录
cd -
pwd:显示当前目录路径
pwd 命令用于显示当前工作目录的绝对路径,在不确定所在位置时非常实用。
示例:
pwd
# 输出:/home/user/documents
mkdir:创建目录
mkdir 命令用于创建新目录。常用选项 -p 可递归创建多级目录。
示例:
# 在当前目录创建名为 test 的目录
mkdir test
# 递归创建多级目录(若父目录不存在则自动创建)
mkdir -p project/src/main/java
rm:删除文件或目录
rm 命令用于删除文件或目录,使用时需谨慎,删除后无法恢复。常用选项:
- -f:强制删除,不提示确认。
- -r:递归删除目录及其包含的所有文件和子目录。
示例:
# 删除名为 file.txt 的文件
rm file.txt
# 强制删除名为 old_dir 的目录及其所有内容
rm -rf old_dir
cp:复制文件或目录
cp 命令用于复制文件或目录。常用选项:
- -r:递归复制目录(复制目录时必须使用)。
- -i:若目标文件已存在,提示是否覆盖。
- -v:显示复制过程的详细信息。
示例:
# 将 file.txt 复制到 /tmp 目录
cp file.txt /tmp
# 递归复制 dir1 目录到 dir2(若 dir2 不存在则创建,存在则复制到其内部)
cp -r dir1 dir2
mv:移动或重命名文件 / 目录
mv 命令可用于移动文件 / 目录,也可用于重命名(当源和目标在同一目录时)。
示例:
# 将 file.txt 重命名为 new_file.txt
mv file.txt new_file.txt
# 将 document.pdf 移动到 /home/user/downloads 目录
mv document.pdf /home/user/downloads
二、系统管理命令
系统管理命令帮助用户监控系统状态、管理进程和查看系统信息,是维护系统稳定运行的关键。
top:实时监控系统进程
top 命令用于实时显示系统中进程的资源占用情况,包括 CPU 使用率、内存占用、进程 ID 等。常用操作:
- q:退出 top 界面。
- P:按 CPU 使用率排序。
- M:按内存使用率排序。
- k:终止指定 PID 的进程。
示例:
top
ps:查看进程状态
ps 命令用于查看系统中当前运行的进程快照。常用选项:
- -e:显示所有进程。
- -f:以全格式显示进程信息。
- -aux:显示所有用户的进程详细信息(常用组合)。
示例:
# 查看所有进程的详细信息
ps aux
# 查看包含 "java" 的进程
ps aux | grep java
kill:终止进程
kill 命令用于向进程发送信号,常用信号为 -9(强制终止)。使用前需通过 ps 或 top 获取进程 ID(PID)。
示例:
# 强制终止 PID 为 1234 的进程
kill -9 1234
df:查看磁盘空间使用情况
df 命令用于显示文件系统的磁盘空间使用情况。常用选项 -h 以人类可读格式显示。
示例:
df -h
# 输出类似:
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 50G 20G 28G 42% /
# tmpfs 2.0G 0 2.0G 0% /dev/shm
free:查看内存使用情况
free 命令用于显示系统内存(物理内存和交换内存)的使用情况。常用选项 -h 以人类可读格式显示。
示例:
free -h
# 输出类似:
# total used free shared buff/cache available
# Mem: 15G 5.2G 6.8G 320M 3.0G 10G
# Swap: 2.0G 0B 2.0G
三、用户与权限管理命令
Linux 是多用户系统,权限管理是系统安全的核心,以下命令用于管理用户、组和文件权限。
chmod:修改文件权限
chmod 命令用于修改文件或目录的访问权限,权限分为读(r,4)、写(w,2)、执行(x,1),分别对应所有者、所属组和其他用户。
示例:
# 给文件所有者添加执行权限
chmod u+x script.sh
# 给所有用户添加读权限
chmod a+r document.txt
# 用数字表示权限(所有者可读可写可执行,所属组可读可执行,其他用户可读)
chmod 754 program
chown:修改文件所有者
chown 命令用于修改文件或目录的所有者和所属组。
示例:
# 将 file.txt 的所有者改为 user1
chown user1 file.txt
# 将 dir 目录的所有者改为 user1,所属组改为 group1
chown user1:group1 dir
useradd/userdel:添加 / 删除用户
useradd 用于创建新用户,userdel 用于删除用户(-r 选项可同时删除用户家目录)。
示例:
# 创建名为 newuser 的用户
useradd newuser
# 设置 newuser 的密码
passwd newuser
# 删除 newuser 并同时删除其家目录
userdel -r newuser
四、网络操作命令
网络命令用于配置网络、检测网络连接和传输文件,是开发和运维中常用的工具。
ping:检测网络连接
ping 命令用于测试与目标主机的网络连接是否通畅,通过发送 ICMP 报文并接收响应来判断。
示例:
# 测试与百度的连接(默认持续发送,按 Ctrl+C 停止)
ping baidu.com
# 发送 4 个报文后停止
ping -c 4 baidu.com
ifconfig/ip:查看网络接口信息
ifconfig 是传统命令,ip 是较新的替代命令,用于查看和配置网络接口(如 IP 地址、子网掩码)。
示例:
# 查看所有网络接口信息(ifconfig)
ifconfig
# 查看所有网络接口信息(ip)
ip addr
wget/curl:下载文件
wget 和 curl 均可用于从网络下载文件,wget 更专注于下载,curl 功能更丰富(支持多种协议和请求方式)。
示例:
# 使用 wget 下载文件
wget https://example.com/file.tar.gz
# 使用 curl 下载文件(-O 保存为原文件名)
curl -O https://example.com/file.tar.gz
五、其他实用命令
除上述类别外,以下命令在日常操作中也频繁使用。
grep:文本搜索
grep 命令用于在文件或输入流中搜索匹配指定模式的文本,支持正则表达式。
示例:
# 在 file.txt 中搜索包含 "error" 的行
grep "error" file.txt
# 递归搜索当前目录下所有文件中包含 "keyword" 的行(忽略大小写)
grep -ri "keyword" .
tar:文件归档与压缩
tar 命令用于打包归档文件,常与压缩算法(gzip、bzip2)结合使用。
示例:
# 将 dir 目录打包并以 gzip 压缩(.tar.gz 格式)
tar -zcvf dir.tar.gz dir
# 解压 .tar.gz 格式的文件
tar -zxvf dir.tar.gz
man:查看命令手册
man 命令用于查看其他命令的详细手册,包含命令功能、选项说明和示例,是学习 Linux 命令的重要工具。
示例:
# 查看 ls 命令的手册
man ls
总结
以上命令是 Linux 系统中最常用的基础工具,掌握它们能满足大部分日常操作和开发需求。在实际使用中,建议结合 man 命令查看详细参数,并通过频繁练习加深记忆。随着使用熟练度的提升,还可以学习命令组合(如通过管道 | 连接多个命令),进一步提高工作效率。