Linux私房菜第2部分

一. Linux文件权限与目录配置

  1. 使用者与群组
    • 文件拥有者-可以设定文件权限
  2. Linux文件权限概念
    • ls -al: ls显示文件的文件名与相关属性,-al表示列出所有的文件详细的权限和权限
      ATL
      第一个字符代表这个文件是『目录、文件或链接文件等等』:
      当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
      当为[ - ]则是文件,例如上表档名为『install.log』那一行;
      若是[ l ]则表示为连结档(link file);
      若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
      若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    • 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
      第一组为『文件拥有者的权限』,以『install.log』那个文件为例, 该文件的拥有者可以读写,但不可执行;
      第二组为『同群组的权限』;
      第三组为『其他非本群组的权限』。
      ALT
    • 档名之前多一个『 . 』,则代表这个文件为『隐藏档』,例如上表中的.gconf那一行,该文件就是隐藏档
    • chgrp :改变文件所属群组
    • chown :改变文件拥有者
    • chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
    • 可以使用数字来代表各个权限,各权限的分数对照表如下:r:4 , w:2 , x:1
      每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
      owner = rwx = 4+2+1 = 7
      group = rwx = 4+2+1 = 7
      others= --- = 0+0+0 = 0
    • 设定Linux底下的文件名时, 最好可以避免一些特殊字符比较好!例如底下这些:* ? > < ; & ! [ ] | ' " ` ( ) { }
  3. Linux目录配置
    FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
    • / (root, 根目录):与开机系统有关;
    • /usr (unix software resource):与软件安装/执行有关;
    • /var (variable):与系统运作过程有关。
    • /etc:配置文件
    • /bin:重要执行档
    • /dev:所需要的装置文件
    • /lib:执行档所需的函式库与核心所需的模块
    • /sbin:重要的系统执行文件
      注:这五个目录千万不可与根目录分开在不同的分割槽
    • 两个特殊的目录:
      . :代表当前的目录,也可以使用 ./ 来表示;
      .. :代表上一层目录,也可以 ../ 来代表。
    • 有五个目录不可与根目录放在不同的partition,分别为/etc, /bin, /lib, /dev, /sbin五个。

二. Linux文件与目录管理

  1. 目录与路径
    几个常见的处理目录的命令吧:
    • cd:变换目录
    • pwd:显示目前的目录
    • mkdir:创建一个新的目录
    • rmdir:删除一个空的目录
      不同身份使用者默认的PATH不同,默认能够随意运行的命令也不同(如root与vbird);
      PATH是可以修改的,所以一般使用者还是可以透过修改PATH来运行某些位於/sbin或/usr/sbin下的命令来查询;
      使用绝对路径或相对路径直接指定某个命令的档名来运行,会比搜寻PATH来的正确;
      命令应该要放置到正确的目录下,运行才会比较方便;
      本目录(.)最好不要放到PATH当中。
  2. 文件与目录管理
    • 复制、删除与移动: cp, rm, mv
  3. 文件内容查阅
    • cat 由第一行开始显示文件内容
    • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
    • nl 显示的时候,顺道输出行号!
    • more 一页一页的显示文件内容
    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    • head 只看头几行
    • tail 只看尾巴几行
    • od 以二进位的方式读取文件内容!
    • 非纯文字档: od
    • 修改文件时间或建置新档: touch
    • 将某个文件日期修订为目前 (mtime 与 atime)
      4.文件与目录的默认权限与隐藏权限
    • 文件默认权限:umask
    • 文件隐藏属性:chattr (配置文件隐藏属性) lsattr (显示文件隐藏属性)
    • 文件特殊权限: SUID, SGID, SBIT
    • Set UID
      /etc/shadow 就不能让 vbird 这个一般帐户去存取的,为什么 vbird 还能够修改这个文件内的密码呢? 这就是 SUID 的功能啦
    • vbird 对於 /usr/bin/passwd 这个程序来说是具有 x 权限的,表示 vbird 能运行 passwd;
    • passwd 的拥有者是 root 这个帐号;
    • vbird 运行 passwd 的过程中,会『暂时』获得 root 的权限;
    • Set GID
      使用者若对於此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
      使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
      用途:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同。
      /etc/shadow 就可以被 vbird 所运行的 passwd 所修改。
    • Sticky Bit
      当使用者对於此目录具有 w, x 权限,亦即具有写入的权限时;
      当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件
    • 观察文件类型:file
  4. 命令与文件的搜寻
    • 命令档名的搜寻:which (寻找『运行档』)
    • 文件档名的搜寻:whereis (寻找特定文件),locate
    • updatedb:根据 /etc/updatedb.conf 的配置去搜寻系统硬盘内的档名,并升级 /var/lib/mlocate 内的数据库文件;
    • locate:依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字档名。

三.Linux磁盘与文件系统管理

  1. 磁盘与目录的容量
    • df:列出文件系统的整体磁盘使用量;
    • du:评估文件系统的磁盘使用量(常用在推估目录所占容量)
  2. 磁盘的分割、格式化、检验与挂载
    • 磁盘分区: fdisk
    • 磁盘检验: fsck, badblocks
    • 磁盘参数修订:mknod,e2label,tune2fs,hdparm
      4.配置启动挂载:
    • 启动挂载 /etc/fstab 及 /etc/mtab
    • 系统挂载的一些限制:
      根目录 / 是必须挂载的﹐而且一定要先于其它 mount point 被挂载进来。
      其它 mount point 必须为已创建的目录﹐可任意指定﹐但一定要遵守必须的系统目录架构原则
      所有 mount point 在同一时间之内﹐只能挂载一次。
      所有 partition 在同一时间之内﹐只能挂载一次。
      如若进行卸除﹐您必须先将工作目录移到 mount point(及其子目录) 之外。
  3. 内存置换空间(swap)之建置:
    • 使用实体分割槽建置swap

四.文件的压缩与打包

  1. Linux 系统常见的压缩命令
    • *.Z compress 程序压缩的文件;被 compress 压缩的原始文件会不见,而压缩文件会被创建起来, 而且扩展名会是 *.Z
    • *.gz gzip 程序压缩的文件;
    • *.bz2 bzip2 程序压缩的文件;
    • *.tar tar 程序打包的数据,并没有压缩过;
    • *.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
    • *.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
  2. 打包命令: tar
    • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
    • 查 询:tar -jtv -f filename.tar.bz2
    • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
      拿掉了根目录,假设你将备份数据在 /tmp 解开,那么解压缩的档名就会变成『/tmp/etc/xxx』。 但『如果没有拿掉根目录,解压缩后的档名就会 是绝对路径, 亦即解压缩后的数据一定会被放置到 /etc/xxx 去!』如此一来,你的原本的 /etc/ 底下的数据, 就会被备份数据所覆盖过去了
  3. 完整备份工具
    • dump,
    • restore
  4. 光盘写入工具
    • mkisofs:创建映像档
    • cdrecord:光盘烧录工具
  5. 其他常见的压缩与备份工具
    • dd
    • cpio
原文地址:https://www.cnblogs.com/magicianyin/p/8529072.html