前言

刚入门 Linux 时最容易混淆文件、目录操作命令,还有输出重定向、管道符这些核心 IO 概念。本文结合实操截图,系统梳理目录切换、文件创建删除、拷贝移动、文件查看、重定向、管道、时间命令全套基础指令,附带底层原理与踩坑案例,适合零基础入门、复习巩固。

一、基础前置概念

1. 工作目录 pwd

  • 作用:print working directory,打印当前所在绝对路径

  • 实操:

[root@bite-alicloud ~]# pwd
/root
  • 补充:Windows 盘符式路径,Linux 统一以 / 根目录为起点,所有文件都挂载在根下。

2. 切换目录 cd

命令

效果

cd 路径

切换到指定目录(绝对 / 相对路径都支持)

cd ~ / cd

回到当前用户家目录(root 家目录是 /root,普通用户 /home/ 用户名)

cd ..

回到上一级父目录

cd .

当前目录(基本不用,仅在执行本地脚本时使用 ./xxx.sh

cd -

上一次目录和当前目录来回切换

实操示例:

# 绝对路径切换
cd /root/116_117/code
# 返回上级
cd ..
# 快速回家
cd

3. 查看目录内容 ls

基础用法 ls [选项] [目录/文件]

  • ls:列出当前目录文件(仅名称)

  • ls -l:长格式展示,权限、属主、大小、修改时间、文件名

  • ls -a:显示所有文件,包含隐藏文件(以 . 开头的文件,比如 .bashrc

  • ls -lh:人类可读大小(KB/MB 单位)

长格式拆解 drwxr-xr-x 2 root root 4096 May 25 17:53 code

  1. 第一位:文件类型 d= 目录、-= 普通文本、l= 软链接、b/c= 设备文件

  2. 后 9 位:三段读写执行权限(所有者、所属组、其他用户)

  3. 数字:硬链接计数

  4. root root:文件所有者、所属用户组

  5. 4096:文件占用磁盘大小

  6. 最后:修改时间、文件名

二、目录 & 文件增删改操作

1. 创建文件夹 mkdir

  • mkdir test:创建单层目录 test

  • mkdir -p a/b/c/d递归创建多层嵌套目录,不加 -p 上级不存在会报错

2. 创建空文件 touch

touch hello.txt

底层逻辑:

  1. 文件不存在:新建空白普通文件

  2. 文件已存在:更新文件访问 / 修改时间戳,不改动原有内容

3. 删除操作 rm(高危命令)

基础语法 rm [选项] 文件/目录

  1. 删除文件:rm hello.txt,会弹出确认提示 y 确认删除

  2. 强制删除不提示:rm -f hello.txt(f=force 强制)

  3. 删除文件夹(递归删除):

    1. rm -r testdir:递归删除目录,逐层确认

    2. rm -rf testdir:生产常用,强制递归删除目录,无任何确认弹窗

⚠️ 生产红线:禁止执行 rm -rf /rm -rf /*,会清空服务器所有数据!

4. 拷贝 cp

语法 cp [选项] 源文件/源目录 目标位置

  • 复制文件:cp hello.txt /root/code/

  • 复制并重命名:cp hello.txt hello_bak.txt

  • 复制文件夹:必须加 -r 递归参数

cp -r lesson4 lesson4-backup

补充:目标是目录时,源会放进目录内;目标是文件名时,代表拷贝后重命名。

5. 移动 / 重命名 mv

  1. 同目录内 = 重命名:mv hello.txt new_hello.txt

  2. 跨目录移动:mv hello.txt /root/code/

  3. 移动 + 改名一步到位:mv hello.txt /root/code/hello2.txt

mv 相比 cp:仅修改文件路径指针,不复制磁盘数据,速度远快于拷贝。

三、文件内容查看命令

1. cat 读取完整文件

cat hello.txt
# 清空文件(搭配输出重定向)
cat > empty.txt

适用场景:小文件完整查看,大文件不推荐(刷屏)。

2. more / less 分页查看大文件

  • more hello.txt:分页加载,回车翻一行、空格翻一页,看完自动退出

  • less hello.txt:增强版分页,支持上下键滚动、/关键词 搜索,q 手动退出

3. 头尾截取 head / tail

  • head -n 10 hello.txt:读取文件前 10 行,默认不加 -n 输出前 10 行

  • tail -n 10 hello.txt:读取文件末尾 10 行

  • 高频运维用法:tail -f log.txt 实时追踪日志新增内容(看服务运行日志必备)

四、输出重定向(Linux 一切皆文件核心)

底层原理

Linux 硬件设备都被抽象成文件:

  • 标准输出 stdout:终端屏幕,文件描述符 1

  • 标准输入 stdin:键盘,文件描述符 0

  • 标准错误 stderr:错误信息,文件描述符 2

重定向符号:

  1. > 覆盖重定向:清空目标文件,再写入内容

# echo输出文字覆盖写入hello.txt
echo "hello 你好" > hello.txt
  1. >> 追加重定向:文件末尾追加内容,不清空原有数据

echo "新增一行内容" >> hello.txt
  1. < 输入重定向:从文件读取内容代替键盘输入

cat < hello.txt

实操验证:

# 先覆盖写入
echo "第一行" > test.txt
# 追加第二行
echo "第二行" >> test.txt
cat test.txt
# 输出:
# 第一行
# 第二行

五、管道符 |

语法:命令1 | 命令2 逻辑:把命令 1 的标准输出,作为命令 2 的标准输入,数据在内存流转,不落地磁盘。

示例:读取文件 2000 行,只看最后 10 行

head -n 2000 hello.txt | tail -n 10

流程:head 取出前 2000 行 → 通过管道传给 tail → tail 截取末尾 10 行输出到屏幕。

六、时间日期命令 date

1. 基础查看

date
# 输出完整本地时间
Tue Jul 14 16:20:00 CST 2026

2. 格式化输出(常用格式符)

符号

含义

%Y

4 位年份 2026

%m

2 位月份 01-12

%d

2 位日期 01-31

%H

24 小时制小时 00-23

%M

分钟

%S

%s

时间戳(1970-01-01 至今总秒数)

实操:

# 年-月-日 时:分:秒
date +%Y-%m-%d %H:%M:%S
# 获取时间戳
date +%s

七、man 手册帮助文档

Linux 所有命令都自带官方手册,用 man 命令 查看

man ls
man cp

手册分 9 个章节,常用:

  1. 用户 shell 基础命令

  2. 系统调用

  3. 库函数

  4. 配置文件格式(如 passwd)

  5. 系统管理员命令

八、高频踩坑总结

  1. rm -rf 无撤回,操作目录前先用 ls 确认路径,禁止直接删根

  2. mkdir 创建多层目录必须带 -p 参数,否则报错

  3. 拷贝目录 cp、删除目录 rm 都需要 -r 递归参数,不加会提示是目录无法操作

  4. > 覆盖重定向会清空文件,日志追加务必使用 >>

  5. 大文件不要用 cat,优先 less/tail 分页查看

  6. 管道仅传递标准输出,报错信息不会流入管道,如需过滤错误要结合 2>&1

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐