本文转载自:IstvanShaw的简书 LINUX文件、目录与磁盘格式学习笔记
以下基于CenOS7
Linux的文件权限与目录配置
-
用户与用户组
默认情况下所有系统用户(包括root)的相关信息,记录在/etc/passwd文件中:
密码记录在/etc/shadow文件中;用户组名记录在/etc/group中;
- Linux文件权限概念
以root登录系统后,输入ls -al
命令列出当前用户主文件夹所有文件的详细信息:
- 第1列:文件类型和权限
第1个字符表示目录[d]、文件[-]、链接文件[l]等;
后9个字符3个为一组,表示文件所有者、该用户组和其他用户的读[r]、写[w]和执行[x]的权限,或没有权限[-]; - 第3列:文件所有者
- 第4列:文件所属用户组
- 第5列:文件大小,默认单位为B
- 第6列:文件最近修改时间
过于久远则会显示年份; - 第7列:文件名
文件名以.
开头则表示该文件是隐藏文件;
- 改变文件所属用户组:
chgrp
chgrp [-R] 用户组 文件或目录 ...
[-R]:递归修改该目录下所有文件和目录; - 改变文件所有者:
chown
chown [-R] 用户 文件或目录
chown [-R] 用户:用户组 文件或目录
- 改变文件权限:
chmod
,权限设置可以使用数字或符号:读[r]:4、写[w]:2、执行[x]:1、无权限[-]:0;
chmod [-R] 权限数字之和 文件或目录
设置filename的权限为-rwxr-xr-x:chmod u=rwx,go=rx filename
为所有用户对filename增加写入权限:chmod a+w filename
去除所有用户对filename的执行权限:chmod a-x filename
文件名避免特殊字符:* ? < > ; & ! [ ] | \ ' " ( ) { }
避免以 . - +
开头
- Linux目录配置
- /bin:重要可执行文件
- /boot :开机使用的文件,包括Linux内核文件和开机所需配置文件
- /dev:所需设备文件
- /etc:系统主要配置文件
- /home:用户主文件夹
- /lib:执行文件所需的函数库与内核所需模块
- /media:可删除的设备
- /mnt:暂时挂在额外的设备
- /opt:第三方软件
- /root:系统管理员(root)主文件夹
- /sbin:重要的系统执行文件,如开机等所需的命令
- /srv:网络服务数据文件
- /tmp:临时文件
- /lost+found:文件系统出错时放置丢失片段
- /proc:虚拟文件系统,数据在内存中
- /sys:虚拟文件系统,记录内核相关信息
- /usr:UNIX Software Resource,软件数据
- /var:软件运行产生的文件
Linux文件与目录管理
- 目录与路径
绝对路径 由根目录( / )开始写的文件或目录名称/etc/nginx/nginx.conf
相对路径 相对于当前路径的文件名写法./nginx/nginx.conf
或../nginx.conf
.
、./
代表当前目录
..
、../
代表上一层目录
-
代表前一个工作目录
~
代表当前用户所在的主文件夹
~用户名
代表用户用户名
所在的主文件夹
cd [目录]
切换目录(Change Directory)
pwd [-P]
显示当前目录(Print Working Directory)
[-P] 显示当前路径,不使用链接路径
mkdir [-mp] 目录
新建一个新的目录(Make Directory)
[-m] 设置新建目录的权限
[-p] 递归创建新建目录的上层目录
rmdir [-p] 目录
删除一个空的目录(Remove Directory)
[-p] 连同上层空目录一起删除
echo $PATH
查看$PATH环境变量
- 文件与目录管理
- 查看文件与目录
ls [-adhlSt] 目录
-a
列出所有文件,包括隐藏文件
-d
只列出目录
-h
显示易读的文件大小
-l
列出文件属性权限等信息,简写ll
-S
以文件大小排序
-t
以文件修改时间排序
- 复制文件与目录
cp [-afipr] 源文件 目标文件
-f
强制操作(force)
-i
如果目标文件已存在,覆盖时会先询问操作
-p
连同文件属性一起复制,可用于备份文件
-r
递归复制目录
- 移除文件与目录
rm [-fir] 文件或目录
-f
强制删除 危险
-i
删除前会进行询问操作
-r
递归删除 危险
- 移动或重命名文件与目录
mv [-fiu] 源文件1 源文件2 ... 目标文件
-f
强制操作
-i
移动前会进行询问操作
-i
如果目标文件已存在,并且源文件比较新,才移动
同一目录下执行mv会对源文件进行重命名
- 获取文件名和目录名
basename 文件
文件名
dirname 文件
目录名
- 文件内容查阅
- 从第一行开始显示文件内容
cat [-bn] 文件
-b
列出行号,空白行不标行号
-n
列出行号,包括空白行
- 反向显示
tac 文件
- 添加行号打印
nl [-bnw] 文件
- 分页查看
more 文件名
在more运行时,可以进行操作:
空格键 向下翻页
回车键 向下滚动一行
/关键字 查找关键字
:f 显示文件名和当前行数
q 离开
less文件名
在less运行时,可以进行操作:
空格键 pageDown 向下翻页
pageUp 向上翻页
/关键字 向上查找关键字
?关键字 向下查找关键字
n 重复上一个查找
N 反复重复上一个查找
q 离开
- 查看选定行
显示文件前几行head [-n num] 文件
显示文件后几行tail [-n num] 文件
[-f] 持续刷新文件
- 修改文件时间或创建新文件
touch [-acdmt] 文件
- 查看文件类型
file 文件
- 命令与文件的查询
- 查询命令
which [-a] 命令
[-a] 列出PATH中所有命令
- 查找文件
从保存文件信息的文件中查找whereis 文件名
从/var/lib/mlocate/
下文件数据库文件中查找locate [-ir] 关键词
[-i] 忽略大小写
[-r] 后接正则表达式
根据/etc/updatedb.conf
配置文件更新/var/lib/mlocate/
下文件数据库文件:updatedb
直接从硬盘中查找文件find [目录] [option] [action]
to be continued...