一Linux 发行版系统的系统目录名称命名规则及各目录的用途
1.1系统目录命名规则
严格区分大小写
路径分隔符号是/,同时包括路径在内的文件名称最长是4095个字节
文件名最长255字节
1.2各目录用途
Linux系统的发行版众多,但是都遵循FHS(Filesystem Hierarchy Standard)文件系统分层标准,常见的文件系统目录有以下几个:
/boot: 引导操作系统文件的目录,主要存放Linux内核和Bootloader Grub,必须作为一个独立的分区
/bin:所有用户使用的使用到的基本命令,不能作为一个独立的分区
/sbin:管理类的基本命令,主要是root管理员使用到的命令,也是不能作为一个独立的分区
/lib:库文件和内核模块文件,主要是应用程序在运行时依赖到的共享库文件
/lib64:存放64位系统共享库文件
/etc:存放系统及软件的配置文件
/root:管理员root的家目录
/home/username:普通用户的家目录
/media:便携式移动设备的挂载点
/mnt:临时文件系统的挂载点
/dev:设备文件和特殊文件的挂载点,包括块设备和字符设备
/opt:Linux系统安装好后,随后安装的第三方软件存放位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存放位置
/proc:输出内核和进程相关信息的虚拟文件系统
/sys:输出当前系统上硬件设备相关信息的虚拟文件系统
/usr: universal shared ,read-only data 包含了所有的共享文件,涵盖了二进制文件,各种文档,各种头文件,x,还有各种库文件
/usr/bin : 所有可执行文件,如 gcc,firefox 等(指不包含在 /sbin 和 /bin 内的);
/usr/include : 各种头文件,编译文件等时需要使用;
/usr/include/'package-name' : 程序特定的头文件;
/usr/lib : 所以可执行文件所需要的库文件;
/usr/local : /usr 通常只包含系统发行时自带的程序,而 /usr/local 则是本地系统管理员用来自由添加程序的目录;
/usr/X11R6 : x 系统的二进制文件,库文件,文档,字体等。它不等同于 /usr 的作用,只有 x 才能调用这些库文件等,其他程序不读取或者使用。因为 linux 没有原生图形界面,而且 linux 大部分情况下是 for server 的,所以图形界面没有意义;其中 X11R6 代表 version 11 release 6;
/usr/X11R6/bin : x 的二进制文件,包含运行 x 的必须文件;
/usr/X11R6/include : x 相关的头文件;
/usr/X11R6/lib : x 库文件;
/usr/X11R6/lib/modules : x 的模块,启动时加载。缺少 video4linux, DRI and GLX 和 输入输出设备 模块,将工作不正常;
/usr/X11R6/lib/X11/fonts : x font server 的字体文件;
/usr/doc : 文档。实际是 /usr/share/doc 的软链接;
/usr/etc : 一个极少用到的配置文件存放地;
/usr/games : 曾经包含游戏等文件,现在很少用到;
/usr/info : 系统相关信息,是 /usr/share/info 的软链接;
/usr/man : man 手册,已经移至 /usr/share/man;
/usr/sbin : 类似 /sbin,root 可以执行。但此目录不包含在环境变量 $PATH 中,它包含的程序类似于 chroot, useradd, in.tftpd and pppconfig;
/usr/share : 它包含了各种程序间的共享文件,如字体,图标,文档等。(/usr/local 对应的目录是 /usr/loca/share);
/usr/share/doc : 类似应用程序的 man 手册。它包含程序的说明文件,默认配置文件等;
/usr/share/info : 不常用,已经被 man 代替;
/usr/share/man : app 的 manual;
/usr/share/icons : 应用程序的图标等文件,分为 png,svg 等多种格式;
/usr/share/fonts : 字体文件,系统范围内可使用,~/.fonts 仅当前用户可用;
/var:包括系统运行时要改变的数据。其中包括每个系统是特定的,即不能够与其他计算机共享的目录,如/var/log,/var/lock,/var/run。有些目录还是可以与其他系统共享,
二 文件元数据信息
2.1元数据查看
文件是由数据和元数据(Meta data)组成,元数据就是文件的属性信息,例如文件的大小,时间,类型,权限等,这些元数据主要存放在index node 表中
可以通过以下三个命令查询到文件的元数据信息
- file
查看该文件是什么类型文件
②ls -l
通过ls -l 可以查看到该文件的权限,属主,被链接次数,属组,大小,访问时间
③stat(查看到更多元数据信息)
stat可以更加全方位查看到文件的元数据信息
File:文件名称
Size:文件大小
Block:文件在磁盘中占用的块数量
IO Block:Block的大小,4K
Regular file :文件类型,这里表示这是一个普通的文件/目录文件(文件类型有:普通文件,目录文件,链接文件,块设备文件,字符设备文件,管道文件,套接字文件)
Device:设备编号
Inode:inode编号
Links:此文件被链接次数
Access:该文件的对属主,属组,和其他人的访问权限
Uid:该文件所属的属主及UID
GID:该文件的所属的数组及GID
Context:selinux权限
Access:最近一次访问时间
Modify:该文件最近一个修改时间
Change:该文件元数据最近一次修改时间
2.2元数据修改
文件元数据可以使用touch命令修改
touch
-a 仅修改atime和ctime
-m仅修改mtime和ctime
-t指定atime和mtime时间戳(时间戳格式YYYYMMDDhhmm.ss)
三软硬链接的用法及区别
3.1硬链接
硬链接文件就是给同一个文件起多个名字,实质上是同一个文件
可以看到文件的大小,inode编号,时间都是一样,所以实质上它们就是同一个文件
用法:ln src file dst link file
3.2 软链接
软链接文件指向另一个文件,类似Windows 的快捷方式,实质上它们并不是同一个文件
两者之间的inode编号,文件大小,访问权限都不一样,所以它们不是同一个文件。而且可以看出/MyData/passwd是只指向/etc/passwd文件
用法 ln -s src_file dst_link_file
3.3 两者区别
①本质
硬链接是同一个文件
软链接不是同一个文件,它只是进入另外一个文件的入口
- 跨设备
硬链接:不支持,因为硬链接的inode号是一样的,跨设备inode号码就会和原有分区的inode混淆,所以不支持跨链接
软链接:支持。因为软链接文件只是指向另一个文件,所以不存在inode号冲突
- Inode编号
硬链接:相同
软链接:不同
- 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数会减少
软链接:创建或删除,链接数不会变化
- 文件夹
硬链接:不支持
软链接:支持
- 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件相对路径是相对于链接文件的相对路径
- 删除源文件
硬链接:只是链接数减少,但链接文件的访问不受影响
软链接:链接文件将会被损坏
- 文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关
四Linux上的文件管理类命令详解
文件管理主要包括文件和目录的创建,复制,移动,删除,
4.1文件和目录的创建
①文件的创建touch
②目录的创建mkdir
-p:自动创建所需的各目录
-v:显示详细信息
-m MODE:创建目录时指定权限
4.2文件和目录的复制
①文件的复制 cp
cp srcfile dstfile
cp srcfile1,srcfile2…. /dstfolder/
-i:交互式,覆盖前提示是否覆盖
-n:不覆盖
-r,-R:递归复制目录及内部所有内容
-a:归档,常用于备份
-d:不复制源文件,只复制链接名
-p:保留源文件的mode,ownership,timestamp
-v:verbose 详细信息
-f:强制覆盖
-b:目标存在,覆盖前先备份,默认形式时filename ~
--backup=munbered:覆盖前先备份加数字后缀
②目录的复制
cp -r srcfolder dstfolder
4.3文件和目录的移动
mv可以实现文件或目录的移动或改名
- 文件的移动或改名
mv src dst(不同目录下)
mv src dst (相同目录下就是改名)
- 目录的移动或改名
同上
4.4文件或目录的删除
①文件的删除rm
rm file
-i:交互式,删除前会提醒
-f:force,强制删除
-r:递归
②目录的删除rmdir
rmdir 只能删除空目录,删除非空目录只能使用rm -r 命令,递归删除目录
-p:递归删除父空目录
-v:verbose显示详细信息
五命令的实际应用
5.1 复制 /etc/profile至/tmp/目录,然后删除/tmp/profile文件中的行首的空白字符
- cp -r /etc/profile /tmp/
②在vi扩展模式中使用搜索替换功能,替换后结果请看右图
5.2对vim进行设置,使得tab缩进为4个字符
①找到vim的配置文件
全局:/etc/vimrc
个人:/home/USERNAME/.vimrc(默认不存在,需要手工创建) touch /home/username/.vimrc
②修改缩进参数ts
echo set ts=4 > /home/username/.vimrc
浙公网安备 33010602011771号