Lazy loaded image
运维
Linux 基础知识笔记
字数 2319阅读时长 6 分钟
2026-2-16
2026-2-16
author
type
Post
status
Published
date
Feb 16, 2026
slug
summary
tags
Linux
category
运维
icon
password

📁 文件颜色与类型

一、终端中文件的颜色含义(ls --color

颜色
含义
🔵 蓝色
目录(Directory)
🟢 绿色
可执行文件(Executable files),如二进制程序
🔴 红色
压缩包或归档文件(如 .tar, .zip
⚪ 白色
普通文件(文本、配置、源码等)
🔵 浅蓝色
符号链接(Symbolic link),由 ln -s 创建
💣 红色闪烁
损坏的符号链接(指向不存在的目标)
🟡 黄色/黑色背景
设备文件(/dev 下的块设备或字符设备)
⬛ 灰色
其他特殊文件(如套接字 socket、管道等)
✅ 提示:颜色可能因终端主题或系统配置略有差异,建议结合 filels -l 判断实际类型。

二、通过权限字符识别文件类型(ls -l 第一个字符)

字符
类型
-
普通文件(Regular file)
d
目录(Directory)
l
符号链接(Symbolic Link)
b
块设备文件(Block Device),如硬盘 /dev/sda
c
字符设备文件(Character Device),如终端 /dev/tty
p
命名管道(Named Pipe / FIFO)
s
套接字(Socket)

📂 Linux 系统目录结构

一、系统启动必需目录

目录
说明
/boot
包含内核镜像(vmlinuz)、引导加载程序配置(GRUB)、initramfs 等启动所需文件
/etc
所有系统级配置文件存放地(如 passwd, fstab, network, ssh/sshd_config)<br>⚠️ 修改不当可能导致系统无法启动
/lib, /lib64
动态链接库(Shared Libraries),类似 Windows 的 DLL<br>/lib 用于32位系统,/lib64 用于64位系统<br>几乎所有命令都依赖这些库
/sys
sysfs 虚拟文件系统,导出内核对象(设备、驱动等)为文件形式供用户空间访问<br>反映设备拓扑结构,常用于udev、脚本控制硬件状态

二、基础命令目录

目录
说明
/bin
存放所有用户可用的基本命令(ls, cp, bash 等)<br>这些是系统启动和运行所必需的核心工具
/sbin
系统管理员专用的管理命令(fdisk, ifconfig, reboot, init)<br>普通用户通常无权执行

三、外部设备与挂载点

目录
说明
/dev
设备文件目录,Linux 中“一切皆文件”,物理设备在此抽象为文件(如 /dev/sda, /dev/null
/media
即插即用设备的自动挂载点(U盘、光驱、SD卡等)<br>现代桌面发行版会自动挂载到此目录下子目录中
/mnt
手动临时挂载文件系统的目录(如挂载网络存储、ISO镜像)<br>例如:mount /dev/cdrom /mnt 后可访问光盘内容

四、临时文件与恢复数据

目录
说明
/tmp
所有用户都可使用的临时文件目录<br>系统重启后通常会被清空(某些系统使用 tmpfs 内存存储)
/run
运行时数据目录,保存自系统启动以来的状态信息(PID 文件、套接字等)<br>是一个 tmpfs 内存文件系统,重启即清除<br>旧路径 /var/run 是指向 /run 的软链接
/lost+found
特殊目录,用于 e2fsck 等文件系统修复工具存放找回的碎片文件<br>仅在 ext 系列文件系统中存在,正常情况下为空

五、用户与家目录

目录
说明
/root
root 用户的主目录,非 /home/root
/home
普通用户的主目录集合,每个用户拥有一个同名子目录(如 /home/alice)<br>存放个人配置、文档等
/usr
Unix System Resources — 用户级应用程序、库、文档等资源目录<br>类似于 Windows 的 C:\\Program Files + C:\\Windows\\System32
/usr/bin
非系统启动必需但常用的用户命令(如 git, python, gcc
/usr/sbin
非核心但高级的管理员命令(如 httpd, sshd
/usr/src
内核源码默认存放路径(需安装 kernel-source 包)<br>编译模块或调试内核时用到
🔍 注:/usr 意为 "Unix System Resources",并非 "user"。

六、运行时与日志数据

目录
说明
/var
“variable” 的缩写,存放经常变动的数据
/var/log
系统和服务的日志文件(messages, auth.log, nginx/access.log 等)
/var/cache
应用程序缓存(如 APT/YUM 缓存)
/var/spool
待处理任务队列(打印作业、邮件队列等)
/var/lib
数据库、包管理系统(如 RPM/APT)的持久化数据
| /proc | 虚拟文件系统(procfs),映射内核和进程信息<br>动态生成于内存中,不占磁盘空间<br>如:<br>• /proc/cpuinfo — CPU信息<br>• /proc/meminfo — 内存信息<br>• /proc/PID — 对应进程信息(可 kill/readlink)<br>支持写入控制某些参数(如启用 IP 转发) |

七、扩展与服务相关目录

目录
说明
/opt
Optional Applications,第三方商业软件推荐安装位置(如 Google Chrome, MATLAB)<br>各软件独立成目录(如 /opt/google/chrome
/srv
Services’ data,服务运行所需的静态数据<br>如:<br>• /srv/www → Web 服务器根目录<br>• /srv/ftp → FTP 根目录<br>较少使用,视具体服务配置而定

⌨️ Bash 常用快捷键

快捷键
功能说明
Ctrl + A
光标跳转到命令行开头
Ctrl + E
光标跳转到命令行结尾
Ctrl + C
终止当前正在运行的命令(发送 SIGINT)
Ctrl + Z
挂起当前进程,并放入后台(可用 fg 恢复)
Ctrl + D
退出当前 shell 会话(EOF)<br>等价于输入 exit
Ctrl + L
清屏,等效于 clear 命令
Ctrl + U
删除/剪切从光标到行首的所有内容
Ctrl + K
删除/剪切从光标到行尾的所有内容
Ctrl + Y
粘贴之前被 Ctrl+U/K 剪切的内容(Yank)
Ctrl + R
启动反向历史搜索(Reverse Search)<br>按关键词搜索过往命令
Esc + .Alt + .
插入上一条命令的最后一个参数(如刚用过的文件路径)
💡 技巧:连续按 Ctrl + R 可循环查找多条匹配命令。

🌟 通配符

通配符
含义
示例
*
匹配 任意长度 的任意字符(包括零个字符)
a*bab, axb, axyzb
?
匹配 单个 任意字符
a?baab, abb, a0b
[abc]
匹配括号内 任一单一字符
a[xy]zaxz, ayz
[!abc][^abc]
匹配 不在括号中 的任何一个字符
a[!0-9]baxb, aab, a-b
[a-z]
匹配范围内的单个字符(支持字母和数字)
a[0-9]ba0b, a1b, ..., a9b
[!a-z][^a-z]
不在指定范围内的字符
a[!0-9]baxb, aAb, a_b
{str1,str2,...}
匹配多个字符串之一(花括号展开)
a{hello,world}bahellob, aworldb
📌 示例增强理解:

⚠️ 元字符(Shell 特殊字符)

字符
作用说明
示例
空格 \\t \\n (IFS)
IFS(Internal Field Separator),用于分隔单词和字段
ls /home/user 中空格分隔命令与参数
CR(Enter)
表示命令结束并执行
每次回车触发执行
=
变量赋值
name="Alice"
$
取变量值或命令替换
echo $HOME / `date`$(date)
>
重定向标准输出(覆盖)
echo hello > output.txt
>>
重定向标准输出(追加)
echo world >> output.txt
<
重定向标准输入
sort < input.txt
`
`
管道:前一个命令输出作为后一个命令输入
&
将命令置于后台运行
sleep 10 &
( )
创建子 Shell 执行命令列表
(cd /tmp && pwd) 不影响当前 shell 路径
{ }
在当前 Shell 中执行一组命令(函数语法边界)
{ echo a; echo b; } > out.txt
;
分隔多个命令,顺序执行(忽略返回值)
cmd1 ; cmd2
&&
逻辑与:前一条成功才执行下一条
mkdir dir && cd dir
\|\|
逻辑或:前一条失败才执行下一条
command \|\| echo "失败"
!
逻辑非(命令行否定或历史命令调用)
!$ 上一个命令最后一个参数;!grep 上次 grep 命令
#
注释符,后面内容被 shell 忽略
# 这是一条注释
\\
转义字符,取消下一个字符的特殊含义
echo \\$HOME 输出 $HOME 而非变量值
" "
双引号:保留大部分字符意义,允许变量展开
echo "Hello $USER"
' '
单引号:完全引用,禁止任何解析
echo '$HOME' 输出字面量
💬 小贴士:
  • 使用 \\ 可对空格、、$ 等进行转义避免误解释。
  • 推荐优先使用 $(...) 替代反引号 `...` 进行命令替换。
上一篇
Linux 常用命令
下一篇
React - Diff 算法深度解