SlideShare a Scribd company logo
1 of 34
Files & Folders
Agenda
概述
• 操作系统本质上是由文件和目录组成的, 如何
  对这些文件和目录进行组织, 以及如何对它们
  进行权限控制是一个系统首先需要考虑的问题.
  本章节依次介绍了如下内容:
  - 磁盘分区管理(Disk Partition Management)
  - 文件系统(File System)
  - 文件和目录权限控制
  - 文件与目录的管理
• linux系统的一个特点是一切都被抽象为文件,
  包括普通文件, 目录, 设备, 网络套接字(socket),
  进程, 管道(pipe)等.
磁盘分区
           - 磁盘设备文件
• 磁盘在被操作系统识别并使用之前必须先
  进行分区操作, 可以根据系统的需要将磁盘
  划分为若干个分区. linux下面可以通过如下
  方式查看磁盘设备, 比如:
 ls /dev/sda # 系统第一块SATA硬盘设备
• 关于hda 和 sda
  常用的硬盘接口类型有IDE, SATA, SCSI, SAS等, 其
  中IDE硬盘在系统中的设备文件是/dev/hd[a-d], 比
  如第一块硬盘/dev/hda, 第二块/dev/hdb; SATA和
  其它的硬盘在系统中的设备文件则是/dev/sd[a-p];
磁盘分区
       - 分区设备文件 & 分区表
• 对磁盘进行分区之后, 在/dev目录下面会出现命名为
  hda1, sda1的文件, 这些文件表示磁盘的分区, 以SATA
  硬盘为例:
 /dev/sda1 表示第一个SATA分区
 /dev/sda2 表示第二个SATA分区
 ......
• /etc/fstab
此系统文件用于记录系统的分区信息, 示例:
 /dev/sda1   /           ext3 defaults   11
文件中的每一行遵循如下格式:
 分区     挂载点    文件系统 ......
最好不要手动去修改此文件, 有可能会导致系统无法
正常启动.
分区管理
                    - fdisk
• fdisk
fdisk是linux下面用于管理磁盘分区的命令, 格式:
fdisk ${diskfile}. 示例:
 fdisk /dev/sda   #对第一块SATA磁盘进行分区管理
执行该命令后会进入一个交互式的命令行界面, 通过
 输入
相关的指令执行对应的操作:
 d 删除磁盘分区
 l 列出所有的磁盘分区
 n 添加一个新的分区
注意: 在使用fdisk进行分区管理时需要谨慎, 因为该命
令会导致磁盘分区数据的丢失.
创建文件系统
• 对磁盘进行分区之后, 该分区不能使用, 需要在
  该分区上建立文件系统(File System). linux提供
  了多种文件系统供选择: ext3, ext4, reiserFS等.
• 使用mkfs命令创建文件系统, 常用选项:
  -t     指定文件系统类型, ext3/ext4等
示例:
 mkfs -t ext3 /dev/sda2 # 创建ext3文件系统
• 使用各个文件系统专有的命令创建文件系统,
  比如mkfs.ext3创建ext3文件系统, 这些命令相比
  mkfs提供了更多的选项, 比如:
  -b     指定文件块的大小
  -U     指定UUID
SWAP分区
• SWAP分区类似于windows下面的虚拟内存,
  即在内存空间不足的情况下, 将硬盘空间作
  为内存使用. 在进行系统安装时, 通常要指
  定swap分区, 该分区大小的设置一般为内存
  大小的两倍.
• 可以使用磁盘文件充当swap空间, 如下:
 dd if=/dev/zero of=/swapfile bs=1024 count=1048576
 mkswap /swapfile
编辑/etc/fstab文件自动挂载该swap分区:
 /swapfile   none swap sw       0    0
挂载
• 分区在创建文件系统之后必须挂载到指定的目录进行访问, linux
  下面使用mount命令进行挂载, 命令基本格式:
  mount -options device dir
其中device指定分区的名称, dir指定某个目录; 常用的选项有:
  -t          指定文件系统类型
  -o          添加某些选项, 比如只读等
示例:
  mount -t ext3 /dev/sda1 /mnt/root
将文件系统为ext3的/dev/sda1分区挂载到/mnt/root目录, 挂载后可
  以通过
/mnt/root目录访问该分区的内容.
  其他:
  mount           显示所有的分区挂载
  mount -a    重新挂载/etc/fstab中所有的分区
• 根分区
linux系统必须创建一个根分区并且挂载到根目录/下面, 在安装系统
时被要求指定.
示例
• 示例中使用了基于文件的虚拟文件系统做为演
  示, 重在展示文件系统的相关命令与操作:
 # 使用dd命令创建大文件, 这里50m
 dd if=/dev/zero of=tmp/vfs bs=1024 count=50000
 # 基于该文件创建文件系统, ext3
 mkfs -t ext3 tmp/vfs
 # 在/mnt目录下面创建一个挂载点
 mkdir /mnt/vfs
 # 挂载虚拟文件系统
 mount -t ext3 -o loop tmp/vfs /mnt/vfs
 # 进入挂载点, 作一些操作, 比如创建文件或者目录
 cd /mnt/vfs
 # 查看当前分区的使用情况
 df -h .

 # 卸载该文件系统
 umount /mnt/vfs
/etc/fstab
                           - 概述
• 此文件描述了系统磁盘分区, 光驱, 以及其他虚拟文件系统的挂载情况,
  文件中典型的一行如下:
 /dev/sda1           /       ext2    defaults 1 1
 各列的含义说明如下:
 1, /dev/sda1 磁盘分区. 还可以是光驱设备, 比如/dev/cdrom, 虚拟文
              件系统, 比如proc
 2, /         挂载点
 3, ext2      文件系统类型除了基本的文件系统之外还可以是虚拟文
              件系统如proc, 或者swap
 4, defaults 此列表示分区挂载选项, defaults表示全部默认. 选项说明如下:
      auto/noauto    是否在启动时自动挂载, auto为默认;
      user/nouser    是否只允许root用户mount该分区(nouser), nouser为默认;
      exec/noexec    是否允许执行该分区上的二进制文件, exec为默认;
      ro/rw          只读或者可读写, rw为默认;
      sync/async         同步/异步读写, 默认为async
      deafults表示的是rw, auto, nouser, async, exec.
/etc/fstab
              - 概述 & procfs
  5, 第五列是分区备份选项, 0表示不备份, 1表示进行备份;
  6, 第六列是分区检查(fsck)选项, 0表示不进行检查, 非0表示对该分区执行fsck
     的顺序, 由小到大.
 说明: 通常情况下不要去手动修改fstab文件, 因为该文件的错误会导致系统无
 法正常启动. 在必要时, 修改该文件之后使用mount -fav命令进行检查.
• 进程文件系统procfs
  linux系统会将运行时的一些信息比如进程/内存使用/IO等挂载到一个虚拟
  的进程文件系统中, 该挂载点通常为/proc目录, 这里列举该目录下一些比
  较有用的文件:
      /proc/cpuinfo     系统cpu信息
      /proc/meminfo     系统内存使用情况, free命令会读取此文件
      /proc/version     OS version
      /proc/partitions
      /proc/filesystems
      /proc/mounts      系统分区, 文件系统及挂载信息
      /proc/stat        系统运行的统计数据
      /proc/swaps       系统交换分区使用情况
      /proc/uptime      系统自上次启动到当前的运行时间
文件
                    - 文件类型
• linux有以下几种常见的文件类型:
普通文件
 比如新建的文本文件, 压缩文件等; 使用ls –l命令查看时
 出现-rw-r--r--字样的第一个-字符表示该文件是一个普通
 文件;
目录文件
 目录下面可以包含其他的文件或者目录, 使用ls命令查看
 时第一个字符为d的文件是目录文件;
字符设备或者块设备文件
 进入到/dev目录, 执行ls –l命令可以看到类似如下内容:
   crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty
   brw-r----- 1 root disk 3, 1 2006-04-19 /dev/sda1
 以c开头的表示字符设备文件, 比如猫等串口设备; 以b开
 头的表示磁盘, 光驱等设备;
文件
                       - 文件类型
套接口文件(socket文件)
 最常见的是在启动mysql服务器时会产生一
 个mysql.sock文件, 使用ls –l命令查看该文件:
  srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock

 以s字符开头, 这种文件类型了解即可;
符号链接文件(软链接文件)
 这种文件在使用ls -l进行查看时, 会以字符l
开头, 它相当于windows系统下面的快捷方式.
使用”ln -s 源文件 新文件”命令创建符号链接.
inode
• inode 是 ‘index node’的简称, 中文”索引节点”,
  inode用于存储文件的元信息, 比如文件字节数,
  文件数据块的位置, 拥有者, 所属组,
  ctime(inode上一次更改时间), mtime(文件上一
  次修改时间), atime(文件上一次访问时间), 指向
  该inode的文件数等, inode不包含文件的名称;
• 每个文件都必须对应一个inode, 文件与inode之间是多对一
  的关系, 即有可能多个文件的inode相同; 如果分区inode数
  量已经用完, 则无法在该分区上创建文件, 使用”df -i 分区”
  命令查看分区的inode使用情况, 示例:

• 每个inode都对应一个编号, 使用”ls -i 文件名”命令查看文件
  的inode编号;
inode
           & 目录
• 在linux下面, 目录实际上也是一种文件, 目录
  文件的内容是该目录包含的子文件/目录与
  inode的映射关系, 使用ls -l命令则会访问子
  文件/目录的inode信息, 并列举出来:
文件链接
               硬链接 & 软链接
• 在创建一个文件时, 会分配一个对应的inode; 在通常情况下
  inode与文件是一对一的关系, 但是也可以创建多个文件使之指
  向同一个inode; 创建文件硬链接就会出现这种情况, 使用如下命
  令创建硬链接:
  ln 源文件名 目标文件名
 示例:


  可以看到给文件file1创建硬链接file2之后, 两者指向了同一个inode节点, 之后
  在修改文件file1或者file2时实际上修改的都是同一份拷贝.
• 使用如下命令创建软链接
 ln -s源文件名 目标文件名
与硬链接不同的是, 软链接会分配另外的inode节点, 软链接文件包
含的是源文件的路径信息, 对软链接进行读写执行等操作实际上操
作的是源文件.
inode的回收
• 对于磁盘的每一个分区, inode的数量都是有
  限的, 另外inode存储了文件的元信息本身也
  会占用一定的存储空间, 因此有必要对不再
  被使用的inode节点进行回收;
• 在指向inode节点的链接数归零之后inode会
  被回收, 指向某个inode的链接数有可能大于
  一, 每删除一个链接文件, 链接数减一.
隐藏文件/目录
• 与windows不同的是, linux通过在文件名称
  前面添加字符”.”来表示隐藏文件. 隐藏文件
  通常被用于存储程序的配置信息, 用户登录
  脚本等, 比如用户HOME目录下的.bash_profile
  文件;
• ls命令不会列出目录下面的隐藏文件或目录,
  需要加上-a选项, 如图:
当前目录
         & 上级目录
• 通常linux文件系统上的每一个目录下面都有.
  目录 和 ..目录, 其中前者表示当前目录, 后者
  表示上级目录. 实际上这两者均是指向对应
  目录的硬链接, 如下:




• 经常使用”cd ..” 命令进入上一级目录.
所有者
                  owner
• 文件或者目录都有一个所有者(owner), 最开始
  owner是创建者, 也可以通过chown命令更改所
  有者. 使用ls -l命令查看所有者:

  上图中红色区域的列表示文件的所有者, 这里
  是root.
• 可以使用chown命令更改文件/目录的所有者,
  命令格式: chown 选项 用户名 文件/目录, 常用的选项:
  -R 递归更改目录下所有子目录/文件的所有者
 chown -R demo tmp/
所属组
               owner group
• 文件或者目录有对应的所属组, 最初的所属组
  被设置为创建者的所属组, 可以通过chgrp命令
  更改文件的所属组.使用ls -l命令查看所属组:

  上图中红色区域的列表示文件的所属组, 这里
  是root.
• 可以使用chgrp命令更改文件/目录的所有者, 命
  令格式: chgrp 选项 用户名 文件/目录, 常用的选项:
  -R 递归更改目录下所有子目录/文件的所有者
 chgrp -R demo tmp/
权限控制
                  - 概述
• 文件与目录的访问权限分读(r)/写(w)/执行(x), 另外针对不同的用户访
  问权限会有不同, 比如某个文件对A用户是可写的, 但是对B用户却是只
  读的. 使用ls -l命令查看文件的权限:


 图中的红色框区域-rw-r--r--是文件的权限位, 下面按照顺序对该权限位
 进行说明:
 -     表示文件的类型, -表示普通文件;
 rw-   所有者(u)权限, 这里的所有者是root用户, 权限是可
          读写, 不能执行; 如果需要配置为可执行则应该是rwx;
 r--         所属组(g)权限, 对于该组内用户的权限, 这里是只读;
 r--         其他用户(o), 此用户既不是文件的所有者也不属于
             文件的所属组.
• 权限位可以使用数字表示, 以所有者权限为例, 权限的每一位如果不是-
  则将该位置1, 否则置0; 比如rwx则对应111, 相应的10进制为7, rw-则是
  6; 其他的权限位以此类推, 权限位rwxrwxrwx对应的是777;
• linux通常将文件的权限设置为644 即rw-r--r--, 目录的权限则设置为755
  即rwxr-xr-x
权限控制
                       - chmod
• 使用chmod命令修改文件/目录的权限, 该命令的格
  式: chmod 选项 权限 文件/目录, 常用的选项有:
  -R        递归修改子文件/目录的权限
  该命令可以采用如下形式:
  1, 使用数字, eg:
  chmod 755 tmp/
  2, 修改指定用户或者组的权限, eg:
 chmod u+x test.sh    # 修改用户权限为可执行
 chmod g+w file.txt   # 修改组权限为可写
 chmod o-r file.txt   # 修改其他用户权限 不可读
 chmod +x file.sh     # 所有的用户都将获得文件的可执行权限
 chmod a+x file.sh    # 与上相同
权限控制
          - 删除文件
• 用户对于文件的删除权限并不由文件本身
  决定而是由文件所在目录的权限决定, 删除
  文件的动作实际上修改的是所在目录的内
  容, 因此用户需要对该文件所在目录有写权
  限. 示例, 注意file.txt文件的权限位, 红色部
  分修改所在目录其他用户的权限位可写:


 切换为demo用户, 删除file.txt文件成功:
权限控制
      - 目录的可执行权限
• 目录的可执行权限决定了用户是否可以进
  入到该目录及其子目录, 如果用户对指定目
  录没有可执行权限则不能cd到该目录及其子
  目录中, 示例, /root目录对其他用户不可执
  行:

 切换为demo用户, 执行cd /root
权限控制
             - 掩码
• 在创建文件或者目录时, 会分配一个默认的权
  限位, 这是由当前进程的掩码决定的. 比如掩码
  是000, 则目录的权限是777(rwxrwxrwx), 文件的
  权限是666(rw-rw-rw-). 大多数情况下掩码设置
  为022;
• 使用umask命令查看或设置当前的掩码, 比如:


• 在/etc/bashrc文件会使用umask命令对掩码进
  行初始化设置, 用户在登录过程中, 该脚本文件
  会被执行.
常用命令
• pwd
shell内置命令, 查看当前目录, 示例:

• cd
shell内置命令, 切换目录, 常用用法:
   cd/cd ~ 切换至用户HOME目录 cd -      切换到前一个目录$OLDPWD
   cd ..   切换至上级目录     cd /path/to 切换到指定的路径
• ls
列举当前文件/目录的内容, 常用选项:
    -l 查看文件/目录的详细信息
    -d 查看当前目录, 而不是目录下面的内容
    -a 列出隐藏的文件或者目录
•   touch
    touch用于创建一个普通文件, 文件被创建后字节数为0;
•   mkdir
    mkdir则用于创建一个空目录. 常用的选项:
    -p    如果需要创建的目录父目录不存在则自动创建; 示例:
常用命令
• cp
复制文件或者目录, 命令格式:
 cp 源文件 目标文件
如果需要赋值目录, 则需要制定-r选项赋值目录以及下面的子文件/
目录, 示例:



• mv
移动文件或者目录到另一个位置或者对文件目录重命名. 命令格式:
 mv 源文件/目录 目标位置
 mv 源文件/目录名 更改后的文件/目录名
示例: mv filename1 filename2
如果目的位置与源文件/目录在同一个文件系统上, 那么只
需要对父目录的内容进行更改即可(速度很快); 如果处在不
同的文件系统, 那么则会发生实质的文件拷贝操作.
常用命令
• rm
删除文件或者目录, 如果删除的目录. 命令格式: rm 文件/目录
常用选项:
   -f 强制删除force
   -r 递归删除子文件和目录recursively
如果需要删除的目录非空通常使用-rf选项;
• rmdir
仅用于删除空目录, 如果目录非空则无法删除, 使用rm -rf进行删除.
• cat
查看文件的内容, 命令格式:
   cat 文件名
• more
与cat类似用于查看文件的内容, 如果文件内容超过了一定的行数,
则按顺序一次只显示一屏, 此时终端的底部会出现”--More--”的字样,
使用空格键查看接下来的内容, q键退出.

Note: less 命令与more类似.
常用命令
                       stat
• stat命令用于查看文件或者目录的inode信息, 该命令常用的选项
  有:
  -c 指定输出的格式, 比如输出访问权限, 拥有者等
  -t 简洁模式打印信息
  与-c选项相应的常用格式有:
  %a 访问权限(八进制)                       %A 访问权限(rwx)
  %F      文件类型                          %i  inode标志
  %h 文件的硬链接个数                        %n 文件名
  %s 文件字节数                           %U 文件所有者名称
  %x      文件的最后访问时间 %y                  最后修改时间
  %z 文件的最后改变时间
  示例:
  stat -c %a file          # 查看文件的访问权限, 输出644
  stat -c %y file          # 查看文件的最后修改时间
  # 输出类似file’s size is 123 bytes
  stat -c "%n's size is %s bytes" file
系统安装目录
• linux系统在安装时会在根目录/下面创建很多的系统子目录, 这
    些子目录的组织与命名都是很规范的:
/      根目录, 必须有一个根分区挂载在此目录下面;
/bin   常用的可执行命令被放在此目录下面 , 比如ls, grep, awk等;
/boot 此目录包含了与系统启动相关的文件, 比如GRUB, 系统核心等;
/dev 设备文件目录, 前面介绍的磁盘/分区等设备文件放在此目录;
/etc   系统配置文件目录, 比如分区表, 系统启动脚本, yum配置等;
/lib   系统库文件目录;
/mnt mount目录, 通常用于挂载其他的文件系统, 比如将vbox共
       享目录挂载到此目录下面;
/proc 挂载虚拟进程文件系统到此目录, 用于查看一些系统运行时
       信息;
/sbin 此目录用于存放可执行文件, 与/bin不同的是, 它通常用于
       存放一些系统维护和管理的可执行文件, 比如关机重启等命
       令.
系统安装目录
/tmp 临时文件目录, 专用于存放某些临时文件
/usr 用户目录, 用于存放各种用户程序, 比如apache, php
      等通常会安装到此目录下面;
/var 存放一些经常发生变化的文件, 比如系统日志, 邮件等;
/root root用户的主目录;
/home 系统除root外其他用户的HOME目录均创建在此目录下面.

• 其他一些 比较常见的目录
/exports NFS输出文件系统目录;
/opt     此目录通常用于软件安装, 比如安装oracle数
         据库等;
END

More Related Content

What's hot

Linux 教育訓練
Linux 教育訓練Linux 教育訓練
Linux 教育訓練Bo-Yi Wu
 
網路組-Ubuntu介紹
網路組-Ubuntu介紹網路組-Ubuntu介紹
網路組-Ubuntu介紹maryqute520
 
鏡像檔案系統 Mirror File System : MFS
鏡像檔案系統 Mirror File System : MFS鏡像檔案系統 Mirror File System : MFS
鏡像檔案系統 Mirror File System : MFSMark Ting
 
Unix常用命令 1
Unix常用命令 1Unix常用命令 1
Unix常用命令 1tony2yy_fish
 
Linux基础
Linux基础Linux基础
Linux基础zhuqling
 
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯SZ Lin
 
Linux常用命令
Linux常用命令Linux常用命令
Linux常用命令Tony Deng
 
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務我的 Windows 平台自動化經驗:基礎批次檔撰寫實務
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務Will Huang
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程Lixun Peng
 
淺談Debian套件打包
淺談Debian套件打包淺談Debian套件打包
淺談Debian套件打包Wen Liao
 
Linux 系统应用与程序设计
Linux 系统应用与程序设计Linux 系统应用与程序设计
Linux 系统应用与程序设计yiditushe
 
Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯SZ Lin
 
Linux基础
Linux基础Linux基础
Linux基础Eric Lo
 
云存储系统设计
云存储系统设计云存储系统设计
云存储系统设计drewz lin
 
FAT file system implementation from scratch in boot-loader (chinese)
FAT file system implementation from scratch in boot-loader (chinese)FAT file system implementation from scratch in boot-loader (chinese)
FAT file system implementation from scratch in boot-loader (chinese)Sneeker Yeh
 
Heartbeat+my sql+drbd构建高可用mysql方案
Heartbeat+my sql+drbd构建高可用mysql方案Heartbeat+my sql+drbd构建高可用mysql方案
Heartbeat+my sql+drbd构建高可用mysql方案cao jincheng
 
Ch8 file system management(2013 ncu-nos_nm)
Ch8   file system management(2013 ncu-nos_nm)Ch8   file system management(2013 ncu-nos_nm)
Ch8 file system management(2013 ncu-nos_nm)Kir Chou
 
Linux安全配置终极指南
Linux安全配置终极指南Linux安全配置终极指南
Linux安全配置终极指南wensheng wei
 

What's hot (20)

Linux 教育訓練
Linux 教育訓練Linux 教育訓練
Linux 教育訓練
 
網路組-Ubuntu介紹
網路組-Ubuntu介紹網路組-Ubuntu介紹
網路組-Ubuntu介紹
 
鏡像檔案系統 Mirror File System : MFS
鏡像檔案系統 Mirror File System : MFS鏡像檔案系統 Mirror File System : MFS
鏡像檔案系統 Mirror File System : MFS
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Unix常用命令 1
Unix常用命令 1Unix常用命令 1
Unix常用命令 1
 
Linux基础
Linux基础Linux基础
Linux基础
 
Linuxcommand
LinuxcommandLinuxcommand
Linuxcommand
 
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
 
Linux常用命令
Linux常用命令Linux常用命令
Linux常用命令
 
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務我的 Windows 平台自動化經驗:基礎批次檔撰寫實務
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程
 
淺談Debian套件打包
淺談Debian套件打包淺談Debian套件打包
淺談Debian套件打包
 
Linux 系统应用与程序设计
Linux 系统应用与程序设计Linux 系统应用与程序设计
Linux 系统应用与程序设计
 
Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯
 
Linux基础
Linux基础Linux基础
Linux基础
 
云存储系统设计
云存储系统设计云存储系统设计
云存储系统设计
 
FAT file system implementation from scratch in boot-loader (chinese)
FAT file system implementation from scratch in boot-loader (chinese)FAT file system implementation from scratch in boot-loader (chinese)
FAT file system implementation from scratch in boot-loader (chinese)
 
Heartbeat+my sql+drbd构建高可用mysql方案
Heartbeat+my sql+drbd构建高可用mysql方案Heartbeat+my sql+drbd构建高可用mysql方案
Heartbeat+my sql+drbd构建高可用mysql方案
 
Ch8 file system management(2013 ncu-nos_nm)
Ch8   file system management(2013 ncu-nos_nm)Ch8   file system management(2013 ncu-nos_nm)
Ch8 file system management(2013 ncu-nos_nm)
 
Linux安全配置终极指南
Linux安全配置终极指南Linux安全配置终极指南
Linux安全配置终极指南
 

Viewers also liked

2, bash synax simplified
2, bash synax simplified2, bash synax simplified
2, bash synax simplifiedted-xu
 
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rmanted-xu
 
Condensation Silicone-MSDS
Condensation Silicone-MSDSCondensation Silicone-MSDS
Condensation Silicone-MSDSIris He
 
2, OCP - installing and creating a database
2, OCP - installing and creating a database2, OCP - installing and creating a database
2, OCP - installing and creating a databaseted-xu
 
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...Global Business Intel
 
CIO Event - Bid Winning: How can technology in your business assist your next...
CIO Event - Bid Winning: How can technology in your business assist your next...CIO Event - Bid Winning: How can technology in your business assist your next...
CIO Event - Bid Winning: How can technology in your business assist your next...Global Business Intel
 
Social Media Marketing and Your Targeted Audience
Social Media Marketing and Your Targeted AudienceSocial Media Marketing and Your Targeted Audience
Social Media Marketing and Your Targeted AudienceMoshiur Monty
 
CIO Event - HP - Digital Disruption : How can IT play its part?
CIO Event - HP - Digital Disruption : How can IT play its part?CIO Event - HP - Digital Disruption : How can IT play its part?
CIO Event - HP - Digital Disruption : How can IT play its part? Global Business Intel
 

Viewers also liked (15)

lee RESUME
lee RESUMElee RESUME
lee RESUME
 
sprite
spritesprite
sprite
 
2, bash synax simplified
2, bash synax simplified2, bash synax simplified
2, bash synax simplified
 
Barn i barnevernet
Barn i barnevernetBarn i barnevernet
Barn i barnevernet
 
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
 
Condensation Silicone-MSDS
Condensation Silicone-MSDSCondensation Silicone-MSDS
Condensation Silicone-MSDS
 
Наши партнеры
Наши партнерыНаши партнеры
Наши партнеры
 
fit-PC - Product line overview (v3.0)
fit-PC - Product line overview (v3.0)fit-PC - Product line overview (v3.0)
fit-PC - Product line overview (v3.0)
 
Good company
Good companyGood company
Good company
 
2, OCP - installing and creating a database
2, OCP - installing and creating a database2, OCP - installing and creating a database
2, OCP - installing and creating a database
 
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
 
CIO Event - Bid Winning: How can technology in your business assist your next...
CIO Event - Bid Winning: How can technology in your business assist your next...CIO Event - Bid Winning: How can technology in your business assist your next...
CIO Event - Bid Winning: How can technology in your business assist your next...
 
Τεστ στα διανύσματα
Τεστ στα διανύσματαΤεστ στα διανύσματα
Τεστ στα διανύσματα
 
Social Media Marketing and Your Targeted Audience
Social Media Marketing and Your Targeted AudienceSocial Media Marketing and Your Targeted Audience
Social Media Marketing and Your Targeted Audience
 
CIO Event - HP - Digital Disruption : How can IT play its part?
CIO Event - HP - Digital Disruption : How can IT play its part?CIO Event - HP - Digital Disruption : How can IT play its part?
CIO Event - HP - Digital Disruption : How can IT play its part?
 

Similar to 4, files & folders

20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux introChang Mt
 
Linux1文字介面操作
Linux1文字介面操作Linux1文字介面操作
Linux1文字介面操作jiannrong
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newYiwei Ma
 
賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報Wales Chen
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 Lheima911
 
Aix操作系统培训文档
Aix操作系统培训文档Aix操作系统培训文档
Aix操作系统培训文档lwj2012
 
深入Docker的资源管理
深入Docker的资源管理深入Docker的资源管理
深入Docker的资源管理SpeedyCloud
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)Yiwei Ma
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版redhat9
 
Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsTrendProgContest13
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)ykdsg
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换mysqlops
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recoveryted-xu
 
開發環境建置
開發環境建置開發環境建置
開發環境建置Shengyou Fan
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定Shengyou Fan
 
Linux commands ppt
Linux commands pptLinux commands ppt
Linux commands pptxiaotingting
 
Introduction to FreeBSD commands
Introduction to FreeBSD commandsIntroduction to FreeBSD commands
Introduction to FreeBSD commands郁凱 黃
 

Similar to 4, files & folders (20)

Overlayfs and VFS
Overlayfs and VFSOverlayfs and VFS
Overlayfs and VFS
 
20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux intro
 
Linux1文字介面操作
Linux1文字介面操作Linux1文字介面操作
Linux1文字介面操作
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
 
賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
 
Aix操作系统培训文档
Aix操作系统培训文档Aix操作系统培训文档
Aix操作系统培训文档
 
深入Docker的资源管理
深入Docker的资源管理深入Docker的资源管理
深入Docker的资源管理
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
 
Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfs
 
Rootkit 101
Rootkit 101Rootkit 101
Rootkit 101
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
 
Why use MySQL
Why use MySQLWhy use MySQL
Why use MySQL
 
Linux commands ppt
Linux commands pptLinux commands ppt
Linux commands ppt
 
Introduction to FreeBSD commands
Introduction to FreeBSD commandsIntroduction to FreeBSD commands
Introduction to FreeBSD commands
 

More from ted-xu

11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert systemted-xu
 
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashbackted-xu
 
8, OCP - backup with rman
8, OCP - backup with rman8, OCP - backup with rman
8, OCP - backup with rmanted-xu
 
6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle securityted-xu
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storageted-xu
 
4, OCP - oracle networking
4, OCP - oracle networking4, OCP - oracle networking
4, OCP - oracle networkingted-xu
 
3, OCP - instance management
3, OCP - instance management3, OCP - instance management
3, OCP - instance managementted-xu
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture introted-xu
 
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuningted-xu
 
7, business event system
7, business event system7, business event system
7, business event systemted-xu
 
6, workflow miscellaneous
6, workflow miscellaneous6, workflow miscellaneous
6, workflow miscellaneousted-xu
 
5, workflow function activity
5, workflow function activity5, workflow function activity
5, workflow function activityted-xu
 
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & apited-xu
 
3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebsted-xu
 
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflowted-xu
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow introted-xu
 
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & apited-xu
 
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notested-xu
 
5, sed
5, sed5, sed
5, sedted-xu
 
4, grep
4, grep4, grep
4, grepted-xu
 

More from ted-xu (20)

11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert system
 
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashback
 
8, OCP - backup with rman
8, OCP - backup with rman8, OCP - backup with rman
8, OCP - backup with rman
 
6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle security
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storage
 
4, OCP - oracle networking
4, OCP - oracle networking4, OCP - oracle networking
4, OCP - oracle networking
 
3, OCP - instance management
3, OCP - instance management3, OCP - instance management
3, OCP - instance management
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuning
 
7, business event system
7, business event system7, business event system
7, business event system
 
6, workflow miscellaneous
6, workflow miscellaneous6, workflow miscellaneous
6, workflow miscellaneous
 
5, workflow function activity
5, workflow function activity5, workflow function activity
5, workflow function activity
 
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & api
 
3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebs
 
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflow
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow intro
 
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & api
 
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notes
 
5, sed
5, sed5, sed
5, sed
 
4, grep
4, grep4, grep
4, grep
 

4, files & folders

  • 3. 概述 • 操作系统本质上是由文件和目录组成的, 如何 对这些文件和目录进行组织, 以及如何对它们 进行权限控制是一个系统首先需要考虑的问题. 本章节依次介绍了如下内容: - 磁盘分区管理(Disk Partition Management) - 文件系统(File System) - 文件和目录权限控制 - 文件与目录的管理 • linux系统的一个特点是一切都被抽象为文件, 包括普通文件, 目录, 设备, 网络套接字(socket), 进程, 管道(pipe)等.
  • 4. 磁盘分区 - 磁盘设备文件 • 磁盘在被操作系统识别并使用之前必须先 进行分区操作, 可以根据系统的需要将磁盘 划分为若干个分区. linux下面可以通过如下 方式查看磁盘设备, 比如: ls /dev/sda # 系统第一块SATA硬盘设备 • 关于hda 和 sda 常用的硬盘接口类型有IDE, SATA, SCSI, SAS等, 其 中IDE硬盘在系统中的设备文件是/dev/hd[a-d], 比 如第一块硬盘/dev/hda, 第二块/dev/hdb; SATA和 其它的硬盘在系统中的设备文件则是/dev/sd[a-p];
  • 5. 磁盘分区 - 分区设备文件 & 分区表 • 对磁盘进行分区之后, 在/dev目录下面会出现命名为 hda1, sda1的文件, 这些文件表示磁盘的分区, 以SATA 硬盘为例: /dev/sda1 表示第一个SATA分区 /dev/sda2 表示第二个SATA分区 ...... • /etc/fstab 此系统文件用于记录系统的分区信息, 示例: /dev/sda1 / ext3 defaults 11 文件中的每一行遵循如下格式: 分区 挂载点 文件系统 ...... 最好不要手动去修改此文件, 有可能会导致系统无法 正常启动.
  • 6. 分区管理 - fdisk • fdisk fdisk是linux下面用于管理磁盘分区的命令, 格式: fdisk ${diskfile}. 示例: fdisk /dev/sda #对第一块SATA磁盘进行分区管理 执行该命令后会进入一个交互式的命令行界面, 通过 输入 相关的指令执行对应的操作: d 删除磁盘分区 l 列出所有的磁盘分区 n 添加一个新的分区 注意: 在使用fdisk进行分区管理时需要谨慎, 因为该命 令会导致磁盘分区数据的丢失.
  • 7. 创建文件系统 • 对磁盘进行分区之后, 该分区不能使用, 需要在 该分区上建立文件系统(File System). linux提供 了多种文件系统供选择: ext3, ext4, reiserFS等. • 使用mkfs命令创建文件系统, 常用选项: -t 指定文件系统类型, ext3/ext4等 示例: mkfs -t ext3 /dev/sda2 # 创建ext3文件系统 • 使用各个文件系统专有的命令创建文件系统, 比如mkfs.ext3创建ext3文件系统, 这些命令相比 mkfs提供了更多的选项, 比如: -b 指定文件块的大小 -U 指定UUID
  • 8. SWAP分区 • SWAP分区类似于windows下面的虚拟内存, 即在内存空间不足的情况下, 将硬盘空间作 为内存使用. 在进行系统安装时, 通常要指 定swap分区, 该分区大小的设置一般为内存 大小的两倍. • 可以使用磁盘文件充当swap空间, 如下: dd if=/dev/zero of=/swapfile bs=1024 count=1048576 mkswap /swapfile 编辑/etc/fstab文件自动挂载该swap分区: /swapfile none swap sw 0 0
  • 9. 挂载 • 分区在创建文件系统之后必须挂载到指定的目录进行访问, linux 下面使用mount命令进行挂载, 命令基本格式: mount -options device dir 其中device指定分区的名称, dir指定某个目录; 常用的选项有: -t 指定文件系统类型 -o 添加某些选项, 比如只读等 示例: mount -t ext3 /dev/sda1 /mnt/root 将文件系统为ext3的/dev/sda1分区挂载到/mnt/root目录, 挂载后可 以通过 /mnt/root目录访问该分区的内容. 其他: mount 显示所有的分区挂载 mount -a 重新挂载/etc/fstab中所有的分区 • 根分区 linux系统必须创建一个根分区并且挂载到根目录/下面, 在安装系统 时被要求指定.
  • 10. 示例 • 示例中使用了基于文件的虚拟文件系统做为演 示, 重在展示文件系统的相关命令与操作: # 使用dd命令创建大文件, 这里50m dd if=/dev/zero of=tmp/vfs bs=1024 count=50000 # 基于该文件创建文件系统, ext3 mkfs -t ext3 tmp/vfs # 在/mnt目录下面创建一个挂载点 mkdir /mnt/vfs # 挂载虚拟文件系统 mount -t ext3 -o loop tmp/vfs /mnt/vfs # 进入挂载点, 作一些操作, 比如创建文件或者目录 cd /mnt/vfs # 查看当前分区的使用情况 df -h . # 卸载该文件系统 umount /mnt/vfs
  • 11. /etc/fstab - 概述 • 此文件描述了系统磁盘分区, 光驱, 以及其他虚拟文件系统的挂载情况, 文件中典型的一行如下: /dev/sda1 / ext2 defaults 1 1 各列的含义说明如下: 1, /dev/sda1 磁盘分区. 还可以是光驱设备, 比如/dev/cdrom, 虚拟文 件系统, 比如proc 2, / 挂载点 3, ext2 文件系统类型除了基本的文件系统之外还可以是虚拟文 件系统如proc, 或者swap 4, defaults 此列表示分区挂载选项, defaults表示全部默认. 选项说明如下: auto/noauto 是否在启动时自动挂载, auto为默认; user/nouser 是否只允许root用户mount该分区(nouser), nouser为默认; exec/noexec 是否允许执行该分区上的二进制文件, exec为默认; ro/rw 只读或者可读写, rw为默认; sync/async 同步/异步读写, 默认为async deafults表示的是rw, auto, nouser, async, exec.
  • 12. /etc/fstab - 概述 & procfs 5, 第五列是分区备份选项, 0表示不备份, 1表示进行备份; 6, 第六列是分区检查(fsck)选项, 0表示不进行检查, 非0表示对该分区执行fsck 的顺序, 由小到大. 说明: 通常情况下不要去手动修改fstab文件, 因为该文件的错误会导致系统无 法正常启动. 在必要时, 修改该文件之后使用mount -fav命令进行检查. • 进程文件系统procfs linux系统会将运行时的一些信息比如进程/内存使用/IO等挂载到一个虚拟 的进程文件系统中, 该挂载点通常为/proc目录, 这里列举该目录下一些比 较有用的文件: /proc/cpuinfo 系统cpu信息 /proc/meminfo 系统内存使用情况, free命令会读取此文件 /proc/version OS version /proc/partitions /proc/filesystems /proc/mounts 系统分区, 文件系统及挂载信息 /proc/stat 系统运行的统计数据 /proc/swaps 系统交换分区使用情况 /proc/uptime 系统自上次启动到当前的运行时间
  • 13. 文件 - 文件类型 • linux有以下几种常见的文件类型: 普通文件 比如新建的文本文件, 压缩文件等; 使用ls –l命令查看时 出现-rw-r--r--字样的第一个-字符表示该文件是一个普通 文件; 目录文件 目录下面可以包含其他的文件或者目录, 使用ls命令查看 时第一个字符为d的文件是目录文件; 字符设备或者块设备文件 进入到/dev目录, 执行ls –l命令可以看到类似如下内容: crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty brw-r----- 1 root disk 3, 1 2006-04-19 /dev/sda1 以c开头的表示字符设备文件, 比如猫等串口设备; 以b开 头的表示磁盘, 光驱等设备;
  • 14. 文件 - 文件类型 套接口文件(socket文件) 最常见的是在启动mysql服务器时会产生一 个mysql.sock文件, 使用ls –l命令查看该文件: srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock 以s字符开头, 这种文件类型了解即可; 符号链接文件(软链接文件) 这种文件在使用ls -l进行查看时, 会以字符l 开头, 它相当于windows系统下面的快捷方式. 使用”ln -s 源文件 新文件”命令创建符号链接.
  • 15. inode • inode 是 ‘index node’的简称, 中文”索引节点”, inode用于存储文件的元信息, 比如文件字节数, 文件数据块的位置, 拥有者, 所属组, ctime(inode上一次更改时间), mtime(文件上一 次修改时间), atime(文件上一次访问时间), 指向 该inode的文件数等, inode不包含文件的名称; • 每个文件都必须对应一个inode, 文件与inode之间是多对一 的关系, 即有可能多个文件的inode相同; 如果分区inode数 量已经用完, 则无法在该分区上创建文件, 使用”df -i 分区” 命令查看分区的inode使用情况, 示例: • 每个inode都对应一个编号, 使用”ls -i 文件名”命令查看文件 的inode编号;
  • 16. inode & 目录 • 在linux下面, 目录实际上也是一种文件, 目录 文件的内容是该目录包含的子文件/目录与 inode的映射关系, 使用ls -l命令则会访问子 文件/目录的inode信息, 并列举出来:
  • 17. 文件链接 硬链接 & 软链接 • 在创建一个文件时, 会分配一个对应的inode; 在通常情况下 inode与文件是一对一的关系, 但是也可以创建多个文件使之指 向同一个inode; 创建文件硬链接就会出现这种情况, 使用如下命 令创建硬链接: ln 源文件名 目标文件名 示例: 可以看到给文件file1创建硬链接file2之后, 两者指向了同一个inode节点, 之后 在修改文件file1或者file2时实际上修改的都是同一份拷贝. • 使用如下命令创建软链接 ln -s源文件名 目标文件名 与硬链接不同的是, 软链接会分配另外的inode节点, 软链接文件包 含的是源文件的路径信息, 对软链接进行读写执行等操作实际上操 作的是源文件.
  • 18. inode的回收 • 对于磁盘的每一个分区, inode的数量都是有 限的, 另外inode存储了文件的元信息本身也 会占用一定的存储空间, 因此有必要对不再 被使用的inode节点进行回收; • 在指向inode节点的链接数归零之后inode会 被回收, 指向某个inode的链接数有可能大于 一, 每删除一个链接文件, 链接数减一.
  • 19. 隐藏文件/目录 • 与windows不同的是, linux通过在文件名称 前面添加字符”.”来表示隐藏文件. 隐藏文件 通常被用于存储程序的配置信息, 用户登录 脚本等, 比如用户HOME目录下的.bash_profile 文件; • ls命令不会列出目录下面的隐藏文件或目录, 需要加上-a选项, 如图:
  • 20. 当前目录 & 上级目录 • 通常linux文件系统上的每一个目录下面都有. 目录 和 ..目录, 其中前者表示当前目录, 后者 表示上级目录. 实际上这两者均是指向对应 目录的硬链接, 如下: • 经常使用”cd ..” 命令进入上一级目录.
  • 21. 所有者 owner • 文件或者目录都有一个所有者(owner), 最开始 owner是创建者, 也可以通过chown命令更改所 有者. 使用ls -l命令查看所有者: 上图中红色区域的列表示文件的所有者, 这里 是root. • 可以使用chown命令更改文件/目录的所有者, 命令格式: chown 选项 用户名 文件/目录, 常用的选项: -R 递归更改目录下所有子目录/文件的所有者 chown -R demo tmp/
  • 22. 所属组 owner group • 文件或者目录有对应的所属组, 最初的所属组 被设置为创建者的所属组, 可以通过chgrp命令 更改文件的所属组.使用ls -l命令查看所属组: 上图中红色区域的列表示文件的所属组, 这里 是root. • 可以使用chgrp命令更改文件/目录的所有者, 命 令格式: chgrp 选项 用户名 文件/目录, 常用的选项: -R 递归更改目录下所有子目录/文件的所有者 chgrp -R demo tmp/
  • 23. 权限控制 - 概述 • 文件与目录的访问权限分读(r)/写(w)/执行(x), 另外针对不同的用户访 问权限会有不同, 比如某个文件对A用户是可写的, 但是对B用户却是只 读的. 使用ls -l命令查看文件的权限: 图中的红色框区域-rw-r--r--是文件的权限位, 下面按照顺序对该权限位 进行说明: - 表示文件的类型, -表示普通文件; rw- 所有者(u)权限, 这里的所有者是root用户, 权限是可 读写, 不能执行; 如果需要配置为可执行则应该是rwx; r-- 所属组(g)权限, 对于该组内用户的权限, 这里是只读; r-- 其他用户(o), 此用户既不是文件的所有者也不属于 文件的所属组. • 权限位可以使用数字表示, 以所有者权限为例, 权限的每一位如果不是- 则将该位置1, 否则置0; 比如rwx则对应111, 相应的10进制为7, rw-则是 6; 其他的权限位以此类推, 权限位rwxrwxrwx对应的是777; • linux通常将文件的权限设置为644 即rw-r--r--, 目录的权限则设置为755 即rwxr-xr-x
  • 24. 权限控制 - chmod • 使用chmod命令修改文件/目录的权限, 该命令的格 式: chmod 选项 权限 文件/目录, 常用的选项有: -R 递归修改子文件/目录的权限 该命令可以采用如下形式: 1, 使用数字, eg: chmod 755 tmp/ 2, 修改指定用户或者组的权限, eg: chmod u+x test.sh # 修改用户权限为可执行 chmod g+w file.txt # 修改组权限为可写 chmod o-r file.txt # 修改其他用户权限 不可读 chmod +x file.sh # 所有的用户都将获得文件的可执行权限 chmod a+x file.sh # 与上相同
  • 25. 权限控制 - 删除文件 • 用户对于文件的删除权限并不由文件本身 决定而是由文件所在目录的权限决定, 删除 文件的动作实际上修改的是所在目录的内 容, 因此用户需要对该文件所在目录有写权 限. 示例, 注意file.txt文件的权限位, 红色部 分修改所在目录其他用户的权限位可写: 切换为demo用户, 删除file.txt文件成功:
  • 26. 权限控制 - 目录的可执行权限 • 目录的可执行权限决定了用户是否可以进 入到该目录及其子目录, 如果用户对指定目 录没有可执行权限则不能cd到该目录及其子 目录中, 示例, /root目录对其他用户不可执 行: 切换为demo用户, 执行cd /root
  • 27. 权限控制 - 掩码 • 在创建文件或者目录时, 会分配一个默认的权 限位, 这是由当前进程的掩码决定的. 比如掩码 是000, 则目录的权限是777(rwxrwxrwx), 文件的 权限是666(rw-rw-rw-). 大多数情况下掩码设置 为022; • 使用umask命令查看或设置当前的掩码, 比如: • 在/etc/bashrc文件会使用umask命令对掩码进 行初始化设置, 用户在登录过程中, 该脚本文件 会被执行.
  • 28. 常用命令 • pwd shell内置命令, 查看当前目录, 示例: • cd shell内置命令, 切换目录, 常用用法: cd/cd ~ 切换至用户HOME目录 cd - 切换到前一个目录$OLDPWD cd .. 切换至上级目录 cd /path/to 切换到指定的路径 • ls 列举当前文件/目录的内容, 常用选项: -l 查看文件/目录的详细信息 -d 查看当前目录, 而不是目录下面的内容 -a 列出隐藏的文件或者目录 • touch touch用于创建一个普通文件, 文件被创建后字节数为0; • mkdir mkdir则用于创建一个空目录. 常用的选项: -p 如果需要创建的目录父目录不存在则自动创建; 示例:
  • 29. 常用命令 • cp 复制文件或者目录, 命令格式: cp 源文件 目标文件 如果需要赋值目录, 则需要制定-r选项赋值目录以及下面的子文件/ 目录, 示例: • mv 移动文件或者目录到另一个位置或者对文件目录重命名. 命令格式: mv 源文件/目录 目标位置 mv 源文件/目录名 更改后的文件/目录名 示例: mv filename1 filename2 如果目的位置与源文件/目录在同一个文件系统上, 那么只 需要对父目录的内容进行更改即可(速度很快); 如果处在不 同的文件系统, 那么则会发生实质的文件拷贝操作.
  • 30. 常用命令 • rm 删除文件或者目录, 如果删除的目录. 命令格式: rm 文件/目录 常用选项: -f 强制删除force -r 递归删除子文件和目录recursively 如果需要删除的目录非空通常使用-rf选项; • rmdir 仅用于删除空目录, 如果目录非空则无法删除, 使用rm -rf进行删除. • cat 查看文件的内容, 命令格式: cat 文件名 • more 与cat类似用于查看文件的内容, 如果文件内容超过了一定的行数, 则按顺序一次只显示一屏, 此时终端的底部会出现”--More--”的字样, 使用空格键查看接下来的内容, q键退出. Note: less 命令与more类似.
  • 31. 常用命令 stat • stat命令用于查看文件或者目录的inode信息, 该命令常用的选项 有: -c 指定输出的格式, 比如输出访问权限, 拥有者等 -t 简洁模式打印信息 与-c选项相应的常用格式有: %a 访问权限(八进制) %A 访问权限(rwx) %F 文件类型 %i inode标志 %h 文件的硬链接个数 %n 文件名 %s 文件字节数 %U 文件所有者名称 %x 文件的最后访问时间 %y 最后修改时间 %z 文件的最后改变时间 示例: stat -c %a file # 查看文件的访问权限, 输出644 stat -c %y file # 查看文件的最后修改时间 # 输出类似file’s size is 123 bytes stat -c "%n's size is %s bytes" file
  • 32. 系统安装目录 • linux系统在安装时会在根目录/下面创建很多的系统子目录, 这 些子目录的组织与命名都是很规范的: / 根目录, 必须有一个根分区挂载在此目录下面; /bin 常用的可执行命令被放在此目录下面 , 比如ls, grep, awk等; /boot 此目录包含了与系统启动相关的文件, 比如GRUB, 系统核心等; /dev 设备文件目录, 前面介绍的磁盘/分区等设备文件放在此目录; /etc 系统配置文件目录, 比如分区表, 系统启动脚本, yum配置等; /lib 系统库文件目录; /mnt mount目录, 通常用于挂载其他的文件系统, 比如将vbox共 享目录挂载到此目录下面; /proc 挂载虚拟进程文件系统到此目录, 用于查看一些系统运行时 信息; /sbin 此目录用于存放可执行文件, 与/bin不同的是, 它通常用于 存放一些系统维护和管理的可执行文件, 比如关机重启等命 令.
  • 33. 系统安装目录 /tmp 临时文件目录, 专用于存放某些临时文件 /usr 用户目录, 用于存放各种用户程序, 比如apache, php 等通常会安装到此目录下面; /var 存放一些经常发生变化的文件, 比如系统日志, 邮件等; /root root用户的主目录; /home 系统除root外其他用户的HOME目录均创建在此目录下面. • 其他一些 比较常见的目录 /exports NFS输出文件系统目录; /opt 此目录通常用于软件安装, 比如安装oracle数 据库等;
  • 34. END