Linux 是开发与运维工作中不可或缺的工具,掌握常用命令能显著提升效率。本篇整理了一些高频使用的命令,覆盖文件操作、系统监控、网络调试等核心场景,适合入门学习或作为日常参考使用。
Linux系统目录结构
Linux采用树形目录结构,以根目录(/)为起点,各个目录有特定的用途:
| 目录 | 描述 |
|---|
| /boot | 存放启动Linux时使用的内核文件、连接文件及镜像文件 |
| /etc | 存放系统所需的配置文件和子目录列表。更改这里的文件可能会导致系统无法启动 |
| /lib | 存放基本代码库,类似于Windows中的DLL文件 |
| /sys | 集成proc、devfs和devpts文件系统的信息,反映内核设备树 |
| /bin | 存放最常用的程序和指令,如ls等 |
| /sbin | 存放只有系统管理员能使用的程序和指令 |
| /dev | 存放Linux的外部设备 |
| /media | 存放识别后的其他设备,如U盘、光驱等 |
| /mnt | 临时挂载其他文件系统的目录 |
| /run | 临时文件系统,存储系统启动以来的信息 |
| /lost+found | 系统非法关机后存放一些文件的目录 |
| /tmp | 存放临时文件的目录 |
| /root | 系统管理员的用户主目录 |
| /home (~) | 用户的主目录,以用户的账号命名 |
| /usr | 存放用户的应用程序和文件,类似于Windows的Program Files目录 |
| /usr/bin | 存放系统用户使用的应用程序与指令 |
| /usr/sbin | 存放超级用户使用的高级管理程序和系统守护程序 |
| /usr/src | 内核源代码的默认放置目录 |
| /var | 存放经常修改的数据,如程序运行的日志文件 |
| /proc | 虚拟目录,管理内存空间,是系统内存的映射 |
| /opt | 存放额外安装的软件 |
| /srv | 存放服务启动后需要提取的数据(不用服务器则为空) |
系统启动过程
- BIOS开机自检
- 按照BIOS设置的启动设备启动
- 操作系统接管硬件,读入/boot 目录下的内核文件
- 运行init进程(系统所有进程的起点)
- sync将内存中的数据与磁盘同步
Linux命令基础
命令格式
| 组成部分 | 描述 | 示例 |
|---|
| 命令 | 要执行的命令或操作 | ls |
| 选项 | 指定命令的具体行为或修改其默认行为 | -l |
| 参数 | 提供命令操作所需的内容或数据(在哪里执行) | /home |
| 命令格式 | command [-options] [parameter1] [parameter2] ... | ls -l /home |
一、最常用命令(日常必用,高频刚需)
命令 | 功能 | 示例 |
ls
| 列出目录内容 | ls -la
|
cd
| 切换目录 | cd /home
|
pwd
| 显示当前路径 | pwd
|
mkdir
| 创建目录 | mkdir new_folder
|
rm
| 删除文件/目录 | rm -rf folder
|
cp
| 复制文件/目录 | cp -r src dest
|
mv
| 移动/重命名 | mv old new
|
touch
| 创建空文件/更新时间戳 | touch file.txt
|
cat
| 查看文件内容 | cat file.txt
|
echo
| 输出文本 | echo "Hello"
|
clear
| 清屏 | clear
|
man
| 查看命令帮助 | man ls
|
exit
| 退出终端 | exit
|
sudo
| 以超级用户执行 | sudo apt update
|
history
| 查看命令历史 | history
|
grep
| 搜索文件内容 | grep "error" log.txt
|
find
| 查找文件 | find / -name "*.conf"
|
head/tail
| 查看文件头/尾 | tail -f log.txt
|
less/more
| 分页查看文件 | less largefile.log
|
tar
| 打包/解压 | tar -xzvf file.tar.gz
|
zip/unzip
| ZIP压缩/解压 | unzip archive.zip
|
chmod
| 修改权限 | chmod 755 script.sh
|
chown
| 修改所有者 | chown user:group file
|
df
| 查看磁盘空间 | df -h
|
du
| 查看目录大小 | du -sh *
|
free
| 查看内存使用 | free -m
|
ps
| 查看进程 | ps aux
|
kill
| 终止进程 | kill -9 PID
|
top/htop
| 实时系统监控 | htop
|
ssh
| 远程登录 | ssh user@host
|
scp
| 安全复制文件 | scp file user@host:/path
|
wget/curl
| 下载文件 | wget http://example.com/file
|
ping
| 测试网络连通性 | ping google.com
|
ifconfig/ip
| 查看网络配置 | ip addr
|
shutdown/reboot
| 关机/重启 | shutdown -h now
|
date
| 查看/设置日期时间 | date
|
whoami
| 显示当前用户名 | whoami
|
hostname
| 显示主机名 | hostname
|
uname
| 显示系统信息 | uname -a
|
which
| 查找命令位置 | which python
|
这40条命令大家务必学会,基本可以覆盖90%日常操作
二、文件与目录操作
命令 | 功能 | 示例 |
rmdir
| 删除空目录 | rmdir empty_dir
|
basename
| 提取文件名 | basename /path/to/file.txt
|
dirname
| 提取目录路径 | dirname /path/to/file.txt
|
stat
| 显示文件详细信息 | stat file.txt
|
file
| 查看文件类型 | file unknown.bin
|
ln
| 创建链接 | ln -s /usr/bin/python python
|
lsblk
| 列出块设备信息 | lsblk
|
fdisk
| 磁盘分区工具 | sudo fdisk -l
|
parted
| 高级分区工具 | sudo parted /dev/sda print
|
mkfs
| 格式化文件系统 | sudo mkfs.ext4 /dev/sdb1
|
fsck
| 检查/修复文件系统 | sudo fsck /dev/sda1
|
blkid
| 查看块设备UUID | blkid
|
mount/umount
| 挂载/卸载文件系统 | mount /dev/sdX1 /mnt
|
sync
| 同步缓存到磁盘 | sync
|
losetup
| 管理loop设备 | sudo losetup -a
|
dd
| 复制/转换文件 | dd if=/dev/zero of=file bs=1M count=100
|
三、文本处理与查看
命令 | 功能 | 示例 |
sed
| 流编辑器(文本替换) | sed 's/old/new/g' file
|
awk
| 文本处理工具(提取列) | awk '{print $1}' file
|
cut
| 按列提取 | cut -d':' -f1 /etc/passwd
|
sort
| 排序 | sort -r file.txt
|
uniq
| 去除重复行 | sort file | uniq -c
|
wc
| 统计行/词/字节数 | wc -l file.txt
|
tr
| 替换/删除字符 | echo "abc" | tr 'a-z' 'A-Z'
|
diff
| 比较文件差异 | diff file1 file2
|
patch
| 应用补丁 | patch < patchfile
|
comm
| 比较两个排序文件的共同行 | comm file1 file2
|
paste
| 按列合并文件 | paste file1 file2
|
join
| 按公共字段连接文件 | join file1 file2
|
split
| 拆分文件 | split -l 1000 bigfile
|
csplit
| 按上下文拆分 | csplit file /pattern/
|
expand/unexpand
| 转换Tab/空格 | expand -t 4 file.txt
|
gzip/gunzip
| GNU压缩/解压 | gzip file.txt
|
bzip2/bunzip2
| 更高压缩比 | bzip2 file.txt
|
xz/unxz
| 高压缩率 | xz -z file.txt
|
zcat/zless
| 查看压缩文件内容 | zcat file.gz
|
rev
| 反转行内容 | echo "hello" | rev
|
shuf
| 随机排列行 | shuf file.txt
|
四、网络相关命令
命令 | 功能 | 示例 |
ifconfig/ip
| 网络配置(已列) | ip addr
|
ping
| 连通性测试(已列) | ping 8.8.8.8
|
wget/curl
| 下载工具(已列) | curl -O http://file
|
ssh
| 远程登录(已列) | ssh user@host
|
scp
| 安全复制(已列) | scp file user@host:path
|
netstat/ss
| 查看网络连接 | ss -tuln
|
dig
| DNS查询 | dig example.com
|
nslookup
| 域名解析 | nslookup google.com
|
traceroute
| 追踪路由路径 | traceroute 8.8.8.8
|
mtr
| 网络诊断组合工具 | mtr google.com
|
telnet
| 测试端口连通 | telnet host 80
|
nmap
| 网络扫描 | nmap -sP 192.168.1.0/24
|
tcpdump
| 抓包分析 | sudo tcpdump -i eth0
|
arp
| 查看ARP缓存 | arp -a
|
route
| 查看路由表 | route -n
|
nc
| 网络连接测试 | nc -zv host 22
|
rsync
| 远程同步文件 | rsync -avz source/ user@host:dest/
|
iptables/ufw
| 防火墙配置 | sudo ufw allow 80
|
hostname
| 查看/设置主机名 | hostname
|
nmcli
| 管理网络连接 | nmcli connection show
|
五、进程与系统管理
命令 | 功能 | 示例 |
ps
| 查看进程(已列) | ps auxf
|
kill
| 终止进程(已列) | kill -9 PID
|
top/htop
| 系统监控(已列) | htop
|
jobs
| 查看后台作业 | jobs -l
|
fg/bg
| 前后台作业切换 | fg %1
|
nohup
| 后台持久运行 | nohup ./script &
|
pkill/pgrep
| 按名杀/查进程 | pkill -f python
|
nice/renice
| 设置进程优先级 | nice -n 10 ./task
|
watch
| 周期性执行命令 | watch -n 2 'ps aux'
|
uptime
| 查看系统负载 | uptime
|
vmstat
| 虚拟内存统计 | vmstat 2
|
iostat
| I/O设备统计 | iostat -x 2
|
sar
| 系统活动报告 | sar -u 5
|
strace
| 跟踪系统调用 | strace -p PID
|
ltrace
| 跟踪库函数调用 | ltrace ./program
|
gdb
| GNU调试器 | gdb ./program
|
perf
| 性能分析工具 | perf stat ./program
|
六、用户与权限管理
命令 | 功能 | 示例 |
chmod
| 修改权限(已列) | chmod 755 file
|
chown
| 修改所有者(已列) | chown user:group file
|
sudo
| 提权执行(已列) | sudo command
|
useradd/userdel
| 添加/删除用户 | sudo useradd newuser
|
passwd
| 修改密码 | passwd username
|
id
| 显示用户ID/组 | id
|
groups
| 显示用户所属组 | groups username
|
su
| 切换用户 | su - root
|
who/w
| 查看登录用户 | w
|
last
| 查看登录历史 | last -n 10
|
lastlog
| 查看最后登录时间 | lastlog
|
whoami
| 当前用户名(已列) | whoami
|
七、压缩与归档
命令 | 功能 | 示例 |
tar
| 打包/解包(已列) | tar -czvf archive.tar.gz dir/
|
zip/unzip
| ZIP压缩(已列) | unzip archive.zip
|
gzip/gunzip
| GNU压缩 | gzip file.txt
|
bzip2/bunzip2
| 高压缩比 | bzip2 file.txt
|
xz/unxz
| 高压缩率 | xz -k file.txt
|
7z
| 7-Zip压缩 | 7z a archive.7z dir/
|
zcat/zless
| 查看压缩文件 | zless file.gz
|
八、环境变量与Shell内置
命令 | 功能 | 示例 |
env
| 显示环境变量 | env
|
export
| 设置/导出变量 | export PATH=$PATH:/new
|
alias
| 创建命令别名 | alias ll='ls -alF'
|
unalias
| 删除别名 | unalias ll
|
source
(或. ) | 加载配置文件 | source ~/.bashrc
|
read
| 读取用户输入 | read var
|
shift
| 移位参数位置 | shift 2
|
set
| 设置shell选项 | set -x
(调试模式) |
unset
| 删除变量/函数 | unset var
|
type
| 查看命令类型 | type ls
|
九、特殊符号与管道组合
符号 | 功能 | 示例 |
|
| 管道传递输出 | ps aux | grep ssh
|
>
| 重定向输出(覆盖) | echo log > file
|
>>
| 重定向输出(追加) | echo log >> file
|
2>
| 重定向错误输出 | cmd 2> error.log
|
&>
| 重定向所有输出 | cmd &> output.log
|
<
| 重定向输入 | sort < file.txt
|
&&
| 前成功才执行后 | make && make install
|
||
| 前失败才执行后 | cmd || echo "Failed"
|
;
| 顺序执行多条命令 | cd /tmp; ls
|
$(...)
| 命令替换 | echo $(date)
|
\``(反引号) | 旧式命令替换 | `` echo
date` `` | |
\
| 转义/续行符 | echo "Hello \\"World\\""
|
<<
(HereDoc) | 内联输入文档 | cat << EOF > file
|
十、脚本与任务调度
命令 | 功能 | 示例 |
cron/crontab
| 定时任务 | crontab -e
|
sleep
| 延迟执行 | sleep 5
|
trap
| 信号捕获 | trap 'echo Exit' EXIT
|
xargs
| 转换标准输入为参数 | ls | xargs rm
|
yes
| 自动确认输出 | yes | apt install package
|
time
| 测量执行时间 | time ls -R
|
seq
| 生成数字序列 | seq 1 10
|
tee
| 同时输出到文件和屏幕 | echo log | tee -a file
|
script
| 记录终端会话 | script session.log
|
screen/tmux
| 终端复用器 | tmux new -s session
|
十一、系统信息与硬件
命令 | 功能 | 示例 |
uname
| 系统信息(已列) | uname -a
|
hostname
| 主机名(已列) | hostname
|
uptime
| 运行时间(已列) | uptime
|
date
| 日期时间(已列) | date
|
cal
| 显示日历 | cal 2026
|
bc
| 命令行计算器 | echo "5*6" | bc
|
factor
| 分解质因数 | factor 123456
|
lscpu
| CPU架构信息 | lscpu
|
lshw
| 硬件配置详情 | sudo lshw -short
|
lsusb
| USB设备列表 | lsusb
|
lspci
| PCI设备列表 | lspci | grep VGA
|
dmidecode
| 硬件DMI信息 | sudo dmidecode -t memory
|
hwclock
| 硬件时钟 | sudo hwclock --show
|
十二、安全与加密
命令 | 功能 | 示例 |
ssh-keygen
| 生成SSH密钥对 | ssh-keygen -t rsa
|
openssl
| 加密/解密工具 | openssl enc -aes-256-cbc -in file
|
gpg
| 加密/签名工具 | gpg -c file.txt
|
md5sum/sha256sum
| 计算文件校验和 | sha256sum file.iso
|
十三、其他实用工具
命令 | 功能 | 示例 |
clear
| 清屏(已列) | clear
|
reset
| 重置终端 | reset
|
yes
| 输出重复字符串(已列) | yes | command
|
shuf
| 随机排列 | shuf -n 1 file.txt
|
factor
| 质因数分解 | factor 100
|
rev
| 反转字符串 | echo "hello" | rev
|
watch
| 周期性执行(已列) | watch -n 1 date
|
附录1:Shell内置命令速查
命令 | 功能 |
source
(或. ) | 在当前shell中执行脚本 |
exec
| 替换当前shell进程 |
export
| 设置环境变量 |
read
| 从标准输入读取 |
shift
| 移动位置参数 |
set
| 设置/取消shell选项 |
unset
| 删除变量或函数 |
type
| 显示命令类型 |
ulimit
| 设置资源限制 |
附录2:常用快捷键
快捷键 | 功能 |
Ctrl+C
| 终止当前命令 |
Ctrl+Z
| 暂停当前命令 |
Ctrl+D
| 退出终端(EOF) |
Ctrl+L
| 清屏(等同于clear) |
Ctrl+A
| 跳到行首 |
Ctrl+E
| 跳到行尾 |
Ctrl+U
| 删除光标前所有字符 |
Ctrl+K
| 删除光标后所有字符 |
Tab
| 自动补全 |
↑/↓
| 历史命令切换 |
本指南中的命令在以下主流 Linux 发行版上经过验证:
发行版 | 适用性 | 说明 |
Ubuntu | 完全适用 | 使用apt包管理器,默认 Shell 为bash |
CentOS | 完全适用 | 使用yum/dnf包管理器,默认 Shell 为bash |
Kali Linux | 完全适用 | 使用apt包管理器,默认 Shell 为zsh,预装大量安全工具 |
注意:虽然所有命令都能在上述系统上运行,但在以下方面存在差异:
- 软件包管理:Ubuntu/Kali 使用
apt,CentOS 使用yum或dnf - 服务管理:各发行版的服务名称可能不同(如防火墙:Ubuntu 用
ufw,CentOS 用firewalld) - 预装软件:Kali 预装大量渗透测试工具,Ubuntu/CentOS 需自行安装
- 默认 Shell:Ubuntu/CentOS 默认
bash,Kali 默认zsh(向下兼容bash命令)
建议:使用前可通过man <命令名>查看当前系统下的详细用法。