摘要
- Linux的文件系统架构
- 文件和目录管理的基本操作
- 更改文件和目录权限
- 文件类型
- 重定向和管道
如要下载笔记和代码请到我的github。
欢迎访问我的主页查看更多文章。
Linux文件系统架构
- Linux没有盘符,有的是目录(挂载点)。
- Linux标识目录使用的是正斜杠
/
。 - Linux需要先建立一个根’/’文件系统(即“分区”),并且在这个文件系统中建立一系列空目录,然后将其他硬盘分区中的文件系统(如果有的话)挂载到这些目录中,比如在安装系统时,我们先划分一个单独的分区,再将其挂载到/home目录下。
- 理论上可以为根目录下的每一个目录都划分一个单独的硬盘分区,这样根分区就可以设置的很小(因为子目录都“映射”到了其他分区上,不占据根分区的容量)。
- 如果子目录没有划分自己的分区,那么其文件内容就自动存储在
/
根分区下。 - Linux系统主要目录及内容表格
目 录 | 内 容 |
---|---|
/bin |
构建最小系统所需要的命令(最常用的命令) |
/boot |
内核与启动文件 |
/dev |
各种设备文件 |
/etc |
系统软件的启动和配置文件 |
/home |
用户的主目录 |
/lib |
C编译器的库 |
/media |
可移动介质的安装点 |
/opt |
可选的应用程序包 |
/proc |
进程的映像 |
/root |
超级用户root的主目录 |
/sbin |
和系统操作有关的命令 |
/tmp |
临时文件存放点 |
/usr |
非文件的程序和命令 |
/var |
系统专用的数据和配置文件 |
工作组共享文件
sudo groupadd workgroup
sudo useradd -G workgroup lucy
sudo passwd lucy
sudo chgrp workgroup work/ #将组拥有权交给workgroup
sudo chmod g+rwx work/ # 用户组对目录有读写和执行权限
sudo chmod o-rwx work/ # 其他用户对目录无上述权限
sudo chown lewis work/ # 将目录所有权移交给lewis
su lewis # 切换用户ID
文件和目录管理
基本操作
-
mkdir
:一次性建立一个或几个目录。-
mkdir -p dirname
:如果父目录不存在会自动创建。
-
-
touch
:建立新的空文件。 -
mv
:重命名是移动同时修改名字(可选择不修改),一般同名时直接覆盖。-
mv -i
:如果同名,询问; -
mv -b
:如果同名,在文件名后面添加~
符号。
-
-
cp
:复制文件和目录。-
cp -i
:覆盖前询问; -
cp -b
:同名文件重命名; -
cp -r
:递归式复制(目录及子目录)。
-
-
rm
:永久删除文件和目录。-
rm -i
:删除前询问; -
rm -f
:强制删除,即对所有询问自动yes; -
rm -r
:递归删除所有目录。
-
更改文件和目录权限
-
chmod
:使用格式[ugoa…][[-+=][perms…]…]。- Linux为3种人准备了权限——文件所有者(u),文件所属组(g)和其他人(o),其他人指非前两者也非root用户(因为root拥有完整权限),其他人总是享有最低权限。
- 所有人(a)指代上述所有3个用户组;
-
+
表示增加权限,-
表示删除权限,=
表直接设置权限; - 一般来说,文件创建者自动成为所有者,但是所有权可以转让,手续由root用户实施。
- 权限分为3种:读取(r),写入(w)和执行(x)。
- 对于文件,能否删除和重命名一个文件是由其父目录的权限设置所控制的,要让一个文件可执行,必须设置其执行权限;可执行文件分为两类:
- (1)可由CPU执行的二进制代码;
- (2)shell脚本程序;
- 对于目录,
- (1)执行权限:控制用户能否进入该目录;
- (2)读取权限:负责确定能否列出该目录的内容;
- (3)写入权限:在目录中创建、删除和重命名文件。
- 所以目录和文件的执行权限是最基本的权限。
-
权限的八进制表示:每组权限rwx用3位二进制数表示(有为1无为0),即可以用1位八进制数表示。所以完整的9位权限位就可以用3个八进制数表示,如
chmod 711 prog
就可以规定各用户组权限。
-
chown
:格式chown [OPTION]… [OWNER][:[GROUP]] FILE将file的[属主]和[属组]改变为owner和group。-
chown -R
:递归式改变所有子目录所有者和组; -
chgrp
:只改变所属组。
-
-
ls -l
和ls -ld
:分别查看文件和目录的属性,属性项依次为:文件类型-3组权限位+链接数目+文件属主+文件属组+文件大小+最后修改日期+最后修改时间+完整路径。
文件类型
- Linux中一切都表示为文件的形式(包括进程、硬件设备、通信通道等),文件类型(ls -l的显示)包括:
文件类型 | 符号 |
---|---|
普通文件 | - |
目录 | d |
字符设备(顺序访问设备)文件 | c |
块设备(随机访问设备)文件 | b |
本地域套接口(进程间通信) | s |
有名管道(进程间通信) | p |
符号链接(快捷方式) | l |
- 链接分为两种:
- (1)软连接/符号链接:用ln -s TARGET LINK_NAME
创建,通过名称进行引用,删除链接也不影响原文件;
- (2)硬连接:用ln
直接创建,直接引用,对其中一者的修改会影响另一者。已很少使用。
重定向和管道
- 输入输出重定向:改变程序获取输入或产生输出的位置。标准输出指向屏幕,标准输入指向键盘。
- 输入重定向:
<
; - 两种常用输出重定向:
-
>
:相当于覆盖。 -
>>
:相当于添加。
- 输入重定向:
- 管道:
|
将一条命令的输出连接到另一条命令的输入,举例:-
ls | grep ay
:ls的输出送给grep做最后一个输入。
-
参考文献
Linux从入门到精通 刘忆智 著