博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux学习感悟(二)

Posted on 2021-03-07 21:10  zwj0319  阅读(121)  评论(0)    收藏  举报

一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 表中

    可以通过以下三个命令查询到文件的元数据信息

  1. 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 两者区别

    ①本质

    硬链接是同一个文件

    软链接不是同一个文件,它只是进入另外一个文件的入口

 

  1. 跨设备

硬链接:不支持,因为硬链接的inode号是一样的,跨设备inode号码就会和原有分区的inode混淆,所以不支持跨链接

软链接:支持。因为软链接文件只是指向另一个文件,所以不存在inode号冲突    

 

  1. Inode编号

硬链接:相同

软链接:不同

 

  1. 链接数

硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数会减少

软链接:创建或删除,链接数不会变化

    

  1. 文件夹

硬链接:不支持

软链接:支持

    

  1. 相对路径

硬链接:原始文件相对路径是相对于当前工作目录

软链接:原始文件相对路径是相对于链接文件的相对路径

 

  1. 删除源文件

硬链接:只是链接数减少,但链接文件的访问不受影响

软链接:链接文件将会被损坏

 

  1. 文件类型

硬链接:和源文件相同

软链接:链接文件,和源文件无关

 

四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可以实现文件或目录的移动或改名

  1. 文件的移动或改名

    mv src dst(不同目录下)

     mv src dst (相同目录下就是改名)

  1. 目录的移动或改名

同上

 

4.4文件或目录的删除

    ①文件的删除rm

    rm file

    -i:交互式,删除前会提醒

    -f:force,强制删除

    -r:递归

②目录的删除rmdir

rmdir 只能删除空目录,删除非空目录只能使用rm -r 命令,递归删除目录

-p:递归删除父空目录

-v:verbose显示详细信息

 

五命令的实际应用

5.1 复制 /etc/profile至/tmp/目录,然后删除/tmp/profile文件中的行首的空白字符

  1. 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