文件与目录管理
命令 | 功能描述 | 核心示例 |
---|---|---|
ls -lha |
以人类可读的详细格式,列出所有文件(包括隐藏文件)。 | ls -lha |
cd [目录] |
切换工作目录。 | cd /var/log 或 cd .. |
pwd |
显示当前工作目录的绝对路径。 | pwd |
mkdir -p [目录] |
递归创建目录。 | mkdir -p /a/b/c |
rm -rf [文件/目录] |
强制递归删除文件或目录 (谨慎使用!)。 | rm -rf ./logs |
cp -r [源] [目标] |
递归复制文件或目录。 | cp -r ./project /backup/ |
mv [源] [目标] |
移动或重命名文件/目录。 | mv a.txt b.txt |
touch [文件名] |
创建空文件或更新文件时间戳。 | touch new.file |
ln -s [源文件] [链接名] |
创建一个符号链接(软链接)。 | ln -s /usr/bin/python3 /usr/bin/python |
stat [文件] |
显示文件或文件系统的详细状态信息。 | stat index.html |
du -sh [目录] |
查看目录的总大小。 | du -sh ./* |
df -h |
以易读格式显示磁盘空间使用情况。 | df -h |
文件内容查看与处理
命令 | 功能描述 | 核心示例 |
---|---|---|
cat [文件] |
查看文件全部内容。 | cat /etc/hosts |
less [文件] |
分页查看文件内容 (可上下滚动、搜索)。 | less large.log |
head -n [行数] [文件] |
查看文件头部指定行数的内容。 | head -n 20 error.log |
tail -n [行数] [文件] |
查看文件尾部指定行数的内容。 | tail -n 50 access.log |
tail -f [文件] |
实时追踪文件末尾的新增内容。 | tail -f /var/log/syslog |
grep -rin "模式" [路径] |
在文件中递归、不区分大小写地搜索文本并显示行号。 | grep -rin "error" . |
sed |
流编辑器,用于对文本进行替换、删除、插入等操作。 | sed 's/old/new/g' file.txt |
awk |
强大的文本分析工具,常用于按列处理数据。 | awk '{print $1, $3}' data.txt |
wc -l |
统计文件的行数。 | `cat file.txt |
sort |
对文本行进行排序。 | sort names.txt |
uniq -c |
报告或省略重复的行,并统计次数。 | `sort file.txt |
diff [文件1] [文件2] |
比较两个文件的差异。 | diff config.v1.conf config.v2.conf |
用户与权限管理
命令 | 功能描述 | 核心示例 |
---|---|---|
sudo [命令] |
以超级用户(root)权限执行命令。 | sudo apt update |
su - [用户名] |
切换用户并加载其环境变量。 | su - www-data |
chmod [权限] [文件] |
修改文件或目录的权限。 | chmod 755 script.sh |
chown -R [用户]:[组] [目录] |
递归地修改文件或目录的所有者和所属组。 | chown -R nginx:nginx /var/www/html |
passwd [用户名] |
修改用户密码。 | passwd user1 |
whoami |
显示当前登录的用户名。 | whoami |
id [用户名] |
显示用户的ID和所属组的ID。 | id ubuntu |
系统信息与性能监控
命令 | 功能描述 | 核心示例 |
---|---|---|
top |
实时动态地监视系统进程状态。 | top |
htop |
top 的增强版,交互式进程查看器。 |
htop |
free -h |
以易读格式显示内存使用情况。 | free -h |
ps aux |
显示所有用户的所有进程的详细信息。 | `ps aux |
uname -a |
显示所有系统信息(内核版本、主机名等)。 | uname -a |
lscpu |
显示 CPU 架构信息。 | lscpu |
lsblk |
列出块设备信息(磁盘和分区)。 | lsblk |
uptime |
显示系统已运行时间、登录用户数和负载。 | uptime |
vmstat |
报告虚拟内存统计信息。 | vmstat 1 (每秒更新) |
iostat |
报告 CPU 统计信息和输入/输出统计信息。 | iostat -xz 1 |
进程管理
命令 | 功能描述 | 核心示例 |
---|---|---|
kill [PID] |
终止指定 PID 的进程(默认发送 SIGTERM 信号 15)。 | kill 12345 |
kill -9 [PID] |
强制终止指定 PID 的进程(SIGKILL 信号 9)。 | kill -9 12345 |
pkill [进程名] |
根据进程名终止进程。 | pkill nginx |
killall [进程名] |
杀死所有同名进程。 | killall chrome |
jobs |
显示在后台运行的作业。 | jobs |
bg |
将一个暂停的作业转到后台运行。 | bg %1 |
fg |
将一个后台作业切换到前台运行。 | fg %1 |
nohup [命令] & |
在后台运行命令,即使用户登出也不中断。 | nohup ./my_long_script.sh & |
网络通信
命令 | 功能描述 | 核心示例 |
---|---|---|
ping [主机] |
测试与目标主机的网络连通性。 | ping google.com |
ip a 或 ip addr |
显示和管理网络接口地址。 | ip a |
ip r 或 ip route |
显示和管理路由表。 | ip r |
ssh [用户]@[主机] |
安全地远程登录到另一台主机。 | ssh user@192.168.1.1 |
scp [源] [目标] |
在本地和远程主机之间安全地复制文件。 | scp file.txt user@host:/remote/path/ |
wget [URL] |
从网络上下载文件。 | wget https://example.com/file.zip |
curl [URL] |
发送网络请求,可用于下载、API测试等。 | curl -L google.com |
netstat -tunlp |
显示所有监听的 TCP/UDP 端口及对应的程序。 | sudo netstat -tunlp |
ss -tunlp |
netstat 的替代品,功能类似但更快速。 |
sudo ss -tunlp |
nslookup [域名] |
查询域名解析信息。 | nslookup google.com |
dig [域名] |
更强大的域名解析查询工具。 | dig @8.8.8.8 google.com |
软件包管理
系统 | 功能 | 命令 |
---|---|---|
Debian/Ubuntu (APT) | 更新软件包列表 | sudo apt update |
升级所有包 | sudo apt upgrade |
|
安装软件包 | sudo apt install [包名] |
|
卸载软件包 | sudo apt remove [包名] |
|
CentOS/Fedora (YUM/DNF) | 检查更新 | sudo dnf check-update |
升级所有包 | sudo dnf upgrade |
|
安装软件包 | sudo dnf install [包名] |
|
卸载软件包 | sudo dnf remove [包名] |
压缩与归档
命令 | 功能描述 | 核心示例 |
---|---|---|
tar -czvf [归档名] [目录] |
创建一个 gzip 压缩的 tar 归档。 | tar -czvf archive.tar.gz ./logs |
tar -xzvf [归档名] |
解压一个 gzip 压缩的 tar 归档。 | tar -xzvf archive.tar.gz |
tar -cjvf [归档名] [目录] |
创建一个 bzip2 压缩的 tar 归档。 | tar -cjvf archive.tar.bz2 ./logs |
tar -xjvf [归档名] |
解压一个 bzip2 压缩的 tar 归档。 | tar -xjvf archive.tar.bz2 |
zip -r [归档名.zip] [目录] |
递归地创建 zip 压缩文件。 | zip -r archive.zip ./images |
unzip [归档名.zip] |
解压 zip 文件。 | unzip archive.zip |
Shell 控制与脚本
符号/命令 | 功能描述 | 核心示例 |
---|---|---|
` | ` | 管道:将前一个命令的输出传给后一个命令。 |
> |
输出重定向 (覆盖):将输出写入文件。 | ls -l > file_list.txt |
>> |
输出重定向 (追加):将输出追加到文件末尾。 | echo "log entry" >> app.log |
&& |
逻辑与:前一个命令成功才执行后一个。 | make && make install |
` | ` | |
; |
命令分隔符:顺序执行多个命令。 | cd /tmp; ls |
alias |
为命令创建别名。 | alias ll='ls -lha' |
export |
设置或显示环境变量。 | export PATH=$PATH:/usr/local/bin |
history |
显示历史命令。 | history |
man [命令] |
查看命令的详细手册页。 | man ls |