linux的文件
1、系统目录结构
/ 根目录
bin //系统可执行程序,如命令 里面的二进制文件可以直接执行
boot //内核和启动程序,所有和启动相关的文件都保存在这里
root //管理员宿主目录,家目录
home //用户的主目录。下面是自己定义的用户名的文件夹,用户家目录
dev //设备文件 linux所见皆文件,鼠标键盘等也不例外
etc //系统软件的启动和配置文件,系统在启动过程中需要读取的文件都在这个目录。如LILO参数、用
户账户和密码。
lib //系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32
目录,几乎所有的应用程序都需要用到这些共享库。
media //挂载媒体设备,如光驱、U盘等
mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media
目录。
usr //这是个最庞大的目录,用户要用到的很多应用程序和文件几乎都存放在这个目录下。]
bin // 应用程序
game //游戏程序
include
lib //应用程序的库文件
lib64
local //包含用户程序等
sbin //管理员应用程序
上面的比较重要
==========================================
opt //可选的应用软件包(很少使用)
proc //这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说,这个目录
的内容不在硬盘上而是在内存里。
sbin //管理员系统程序
selinux
srv
sys //udev用到的设备目录树,/sys反映你机器当前所接的设备
tmp //临时文件夹
2、 相对路径和绝对路径
绝对路径
从/目录开始描述的路径为绝对路径,如:
cd /home
ls /usr
相对路径
从当前位置开始描述的路径为相对路径,如:
cd ../../
ls abc/def
3、文件类型
任何一个目录下使用 ls -l 命令就可以查看文件类型,第一个字母代表文件类型。后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件所有者的权 限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示 对文件的读、写和执行权限。
Linux系统文件类型: 8 种
普通文件:-
目录文件:d
字符设备文件:c
块设备文件:b
软连接:l
管道文件:p
套接字:s
未知文件。
权限包括
r 读
w 写
x 可执行。对于目录,表示进入权限。
s 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。
t 设置标志位(sticky bit)。如果是有sticky bit的目录,在该目录下任何用户只要有适当的权限即可创建文
件,但文件只能被超级用户、目录拥有者或文件属主删除。如果是有sticky bit的可执行文件,在该文件执行后,
指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。
- 没有相应位置的权限。
软连接和硬连接
ln -s file file.s 创建一个软链接
软链接就像windows下的快捷方式
软链接的大小是文件路径
Linux下的软链接行为和windows下的快捷方式差不多,但是如果是用相对路径创建的软链接,在软链接移动之后就会失效,无法访问。这一点和windows快捷方式不同,windows快捷方式随便放哪里都行。
所以,创建软链接最好使用绝对路径
移动后,绝对路径创建的软链接不会失效
硬连接:
ln file file.h 创建一个硬链接
创建硬链接后,文件的硬链接计数+1
再创建一个硬链接
这里对于file1,有2个硬链接file.h和file.hard,无论更改哪个硬链接或者文件本身,这三个文件的变化同步
产生这种同步变化的原因:
可以看到文件和硬链接的Inode是相同的,每个文件都有唯一的Inode,直观理解起来就像洗佳佳里面的引用,对于同一个文件,无论有多少引用,在访问时,都是这个文件,所以修改就是同步的。
当删除一个硬链接时,文件的硬链接计数-1,当这个计数减为0时,才会删除这个文件
即使删除硬链接指向的文件,也只会让硬链接计数-1