跳至主要内容

Linux 命令大全完整指南

Linux 命令行是每个开发者、系统管理员和运维工程师的必备技能。本指南整理了最常用的 Linux 命令,按功能分类,帮助您快速查找和使用。

版本提示

本文保留通用命令與概念,示例不绑定某個发行版版本。ifconfig、route 等 net-tools 命令在新系统中多用于兼容场景;新环境应优先使用 ip、ss 等现代工具,并以当前发行版官方文档为准。

1. 文件管理​

文件管理命令用于创建、删除、复制、移动和查看文件及目录。

基础文件操作​

命令描述示例
ls列出目录内容ls -la /home
cp复制文件/目录cp file.txt backup.txt
mv移动/重命名文件mv old.txt new.txt
rm删除文件/目录rm file.txt
rmdir删除空目录rmdir empty_dir
mkdir创建目录mkdir new_folder
pwd显示当前路径pwd
cd切换目录cd /home/user

详细文件信息​

命令描述示例
ls -l长格式显示ls -l
ls -a显示隐藏文件ls -a
ls -h人性化显示大小ls -lh
ls -R递归显示子目录ls -R
file查看文件类型file document.pdf
stat显示文件详细信息stat file.txt
tree以树形结构显示目录tree /home

文件查看命令​

命令描述示例
cat查看文件内容cat file.txt
less分页查看大文件less largefile.log
more分页显示more file.txt
head查看文件开头head -n 20 file.txt
tail查看文件结尾tail -f logfile.log
nl带行号显示nl file.txt

文件查找​

命令描述示例
find查找文件find /home -name "*.txt"
locate快速查找文件locate filename
which查找命令位置which python
whereis查找二进制/源码/手册whereis ls

文件权限​

命令描述示例
chmod修改文件权限chmod 755 script.sh
chown修改文件所有者chown user:group file.txt
chgrp修改文件组chgrp developers file.txt
umask设置默认权限掩码umask 022

文件比较与差异​

命令描述示例
diff比较文件差异diff file1.txt file2.txt
cmp比较两个文件cmp file1.txt file2.txt
comm比较两个已排序文件comm file1.txt file2.txt

链接文件​

命令描述示例
ln创建硬链接ln source.txt link.txt
ln -s创建软链接ln -s /path/to/file link_name

文本处理​

命令描述示例
grep文本搜索grep "pattern" file.txt
awk文本处理和分析awk '{print $1}' file.txt
sed流编辑器sed 's/old/new/g' file.txt
sort排序文本sort file.txt
uniq去重uniq file.txt
cut提取字段cut -d',' -f1 data.csv
wc统计行/字/字符wc -l file.txt

2. 文档编辑​

文本编辑和处理命令用于编辑和格式化文档。

基础编辑命令​

命令描述示例
vi/vim文本编辑器vim file.txt
nano简单文本编辑器nano file.txt
emacs全屏编辑器emacs file.txt
ed行编辑器ed file.txt

文本处理​

命令描述示例
tr字符转换tr 'a-z' 'A-Z' < file.txt
colrm删除列colrm 1 3 file.txt
join合并文件join file1.txt file2.txt
paste合并文件行paste file1.txt file2.txt
split分割文件split -l 100 file.txt part_
uniq去除重复行uniq file.txt
sort排序文本sort file.txt
tee输出到文件和屏幕echo "text" | tee output.txt

格式化​

命令描述示例
fmt格式化文本fmt -w 80 file.txt
fold折叠长行fold -w 50 file.txt
expand将制表符转成空格expand file.txt
unexpand将空格转成制表符unexpand file.txt

正则表达式​

命令描述示例
grep使用正则表达式搜索grep -E "pattern" file.txt
egrep扩展正则表达式egrep "pattern" file.txt
fgrep固定字符串搜索fgrep "literal" file.txt

3. 文件传输​

用于在不同系统间传输文件。

FTP 传输​

命令描述示例
ftpFTP 客户端ftp ftp.example.com
sftp安全 FTPsftp user@host
lftp高级 FTP 客户端lftp ftp://user@host
ncftp增强 FTP 客户端ncftp ftp.example.com

远程复制​

命令描述示例
scp安全复制scp file.txt user@host:/path/
rsync同步文件和目录rsync -avz /source/ user@host:/dest/
wget下载文件wget https://example.com/file.zip
curl传输数据curl -O https://example.com/file.zip

其他传输​

命令描述示例
uucpUnix 到 Unix 复制uucp source destination
uuto发送文件uuto file remote!user
tftpTFTP 客户端tftp host

4. 磁盘管理​

磁盘和目录空间管理命令。

目录操作​

命令描述示例
cd切换目录cd /home/user
pwd显示当前目录pwd
ls列出目录内容ls -la
dirs显示目录栈dirs -p
pushd切换目录并入栈pushd /var/log
popd从栈中弹出目录popd

磁盘使用​

命令描述示例
df显示磁盘空间使用情况df -h
du显示目录空间使用情况du -sh /home
lsblk列出块设备lsblk
fdisk磁盘分区工具sudo fdisk /dev/sda

挂载和卸载​

命令描述示例
mount挂载文件系统mount /dev/sdb1 /mnt/usb
umount卸载文件系统umount /mnt/usb
eject弹出介质eject /dev/cdrom

磁盘配额​

命令描述示例
quota显示磁盘配额quota -v
quotacheck检查磁盘配额sudo quotacheck -av
quotaon启用配额sudo quotaon -av
quotaoff禁用配额sudo quotaoff -av
edquota编辑配额sudo edquota username

5. 磁盘维护​

磁盘检查、修复和格式化工具。

文件系统检查​

命令描述示例
fsck检查文件系统sudo fsck /dev/sda1
e2fsckext2/ext3/ext4 文件系统检查sudo e2fsck /dev/sda1
badblocks检查坏块sudo badblocks /dev/sda
fsck.minixMINIX 文件系统检查sudo fsck /dev/fd0

文件系统管理​

命令描述示例
mkfs创建文件系统sudo mkfs.ext4 /dev/sdb1
mkfs.ext2创建 ext2 文件系统sudo mkfs.ext2 /dev/sdb1
mkfs.ext4创建 ext4 文件系统sudo mkfs.ext4 /dev/sdb1
mkfs.ntfs创建 NTFS 文件系统sudo mkfs.ntfs /dev/sdb1

磁盘格式化​

命令描述示例
mkbootdisk创建启动盘sudo mkbootdisk --device /dev/fd0 $(uname -r)
mformat格式化 DOS 文件系统mformat A:
fdformat格式化软盘fdformat /dev/fd0
mkdosfs创建 FAT 文件系统sudo mkdosfs /dev/sdb1

交换空间​

命令描述示例
mkswap创建交换空间sudo mkswap /dev/sdb2
swapon启用交换空间sudo swapon /dev/sdb2
swapoff禁用交换空间sudo swapoff /dev/sdb2

其他维护​

命令描述示例
dd复制和转换文件dd if=/dev/zero of=file.img bs=1M count=100
cfdisk磁盘分区工具sudo cfdisk /dev/sda
hdparm硬盘参数工具sudo hdparm -t /dev/sda
sync强制写入磁盘sync

6. 网络通讯​

网络配置和通信命令。

网络配置​

命令描述示例
ifconfig配置网络接口ifconfig eth0 192.168.1.100
ipIP 地址和路由管理ip addr add 192.168.1.100/24 dev eth0
netstat显示网络连接netstat -tuln
ss显示网络套接字ss -tuln

网络测试​

命令描述示例
ping测试连通性ping google.com
traceroute路由跟踪traceroute google.com
tracepath跟踪路径tracepath google.com
telnet远程登录telnet host port
nc网络瑞士军刀nc -zv host port

HTTP 工具​

命令描述示例
wget下载文件wget https://example.com/file.zip
curl传输数据curl https://api.example.com/data
httpdHTTP 服务器httpd -k start
apachectlApache 控制apachectl start

网络监控​

命令描述示例
tcpdump捕获网络包sudo tcpdump -i eth0
ngrep网络包搜索ngrep pattern
nmap端口扫描nmap -sS host
netstat网络统计netstat -i

其他网络工具​

命令描述示例
hostname显示/设置主机名hostname
dnsconfDNS 配置dnsconf
wall发送消息到所有终端wall "System maintenance"
write发送消息到用户终端write username
talk与用户对话talk username
mesg设置消息接收mesg n

7. 系统管理​

用户、进程和系统管理命令。

用户管理​

命令描述示例
adduser添加用户sudo adduser newuser
useradd添加用户sudo useradd -m username
usermod修改用户sudo usermod -aG group username
userdel删除用户sudo userdel username
passwd修改密码passwd username

组管理​

命令描述示例
groupadd添加组sudo groupadd developers
groupmod修改组sudo groupmod -n newname oldname
groupdel删除组sudo groupdel groupname
groups显示用户组groups username

进程管理​

命令描述示例
ps显示进程ps aux
top实时显示进程top
htop交互式进程查看htop
pstree进程树pstree -p
pgrep查找进程pgrep firefox
pkill终止进程pkill firefox
kill发送信号到进程kill 1234
killall按名称终止进程killall firefox

系统信息​

命令描述示例
uname显示系统信息uname -a
whoami显示当前用户whoami
id显示用户 ID 和组 IDid username
who显示登录用户who
w显示登录用户及活动w
last显示登录历史last
free显示内存使用free -h
uptime显示运行时间uptime

系统控制​

命令描述示例
reboot重启系统sudo reboot
shutdown关闭系统sudo shutdown -h now
halt停止系统sudo halt
poweroff关闭电源sudo poweroff
init改变运行级别init 0 (关机)

8. 系统设置​

系统配置和环境设置命令。

环境变量​

命令描述示例
export设置环境变量export PATH=$PATH:/new/path
env显示环境变量env
printenv打印环境变量printenv HOME
unset删除环境变量unset VARIABLE
alias设置命令别名alias ll='ls -la'
unalias删除别名unalias ll

系统配置​

命令描述示例
set显示变量设置set
declare声明变量declare -i count=0
ulimit设置资源限制ulimit -n 4096
timeconfig设置时区sudo timeconfig
clock设置系统时钟sudo clock -w

模块管理​

命令描述示例
lsmod显示已加载模块lsmod
modinfo显示模块信息modinfo module_name
modprobe加载模块sudo modprobe module_name
rmmod卸载模块sudo rmmod module_name
depmod生成模块依赖sudo depmod

服务管理​

命令描述示例
systemctl系统服务管理sudo systemctl start service
service服务管理sudo service apache2 start
chkconfig设置服务自动启动sudo chkconfig service on
update-rc.d设置启动链接sudo update-rc.d service defaults

计划任务​

命令描述示例
crontab编辑计划任务crontab -e
at在指定时间执行命令at now + 5 minutes
batch在系统负载低时执行batch

系统信息​

命令描述示例
dmesg显示内核消息`dmesg
lspci显示 PCI 设备lspci
lsusb显示 USB 设备lsusb
lscpu显示 CPU 信息lscpu
lsblk显示块设备lsblk

9. 备份压缩​

文件压缩、备份和归档命令。

压缩工具​

命令描述示例
gzipGNU 压缩gzip file.txt
gunzip解压 gzipgunzip file.txt.gz
bzip2bzip2 压缩bzip2 file.txt
bunzip2解压 bzip2bunzip2 file.txt.bz2
xzxz 压缩xz file.txt
unxz解压 xzunxz file.txt.xz

归档工具​

命令描述示例
tar归档工具tar -czvf archive.tar.gz directory/
zip创建 zip 压缩包zip -r archive.zip directory/
unzip解压 zip 压缩包unzip archive.zip
rar创建 rar 压缩包rar a archive.rar directory/
unrar解压 rar 压缩包unrar x archive.rar

备份工具​

命令描述示例
dump文件系统备份sudo dump -0uf /dev/st0 /home
restore恢复备份sudo restore -rf /dev/st0
cpio复制文件到归档find . -print | cpio -ov > archive.cpio

编码解码​

命令描述示例
uuencode编码二进制文件uuencode file.txt file.txt > encoded.txt
uudecode解码文件uudecode encoded.txt

10. 设备管理​

硬件设备管理命令。

键盘设置​

命令描述示例
loadkeys加载键盘布局sudo loadkeys us
dumpkeys显示键盘映射dumpkeys
setleds设置键盘 LEDsetleds +num

显示设置​

命令描述示例
fbset帧缓冲设置sudo fbset -i
SVGATextModeSVGAText 模式SVGATextMode 132x60

电源管理​

命令描述示例
poweroff关闭系统sudo poweroff
halt停止系统sudo halt
shutdown关闭系统sudo shutdown -h now
apmdAPM 守护进程apmd

设备创建​

命令描述示例
MAKEDEV创建设备文件sudo MAKEDEV hd

其他重要命令​

实用工具​

命令描述示例
bc计算器echo "10 + 5" | bc
xargs构建参数列表find . -name "*.txt" | xargs rm
nohup不挂断地运行命令nohup ./script.sh &
jobs显示后台任务jobs
bg后台运行作业bg %1
fg前台运行作业fg %1

IP 和网络​

命令描述示例
ipIP 地址管理ip addr show
ss套接字统计ss -tuln

进程管理​

命令描述示例
killall按名称终止进程killall process_name
pkill模式匹配终止进程pkill pattern

文件查找​

命令描述示例
locate快速文件查找locate filename
which查找命令路径which python

命令行快捷键​

Bash 快捷键​

快捷键功能
Ctrl + A移动到行首
Ctrl + E移动到行末
Ctrl + U删除光标前内容
Ctrl + K删除光标后内容
Ctrl + L清屏(等价于 clear)
Ctrl + R搜索历史命令
Tab自动补全
Tab + Tab显示所有可能选项
!!执行上一条命令
!$上一条命令的最后一个参数

常用组合命令​

实用脚本片段​

# 查找并删除大于 100MB 的文件
find / -size +100M -type f -exec rm -rf {} \;

# 统计当前目录文件数量
ls -1 | wc -l

# 查看系统负载
uptime

# 查看磁盘使用情况
df -h

# 查看内存使用情况
free -h

# 查找特定进程
ps aux | grep process_name

# 监控网络连接
netstat -tuln

# 查看最近的登录记录
last | head -20

# 查找文件
find /path -name "*.txt"

# 批量重命名
for file in *.txt; do mv "$file" "${file%.txt}.log"; done

# 查看日志文件的最后 100 行
tail -100 /var/log/syslog

命令行最佳实践​

1. 使用手册页​

# 查看命令手册
man command_name

# 查看简化说明
command_name --help

# 查看简短描述
whatis command_name

2. 输出重定向​

# 重定向到文件
command > output.txt

# 追加到文件
command >> output.txt

# 重定向错误
command 2> error.txt

# 同时重定向标准和错误
command > output.txt 2>&1

# 丢弃输出
command > /dev/null 2>&1

3. 管道操作​

# 组合多个命令
command1 | command2 | command3

# 示例:查看最大的 10 个文件
du -ah / | sort -rh | head -10

# 示例:统计行数
cat file.txt | wc -l

4. 环境变量和别名​

# 创建永久别名
echo "alias ll='ls -la'" >> ~/.bashrc
source ~/.bashrc

# 设置环境变量
export PATH=$PATH:/new/directory
echo "export PATH=\$PATH:/new/directory" >> ~/.bashrc

5. 错误处理​

# 检查命令是否成功
command && echo "Success" || echo "Failed"

# 使用 exit code
command
if [ $? -eq 0 ]; then
echo "Command succeeded"
fi

总结​

掌握这些 Linux 命令可以大大提高工作效率。建议:

  1. 从基础命令开始:先熟练掌握 ls, cd, cp, mv, rm, cat 等基本命令
  2. 练习管道和重定向:这是命令行强大的核心功能
  3. 学习正则表达式:配合 grep, sed, awk 使用效果更佳
  4. 查看手册页:man 命令是最好的学习资源
  5. 实践出真知:在实际工作中多使用命令行解决问题

通过不断练习和使用,这些命令会成为您日常工作中的得力助手。