Linux 常用命令总结
Linux 命令行是系统管理和开发的核心工具,掌握常用命令可以极大提升效率。本文全面总结 Linux 常用命令,涵盖文件操作、进程管理、网络管理、系统监控、用户管理、软件安装等多个方面,适合初学者和高级用户参考。
1. 文件和目录操作
这些命令用于管理文件和目录。
命令 | 功能描述 | 示例 |
---|---|---|
ls |
列出目录内容 | ls -l (详细列表), ls -a (显示隐藏文件) |
cd |
切换目录 | cd /home/user , cd .. (返回上级目录) |
pwd |
显示当前工作目录 | pwd |
mkdir |
创建目录 | mkdir myfolder , mkdir -p a/b/c |
rmdir |
删除空目录 | rmdir myfolder |
touch |
创建空文件或更新文件时间戳 | touch file.txt |
cp |
复制文件或目录 | cp file.txt /backup , cp -r dir1 dir2 |
mv |
移动或重命名文件/目录 | mv file.txt newname.txt , mv dir /tmp |
rm |
删除文件或目录 | rm file.txt , rm -r dir (递归删除) |
find |
搜索文件或目录 | find / -name "file.txt" |
locate |
快速查找文件(基于数据库) | locate file.txt |
tree |
以树形结构显示目录内容 | tree /home/user |
ln |
创建链接(硬链接或软链接) | ln -s file.txt link (软链接) |
cat |
查看文件内容或连接文件 | cat file.txt , cat file1 > file2 |
more / less |
分页查看文件内容 | less file.txt |
head |
查看文件开头内容 | head -n 10 file.txt (前 10 行) |
tail |
查看文件末尾内容 | tail -n 10 file.txt , tail -f log |
wc |
统计文件的行数、字数、字符数 | wc -l file.txt (行数) |
cut |
提取文件中特定字段 | cut -d',' -f1 file.csv |
sort |
排序文件内容 | sort file.txt , sort -r (逆序) |
uniq |
删除重复行 | uniq file.txt |
grep |
搜索文件内容 | grep "keyword" file.txt |
sed |
流式编辑文件内容 | sed 's/old/new/g' file.txt |
awk |
文本处理和数据提取 | awk '{print $1}' file.txt |
2. 文件权限管理
Linux 文件权限控制访问和管理。
命令 | 功能描述 | 示例 |
---|---|---|
chmod |
修改文件或目录权限 | chmod 755 script.sh , chmod u+x file |
chown |
修改文件或目录所有者 | chown user file.txt , chown -R user dir |
chgrp |
修改文件或目录所属组 | chgrp group file.txt |
umask |
设置默认文件权限 | umask 022 |
getfacl |
查看文件访问控制列表(ACL) | getfacl file.txt |
setfacl |
设置文件访问控制列表 | setfacl -m u:user:rw file.txt |
权限说明:
- 权限格式:
rwxr-xr-x
(用户、组、其他)。 - 数字表示:
r=4
,w=2
,x=1
(例如,755
表示用户全权,组和其他可读可执行)。
3. 进程管理
用于监控和控制系统进程。
命令 | 功能描述 | 示例 |
---|---|---|
ps |
显示当前进程状态 | ps aux (所有进程) |
top |
实时显示进程和系统资源 | top |
htop |
增强版 top,交互式界面 | htop |
kill |
终止进程(通过 PID) | kill 1234 , kill -9 1234 (强制终止) |
killall |
按进程名终止进程 | killall firefox |
pkill |
按进程名或模式终止进程 | pkill -u user |
nice |
设置进程优先级 | nice -n 10 command |
renice |
修改运行中进程的优先级 | renice 10 -p 1234 |
jobs |
显示后台任务 | jobs |
bg |
将任务放入后台运行 | bg %1 |
fg |
将后台任务调回前台 | fg %1 |
nohup |
使命令在终端关闭后继续运行 | nohup ./script.sh & |
4. 系统监控
监控系统性能和资源使用情况。
命令 | 功能描述 | 示例 |
---|---|---|
df |
显示磁盘使用情况 | df -h (人类可读格式) |
du |
统计目录或文件大小 | du -sh /home/user |
free |
显示内存使用情况 | free -m (以 MB 显示) |
uptime |
显示系统运行时间和负载 | uptime |
vmstat |
报告虚拟内存统计 | vmstat 1 (每秒更新) |
iostat |
显示 CPU 和 I/O 统计 | iostat -x 1 |
sar |
系统活动报告(需安装 sysstat) | sar -u 1 (CPU 统计) |
dstat |
动态系统资源统计 | dstat -cdngy |
lscpu |
显示 CPU 信息 | lscpu |
lsblk |
列出块设备信息 | lsblk |
iotop |
实时显示磁盘 I/O 使用情况 | iotop |
watch |
周期性执行命令并显示结果 | watch -n 1 'df -h' |
5. 网络管理
管理网络连接、流量和服务。
命令 | 功能描述 | 示例 |
---|---|---|
ping |
测试网络连通性 | ping google.com |
curl |
发送 HTTP 请求,下载文件 | curl -O http://example.com/file |
wget |
下载文件 | wget http://example.com/file |
netstat |
显示网络状态(需安装 net-tools) | netstat -tuln |
ss |
更现代的网络状态查看工具 | ss -tuln |
ifconfig |
显示和配置网络接口(需安装 net-tools) | ifconfig eth0 |
ip |
现代网络接口管理工具 | ip addr , ip link |
route |
显示或管理路由表 | route -n |
traceroute |
跟踪数据包路由路径 | traceroute google.com |
dig |
DNS 查询 | dig example.com |
nslookup |
DNS 查询(简单版) | nslookup example.com |
telnet |
测试端口连接 | telnet localhost 80 |
nc |
网络工具(netcat),用于 TCP/UDP 连接 | nc -l 1234 (监听端口) |
tcpdump |
捕获网络数据包 | tcpdump -i eth0 port 80 |
iftop |
实时显示网络流量 | iftop -i eth0 |
nmap |
网络扫描和端口探测 | nmap localhost |
6. 用户和权限管理
管理用户账户和权限。
命令 | 功能描述 | 示例 |
---|---|---|
who |
显示当前登录用户 | who |
whoami |
显示当前用户 | whoami |
id |
显示用户和组信息 | id user |
su |
切换用户 | su - user |
sudo |
以超级用户权限执行命令 | sudo apt update |
useradd |
添加新用户 | useradd -m newuser |
userdel |
删除用户 | userdel -r user |
passwd |
修改用户密码 | passwd user |
addgroup |
添加用户组 | addgroup mygroup |
usermod |
修改用户信息 | usermod -aG sudo user |
visudo |
编辑 sudo 配置文件 | visudo |
7. 软件安装与管理
管理软件包和依赖。
命令 | 功能描述 | 示例 |
---|---|---|
apt |
Debian/Ubuntu 包管理工具 | apt install vim , apt update |
yum / dnf |
CentOS/RHEL 包管理工具 | dnf install vim , yum update |
zypper |
openSUSE 包管理工具 | zypper install vim |
snap |
安装和管理 Snap 包 | snap install code |
dpkg |
管理 Debian 包 | dpkg -i package.deb |
rpm |
管理 RPM 包 | rpm -ivh package.rpm |
make |
编译源码 | make , make install |
8. 压缩与归档
处理压缩文件和归档。
命令 | 功能描述 | 示例 |
---|---|---|
tar |
归档和解档文件 | tar -cvf archive.tar dir , tar -xvf archive.tar |
gzip / gunzip |
压缩/解压 .gz 文件 | gzip file.txt , gunzip file.txt.gz |
bzip2 / bunzip2 |
压缩/解压 .bz2 文件 | bzip2 file.txt , bunzip2 file.txt.bz2 |
zip / unzip |
压缩/解压 .zip 文件 | zip archive.zip file.txt , unzip archive.zip |
xz |
压缩/解压 .xz 文件 | xz file.txt , unxz file.txt.xz |
9. 文本编辑器
常用的命令行文本编辑器。
命令 | 功能描述 | 示例 |
---|---|---|
nano |
简单易用的文本编辑器 | nano file.txt |
vim / vi |
功能强大的文本编辑器 | vim file.txt |
emacs |
高度可定制的文本编辑器 | emacs file.txt |
10. 系统管理
管理系统配置和服务。
命令 | 功能描述 | 示例 |
---|---|---|
systemctl |
管理 systemd 服务 | systemctl start apache2 |
service |
管理服务(兼容旧系统) | service apache2 start |
uname |
显示系统信息 | uname -a |
hostname |
显示或设置主机名 | hostname , hostname newname |
dmesg |
显示内核日志 | `dmesg |
journalctl |
查看 systemd 日志 | journalctl -u apache2 |
reboot |
重启系统 | reboot |
shutdown |
关机或计划关机 | shutdown -h now , shutdown -r 10 |
date |
显示或设置系统时间 | date , date -s "2023-10-01 12:00" |
timedatectl |
管理系统时间和时区 | timedatectl set-timezone UTC |
11. 环境变量与脚本
管理环境变量和 shell 脚本。
命令 | 功能描述 | 示例 |
---|---|---|
env |
显示环境变量 | env |
export |
设置或导出环境变量 | export PATH=$PATH:/usr/local/bin |
echo |
显示变量或文本 | echo $PATH |
source |
执行脚本并应用环境变化 | source ~/.bashrc |
bash |
运行 bash 脚本 | bash script.sh |
chmod +x |
使脚本可执行 | chmod +x script.sh |
12. 其他实用命令
一些杂项但常用的命令。
命令 | 功能描述 | 示例 |
---|---|---|
man |
查看命令手册 | man ls |
info |
查看命令信息 | info ls |
history |
显示命令历史 | history , !123 (执行第 123 条命令) |
alias |
设置命令别名 | alias ll='ls -l' |
clear |
清空终端屏幕 | clear |
tee |
将输出同时写入文件和终端 | `ls |
xargs |
将标准输入转为命令参数 | `find . -name “*.txt” |
13. 命令组合与管道
Linux 命令可以通过管道和重定向组合使用。
符号 | 功能描述 | 示例 |
---|---|---|
` | ` | 管道,将前一命令输出作为后一命令输入 |
> |
重定向输出到文件(覆盖) | ls > output.txt |
>> |
重定向输出到文件(追加) | ls >> output.txt |
< |
从文件读取输入 | wc -l < file.txt |
&& |
前一命令成功后执行后一命令 | make && make install |
` | ` |
14. 使用技巧与注意事项
- 命令补全:按
Tab
键自动补全命令或文件名。 - 历史命令:使用
Ctrl+R
搜索历史命令。 - 通配符:
*
:匹配任意字符(如*.txt
)。?
:匹配单个字符(如file?.txt
)。
- sudo 权限:某些命令需超级用户权限,谨慎使用。
- 备份重要文件:操作前备份,避免数据丢失。