Linux操作命令(二)

一、复制、移动命令

1. cp 复制命令

核心功能:复制文件 / 目录,是 Linux 最常用的文件操作命令之一。

表格

命令格式功能说明示例
cp 源文件 目标文件复制单个文件,可重命名cp a.txt b.txt(复制 a.txt 为 b.txt)
cp 源文件 目标目录复制文件到指定目录cp a.txt /home/user/(复制 a.txt 到 user 目录)
cp -r 源目录 目标目录递归复制整个目录(含子文件)cp -r test/ backup/(复制 test 目录到 backup)
cp -a 源 目标保留文件权限、属性、链接完整复制cp -a /data/ /backup/(备份数据目录)

教学重点

  • 必须强调 -r 参数:复制目录时必须加 -r,否则会报错;
  • 覆盖提醒:若目标文件已存在,默认直接覆盖,可加 -i 参数开启覆盖提示(cp -i a.txt b.txt)。

2. mv 移动 / 重命名命令

核心功能:移动文件 / 目录,或直接重命名文件(同一目录下移动 = 重命名)。

表格

命令格式功能说明示例
mv 源文件 目标文件重命名文件mv old.txt new.txt(将 old.txt 重命名为 new.txt)
mv 源文件 目标目录移动文件到指定目录mv a.txt /home/user/(移动 a.txt 到 user 目录)
mv 源目录 目标目录移动 / 重命名目录(无需 - r)mv test/ new_test/(重命名 test 目录)

教学重点

  • mv 移动目录不需要 -r,和 cp 形成对比;
  • 同样支持 -i 参数,防止误覆盖文件。

二、查看命令

1. 基础查看命令回顾 + 进阶

表格

命令功能适用场景
cat 文件名查看文件全部内容短文件快速查看
more 文件名分页查看,向下翻页(空格 / 回车)长文件逐页浏览,无法回退
less 文件名分页查看,支持上下翻页、搜索大文件最优选择(/关键词 搜索,n 下一个,N 上一个)
head -n 数字 文件名查看文件前 n 行快速看文件开头(head -10 a.txt 看前 10 行)
tail -n 数字 文件名查看文件后 n 行查看日志末尾(tail -f 日志文件 实时监控日志更新)

教学重点

  • 重点讲解 lesstail -fless 是大文件查看的标准工具,tail -f 是运维排查日志的核心命令;
  • 补充 grep 过滤查看:cat 文件名 | grep "关键词",快速筛选文件中包含关键词的行。

三、解压、压缩命令(核心:tar 命令)

1. tar 命令核心参数

tar 是 Linux 最通用的打包 / 压缩工具,核心参数如下:

表格

参数全称功能
-ccreate创建新的压缩包(打包)
-xextract解压压缩包
-zgzip使用 gzip 格式压缩 / 解压(.tar.gz
-jbzip2使用 bzip2 格式压缩 / 解压(.tar.bz2
-vverbose显示操作过程(可选,方便查看进度)
-ffile指定压缩包文件名(必须放在最后

2. 常用命令示例

(1)压缩打包

bash

运行

# 打包为tar.gz格式(最常用)
tar -zcvf 压缩包名.tar.gz 要压缩的文件/目录
# 示例:打包test目录为test.tar.gz
tar -zcvf test.tar.gz test/

# 打包为tar.bz2格式(压缩率更高,速度慢)
tar -jcvf 压缩包名.tar.bz2 要压缩的文件/目录

(2)解压

bash

运行

# 解压tar.gz格式(最常用)
tar -zxvf 压缩包名.tar.gz
# 解压到指定目录(加-C参数)
tar -zxvf test.tar.gz -C /home/user/

# 解压tar.bz2格式
tar -jxvf 压缩包名.tar.bz2

教学重点

  • 强调 -f 必须在最后,否则命令失效;
  • 区分 .tar.gz-z)和 .tar.bz2-j)的参数差异;
  • 补充 tar -tf 压缩包名:查看压缩包内的文件列表,无需解压。

3. 其他常用压缩命令(补充)

表格

命令格式示例
zip/unzip.zip(跨平台通用)zip -r test.zip test/ 压缩;unzip test.zip 解压
gzip/gunzip.gz(单文件压缩)gzip a.txt 压缩;gunzip a.txt.gz 解压

四、管道命令 |

1. 核心原理

管道符 | 的作用:将前一个命令的输出,作为后一个命令的输入,实现命令的组合,完成复杂的文本处理。语法格式:命令1 | 命令2 | 命令3 ...


2. 经典实操示例

(1)结合grep筛选内容

bash

运行

# 查看a.txt中包含"hello"的行
cat a.txt | grep "hello"

# 查看系统中所有java进程
ps -ef | grep java

(2)结合more/less分页查看

bash

运行

# 查看长文件,分页浏览
cat long_file.txt | less

# 查看系统所有进程,分页查看
ps -ef | more

(3)结合head/tail取指定行

bash

运行

# 查看文件前20行,再取最后5行(即16-20行)
cat a.txt | head -20 | tail -5

(4)结合wc统计内容

bash

运行

# 统计a.txt的行数
cat a.txt | wc -l

# 统计系统中nginx进程的数量
ps -ef | grep nginx | wc -l

注意:

  • 管道符只处理标准输出,错误输出不会被传递;

  • 强调 “命令串联” 的思想:用简单命令组合实现复杂功能,是 Linux 命令的核心精髓。