一、Linux 核心认知
1. 操作系统定位
操作系统是用户与硬件之间的中间层,核心职能:内存管理、进程管理、文件管理、驱动管理。
记住一句话:操作系统存在的根本意义是让计算机更好用。
2. 为什么工作场景不用图形界面?
服务器通常部署在远程机房,无显示器/键盘,全程通过 SSH(如 XShell)命令行操作。图形界面消耗资源且无必要。
3. 常见发行版(了解即可)
| 发行版 | 特点 |
|---|---|
| CentOS | 企业级稳定,RHEL 的免费重构版(国内服务器常用) |
| Ubuntu | 社区活跃,适合新手与云环境 |
| Debian | 极其稳定,服务器首选 |
| Kali | 渗透测试专用 |
二、Linux 目录结构
Linux 下一切皆文件,整个系统从根目录**/** 开始,呈单棵目录树。
核心目录速查表
| 目录 | 作用 |
|---|---|
/ |
根目录,一切起点 |
/bin |
普通用户常用命令(二进制可执行文件) |
/sbin |
系统管理员命令(需特权) |
/usr |
用户程序安装目录(Unix System Resources) |
/home |
普通用户家目录(如 /home/whb) |
/root |
root 用户家目录 |
/etc |
配置文件目录 |
/var |
经常变化的文件(日志、缓存) |
/tmp |
临时文件 |
/dev |
设备文件(抽象硬件) |
/lib |
系统库文件 |
/mnt |
挂载点(U盘、光驱) |
/opt |
大型软件存放目录(非强制) |
/boot |
内核与启动文件 |
路径概念
-
绝对路径 :从
/开始,不依赖当前位置,具有唯一性。例:
/home/whb/test/file.txt -
相对路径 :相对于当前目录,便捷但依赖位置。
例:
./file.txt、../temp/
何时用绝对路径? 配置文件、脚本中写死路径时。
何时用相对路径? 日常命令行操作中。
三、文件与目录基础命令
1. ls --- 列出目录内容
bash
ls # 列出当前目录
ls -l # 详细列表(权限、大小、时间)
ls -a # 显示隐藏文件(.开头)
ls -la # 组合使用
ls -F # 追加类型标识(/目录 *可执行 @链接)
ls -R # 递归列出子目录
ls -t # 按时间排序
ls -r # 反向排序
ls -i # 显示 inode 号
ls -n # 显示 UID/GID 数字
2. pwd --- 显示当前路径
bash
pwd
3. cd --- 切换目录
bash
cd /home/whb # 绝对路径
cd ../temp # 相对路径(上级目录下的 temp)
cd ~ # 回到家目录(等同于 cd)
cd - # 回到上一次所在目录(极好用)
cd .. # 返回上级目录
4. touch --- 创建空文件 / 修改时间
bash
touch new.txt # 创建文件(若存在则更新时间)
touch -a new.txt # 只改访问时间(Access)
touch -m new.txt # 只改修改时间(Modify)
查看时间用 stat 文件名。
5. mkdir --- 创建目录
bash
mkdir dirname # 创建单级目录
mkdir -p a/b/c/d # 递归创建多级目录
6. rmdir --- 删除空目录
bash
rmdir dirname # 删除空目录
rmdir -p a/b/c # 递归删除空目录,若父目录变空也一并删除
⚠️ 只能删空目录,非空会报错。
7. rm --- 删除文件或目录(危险命令)
bash
rm file.txt # 删除文件
rm -r dir/ # 递归删除目录及内容
rm -f file.txt # 强制删除(忽略只读属性,不询问)
rm -rf dir/ # 强制递归删除(**核弹级,慎用**)
rm -i file.txt # 删除前逐一确认
生产环境铁律: 用
rm -rf前务必确认路径,一旦执行无法恢复。
8. man --- 查看手册
bash
man ls # 查看 ls 命令手册
man 2 open # 查看第 2 章(系统调用)的 open
man 3 printf # 查看第 3 章(库函数)的 printf
man 5 passwd # 查看第 5 章(文件格式)
手册章节:
-
普通命令
-
系统调用
-
库函数
-
文件格式
-
系统管理命令(root 专用)
四、文件内容查看命令
1. cat --- 查看小文件
bash
cat file.txt # 显示全部内容
cat -n file.txt # 带行号(包括空行)
cat -b file.txt # 带行号(空行不编号)
cat -s file.txt # 压缩多行空行为一行
2. more --- 分页查看(只能向下)
bash
more file.txt
more -10 file.txt # 先显示前 10 行
# 按空格翻页,按 q 退出
3. less --- 分页查看(推荐,可上下翻)
bash
less file.txt
less -N file.txt # 显示行号
# 操作:PageUp/PageDown 翻页
#/keyword 向下搜索,?keyword 向上搜索,n 下一个,N 上一个,q 退出
4. head / tail --- 看头看尾
bash
head file.txt # 默认前 10 行
head -5 file.txt # 前 5 行
tail file.txt # 默认后 10 行
tail -5 file.txt # 后 5 行
tail -f log.txt # 实时追踪文件新增内容(看日志神器)
5. 管道 | 经典用法
需求:显示文件第 180~200 行
bash
head -200 temp.txt | tail -20
原理:head -200 的输出作为 tail -20 的输入。
五、文件操作命令
1. cp --- 复制
bash
cp file.txt backup.txt # 复制文件
cp -r dir/ backup_dir/ # 递归复制目录
cp -i file.txt backup.txt # 覆盖前询问
cp -f file.txt backup.txt # 强制覆盖
cp *.txt dir/ # 通配符复制所有 txt 文件
2. mv --- 移动 / 重命名
bash
mv old.txt new.txt # 重命名(同目录下)
mv file.txt /tmp/ # 移动到 /tmp 目录
mv -i old.txt new.txt # 覆盖前询问
mv dir/ /backup/ # 移动整个目录
六、查找与搜索
1. find --- 文件查找
bash
find ~ -name test.c # 在家目录下按文件名查找
find /etc -name "*.conf" # 查找所有 .conf 文件
2. which --- 查找命令位置
bash
which ls # 输出 /usr/bin/ls
3. whereis --- 查找程序相关文件
bash
whereis ls # 输出二进制、手册页位置
4. grep --- 文本过滤(极重要)
bash
grep "hello" file.txt # 查找包含 hello 的行
grep -i "hello" file.txt # 忽略大小写
grep -n "hello" file.txt # 显示行号
grep -v "hello" file.txt # 反向选择(不含 hello 的行)
grep -ni "hello" file.txt # 组合使用
七、压缩与打包
1. zip / unzip
bash
zip -r test.zip test/ # 递归压缩目录
unzip test.zip -d /tmp # 解压到 /tmp 目录
2. tar --- 打包/解包(重点)
bash
# 打包(不压缩)
tar -cvf /tmp/etc.tar /etc
# 打包并用 gzip 压缩(最常用)
tar -zcvf /tmp/etc.tar.gz /etc
# 打包并用 bzip2 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc
# 查看压缩包内容
tar -ztvf /tmp/etc.tar.gz
# 解压到当前目录
tar -zxvf /tmp/etc.tar.gz
# 解压到指定目录
tar -zxvf /tmp/etc.tar.gz -C /usr/local/src
参数记忆:
-
-ccreate(创建) -
-xextract(解压) -
-zgzip 压缩 -
-jbzip2 压缩 -
-vverbose(显示过程) -
-ffile(必须放最后,接文件名) -
-C指定解压目录
八、实用工具与热键
1. date --- 时间
bash
date # 显示当前时间
date +%Y/%m/%d # 2026/07/24
date +%Y/%m/%d-%H:%M:%S # 完整格式
date +%s # 显示时间戳(秒)
date -d @0 # 时间戳转可读时间
2. cal --- 日历
bash
cal # 当月日历
cal -3 # 前、当、后三个月
cal -y # 全年日历
cal 2026 # 2026 年全年
3. bc --- 计算器
bash
bc # 进入交互式浮点计算
4. uname --- 系统信息
bash
uname -r # 内核版本
uname -a # 全部信息
5. 重要热键
| 热键 | 作用 |
|---|---|
Tab |
命令/文件名自动补全(按两次显示所有候选) |
Ctrl + C |
终止当前运行程序 |
Ctrl + D |
输入结束 / 退出当前会话(等效 exit) |
九、Shell 运行原理
Shell 是命令行解释器(Command Interpreter),是用户与 Linux 内核之间的翻译官。
-
用户 → Shell:输入命令
-
Shell → 内核:翻译命令给内核执行
-
内核 → Shell:返回执行结果
-
Shell → 用户:翻译结果展示
类比:用户是程序员,内核是心仪对象,Shell 是传话的媒婆。我们日常用的
bash就是一种 Shell。
十、Linux 权限(核心中的核心)
1. 用户分类
-
root(超级用户) :UID 为 0,权限无限制,提示符
# -
普通用户 :权限受限,提示符
$
切换用户:
bash
su - username # 切换到指定用户(带环境变量)
su - # 切换到 root
exit # 退回原用户
2. 文件访问者分类
| 符号 | 含义 |
|---|---|
| u | 拥有者(User) |
| g | 所属组(Group) |
| o | 其他人(Others) |
| a | 所有人(All) |
3. 文件类型与权限
文件类型(第一个字符):
| 符号 | 类型 |
|---|---|
- |
普通文件 |
d |
目录 |
l |
软链接(快捷方式) |
b |
块设备(硬盘、光驱) |
c |
字符设备(屏幕、串口) |
p |
管道文件 |
s |
套接口文件 |
基本权限:
| 权限 | 对文件 | 对目录 |
|---|---|---|
| r(读/4) | 读取内容 | 列出目录内容(ls) |
| w(写/2) | 修改内容 | 创建/删除/移动目录内文件 |
| x(执行/1) | 执行文件 | 进入目录(cd) |
4. 权限表示法
字符表示: rwxrwxrwx(三组,分别对应 u/g/o)
八进制表示:
| 权限 | 八进制 |
|---|---|
| rwx | 7 |
| rw- | 6 |
| r-x | 5 |
| r-- | 4 |
| -wx | 3 |
| -w- | 2 |
| --x | 1 |
| --- | 0 |
5. 权限修改
chmod --- 改权限
bash
chmod u+x file.txt # 给拥有者加执行权限
chmod g-w file.txt # 去掉所属组写权限
chmod o=r file.txt # 设置其他人只读
chmod a+x file.txt # 给所有人加执行权限
chmod 664 file.txt # rw-rw-r--(常用)
chmod 755 dir/ # rwxr-xr-x(目录常用)
chmod -R 755 dir/ # 递归修改目录及内部所有文件
chown --- 改拥有者
bash
chown user1 file.txt # 改拥有者
chown -R user1 dir/ # 递归改
chgrp --- 改所属组
bash
chgrp group1 file.txt
6. 默认权限与 umask
-
新建文件默认权限:
0666(rw-rw-rw-) -
新建目录默认权限:
0777(rwxrwxrwx)
实际权限 = 默认权限 & ~umask
查看/设置 umask:
bash
umask # 查看(root 默认 0022,普通用户 0002)
umask 044 # 设置
7. 目录权限的坑(必看)
| 场景 | 结果 |
|---|---|
目录无 x |
无法 cd 进入,即使有 r 也不行 |
目录有 x 无 r |
可以 cd 进入,但 ls 看不到内容 |
目录有 w |
可以删除目录内任何文件,无论那文件是不是你的 |
8. 粘滞位(Sticky Bit)
为了解决「目录有写权限,任何人都能删别人文件」的问题:
chmod +t /home/ # 给目录加粘滞位
# 权限显示变为 drwxrwxrwt(最后一位 t)
粘滞位规则: 目录下的文件只能被
-
root 删除
-
该目录的拥有者删除
-
该文件的拥有者删除
典型应用:
/tmp目录默认带有粘滞位。
十一、总结
| 场景 | 命令 |
|---|---|
| 看当前位置 | pwd |
| 看目录内容 | ls -la |
| 切换目录 | cd ~、cd -、cd .. |
| 创建文件 | touch |
| 创建目录 | mkdir -p |
| 删除空目录 | rmdir -p |
| 删除文件/目录 | rm -rf(慎用) |
| 复制 | cp -r |
| 移动/重命名 | mv |
| 看小文件 | cat |
| 看大文件 | less |
| 看日志实时更新 | tail -f |
| 查找文件 | find -name |
| 过滤文本 | grep |
| 压缩 | tar -zcvf |
| 解压 | tar -zxvf |
| 改权限 | chmod 755 |
| 改拥有者 | chown |
| 加粘滞位 | chmod +t |