一、课程目标

本节课主要有两个目标:

  1. 学习 15~20 条 Linux 基本指令,能够进行日常操作。

  2. 掌握指令背后的 Linux 核心知识点,理解文件系统、目录结构、路径等概念。

重要提示:指令本身不需要刻意记忆,随着后续课程的使用,你会自然掌握。真正的重点是理解指令背后所揭示的 Linux 系统原理。

二、图形界面与命令行

2.1 操作系统的发展

  • 早期的操作系统(包括苹果、微软)全部是黑屏 + 指令操作

  • 图形化界面最早出现在 施乐公司 的实验室。

  • 乔布斯参观后,苹果推出了 麦金塔,成为第一款带图形界面的爆款产品。

  • 微软随后跟进,推出了 Windows 图形界面操作系统。

2.2 为什么学习命令行?

  • 服务器不需要图形界面:图形界面会占用系统资源,服务器以提供服务为主,不需要频繁的人机交互。

  • 命令行更接近本质:图形界面隐藏了太多细节,命令行让我们能直接理解文件、目录、权限等底层概念。

  • 企业后端几乎全是命令行操作:无论是 CentOS 还是 Ubuntu,生产环境都以命令行为主。

小技巧:在 Xshell 中,Alt + Enter 可以全屏/退出全屏,提升操作体验。

三、常用指令详解

3.1 查看当前路径:pwd

pwd
  • 作用:打印当前用户所处的目录路径(Print Working Directory)。

  • 示例:

    • root 用户登录后默认在 /root

    • 普通用户登录后默认在 /home/用户名

3.2 查看当前用户:whoami

whoami
  • 作用:显示当前登录的用户名。

3.3 清屏:clear

clear
  • 作用:清空当前终端屏幕内容。

3.4 列出目录内容:ls

命令 作用
ls 列出当前目录下的文件名(普通文件)
ls -l 列出文件的详细信息(权限、大小、时间等)
ls -a 列出所有文件,包括隐藏文件(以 . 开头的文件)
ls -la 或 ls -al 列出所有文件的详细信息

示例

ls -l
# 输出示例:
# drwxr-xr-x 2 root root 4096 Mar 30 10:00 mydir
# -rw-r--r-- 1 root root    0 Mar 30 10:00 test.c
  • 第一列的第一个字符

    • d:目录(directory)

    • -:普通文件(regular file)

3.5 切换目录:cd

命令 作用
cd 路径 切换到指定目录
cd . 切换到当前目录(无变化)
cd .. 切换到上级目录
cd ~ 切换到当前用户的家目录
cd - 切换到上一次所在的目录

示例

cd /root/113/lesson2   # 绝对路径切换
cd ..                  # 回到上级目录
cd ~                   # 回到家目录
cd -                   # 在两个目录间来回切换

3.6 创建目录:mkdir

命令 作用
mkdir 目录名 创建一个空目录
mkdir -p 路径 创建多级目录(父目录不存在时自动创建)

示例

mkdir -p a/b/c/d/e     # 一次性创建多级目录

3.7 创建文件:touch

命令 作用
touch 文件名 创建一个空文件
touch 已存在的文件 更新该文件的修改时间

示例

touch hello.txt        # 创建空文件
touch hello.txt        # 更新文件时间

3.8 查看目录树结构:tree

tree
tree 目录名
  • 作用:以树形结构显示目录内容。

  • 如果系统没有安装 tree,可以用以下命令安装:

    • CentOS:yum install -y tree

    • Ubuntu:apt install -y tree

3.9 删除文件或目录:rm

命令 作用
rm 文件名 删除普通文件(会提示确认)
rm -f 文件名 强制删除文件(不提示)
rm -r 目录名 递归删除目录(会提示确认)
rm -rf 目录名 强制递归删除目录(不提示)

⚠️ 警告

  • rm -rf / 会删除根目录下所有文件,系统将崩溃。

  • rm -rf * 会删除当前目录下所有文件。

  • Linux 没有回收站,删除即永久丢失,操作前务必确认!

3.10 拷贝文件或目录:cp

命令 作用
cp 源文件 目标文件 拷贝文件(可同时重命名)
cp 源文件 目标目录/ 拷贝文件到指定目录
cp -r 源目录 目标目录 递归拷贝目录
cp -f 源文件 目标文件 强制覆盖(不提示)

示例

cp hello.txt world.txt           # 拷贝并重命名
cp hello.txt /root/113/          # 拷贝到指定目录
cp -r lesson2 lesson2_backup     # 拷贝整个目录

注意

  • 如果目标文件已存在,普通用户会提示是否覆盖,root 用户默认提示。

  • 加 -f 选项可以强制覆盖,不提示。

3.11 查看命令位置:which

which ls
# 输出:/usr/bin/ls
  • 作用:显示命令对应的可执行文件的绝对路径。

3.12 查看命令手册:man

man ls              # 查看 ls 命令的手册
man 1 ls            # 查看 1 号手册(命令)
man 3 printf        # 查看 3 号手册(C 库函数)

手册章节划分

  • 1:用户命令(如 lscp

  • 2:系统调用(如 forkexit

  • 3:C 库函数(如 printfscanf

查找规则man 默认从 1 号章节开始查找,找不到再依次查 2、3 等。

退出手册:按 q 键。

3.13 给命令起别名:alias

alias ll='ls -l --color=auto'   # 给 ls -l 起别名 ll
alias 张三='pwd'                 # 给 pwd 起别名 张三
  • 作用:为命令或命令组合起一个简短的名字。

  • 注意:别名是临时的,退出终端后失效。

  • 查看当前所有别名:直接输入 alias

小知识:很多 Linux 系统中 ll 就是 ls -l 的别名。

3.14 历史命令:上下键

  • 上键:调出上一条执行过的命令。

  • 下键:调出下一条命令。

3.15 终止当前程序:Ctrl + C

  • 当程序卡住或无限循环时,按 Ctrl + C 可以强制终止当前进程。

四、核心知识点总结

4.1 文件 = 内容 + 属性

  • 内容:文件中实际存储的数据(如 hello world)。

  • 属性:文件名、大小、类型、权限、创建时间、修改时间等。

  • 即使是空文件,其属性也会占用磁盘空间。

文件操作分为两类:

  • 内容的操作:读写、追加等。

  • 属性的操作:修改权限、修改时间等。

4.2 Linux 目录结构:一棵多叉树

  • Linux 的所有文件和目录从根目录 / 开始,形成一棵多叉树

  • 叶子节点:普通文件或空目录。

  • 非叶子节点:非空目录。

特殊目录

  • .(一个点):表示当前目录。

  • ..(两个点):表示上级目录。

  • 任何一个目录(即使是空目录)都默认包含这两个特殊目录。

正是因为 . 和 .. 的存在,我们才能用 cd .. 返回上级目录,用 cd . 原地不动。

4.3 路径

路径类型 定义 示例
绝对路径 从根目录 / 开始,路径唯一 /root/113/lesson2/test.c
相对路径 以当前目录为参考 ./test.c 或 ../server.cc
  • 应用场景

    • 配置文件、脚本中常用绝对路径(因为起始点确定,不会失效)。

    • 日常操作中常用相对路径(写法简短)。

4.4 家目录

  • 每个用户都有自己的家目录。

  • root 用户的家目录:/root

  • 普通用户的家目录:/home/用户名

  • 登录后默认所在目录就是家目录。

  • 快速回到家目录:cd ~

Windows 中也有类似概念:C 盘下的 Users/用户名 就是家目录,桌面本质上就是家目录下的 Desktop 文件夹。

4.5 命令的本质

  • Linux 中的命令就是可执行文件(通常是 C/C++ 编写的程序)。

  • 系统命令存放在 /usr/bin/bin 等目录下。

  • 我们写的 C 程序编译后,也可以拷贝到这些目录,然后像命令一样直接运行。

验证

bash

which ls          # /usr/bin/ls
file /usr/bin/ls  # 显示:ELF 64-bit LSB executable

为什么自己写的程序要加 ./ 才能运行?
因为系统只在 PATH 环境变量指定的路径中查找命令,当前目录不在其中。这个问题我们后面讲环境变量时会详细解释。

4.6 通配符 *

  • * 可以匹配任意字符串。

  • 常用于批量操作。

示例

bash

touch file1.txt file2.txt file3.txt   # 创建三个文件
ls file*.txt                           # 列出所有 file 开头的 txt 文件
rm -f file*.txt                        # 删除所有 file 开头的 txt 文件

五、本节课指令清单

指令 作用
pwd 显示当前路径
whoami 显示当前用户
clear 清屏
ls 列出目录内容
ls -l 列出详细信息
ls -a 显示隐藏文件
cd 切换目录
mkdir 创建目录
touch 创建空文件 / 更新时间
tree 树形显示目录结构
rm 删除文件或目录
cp 拷贝文件或目录
which 查看命令路径
man 查看命令手册
alias 给命令起别名

六、本节课简单总结

今天我们正式进入了 Linux 指令的学习阶段,虽然看起来只是敲了一堆命令,但背后涉及的核心思想远比命令本身更重要:

  1. 文件 = 内容 + 属性:这是我们理解 Linux 文件系统的基础。以后学文件操作时,要时刻记得,你操作的要么是内容,要么是属性。

  2. Linux 目录结构是一棵多叉树:从根目录 / 开始,每个目录都有 . 和 ..,这让路径切换变得灵活。理解了这个模型,你就能理解为什么 cd .. 能返回上级,为什么 cd ~ 能回到加目录。

  3. 绝对路径与相对路径:绝对路径以 / 开头,路径唯一;相对路径以当前目录为参考,写法简单。两者各有应用场景,需要根据实际情况选择。

  4. 命令的本质是可执行程序:你在终端敲的每一个命令,其实都是一个 C/C++ 写的程序,存放在系统的特定目录下。将来你写的 C 程序也可以变成“命令”,这打通了编程与系统操作之间的壁垒。

  5. 工具意识man 手册是你最好的老师,which 能帮你找到命令的位置,alias 可以帮你简化操作。用好这些工具,你的 Linux 之路会顺畅很多。

最后强调:指令不需要死记硬背,多用自然就记住了。真正要理解的是上面这些“底层逻辑”。当你脑子里有了 Linux 目录结构的模型,明白了文件由内容和属性组成,理解了命令的本质,你会发现 Linux 其实并不神秘,它只是一套设计精良的系统罢了。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐