1. ls
– 列出目录内容
-
用途:查看目录中的文件和子目录信息。
-
语法:
ls [选项] [目录路径]
-
常用选项:
-l
:以长格式显示详细信息(权限、所有者、大小、修改时间等)。-a
:显示所有文件(包括隐藏文件,以.
开头的文件)。-h
:以易读格式显示文件大小(如2K
、1.5M
)。-t
:按修改时间排序(最新文件在前)。
-
示例:
ls -lah /var/log # 查看/var/log下所有文件的详细信息(含隐藏文件)
输出示例:
drwxr-xr-x 2 root root 4.0K Aug 10 09:00 apt -rw-r--r-- 1 root root 1.2M Aug 11 12:34 syslog
2. cd
– 切换目录
-
用途:进入指定目录。
-
语法:
cd [目录路径]
-
特殊符号:
cd ~
或cd
:返回当前用户的家目录(如/home/user
)。cd ..
:返回上级目录。cd -
:返回上一次所在的目录。
-
示例:
cd /etc/nginx # 进入/etc/nginx目录 cd .. # 返回上一级(/etc)
3. cp
– 复制文件/目录
-
用途:复制文件或目录到目标位置。
-
语法:
cp [选项] 源文件 目标路径
-
常用选项:
-r
:递归复制目录(复制目录及其内容)。-i
:覆盖前提示确认。-v
:显示复制过程(verbose)。
-
示例:
cp -rv /data/backup /mnt/backup # 递归复制/data/backup到/mnt/backup,并显示过程
-
注意事项:
若目标路径已存在同名文件,默认会直接覆盖!建议重要操作前先备份。
4. mv
– 移动/重命名文件
-
用途:移动文件/目录到新位置,或重命名文件/目录。
-
语法:
mv [选项] 源文件 目标路径
-
行为差异:
- 移动:当目标路径是目录时,将文件移动到该目录。
- 重命名:当目标路径是文件名时,直接重命名。
-
示例:
mv old_report.txt new_report.txt # 重命名文件 mv *.log /var/log/archive/ # 移动所有.log文件到/var/log/archive
5. rm
– 删除文件/目录
-
用途:删除文件或目录(谨慎使用!)。
-
语法:
rm [选项] 文件或目录
-
常用选项:
-r
:递归删除目录及其内容。-f
:强制删除(忽略不存在的文件,不提示确认)。
-
示例:
rm -rf /tmp/cache # 强制删除/tmp/cache目录及其所有内容
-
危险操作:
rm -rf /
会删除根目录下的所有文件(系统毁灭性操作!)。rm -rf /*
命令会删除根目录下的所有文件和子目录,这包括系统中所有的文件和目录。因此,这个命令会导致系统崩溃,因为它会删除一些系统必需的文件和目录,这可能会导致无法启动系统或者系统功能受到极大的破坏。这个命令是非常危险的,除非你知道自己在做什么,否则不要使用!!! -
建议:
-
删除前用
ls
确认路径。 -
使用
trash-cli
工具替代(将文件移至回收站):sudo apt install trash-cli # 安装 trash-put file.txt # 删除到回收站
-
6. find
– 搜索文件
-
用途:根据名称、类型、时间等条件搜索文件。
-
语法:
find [搜索路径] [匹配条件] [操作]
-
常用条件:
-name "*.log"
:按名称匹配(支持通配符*
)。-type f
:仅搜索文件(d
表示目录)。-mtime +7
:搜索修改时间超过7天的文件。
-
示例:
# 查找/home下所有大于10MB的.log文件并删除 find /home -name "*.log" -size +10M -exec rm {} \; # 查找30天前修改的文件并压缩备份 find /var/log -type f -mtime +30 -exec gzip {} \;
7. chmod
– 修改文件权限
-
用途:控制文件/目录的读(
r
)、写(w
)、执行(x
)权限。 -
权限表示:
- 符号模式:
u
(所有者)、g
(所属组)、o
(其他用户)
示例:chmod u+x script.sh
(给所有者添加执行权限)。 - 数字模式:三组数字分别对应所有者、组、其他用户的权限。
权限计算:r=4
,w=2
,x=1
(如755
=rwxr-xr-x
)。
- 符号模式:
-
示例:
chmod 644 config.conf # 所有者可读写,其他人只读 chmod u+x backup.sh # 允许所有者执行脚本
8. chown
– 修改文件所有者
-
用途:更改文件/目录的所有者或所属组。
-
语法:
chown [用户]:[组] 文件或目录
-
示例:
chown alice:developers app.py # 将app.py所有者设为alice,组设为developers chown -R www-data:www-data /var/www # 递归修改/var/www下所有文件的所有者和组
9. tar
– 打包与压缩文件
-
用途:将多个文件/目录打包为单个文件(支持压缩)。
-
常用选项:
-c
:创建新归档文件。-x
:解压归档文件。-z
:使用 gzip 压缩/解压(文件后缀.tar.gz
)。-v
:显示处理过程。-f
:指定归档文件名。
-
示例:
# 打包并压缩目录 tar -czvf backup.tar.gz /data # 解压到当前目录 tar -xzvf backup.tar.gz # 解压到指定目录 tar -xzvf backup.tar.gz -C dir/ # 仅查看压缩包内容(不解压) tar -tzvf backup.tar.gz
10.zip
压缩后的文件后缀名为 .zip。
与 gzip 或 bzip2 不同,zip 可以压缩多个文件或整个目录,并保留文件的目录结构。
zip 在跨平台(如 Windows、macOS)上也广泛支持。
语法
zip [options] output.zip file1 file2 ...
output.zip
:生成的压缩文件名。file1 file2 ...
:要压缩的文件或目录。
options 参数选项:
-r
:递归压缩目录及其子目录中的所有文件。-e
:为压缩文件设置密码保护。-q
:静默模式,不显示压缩过程。-v
:显示详细的压缩过程。-x
:排除某些文件或目录,不进行压缩。-m
:压缩后删除原始文件。-0
到-9
:指定压缩级别,-0
表示存储不压缩,-9
表示最高压缩率,默认是-6
。
实例
压缩单个文件
zip archive.zip example.txt
此命令会将 example.txt 压缩为 archive.zip。
压缩多个文件
zip archive.zip file1.txt file2.txt file3.txt
此命令会将 file1.txt、file2.txt 和 file3.txt 压缩到 archive.zip 中。
递归压缩目录
zip -r archive.zip directory/
此命令会递归压缩 directory 目录及其子目录中的所有文件,并保留目录结构。
压缩并设置密码保护
zip -e archive.zip file.txt
此命令会压缩 file.txt 并设置密码保护,解压时需要输入密码。
排除特定文件
zip -r archive.zip directory/ -x "*.log"
此命令会压缩 directory/ 目录下的所有文件,但排除所有 .log 文件。
压缩后删除原始文件
zip -m archive.zip file.txt
此命令会将 file.txt 压缩为 archive.zip,并删除原始文件 file.txt。
解压缩文件
使用 unzip 命令来解压缩 .zip 文件:
unzip archive.zip
这会将 archive.zip 文件解压缩到当前目录,保留原始目录结构和文件。
小贴士:文件操作安全实践
-
备份重要文件:
cp critical_file.txt{,.bak} # 快速备份(生成critical_file.txt.bak)
-
确认路径后再删除:
ls -l /path/to/delete # 先查看 rm -rf /path/to/delete # 再删除
-
使用
file
命令检查文件类型:file unknown_file # 输出文件类型(如文本、二进制、压缩包等)