文件和目录操作
这是最常用、最核心的命令,几乎每天都会用到。

ls (List)
# 列出当前目录下的文件和文件夹 ls # 列出详细信息(权限、所有者、大小、修改日期等) ls -l # 列出所有文件,包括以 . 开头的隐藏文件 ls -a # 结合 -l 和 -a,显示隐藏文件的详细信息 ls -la # 按文件大小排序,从大到小(-h 以人类可读格式显示大小,如 K, M, G) ls -lhS # 按修改时间排序,最新的在最前面 ls -lt
cd (Change Directory)
切换当前工作目录。
# 进入用户主目录 (等同于 cd ~) cd # 进入指定目录 cd /var/log # 进入上一级目录 cd .. # 进入当前用户的家目录 cd ~ # 进入上一个工作目录 cd -
pwd (Print Working Directory)
显示当前所在的完整路径。
pwd # 输出: /home/username
cp (Copy)
复制文件或目录。
# 复制文件 file1.txt 到 file2.txt cp file1.txt file2.txt # 复制文件到另一个目录 cp file1.txt /path/to/directory/ # 复制整个目录(需要加上 -r 或 -R 递归选项) cp -r /path/to/source_dir /path/to/destination_dir
mv (Move)
移动文件或目录,也用于重命名。

# 移动文件到另一个目录 mv file1.txt /path/to/directory/ # 重命名文件 mv old_name.txt new_name.txt # 移动并重命名 mv /path/to/file1.txt /path/to/new_location/file2.txt # 强制覆盖,不提示(谨慎使用!) mv -f file1.txt file2.txt
rm (Remove)
删除文件或目录。
# 删除文件 rm file1.txt # 强制删除,不提示(非常危险!) rm -f file1.txt # 递归删除目录及其下所有内容(同样危险!) rm -r directory_name # 递归删除并强制,删除目录时不逐一确认(极度危险!) rm -rf directory_name
警告: rm -rf 是 Linux 中最危险的命令之一,一旦执行无法恢复,请务必小心使用。
mkdir (Make Directory)
创建新目录。
# 创建一个新目录 mkdir new_folder # 创建多级嵌套目录(-p 确保父目录存在,不存在则创建) mkdir -p path/to/nested/directory
touch
创建一个空文件,或更新已有文件的时间戳。

# 创建一个空文件 touch new_file.txt
cat (Concatenate)通常用于小文件。
# 在终端中显示 file.txt 的全部内容 cat file.txt # 将 file1.txt 和 file2.txt 的内容合并并输出到 screen.txt cat file1.txt file2.txt > screen.txt
less / more
分页查看文件内容,适用于大文件。
less功能更强大,可以前后翻页、搜索等,推荐使用。more功能较简单,只能向后翻。# 使用 less 查看 file.txt,按 q 退出 less file.txt
在 less 中搜索: 输入 / 关键词,然后按 n 查找下一个,N 查找上一个
#### 11. `head` / `tail`
查看文件的开头或结尾部分。
```bash
# 查看文件的前 10 行
head file.txt
# 查看文件的前 20 行
head -n 20 file.txt
# 查看文件的最后 10 行
tail file.txt
# 查看文件的最后 20 行
tail -n 20 file.txt
# 实时查看文件的最新内容(常用于查看日志)
tail -f /var/log/syslog
find
在目录树中搜索文件。
# 在当前目录及其子目录下查找所有名为 file.txt 的文件 find . -name "file.txt" # 在 /home 目录下查找所有 .log 文件 find /home -name "*.log" # 查找过去 7 天内被修改过的文件 find . -mtime -7 # 查找大于 100MB 的文件 find . -type f -size +100M
文本处理
grep (Global Regular Expression Print)
在文本中搜索匹配的行。
# 在 file.txt 中搜索包含 "error" 的行 grep "error" file.txt # 搜索时忽略大小写 grep -i "Error" file.txt # 显示匹配行的行号 grep -n "error" file.txt # 递归地在当前目录的所有文件中搜索 grep -r "error" .
sed (Stream Editor)
流编辑器,用于对文本进行替换、删除、插入等操作。
# 将 file.txt 中所有的 "old" 替换为 "new"(注意:这会直接修改文件,建议先用 -i.bak 备份) sed 's/old/new/g' file.txt # 安全替换:先备份原文件为 file.txt.bak,再修改 sed -i.bak 's/old/new/g' file.txt # 删除所有包含 "temp" 的行 sed '/temp/d' file.txt
awk
强大的文本分析工具,按列处理文本。
# 打印 file.txt 的第一列
awk '{print $1}' file.txt
# 打印文件中所有包含 "error" 的行的第二列
awk '/error/ {print $2}' file.txt
# 计算文件第一列的总和
awk '{sum += $1} END {print sum}' file.txt
系统信息与管理
top / htop
实时查看系统进程和资源使用情况。
top: 基础版,交互式界面,按q退出。htop: 更强大的版本,彩色显示,更直观,很多系统默认未安装,需用sudo apt install htop(Ubuntu/Debian) 或sudo yum install htop(CentOS/RHEL) 安装。
ps (Process Status)
查看当前运行的进程。
# 显示当前用户的所有进程 ps # 显示所有进程的详细信息 ps -ef # 显示所有进程,并以树状结构显示它们的父子关系 ps -ef --forest
kill / pkill
终止进程。
# 通过 PID (进程ID) 终止进程 kill 12345 # 强制终止进程 kill -9 12345 # 根据进程名终止进程 pkill -f nginx
df (Disk Free)
查看磁盘空间使用情况。
# 查看所有文件系统的磁盘使用情况 df -h # -h 表示以人类可读格式显示 (K, M, G)
du (Disk Usage)
查看目录或文件的磁盘使用量。
# 查看当前目录下每个子目录的大小 du -h # 查看当前目录的总大小 du -sh # -s 表示总结
free
查看内存使用情况。
# 查看内存使用情况,-h 以人类可读格式显示 free -h
uname (Unix Name)
显示系统信息。
# 显示所有信息 uname -a # 只显示内核名称 uname -s
history
查看命令历史记录。
# 显示最近使用的 1000 条命令 history # 执行历史命令中的第 42 条命令 !42
网络相关
ping
测试网络连通性。
# 测试与 baidu.com 的网络连通性 ping baidu.com # 按 Ctrl+C 停止
ifconfig / ip
查看和配置网络接口。
ifconfig: 传统命令,在一些新系统中可能被ip替代。ip: 现代命令,功能更强大。
# 查看所有网络接口的 IP 地址信息 ip addr show # 查看网络路由表 ip route show
netstat / ss
查看网络连接、路由表、接口统计等。
ss是netstat的现代替代品,更快、信息更全。
# 查看所有监听的端口 netstat -tuln # 使用 ss 查看,更推荐 ss -tuln # 查看所有与某个进程相关的网络连接 ss -tulnp | grep nginx
curl / wget
从网络下载文件。
curl: 功能更丰富,可以与服务器进行更多交互。wget: 更专注于下载,支持断点续传。
# 下载网页内容到 stdout curl http://example.com 保存到文件 curl -o example.html http://example.com # 下载文件 wget http://example.com/file.zip
用户和权限管理
chmod (Change Mode)
修改文件或目录的权限。
r(read) = 4w(write) = 2x(execute) = 1u(user),g(group),o(others),a(all)
# 给文件所有者添加执行权限 chmod u+x script.sh # 移除其他用户的写权限 chmod o-w file.txt # 使用数字设置权限:所有者(rw-) = 4+2=6, 组(r--) = 4, 其他(r--) = 4 chmod 644 file.txt # 最常见的文件权限 # 给所有用户添加读、写、执行权限 chmod 777 directory_name # 非常危险,请谨慎使用
chown (Change Owner)
修改文件或目录的所有者。
# 将 file.txt 的所有者改为 user1 sudo chown user1 file.txt # 将 file.txt 的所有者和所属组都改为 user1 sudo chown user1:user1 file.txt
sudo (Superuser Do)
以超级用户(root)的身份执行命令。
# 以 root 身份执行更新命令 sudo apt update
su (Switch User)
切换用户。
# 切换到 root 用户 su - # 切换到其他用户 user1 su - user1
软件包管理
不同发行版使用不同的包管理器。
Debian / Ubuntu (使用 apt)
# 更新软件包列表 sudo apt update # 升级所有已安装的软件包 sudo apt upgrade # 安装软件包 sudo apt install package_name # 删除软件包 sudo apt remove package_name # 搜索软件包 apt search package_name
CentOS / RHEL / Fedora (使用 yum 或 dnf)
# 更新软件包缓存 (yum) sudo yum check-update # 升级所有软件包 (yum) sudo yum update # 安装软件包 (yum) sudo yum install package_name # 更新软件包缓存 (dnf) sudo dnf check-update # 升级所有软件包 (dnf) sudo dnf update # 安装软件包 (dnf) sudo dnf install package_name
压缩与解压
tar
打包或解包文件,通常与 gzip/bzip2/xz 结合使用。
# 打包 directory_name 成 archive.tar tar -cvf archive.tar directory_name # 解包 archive.tar tar -xvf archive.tar # 打包并使用 gzip 压缩 (最常用) tar -czvf archive.tar.gz directory_name # 解包 .tar.gz 文件 tar -xzvf archive.tar.gz # 打包并使用 bzip2 压缩 tar -cjvf archive.tar.bz2 directory_name # 解包 .tar.bz2 文件 tar -xjvf archive.tar.bz2
记忆口诀:
c: 创建 (Create)x: 解压 (eXtract)v: 显示过程 (Verbose)f: 指定文件名 (File)z: gzipj: bzip2J: xz
zip / unzip
处理 .zip 格式的压缩文件。
# 将 directory_name 压缩为 archive.zip zip -r archive.zip directory_name # 解压 archive.zip unzip archive.zip
进程与任务管理
nohup
让命令在后台持续运行,即使用户退出登录。
# 运行 script.sh,并将输出重定向到 nohup.out,即使退出终端,脚本也会继续运行 nohup ./script.sh &
jobs
查看当前终端后台运行的任务。
# 查看后台任务 jobs # 将后台任务调到前台 fg %1 # %1 是任务ID
搜索与查找
which
查找可执行文件的位置。
# 查找 ls 命令的路径 which ls
whereis
查找二进制文件、源码和手册页的位置。
# 查找 ls 的相关信息 whereis ls
关机与重启
# 立即关机 sudo shutdown now # 在指定时间关机 (10 分钟后) sudo shutdown +10 # 取消计划关机 sudo shutdown -c # 立即重启 sudo reboot # 关闭系统并切断电源 sudo halt
总结与建议
- 多练习: 命令行的精髓在于“用”,每天尝试用命令来完成一些简单的操作,比如创建文件、移动文件等。
- 善用
man: 遇到不熟悉的命令,使用man command_name(man ls) 查看它的官方手册页,这是最权威的参考资料。 - 善用
Tab键: 输入命令或文件名的前几个字母,然后按Tab键可以自动补全,大大提高效率。 - 组合使用: Linux 命令的强大之处在于它们可以通过管道符 连接起来,实现复杂的功能。
ps aux | grep nginx可以用来查找 nginx 相关的进程。
希望这份清单对你有帮助!祝你学习愉快!
