Linux目录探秘:文件系统的核心架构

news2025/4/13 9:03:20

引言

Linux文件系统就像一棵精心设计的大树🌳,每个分支都有其特定的用途和规范。与Windows不同,Linux采用单一的目录结构,所有设备、分区和网络资源都挂载在这个统一的目录树下。本文将带你深入探索Linux目录结构的奥秘,掌握文件权限管理技巧,熟练使用强大的文本处理命令,并理解软硬链接的本质区别。无论你是刚入门的新手还是想巩固基础的老鸟,这篇文章都将成为你的Linux文件系统速查手册!📚🔍


一、Linux目录结构

Linux 系统的目录结构遵循文件系统层次结构标准(FHS, Filesystem Hierarchy Standard),这是一个定义了目录结构和目录内容的规范。了解这些目录的作用对于有效使用和管理Linux系统至关重要。

/ (根目录)
bin
sbin
etc
dev
proc
var
tmp
usr
home
root
boot
lib
opt
mnt
media
srv
run

1.1 根目录 (/)

根目录是整个文件系统的起点,所有其他目录和文件都从根目录开始分支。

1.2 主要系统目录

/bin (二进制文件)

  • 包含基本的用户命令二进制文件(可执行程序)
  • 这些命令在单用户模式下也是可用的
  • 示例:ls, cp, mv, cat, bash等

/sbin (系统二进制文件)

  • 包含系统管理命令的二进制文件
  • 通常只有root用户才能使用这些命令
  • 示例:fdisk, fsck, ifconfig, init等

/etc (配置文件)

  • 包含系统的配置文件
  • 大多是纯文本文件,可以用文本编辑器修改
  • 示例:/etc/passwd(用户账户信息), /etc/fstab(文件系统表), /etc/hosts(网络主机名映射)

/dev (设备文件)

  • 包含设备文件,这些文件代表硬件设备
  • 示例:/dev/sda(第一个SATA硬盘), /dev/tty(终端), /dev/null(空设备)

/proc (进程信息)

  • 虚拟文件系统,包含系统和进程信息
  • 不是真正的磁盘文件,而是内核和进程的运行时信息
  • 示例:/proc/cpuinfo(CPU信息), /proc/meminfo(内存信息)

/var (可变数据)

  • 包含经常变化的文件,如日志、邮件、打印队列等
  • 子目录:
    • /var/log: 系统日志文件
    • /var/mail: 用户邮箱
    • /var/spool: 等待处理的任务(打印、邮件等)
    • /var/www: Web服务器目录(某些发行版)

/tmp (临时文件)

  • 临时文件目录,所有用户都可以读写
  • 系统重启时通常会清空此目录

/usr (用户程序)

  • 包含用户应用程序和文件
  • 子目录:
    • /usr/bin: 用户命令
    • /usr/sbin: 系统管理命令
    • /usr/lib: 程序库
    • /usr/local: 本地安装的软件
    • /usr/share: 共享数据(文档、字体等)

/home (用户主目录)

  • 普通用户的主目录所在地
  • 每个用户通常有一个以其用户名命名的子目录

/root (root用户主目录)

  • 系统管理员(root)的主目录

/boot (启动文件)

  • 包含启动加载器和内核文件
  • 示例:vmlinuz(内核镜像), initrd(初始RAM磁盘), grub(引导加载程序)

/lib (库文件)

  • 包含/bin和/sbin中程序所需的共享库
  • 类似于Windows中的DLL文件

/opt (可选软件)

  • 用于安装第三方或可选软件包

/mnt (临时挂载点)

  • 临时挂载文件系统的目录
  • 管理员可以在此挂载外部设备或网络共享

/media (可移动媒体)

  • 可移动设备(如USB驱动器、CD-ROM)的自动挂载点

/srv (服务数据)

  • 包含系统提供的服务数据
  • 例如Web服务器的网页数据或FTP服务器的文件

/run (运行时数据)

  • 存储系统运行时的临时文件(如PID文件)
  • 在早期启动时创建,在关机时清除

1.3 特殊目录

  • . : 当前目录
  • .. : 父目录
  • ~ : 当前用户的主目录

1.4 路径表示

  • 绝对路径:从根目录开始的完整路径,如/home/user/file.txt
  • 相对路径:相对于当前目录的路径,如../otherdir/file.txt

1.5 查看目录结构

使用tree命令可以可视化目录结构:

tree -L 2 /  # 显示根目录下两层的结构

使用ls命令查看目录内容:

ls -l /  # 列出根目录下的内容

1.6 注意事项

  1. Linux目录结构区分大小写
  2. 路径使用正斜杠(/)而不是反斜杠()
  3. 不同的Linux发行版可能在目录结构上有细微差异
  4. 不要随意删除系统目录中的文件,除非你确切知道它们的作用

二、Linux文件权限

Linux 是一个多用户操作系统,因此文件权限管理至关重要。

2.1 基本概念

2.1.1 权限类型

Linux 有三种基本权限:

  • r (read):读取权限
  • w (write):写入权限
  • x (execute):执行权限

2.1.2 权限对象

权限针对三类用户:

  1. 所有者 (owner):文件/目录的创建者
  2. 所属组 (group):文件/目录所属的用户组
  3. 其他用户 (others):既不是所有者也不在所属组的用户

2.2 查看文件权限

使用 ls -l 命令查看文件权限:

ls -l filename

输出示例:

-rw-r--r-- 1 user group 1024 Jan 1 10:00 filename

权限部分的解释:

  • 第1个字符:文件类型 (- 普通文件,d 目录,l 链接等)
  • 第2-4个字符:所有者权限
  • 第5-7个字符:所属组权限
  • 第8-10个字符:其他用户权限

2.3 权限表示法

2.3.1 符号表示法

  • r = 4
  • w = 2
  • x = 1
  • - = 0

2.3.2 数字表示法

将三类权限的数值相加:

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4

2.4 修改文件权限

2.4.1 chmod 命令

改变文件/目录的权限:

符号模式

chmod [ugoa][+-=][rwx] 文件名
  • u=所有者,g=组,o=其他,a=所有
  • +=添加权限,-=移除权限,==设置权限

示例:

chmod u+x file.sh      # 给所有者添加执行权限
chmod go-w file.txt    # 移除组和其他用户的写权限
chmod a=rw shared.txt  # 设置所有用户为读写权限

数字模式

chmod 755 script.sh

解释:

  • 7 (所有者:rwx)
  • 5 (组:r-x)
  • 5 (其他:r-x)

2.4.2 chown 命令

改变文件所有者:

chown 新所有者 文件名
chown 新所有者:新组 文件名

示例:

chown alice file.txt
chown alice:developers file.txt

2.4.3 chgrp 命令

改变文件所属组:

chgrp 新组 文件名

2.5 特殊权限

2.5.1 SetUID (s)

  • 以文件所有者的权限执行
  • 表示为 sS (如果所有者没有执行权限)
  • 设置:chmod u+s file

2.5.2 SetGID (s)

  • 以文件所属组的权限执行
  • 对于目录,新创建的文件继承目录的组
  • 设置:chmod g+s file

2.5.3 粘滞位 (t)

  • 只有文件所有者可以删除/重命名文件
  • 常用于共享目录如 /tmp
  • 设置:chmod +t directory

2.6 默认权限 (umask)

umask 决定新创建文件的默认权限:

umask          # 查看当前umask
umask 0022     # 设置新umask

计算方式:

  • 文件默认权限:666 - umask
  • 目录默认权限:777 - umask

2.7 权限示例

权限文件目录
r (4)读取文件内容列出目录内容
w (2)修改文件内容创建/删除文件
x (1)执行文件进入目录

2.8 实用命令

查看用户权限:

namei -l /path/to/file

查找有特殊权限的文件:

find / -perm -4000 -type f  # SetUID文件
find / -perm -2000 -type f  # SetGID文件
find / -perm -1000 -type d  # 粘滞位目录

2.9 安全建议

  1. 避免给文件设置777权限
  2. 谨慎使用SetUID/SetGID
  3. 定期检查系统特殊权限文件
  4. 为敏感文件设置适当权限
  5. 使用组权限来管理共享访问

三、Linux文件命令大全

Linux 提供了丰富的命令来管理文件和目录。

3.1 文件导航命令

3.1.1 pwd - 显示当前目录

pwd
# 输出: /home/username

3.1.2 cd - 切换目录

cd /path/to/directory  # 绝对路径
cd ../parent           # 相对路径
cd ~                   # 返回家目录
cd -                   # 返回上一个目录

3.1.3 ls - 列出目录内容

ls              # 简单列出
ls -l           # 详细列表(长格式)
ls -a           # 显示隐藏文件(以.开头)
ls -lh          # 人类可读的文件大小
ls -t           # 按修改时间排序
ls -R           # 递归列出子目录

3.2 文件操作命令

3.2.1 touch - 创建空文件/更新时间戳

touch file.txt           # 创建新文件
touch -t 202401011200 file.txt  # 设置特定时间戳

3.2.2 cp - 复制文件/目录

cp file1.txt file2.txt          # 复制文件
cp -r dir1 dir2                 # 递归复制目录
cp -v *.txt /backup/            # 详细模式复制
cp -u source/* dest/            # 只复制更新的文件

3.2.3 mv - 移动/重命名文件

mv old.txt new.txt       # 重命名
mv file.txt /new/path/   # 移动文件
mv -i file.txt dest/     # 交互模式(覆盖前询问)
mv -n file.txt dest/     # 不覆盖已存在文件

3.2.4 rm - 删除文件

rm file.txt              # 删除文件
rm -i file.txt           # 交互式删除
rm -f file.txt           # 强制删除(不提示)
rm -r directory/         # 递归删除目录

3.2.5 mkdir - 创建目录

mkdir newdir             # 创建单个目录
mkdir -p path/to/newdir  # 创建多级目录
mkdir -m 755 secure_dir  # 创建带权限的目录

3.2.6 rmdir - 删除空目录

rmdir emptydir           # 删除空目录

3.3 文件查看命令

3.3.1 cat - 连接并显示文件

cat file.txt             # 显示文件内容
cat -n file.txt          # 显示行号
cat file1.txt file2.txt > combined.txt  # 合并文件

3.3.2 less/more - 分页查看

less largefile.log       # 可前后翻页
more largefile.log       # 只能向前翻页

3.3.3 head/tail - 查看开头/结尾

head -n 10 file.txt      # 显示前10行
tail -n 20 file.log      # 显示最后20行
tail -f growing.log      # 实时跟踪日志更新

3.3.4 file - 确定文件类型

file unknownfile         # 显示文件类型

3.4 文件查找命令

3.4.1 find - 高级文件搜索

find / -name "*.conf"    # 按名称查找
find . -type f -size +1M # 查找大于1MB的文件
find /var/log -mtime -7  # 查找7天内修改的文件
find ~ -empty            # 查找空文件/目录
find . -perm 644         # 查找特定权限文件

3.4.2 locate - 快速文件查找

locate passwd            # 查找所有包含passwd的文件
updatedb                 # 更新locate数据库(需root)

3.4.3 grep - 文件内容搜索

grep "error" logfile.txt         # 搜索包含error的行
grep -r "pattern" /path/to/dir/  # 递归搜索目录
grep -i "warning" file.txt       # 忽略大小写
grep -v "exclude" file.txt       # 反向匹配(不包含)
grep -A 3 -B 2 "keyword" file    # 显示匹配前后内容

3.5 文件权限命令

3.5.1 chmod - 更改权限

chmod 755 script.sh      # 数字模式设置权限
chmod u+x file.sh        # 符号模式添加执行权限

3.5.2 chown - 更改所有者

chown user:group file.txt

3.5.3 chgrp - 更改所属组

chgrp developers file.txt

3.6 文件压缩/解压命令

3.6.1 tar - 打包/解包

tar -cvf archive.tar dir/    # 创建tar包
tar -xvf archive.tar         # 解压tar包
tar -czvf archive.tar.gz dir/ # 创建gzip压缩包
tar -xzvf archive.tar.gz     # 解压gzip包
tar -cjvf archive.tar.bz2 dir/ # 创建bzip2压缩包

3.6.2 gzip/gunzip - 压缩/解压

gzip file.txt            # 压缩为file.txt.gz
gunzip file.txt.gz       # 解压.gz文件

3.6.3 zip/unzip

zip archive.zip file1 file2  # 创建zip压缩包
unzip archive.zip         # 解压zip文件

3.7 文件比较命令

7.1 diff - 比较文件差异

diff file1.txt file2.txt

7.2 cmp - 逐字节比较

cmp file1.bin file2.bin

7.3 comm - 比较排序文件

comm file1.txt file2.txt

3.8 文件统计命令

3.8.1 wc - 字数统计

wc file.txt              # 行数、单词数、字节数
wc -l access.log         # 只统计行数

3.8.2 du - 磁盘使用情况

du -sh dir/              # 目录总大小
du -h --max-depth=1 /var # 查看一级子目录大小

3.8.3 df - 磁盘空间信息

df -h                    # 人类可读的各分区空间

3.9 文件链接命令

3.9.1 ln - 创建链接

ln -s target linkname    # 创建符号链接
ln target hardlink       # 创建硬链接

3.10 高级文件操作

3.10.1 split - 分割文件

split -b 100M largefile part_  # 按100MB分割

3.10.2 sort - 文件排序

sort file.txt            # 按行排序
sort -n data.txt        # 数值排序
sort -u list.txt        # 去重排序

3.10.3 uniq - 报告或过滤重复行

uniq sorted.txt        # 去除相邻重复行
uniq -c log.txt        # 计数重复行

3.10.4 tee - 同时输出到屏幕和文件

ls -l | tee listing.txt

3.11 文件传输命令

3.11.1 scp - 安全复制

scp file.txt user@remote:/path/
scp -r dir/ user@remote:/path/

3.11.2 rsync - 高效文件同步

rsync -avz src/ user@remote:dest/
rsync -avz --delete src/ dest/  # 同步并删除多余文件

3.12 文件编辑命令

3.12.1 sed - 流编辑器

sed 's/old/new/g' file.txt      # 替换文本
sed -i.bak 's/old/new/' file    # 直接修改文件(备份)

3.12.2 awk - 文本处理

awk '{print $1}' file.txt       # 打印第一列
awk '/pattern/ {print $0}' file # 匹配模式的行

四、Linux vi/vim

Vim (Vi IMproved) 是 Linux 系统中最强大的文本编辑器之一,以其高效性和可定制性著称。

4.1 Vim 基础

4.1.1 安装与启动

# 安装 Vim
sudo apt install vim        # Debian/Ubuntu
sudo yum install vim       # CentOS/RHEL

# 启动 Vim
vim filename               # 打开文件
vim                        # 启动空编辑器
vim +10 file.txt           # 打开文件并跳至第10行
vim +/pattern file.txt     # 打开文件并搜索模式

4.1.2 Vim 模式

Vim 有几种主要模式:

  1. 普通模式(Normal mode) - 默认模式,执行命令
  2. 插入模式(Insert mode) - 编辑文本
  3. 可视模式(Visual mode) - 选择文本
  4. 命令行模式(Command-line mode) - 输入命令

4.2 基本操作

4.2.1 模式切换

命令功能
i在光标前进入插入模式
a在光标后进入插入模式
o在当前行下方新建行并进入插入模式
O在当前行上方新建行并进入插入模式
ESC返回普通模式
v进入可视模式
V进入行可视模式
Ctrl+v进入块可视模式
:进入命令行模式

4.2.2 光标移动

基本移动
命令功能
h左移
j下移
k上移
l右移
w移动到下一个单词开头
b移动到上一个单词开头
e移动到当前单词末尾
0移动到行首
^移动到行首非空白字符
$移动到行尾
gg移动到文件开头
G移动到文件末尾
50G移动到第50行
Ctrl+f向下翻页
Ctrl+b向上翻页
高级移动
%            # 在匹配的括号间跳转
*            # 向前搜索当前单词
#            # 向后搜索当前单词
f<char>      # 向前查找字符并跳转
F<char>      # 向后查找字符并跳转
;            # 重复上次f/F查找
,            # 反向重复上次f/F查找

4.2.3 编辑操作

插入文本
i            # 在光标前插入
a            # 在光标后插入
I            # 在行首插入
A            # 在行尾插入
o            # 在当前行下方新建行
O            # 在当前行上方新建行
s            # 删除当前字符并插入
S            # 删除当前行并插入
删除文本
x            # 删除当前字符
dw           # 删除到单词末尾
d$           # 删除到行尾
dd           # 删除当前行
5dd          # 删除5行
dG           # 删除到文件末尾
dgg          # 删除到文件开头
复制与粘贴
yy           # 复制当前行
yw           # 复制当前单词
p            # 粘贴到光标后
P            # 粘贴到光标前
撤销与重做
u            # 撤销
Ctrl+r       # 重做

4.2.4 保存与退出

命令功能
:w保存文件
:w filename另存为
:q退出
:q!强制退出不保存
:wq保存并退出
:x保存并退出(仅当有修改时)
ZZ保存并退出(普通模式)

4.3 高级编辑技巧

4.3.1 搜索与替换

搜索
/pattern      # 向前搜索
?pattern      # 向后搜索
n             # 下一个匹配项
N             # 上一个匹配项
替换
:s/old/new/           # 替换当前行第一个匹配
:s/old/new/g          # 替换当前行所有匹配
:%s/old/new/g         # 替换全文所有匹配
:%s/old/new/gc        # 替换全文(每次确认)
:5,10s/old/new/g      # 替换5-10行所有匹配

4.3.2 多文件操作

:e filename       # 打开新文件
:bn               # 切换到下一个缓冲区
:bp               # 切换到上一个缓冲区
:bd               # 关闭当前缓冲区
:ls               # 列出所有缓冲区
:sp filename      # 水平分割窗口
:vsp filename     # 垂直分割窗口
Ctrl+w h/j/k/l    # 在窗口间移动
Ctrl+w w          # 循环切换窗口

4.3.3 宏录制

qa            # 开始录制宏到寄存器a
q             # 停止录制
@a            # 执行寄存器a中的宏
@@            # 重复上次执行的宏

4.3.4 标记与跳转

ma            # 设置标记a
'a            # 跳转到标记a
:marks        # 查看所有标记
Ctrl+o        # 跳转到上一个位置
Ctrl+i        # 跳转到下一个位置

4.4 Vim 配置

4.4.1 .vimrc 配置文件

~/.vimrc 是 Vim 的配置文件,常见设置:

" 基本设置
set number            " 显示行号
set relativenumber    " 显示相对行号
set tabstop=4         " 制表符宽度
set shiftwidth=4      " 自动缩进宽度
set expandtab         " 用空格代替制表符
set autoindent        " 自动缩进
set hlsearch          " 高亮搜索
set ignorecase        " 忽略大小写
set smartcase         " 智能大小写
syntax on             " 语法高亮

" 键位映射
nnoremap <C-s> :w<CR>  " Ctrl+s保存
inoremap jk <ESC>      " jk退出插入模式

4.4.2 插件管理

使用 Vim-plug 管理插件:

  1. 安装 Vim-plug:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  1. 在 .vimrc 中添加插件:
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'     " 文件浏览器
Plug 'vim-airline/vim-airline' " 状态栏
Plug 'ycm-core/YouCompleteMe'  " 代码补全
call plug#end()
  1. 安装插件:
:PlugInstall

4.5 实用技巧

4.5.1 高效编辑

.            # 重复上次编辑命令
Ctrl+a       # 增加数字
Ctrl+x       # 减少数字
>>           # 向右缩进
<<           # 向左缩进
gq           # 格式化选中文本
J            # 合并当前行与下一行

4.5.2 文本对象

diw          # 删除当前单词
ci"          # 修改引号内内容
da[          # 删除方括号及其内容
yit          # 复制HTML标签内容

4.5.3 寄存器

"ayy         # 复制当前行到寄存器a
"ap          # 粘贴寄存器a内容
:reg         # 查看所有寄存器

4.6 学习资源

  1. Vim 内置教程:
vimtutor
  1. 常用帮助命令:
:help        " 打开帮助
:help usr_   " 用户手册
:help motion " 移动命令帮助
  1. 在线资源:
  • Vim 官方文档:https://www.vim.org/docs.php
  • Vim 速查表:https://vim.rtorr.com/
  • Vim Adventures:https://vim-adventures.com/

五、软链接与硬链接

在 Linux 文件系统中,链接(Link)是一种让多个文件名指向同一个文件实体的机制。链接分为两种类型:软链接(符号链接)硬链接

5.1 基本概念

5.1.1 硬链接 (Hard Link)

  • 是文件系统中的一个目录条目,直接指向文件的 inode
  • 与原始文件完全平等,无法区分哪个是原始文件
  • 不能跨文件系统创建
  • 不能链接到目录

5.1.2 软链接/符号链接 (Soft/Symbolic Link)

  • 是一个特殊的文件,包含另一个文件的路径信息
  • 类似于 Windows 的快捷方式
  • 可以跨文件系统创建
  • 可以链接到目录
  • 如果原始文件被删除,链接将失效(称为"断链")

5.2 创建链接

5.2.1 创建硬链接

ln 源文件 硬链接名

示例:

ln original.txt hardlink.txt

5.2.2 创建软链接

ln -s 源文件或目录 软链接名

示例:

ln -s original.txt softlink.txt
ln -s /path/to/directory link_to_dir

5.3 查看链接

3.1 使用 ls 查看

ls -l

输出示例:

-rw-r--r-- 2 user group 1024 Jan 1 10:00 hardlink.txt
-rw-r--r-- 2 user group 1024 Jan 1 10:00 original.txt
lrwxrwxrwx 1 user group   11 Jan 1 10:01 softlink.txt -> original.txt

注意:

  • 硬链接看起来和普通文件一样
  • 软链接显示为 l 类型,并显示指向的目标

3.2 查看硬链接计数

ls -l

第二列的数字表示硬链接计数:

-rw-r--r-- 3 user group 1024 Jan 1 10:00 file.txt

表示 file.txt 有3个硬链接(包括它自己)

3.3 查看 inode 号

ls -i

硬链接与原始文件有相同的 inode 号,软链接则有独立的 inode

5.4 链接特性对比

特性硬链接软链接
创建命令lnln -s
文件类型普通文件特殊文件 (l 类型)
跨文件系统不支持支持
链接到目录不支持支持
inode 号与源文件相同独立 inode
原始文件删除后仍然有效失效(断链)
文件大小与源文件相同等于路径名的长度
权限与源文件相同总是 777 (但受限于目标权限)
修改时间同步更新创建时间独立

5.5 实际应用示例

5.5.1 创建常用命令的快捷方式

ln -s /usr/bin/python3 /usr/local/bin/python

5.5.2 备份重要文件(硬链接)

ln important.txt important_backup.txt

5.5.3 版本切换(软链接)

ln -s /opt/software/version2.0 /opt/software/current

5.6 链接管理

5.6.1 查找所有硬链接

find / -samefile /path/to/file 2>/dev/null

5.6.2 查找断链的软链接

find / -type l -xtype l 2>/dev/null

5.6.3 更新软链接

ln -sf 新目标 已有软链接

5.6.4 删除链接

rm 链接名

注意:删除链接不会影响原始文件(除非这是最后一个硬链接)

5.7 工作原理图解

硬链接工作原理

[目录条目1] ------> [inode] <------ [目录条目2]
    |                   |
    v                   v
"file1.txt"         "file2.txt"

软链接工作原理

[目录条目] --> [软链接inode] --(包含路径)--> [目标文件inode]
    |                                   |
    v                                   v
"link.txt"                         "target.txt"

5.8 常见问题解答

Q: 如何判断一个文件是否是链接?
A: 使用 ls -l 查看,软链接会显示为 l 类型并显示指向;硬链接只能通过 inode 号判断

Q: 为什么不能给目录创建硬链接?
A: 这是为了防止文件系统中出现循环引用,导致文件系统工具(如 find、tar)陷入无限循环

Q: 删除原始文件后,硬链接还能访问数据吗?
A: 可以,因为硬链接和原始文件是平等的,数据只有在所有硬链接都被删除后才会真正释放

Q: 如何找到所有指向某个 inode 的硬链接?
A: 使用 find / -inum <inode号> 2>/dev/null

5.9 最佳实践

  1. 软件安装管理:使用软链接来管理不同版本的软件

    ln -s /opt/app/version2.3 /opt/app/current
    
  2. 配置文件管理:使用软链接将配置文件放在版本控制目录

    ln -s ~/dotfiles/.bashrc ~/.bashrc
    
  3. 日志轮转:使用硬链接来保持日志文件的连续性

    ln /var/log/app.log /var/log/app.log.1
    
  4. 空间节省:对大型重复文件使用硬链接节省空间


总结 🎯

Linux文件系统是一个组织严谨的王国,理解其目录结构是成为Linux高手的第一步。我们从FHS标准目录开始,探索了每个核心目录的使命;深入研究了文件权限机制,掌握了chmod和chown这两个权限管理利器;然后武装了文本处理工具包,特别是grep/sed/awk这三大神器;最后揭开了软硬链接的神秘面纱。

关键要点回顾:

  • /etc是配置中心,/var是数据仓库 🏛️
  • chmod 755赋予文件合理权限 🔐
  • grep -r可递归搜索文本 🔍
  • 硬链接是文件分身,软链接是文件快捷方式 🔗

记住:在Linux的世界里,一切皆文件! 掌握这些基础知识,你就能在Linux的海洋中自由航行。🐧⚓


PS:如果你在学习过程中遇到问题,别慌!欢迎在评论区留言,我会尽力帮你解决!😄

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2333705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国标GB28181视频平台EasyCVR如何搭建汽车修理厂远程视频网络监控方案

一、背景分析 近年我国汽车保有量持续攀升&#xff0c;与之相伴的汽车保养维修需求也逐渐提高。随着社会经济的发展&#xff0c;消费者对汽车维修服务质量的要求越来越高&#xff0c;这使得汽车维修店的安全防范与人员管理问题面临着巨大挑战。 多数汽车维修店分布分散&#…

PostIn安装及入门教程

PostIn是一款国产开源免费的接口管理工具&#xff0c;包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块&#xff0c;支持常见的HTTP协议、websocket协议等&#xff0c;支持免登陆本地接口调试&#xff0c;本文将介绍如何快速安装配置及入门使用教程。 1、安装 私有…

spring cloud微服务API网关详解及各种解决方案详解

微服务API网关详解 1. 核心概念 定义&#xff1a;API网关作为微服务的统一入口&#xff0c;负责请求路由、认证、限流、监控等功能&#xff0c;简化客户端与后端服务的交互。核心功能&#xff1a; 路由与转发&#xff1a;将请求分发到对应服务。协议转换&#xff1a;HTTP/HTTP…

最新版PhpStorm超详细图文安装教程,带补丁包(2025最新版保姆级教程)

目录 前言 一、PhpStorm最新版下载 二、PhpStorm安装 三、PhpStorm补丁 四、运行PhpStorm 前言 PhpStorm 是 JetBrains 公司推出的 专业 PHP 集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为提升 PHP 开发效率设计。其核心功能包括智能代码补全、实时语法错误检…

linux kernel arch 目录介绍

一&#xff1a;arch 目录 二&#xff1a;常用arch

ES6变量声明:let、var、const全面解析

一、引言 ECMAScript 6&#xff08;简称 ES6&#xff09;的发布为 JavaScript 带来了许多革命性的变化&#xff0c;其中变量声明方式的更新尤为重要。let、var和const成为开发者日常编码中频繁使用的关键字。 本文将深入解析这三种声明方式的核心特性、区别及最佳实践&#xff…

Linux 入门八:Linux 多进程

一、概述 1.1 什么是进程&#xff1f; 在 Linux 系统中&#xff0c;进程是程序的一次动态执行过程。程序是静态的可执行文件&#xff0c;而进程是程序运行时的实例&#xff0c;系统会为其分配内存、CPU 时间片等资源。例如&#xff0c;输入 ls 命令时&#xff0c;系统创建进程…

单调栈 —— 1.基本概念与核心算法

1. 基本概念 1.1 知识预备 在理解单调栈之前&#xff0c;我们需要先掌握两个基础概念&#xff1a;栈&#xff08;Stack&#xff09; 和 单调性&#xff08;Monotonicity&#xff09;。 什么是栈&#xff08;Stack&#xff09; 栈是一种**后进先出&#xff08;LIFO, Last-In…

工程师 - 场效应管分类

What Are the Different Types of FETs? Pulse Octopart Staff Jul 31, 2021 Field effect transistors (FETs) are today’s workhorses for digital logic, but they enjoy plenty of applications outside of digital integrated circuits, everything from motor driver…

Debezium报错处理系列之第128篇:增量快照报错java.lang.OutOfMemoryError: Java heap space

Debezium报错处理系列之第128篇:增量快照报错java.lang.OutOfMemoryError: Java heap space 一、完整报错二、错误原因三、解决方法Debezium从入门到精通系列之:研究Debezium技术遇到的各种错误解决方法汇总: Debezium从入门到精通系列之:百篇系列文章汇总之研究Debezium技…

AI——使用pandas

文章目录 1、pandas介绍2、为什么使用pandas3、pandas的数据结构1、Series2、DataFrame3、MultiIndex 4、pandas基本数据操作1、索引操作2、赋值操作3、排序4、算术运算5、逻辑运算6、逻辑运算函数7、统计函数8、累计统计函数9、自定义运算 5、pandas读取文件和存储1、csv文件2…

2025认证杯挑战赛B题【 谣言在社交网络上的传播 】原创论文讲解(含完整python代码)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了认证杯数学中国数学建模网络挑战赛第一阶段B题目谣言在社交网络上的传播完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半…

用docker容器创建属于自己的一方小世界!容器中,盖周天之变,化吾为王~

用docker容器创建属于自己的一方小世界&#xff01;容器中&#xff0c;盖周天之变&#xff0c;化吾为王~ 分别查看用户id和组id。 命令&#xff1a; 1、id -u 2、id -g 创建并运行容器 docker run -d -p 31404:22 -v /home/liub:/home -v /data:/app/data --user 1004:1004 --…

vue拓扑图组件

vue拓扑图组件 介绍技术栈功能特性快速开始安装依赖开发调试构建部署 使用示例演示截图组件源码 介绍 一个基于 Vue3 的拓扑图组件&#xff0c;具有以下特点&#xff1a; 1.基于 vue-flow 实现&#xff0c;提供流畅的拓扑图展示体验 2.支持传入 JSON 对象自动生成拓扑结构 3.自…

Linux服务器网卡深度解析:从ifconfig输出到生产环境性能调优实战

Linux服务器网卡深度解析&#xff1a;从ifconfig输出到生产环境性能调优实战 Linux服务器网卡深度解析&#xff1a;从ifconfig输出到生产环境性能调优实战一、背景二、生产环境的服务器部署情况三、拆解一个真实的 ifconfig 输出1、先看 MAC 地址2、再看设备的 interrupt 和 me…

《嵌套调用与链式访问:C语言中的函数调用技巧》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、嵌套调用&#xff08;一&#xff09;定义&#xff08;二&#xff09;实现方式&#xff08;三&#xff09;优点&#xff08;四&#xff09;缺点 二、链式…

Python-控制语句

控制语句 控制语句和逻辑思维 控制语句:把语句组合成能完成一定功能的小逻辑模块分类:顺序、选择、循环“顺序结构”:代表“先执行a,再执行b”的逻辑“条件判断结构”:代表“如果…,则…”的逻辑“循环结构”:代表“如果…则重复执行…”的逻辑条件判断结构 选择结构通…

教程:在Typora中显示拼音——附处理工具

原因 因为自己普通话不标准&#xff0c;希望可以制作适合自己的带拼音的文档&#xff0c;可以把平常看到的内容、说过的话作为练习普通话的材料。 在市面上&#xff0c;带拼音的材料、书籍并不多&#xff0c;而且有可能是一些比较生僻的内容。所以希望可以自己制作这样的材料…

OpenCV 图形API(30)图像滤波-----腐蚀操作函数erode()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用特定的结构元素腐蚀图像。 cv::gapi::erode 是 OpenCV 的 G-API 模块中用于执行图像腐蚀操作的函数。腐蚀是一种基本的形态学操作&#xff…

特殊定制版,太给力了!

今天给大家分享一款超棒的免费录屏软件&#xff0c;真的是录屏的好帮手&#xff01; 这款软件功能可以录制 MP4、AVI、WMV 格式的标清、高清、原画视频&#xff0c;满足你各种需求。 云豹录屏大师 多功能录屏神器 它的界面特别简洁&#xff0c;上手超快&#xff0c;用起来很顺…