目录
- 基础导航
- 文件与目录操作
- 查看文件内容
- 用户与权限管理
- 进程管理
- 搜索命令
- 压缩与归档
- 网络相关
- 系统信息
- 其他实用命令
基础导航
这些命令用于在文件系统中移动和查看当前位置。
| 命令 |
全称 |
描述 |
示例 |
pwd |
Print Working Directory |
打印当前所在的工作目录的完整路径。 |
pwd |
ls |
List |
列出当前目录下的文件和子目录。 |
ls
ls -l (长格式,显示详细信息)
ls -a (显示所有文件,包括隐藏文件)
ls -h (与 -l 一起用,以人类可读方式显示大小,如 K, M, G) |
cd |
Change Directory |
切换工作目录。 |
cd /home (切换到 /home 目录)
cd .. (切换到上一级目录)
cd ~ (切换到当前用户的家目录)
cd - (切换到上一个所在的目录) |
文件与目录操作
这些是您最常使用的命令,用于创建、移动、复制和删除文件。
| 命令 |
全称 |
描述 |
示例 |
touch |
- |
创建一个空文件,或更新文件的时间戳。 |
touch newfile.txt (创建名为 newfile.txt 的空文件) |
mkdir |
Make Directory |
创建一个新的目录。 |
mkdir mydir (创建 mydir 目录)
mkdir -p parent/child (递归创建多级目录,即使父目录不存在) |
rm |
Remove |
删除文件或目录。 |
rm file.txt (删除 file.txt 文件)
rm -r mydir (递归删除 mydir 目录及其内容)
rm -f file.txt (强制删除,不提示确认)
rm -rf mydir (强制递归删除,非常危险,请谨慎使用!) |
cp |
Copy |
复制文件或目录。 |
cp source.txt dest.txt (复制 source.txt 为 dest.txt)
cp -r sourcedir destdir (递归复制整个目录) |
mv |
Move |
移动文件/目录,或重命名文件/目录。 |
mv oldname.txt newname.txt (将 oldname.txt 重命名为 newname.txt)
mv file.txt /path/to/directory/ (将 file.txt 移动到指定目录) |
查看文件内容
当您需要查看文件里面有什么时,会用到这些命令。
| 命令 |
全称 |
描述 |
示例 |
cat |
Concatenate |
一次性显示整个文件的内容。 适合查看小文件。 |
cat file.txt |
less |
- |
分页显示文件内容。 可以向上/向下翻页,搜索字符串,退出,适合查看大文件。 |
less largefile.log (按 q 退出) |
head |
- |
显示文件的开头部分。 默认显示前 10 行。 |
head file.txt
head -20 file.txt (显示前 20 行) |
tail |
- |
显示文件的结尾部分。 默认显示后 10 行,常用于查看日志文件的最新更新。 |
tail file.txt
tail -f file.log (实时跟踪文件内容的更新,Ctrl+C 停止) |
用户与权限管理
Unix/Linux 是一个多用户系统,权限管理是其核心。
| 命令 |
全称 |
描述 |
示例 |
chmod |
Change Mode |
修改文件或目录的权限。 |
chmod 755 script.sh (设置权限为 rwxr-xr-x)
chmod +x script.sh (为文件所有者添加可执行权限) |
chown |
Change Owner |
修改文件或目录的所有者。 通常需要 sudo 权限。 |
sudo chown user:group file.txt (将 file.txt 的所有者改为 user,组改为 group) |
su |
Substitute User |
切换到另一个用户。 默认切换到 root。 |
su - (切换到 root 用户,并加载其环境变量)
su - username (切换到指定用户) |
sudo |
Superuser Do |
以超级用户或其他用户的身份执行命令。 |
sudo apt update (在 Debian/Ubuntu 上更新软件包列表)
sudo vi /etc/hosts (以 root 权限编辑 hosts 文件) |
进程管理
在 Unix/Linux 中,几乎 everything 都是一个进程。
| 命令 |
全称 |
描述 |
示例 |
ps |
Process Status |
查看当前运行的进程。 |
ps aux (显示所有用户的详细信息)
ps -ef (显示所有进程,格式更友好) |
top |
- |
动态地实时显示系统中各个进程的资源占用状况。 按 q 退出。 |
top |
kill |
- |
终止一个正在运行的进程。 |
kill 1234 (终止 PID 为 1234 的进程)
kill -9 1234 (强制终止,-9 是 SIGKILL 信号) |
jobs |
- |
查看当前 shell 会话中后台运行的作业。 |
jobs |
bg |
- |
将一个暂停的作业放到后台继续运行。 |
bg %1 (将作业号为 1 的作业放到后台) |
fg |
- |
将一个后台作业调到前台运行。 |
fg %1 (将作业号为 1 的作业调到前台) |
搜索命令
在庞大的系统中快速找到你需要的文件或文本。
| 命令 |
全称 |
描述 |
示例 |
find |
- |
在指定目录及其子目录下递归地搜索文件。 非常强大和灵活。 |
find . -name "*.txt" (在当前目录下查找所有后缀为 .txt 的文件)
find /home -user john (在 /home 目录下查找所有者为 john 的文件) |
grep |
Global Regular Expression Print |
在文件中搜索匹配指定字符串的行。 |
grep "error" /var/log/syslog (在 syslog 文件中搜索包含 "error" 的行)
grep -r "TODO" ./src (在 ./src 目录下递归搜索包含 "TODO" 的行) |
which |
- |
查找并显示给定命令的完整路径。 |
which ls (显示 ls 命令的路径) |
压缩与归档
| 命令 |
全称 |
描述 |
示例 |
tar |
Tape Archive |
用于打包/解包文件。 常与压缩工具结合使用。 |
tar -cvf archive.tar file1 file2 (创建一个名为 archive.tar 的归档文件)
tar -xvf archive.tar (解包 archive.tar)
tar -czvf archive.tar.gz files/ (创建一个并使用 gzip 压缩的归档文件)
tar -xzvf archive.tar.gz (解压一个用 gzip 压缩的归档文件) |
zip / unzip |
- |
创建和解压 .zip 格式的压缩包。 |
zip -r archive.zip directory/ (将 directory 目录及其内容压缩成 archive.zip)
unzip archive.zip (解压 archive.zip) |
网络相关
| 命令 |
全称 |
描述 |
示例 |
ping |
- |
测试与另一台主机的网络连接。 |
ping google.com |
ssh |
Secure Shell |
通过加密的连接安全地登录到远程主机。 |
ssh user@remote_host |
scp |
Secure Copy |
通过 SSH 在本地和远程主机之间安全地复制文件。 |
scp local_file.txt user@remote:/path/to/remote/ (上传)
scp user@remote:/path/to/remote/file.txt ./ (下载) |
curl |
Client URL |
利用 URL 规则在命令行下工作的文件传输工具。 |
curl https://www.example.com (获取网页内容)
curl -O https://www.example.com/file.zip (下载文件) |
wget |
Get Web |
从网络上下载文件。 |
wget https://www.example.com/file.zip |
系统信息
| 命令 |
全称 |
描述 |
示例 |
uname |
Unix Name |
显示系统的基本信息。 |
uname -a (显示所有可用信息,包括内核版本、主机名等) |
df |
Disk Free |
显示文件系统的磁盘空间使用情况。 |
df -h (以人类可读方式显示,如 K, M, G) |
du |
Disk Usage |
显示目录或文件的磁盘使用量。 |
du -sh /home/user (显示 /home/user 目录的总大小,-s: summary, -h: human-readable) |
free |
- |
显示系统内存的使用情况。 |
free -h (以人类可读方式显示) |
其他实用命令
| 命令 |
全称 |
描述 |
示例 |
man |
Manual |
显示命令的手册页。 这是学习命令最权威的方式。 |
man ls (查看 ls 命令的手册) |
echo |
- |
将文本输出到终端。 常用于脚本中。 |
echo "Hello, World!"
echo $PATH (打印 PATH 环境变量) |
history |
- |
显示用户之前执行过的命令历史。 |
history
!100 (执行历史记录中第 100 条命令) |
clear |
- |
清空终端屏幕。 |
clear |
alias |
- |
为命令创建一个别名或快捷方式。 |
alias ll='ls -alF' (创建 ll 命令)
unalias ll (取消别名) |
学习建议
- 动手实践: 不要只看,打开你的终端(macOS/Linux 或 Windows 的 WSL/WSL2),尝试每一个命令。
- 从
man 开始: 当你遇到一个不熟悉的命令时,man <command> 是你最好的朋友。
- 善用通配符: 学习使用 (任意多个字符) 和 (单个字符) 来批量操作文件,
rm *.tmp。
- 组合使用: Unix 命令的威力在于它们的组合。
cat file.txt | grep "error" 会先显示文件内容,然后将内容通过管道 传递给 grep 命令进行过滤。
这份列表涵盖了绝大多数日常使用场景,熟练掌握这些命令,您就已经具备了在 Unix/Linux 环境中高效工作的能力。