Linux操作系统命令(二)

0 阅读3分钟

(一) 复制和移动

命令特点
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          # 将ls结果保存到文件
echo "hello" >> log.txt # 追加内容
cat < file.txt         # 将file.txt作为cat的输入
command 2> error.log   # 将错误信息保存到文件

(四) 管道运算符

符号特点
|将一个命令的输出作为另一个命令的输入

特点:

  • 可组合多个命令,实现复杂功能
  • 数据流式处理,不产生中间文件
  • 节省磁盘空间,提高效率

示例:

ls -l | grep ".txt"     # 列出所有txt文件
cat file.txt | wc -l    # 统计文件行数
ps aux | grep nginx     # 查找nginx进程
dmesg | tail -20        # 查看最后20条系统日志
history | grep ssh      # 查找历史命令中包含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 filebzip2压缩(压缩率更高,速度较慢)
bunzip2 file.bz2解压bzip2文件
tar -cjvf archive.tar.bz2 dir/创建tar.bz2压缩包(j表示bzip2)

常用组合示例

# 查找所有log文件并打包压缩
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