Your SlideShare is downloading. ×
0
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
4, files & folders
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

4, files & folders

117

Published on

Linux files & folders

Linux files & folders

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
117
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Files & Folders
  • 2. Agenda
  • 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• fdiskfdisk是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. 常用命令• pwdshell内置命令, 查看当前目录, 示例:• cdshell内置命令, 切换目录, 常用用法: 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 "%ns 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

×