Linux目录结构以及文件路径目录

Linux的目录是树形结构,与Windows操作系统的不同之处在于,Linux只有一个根目录,且没有类似Windows的C盘这种“盘符”的概念
在Linux的文件路径描述中,层次分离一般以斜杠/,而Windows一般以反斜杠\
以下是Linux根目录以及其下各种文件夹的意义:
/:根目录。一般根目录下只存放目录,在1inux下有且只有一个根目录,所有的东西都是从这里开
始:
/root:系统管理员root的目录:
/usr:系统应用程序存放的目录,一般安装的软件在该目录下:
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件:
/home:系统普通用户的家目录,其下为用户username的目录/home/username/
/var:放置系统执行过程中经常变化的文件,例如日志文件。

绝对路径和相对路径

绝对路径: 以/开头的都算绝对路径
相对路径: 以./开头的是相对路径,基于当前目录的路径
~代表家目录,cd ~ 与cd (不加参数)是一样的

1
cd ~username  # 切换到 username 用户的家目录(需权限)

文件/目录权限

在 Linux 系统中,每个文件和目录都有权限(Permissions)所有者(Owner)所属组(Group),用于控制不同用户对文件的访问级别。

查看文件权限

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

1
ls -l 文件名

示例输出:
1
-rwxr-xr-- 1 root users 4096 Jan 10 10:00 myfile.txt

解析:

部分含义
-rwxr-xr--权限(文件类型 + 所有者/组/其他用户权限)
1硬链接数
root所有者(Owner)
users所属组(Group)
4096文件大小(字节)
Jan 10 10:00最后修改时间
myfile.txt文件名

权限符号解析

权限由 10 个字符 组成:

1
2
3
4
5
6
7
- rwx r-x r--
↑ ↑↑↑ ↑↑↑ ↑↑↑
│ │││ │││ │││
│ │││ │││ └─ 其他用户(Others)权限
│ │││ └─── 所属组(Group)权限
│ └─── 所有者(Owner)权限
└── 文件类型(`-`=文件,`d`=目录,`l`=链接)

权限字符含义:

字符权限数字表示
r读(Read)4
w写(Write)2
x执行(Execute)1
-无权限0

示例:

1
-rwxr-xr--  # 所有者可读、写、执行;组可读、执行;其他用户仅可读

计算数字权限:

  • 所有者:rwx = 4 + 2 + 1 = 7
  • 组:r-x = 4 + 0 + 1 = 5
  • 其他用户:r-- = 4 + 0 + 0 = 4
  • 最终权限数字:754

特殊权限

除了 rwx,Linux 还有 3 种特殊权限

权限符号数字作用
SUIDs4执行时临时拥有所有者权限(如 passwd
SGIDs2执行时临时拥有组权限,或目录下新建文件继承组
Sticky Bitt1仅所有者/root 可删除(如 /tmp

常见权限示例

权限数字适用场景
-rw-------600仅所有者可读写(如私钥)
-rw-r--r--644所有者可读写,其他用户只读(如配置文件)
-rwxr-xr-x755所有者可读写执行,其他用户可读执行(如脚本)
drwx------700仅所有者可访问目录
drwxr-xr-x755所有者可读写执行目录,其他用户可读执行
-rwsr-xr-x4755SUID 权限(如 /usr/bin/passwd
drwxrwxrwt1777Sticky Bit(如 /tmp

配套Shell命令

命令作用
chmod修改权限
chown修改所有者
chgrp修改所属组
umask设置默认权限
ls -l查看权限

Shell命令

Linux命令

Vim 指令大全

基本移动

  • h - 左移
  • j - 下移
  • k - 上移
  • l - 右移
  • w - 移动到下一个单词开头
  • b - 移动到上一个单词开头
  • e - 移动到单词末尾
  • 0 - 移动到行首
  • ^ - 移动到行首第一个非空白字符
  • $ - 移动到行尾
  • gg - 移动到文件开头
  • G - 移动到文件末尾
  • :[n] - 跳转到第n行

插入模式

  • i - 在光标前插入
  • a - 在光标后插入
  • I - 在行首插入
  • A - 在行尾插入
  • o - 在当前行下方新建一行并插入
  • O - 在当前行上方新建一行并插入
  • s - 删除当前字符并插入
  • S - 删除当前行并插入
  • C - 删除到行尾并插入

删除

  • x - 删除当前字符
  • X - 删除前一个字符
  • dw - 删除到单词末尾
  • db - 删除到单词开头
  • dd - 删除当前行
  • D - 删除到行尾
  • d[n]w - 删除n个单词
  • d[n]j - 删除n行向下
  • d[n]k - 删除n行向上

复制与粘贴

  • yy - 复制当前行
  • y[n]w - 复制n个单词
  • y$ - 复制到行尾
  • p - 粘贴到光标后
  • P - 粘贴到光标前

撤销与重做

  • u - 撤销
  • Ctrl+r - 重做

搜索与替换

  • /pattern - 向前搜索
  • ?pattern - 向后搜索
  • n - 下一个匹配项
  • N - 上一个匹配项
  • :%s/old/new/g - 全局替换
  • :%s/old/new/gc - 全局替换并确认

可视模式

  • v - 进入字符可视模式
  • V - 进入行可视模式
  • Ctrl+v - 进入块可视模式

窗口操作

  • :sp [file] - 水平分割窗口
  • :vsp [file] - 垂直分割窗口
  • Ctrl+w h/j/k/l - 在窗口间移动
  • Ctrl+w w - 循环切换窗口
  • Ctrl+w c - 关闭当前窗口
  • Ctrl+w o - 关闭其他窗口

标签页

  • :tabnew [file] - 新建标签页
  • gt - 下一个标签页
  • gT - 上一个标签页
  • :tabclose - 关闭当前标签页

其他常用

  • . - 重复上一个命令
  • Ctrl+g - 显示当前位置信息
  • :q - 退出
  • :q! - 强制退出不保存
  • :w - 保存
  • :wqZZ - 保存并退出
  • :e [file] - 打开文件
  • :set nu - 显示行号
  • :set nonu - 隐藏行号

高级功能

  • Ctrl+n - 自动补全(插入模式)
  • Ctrl+x Ctrl+f - 文件名补全(插入模式)
  • Ctrl+d - 列出可能的补全(命令模式)
  • q[a-z] - 开始录制宏到指定寄存器
  • q - 停止录制宏
  • @[a-z] - 执行指定寄存器的宏
  • :!command - 执行外部命令

Vim的强大之处在于组合这些命令,例如 d3w 删除3个单词,c$ 修改到行尾等。