linux知识点

一、 Linux系统的目录结构

1.bin


/bin:存放系统启动和日常使用的必备命令(如ls、cd、cp),所有用户均可执行。


2.boot


/boot:包含系统启动文件(内核、引导加载程序):内核文件(vmlinuz)、引导加载程序(grub)、初始化内存文件系统(initrd/initramfs)、启动配置文件(如grub.cfg)


3.dev


/dev:将硬件设备抽象为文件,通过操作文件访问设备。如硬盘、U盘、键盘、鼠标等


4.etc


/etc:存放系统和软件的配置文件(非运行时数据)包括网络配置,用户信息、软件配置等


5.home


/home:普通用户的主目录(如 /home/user1)


6.lib


/lib:存放系统和命令依赖的共享库文件 (32位)
共享库是一种可被多个程序同时使用的代码和数据集合
核心作用:
大多数应用程序在运行时需要调用共享库中的函数、类或资源
共享库允许不同程序共享同一套代码,避免重复存储,从而减少磁盘空间占用和内存消耗
操作系统内核模块(如驱动程序)的动态加载也依赖于lib目录中的库文件,确保硬件设备能被正确识别和使用。
存放系统启动和基本运行所需的核心共享库(如内核模块、启动程序依赖库),例如:
libc.so:C 标准库
libkernel.so:内核相关库
libudev.so:设备管理库


7.lib64


/lib64:是lib的子目录对应lib目录的64 位系统库文件


8.media


/media:可移动设备(如 U 盘、光盘)的临时挂载点


9.mnt


/mnt:临时挂载其他文件系统的目录


10.opt


/opt:第三方软件的安装目录


11.proc


/proc:虚拟文件系统,存储内核和进程信息


12.root


/root:超级用户(root)的主目录,独立于/home,避免普通用户访问权限问题。


13.run


/run:系统运行时的临时文件(重启后清空)


14.sbin


/sbin:系统管理员专用命令(如 shutdown, ifconfig)


15.sys


/sys:虚拟文件系统,提供内核设备树接口,用于查看和修改硬件设备属性


16.tmp


/tmp:临时文件目录(通常重启后清空)


17.usr


/usr:用户程序和文件的主目录(类似 Windows 的 Program Files)


18.var


/var:可变数据目录(如系统日志、用户邮件、数据库文件、持久化临时文件)


二、 LInux文件基本属性


1.文件基本权限

每个文件有三种基本权限,四种表示:

r(读取权限):当前用户组拥有读权限。
w(写入权限):当前用户组已拥有写权限。
x(执行权限): 决定了用户是否能够将文件作为程序或脚本执行。
-(无权限):表示当前组无权限


1). 执行权限x的知识点


对于普通文件:
系统允许用户将其作为可执行程序运行,如二进制程序(如 /bin/ls、/usr/bin/python3)和
脚本文件(如 .sh、.py、.pl 等)
对于目录文件:
x 权限 决定用户是否能够进入(cd)该目录或访问其内容。
如果目录没有 x 权限,即使有 r 权限,也无法查看其内部文件列表。


2.权限类型分组

权限分为三组:所有者(User),所属组(Group),其他用户(Others)
文件格式:[权限字符串] [硬链接数] [所有者] [所属组] [文件大小] [修改时间] [文件名与链接目标]
示例

权限字符串硬链接数所有者所属组文件大小修改时间文件名与链接目标
lrwxrwxrwx. 1 root root 7 Jan 9 2023 bin -> usr/bin

1). 权限字符串(首字符+权限部分)总共有 10 个字符,格式为:[d/-][rwx][rwx][rwx]
第 1 位:文件类型
d:目录(Directory)
-:普通文件
l:符号链接(Link)
b:块设备(如硬盘)
c:字符设备(如键盘)
p:管道文件(pipe)
s:套接字文件(socket)
第 2-4 位:所有者(User) 的权限
第 5-7 位:所属组(Group) 的权限
第 8-10 位:其他用户(Others) 的权限
每种权限代表一种数字:r=4,w=2,x=1,-=0
示例

 

权限字符串数字含义
drwxr-xr-x 755 目录,所有用户可浏览,但只有所有者可修改。
drwxrwxrwx 777 目录,所有者、所属组、其他用户都可以修改。
drwx------ 700 目录,只有所有者有所有权限,其他用户无法访问。
-rwxr-xr-x 755 文件,所有用户可执行,但只有所有者可修改。
-rw-r--r-- 644 文件,只有所有者可修改,其他用户只能读取。

2).硬链接数
表示有多少个文件名指向该文件的inode 节点。
对于符号链接,此值通常为 1(因为软链接本身是独立文件,指向目标路径)。


3).所有者(root)
该文件的所有者用户名(本例中为root用户)。


4).所属组(root)
该文件所属的用户组名(本例中为root组)。


5).文件大小(7)
对于普通文件,单位为字节(Byte);
对于符号链接,此值为目标路径的字符串长度(本例中usr/bin共 7 个字符)。


6).修改时间(Jan 9 2023)
表示文件内容最后一次被修改的时间,格式为月 日 年或月 日 时:分(超过 6 个月会显示年份)。


7).文件名与链接目标(bin -> usr/bin)
左侧:文件名(bin);
右侧:符号链接指向的目标路径(-> usr/bin),表示bin链接到/usr/bin目录。

3.修改权限:chown/chmod命令


chown:用于改变文件或目录的所有者(user)和所属组(group),需要 root 权限 执行。
chmod:命令用于改变文件或目录的访问权限,有 数字模式 和 符号模式 两种用法。


1.chown


语法:chown [选项] [所有者][:[所属组]] 文件/目录
常用参数:
-R:递归修改目录及其子内容的权限
-v:显示详细操作过程
--reference=FILE:引用另一个文件的权限设置
示例
1).修改所有者
chown user1 file.txt # 将 file.txt 的所有者改为 user1
chown -R user1 mydir/ # 递归将 mydir 目录下所有内容的所有者改为 user1
2).同时修改所有者和所属组
chown user1:developers project/ # 将目录project的所有者改为 user1,所属组改为 developers
chown :admins config.ini # 将文件config.int仅修改所属组为 admins(所有者不变)
3).通过引用其他文件的所有者
chown --reference=template.txt newfile.txt # 让 newfile.txt 拥有和 template.txt 相同的所有者


2.chmod


1).数字模式:通过三位数字快速设置权限:chmod [选项] 权限数字 文件/目录
示例
chmod 755 script.sh # 所有者:读写执行(7),组和其他:读执行(5)
chmod 640 config.ini # 所有者:读写(6),组:读(4),其他:无权限(0)
chmod 400 private.key # 仅所有者有读权限
2).符号模式:通过符号指定用户组和权限操作:chmod [用户组][+|-|=][权限] 文件/目录

用户组符号:
u:所有者(user)
g:所属组(group)
o:其他用户(others)
a:所有用户(all)

权限操作符:
+:添加权限
-:移除权限
=:设置为指定权限

示例
chmod u+x script.sh # 为所有者添加执行权限
chmod g-w,o-rwx file.txt # 移除组的写权限和其他用户的所有权限
chmod a=rwx shared_dir # 所有用户拥有读写执行权限

特殊权限位(SUID/SGID/Sticky Bit)
在三位数字前可以加第四位,表示特殊权限:
4:SUID(Set User ID)
让程序以所有者的身份运行(如 /usr/bin/passwd)
2:SGID(Set Group ID)
目录下创建的文件自动继承目录的所属组
1:Sticky Bit
仅文件所有者可删除文件(如 /tmp 目录)

示例
chmod 4755 /usr/local/bin/program # 设置 SUID 位,让普通用户以程序所有者权限执行
chmod 2775 shared_folder/ # 设置 SGID 位,确保团队成员创建的文件属于同一组
chmod 1777 /tmp # 设置 Sticky Bit,防止误删公共目录文件


三、 常用的管理、查看文件与目录的相关命令

1.查看命令

ls -l # 查看详细信息(权限、所有者、大小、修改时间)
ls -a # 显示隐藏文件(以.开头的文件)
ls -lh # 以人类可读的格式显示文件大小(如1K、2M)
ls -R # 递归显示子目录内容


2.目录操作

cd /path/to/directory # 绝对路径切换
cd relative/path # 相对路径切换
cd .. # 返回上一级目录
cd - # 返回上次所在目录
cd # 直接进入用户主目录(等价于 cd ~)
pwd # 显示当前工作目录
mkdir directory_name # 创建目录
mkdir -p dir1/dir2/dir3 # 递归创建多级目录


3.文件操作

cp source_file destination_file # 复制文件
cp -r source_dir destination_dir # 递归复制目录
rm file_name # 删除文件
rm -r directory_name # 递归删除目录(慎用)
rm -rf directory_name # 强制递归删除(危险!)
mv old_name new_name # 重命名文件/目录
mv file_path new_location # 移动文件/目录


4.文件内容查看

cat file.txt # 显示文件全部内容
head -n 10 file.txt # 显示文件前10行
tail -f log.txt # 实时监控文件追加内容(常用于日志)
less file.txt # 分页查看文件(可向上/向下滚动)
more file.txt # 分页查看文件(只能向下滚动)
wc -l file.txt # 统计文件行数


四、 vim的基础操作

1.进入插入模式:

i:在光标前插入
a:在光标后插入
o:在当前行下方插入新行
O:在当前行上方插入新行


2.保存与退出:

:w:保存文件
:q:退出(未修改时)
:wq 或 :x:保存并退出
:q!:强制退出(不保存修改)


3.光标移动:

h(左)、j(下)、k(上)、l(右)
w:跳到下一个单词开头
b:跳到上一个单词开头
$:跳到行尾
^:跳到行首
G:跳到文件末尾
1G 或 gg:跳到文件开头


4.文本编辑:

dd:删除当前行
yy:复制当前行
p:粘贴复制的内容
u:撤销上一步操作
Ctrl+r:重做(恢复撤销)
/keyword:搜索关键字(n 下一个,N 上一个)


实用技巧

分屏操作:
:split 或 :sp # 水平分屏
:vsplit 或 :vsp # 垂直分屏
Ctrl+w+方向键 # 在分屏间切换


设置行号

:set number 或 :set nu # 显示行号
:set nonumber 或 :set nonu # 隐藏行号


替换文本

:%s/old/new/g # 全文替换old为new
:%s/old/new/gc # 全文替换,每次替换前确认

 
posted @ 2025-07-07 08:47  许魔  阅读(9)  评论(0)    收藏  举报