Linux 常用命令总结
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 权限:某些命令需超级用户权限,谨慎使用。
- 备份重要文件:操作前备份,避免数据丢失。