(一) 复制和移动
| 命令 | 特点 |
|---|
cp | 复制文件或目录 |
cp file1 file2 | 将 file1 复制为 file2 |
cp -r | 递归复制整个目录 |
cp -i | 覆盖前提示确认(交互式) |
cp -v | 显示复制过程(详细模式) |
mv | 移动文件或重命名 |
mv file1 file2 | 重命名 file1 为 file2 |
mv file dir/ | 将文件移动到目录中 |
mv -i | 覆盖前提示确认 |
mv -v | 显示移动过程 |
(二) 查看文件内容
| 命令 | 特点 |
|---|
cat | 显示整个文件内容,适合小文件 |
cat -n | 显示行号 |
more | 分页显示,只能向下翻页(空格翻页,q退出) |
less | 更强大,可上下翻页(PgUp/PgDn,/搜索) |
head | 默认显示文件前10行 |
head -n 20 | 显示前20行 |
tail | 默认显示文件后10行 |
tail -f | 实时跟踪文件更新(常用于查看日志) |
tail -n 20 | 显示后20行 |
wc | 统计行数、单词数、字符数 |
wc -l | 只统计行数 |
(三) 输出重定向
| 符号 | 特点 |
|---|
> | 将输出写入文件(覆盖原内容) |
>> | 将输出追加到文件末尾 |
2> | 重定向错误输出 |
2>> | 追加错误输出 |
&> | 重定向所有输出(标准输出和错误) |
< | 将文件内容作为命令输入 |
示例:
ls > list.txt
echo "hello" >> log.txt
cat < file.txt
command 2> error.log
(四) 管道运算符
特点:
- 可组合多个命令,实现复杂功能
- 数据流式处理,不产生中间文件
- 节省磁盘空间,提高效率
示例:
ls -l | grep ".txt"
cat file.txt | wc -l
ps aux | grep nginx
dmesg | tail -20
history | grep ssh
(五) 压缩和解压缩
| 命令 | 特点 |
|---|
tar | 打包工具(不压缩) |
tar -cvf archive.tar dir/ | 创建tar包(c创建,v显示过程,f指定文件) |
tar -xvf archive.tar | 解包tar文件(x解包) |
tar -tvf archive.tar | 查看tar包内容(t列出) |
gzip压缩:
| 命令 | 特点 |
|---|
gzip file | 压缩文件(生成file.gz,原文件删除) |
gzip -d file.gz | 解压gzip文件 |
gunzip file.gz | 同gzip -d,解压文件 |
gzip -l file.gz | 查看压缩文件信息 |
tar + gzip组合:
| 命令 | 特点 |
|---|
tar -czvf archive.tar.gz dir/ | 创建tar.gz压缩包(z表示gzip压缩) |
tar -xzvf archive.tar.gz | 解压tar.gz包 |
tar -tzvf archive.tar.gz | 查看压缩包内容 |
其他压缩工具:
| 命令 | 特点 |
|---|
zip -r archive.zip dir/ | 创建zip压缩包 |
unzip archive.zip | 解压zip文件 |
bzip2 file | bzip2压缩(压缩率更高,速度较慢) |
bunzip2 file.bz2 | 解压bzip2文件 |
tar -cjvf archive.tar.bz2 dir/ | 创建tar.bz2压缩包(j表示bzip2) |
常用组合示例
find . -name "*.log" | xargs tar -czvf logs.tar.gz
tar -tzvf archive.tar.gz | grep "keyword"
ps aux | gzip > process.txt.gz
gunzip -c file.gz | head -20