项目二 认识Linux的文件系统

任务一    熟悉Linux系统中的目录结构

 第1步:理解Linux系统的目录结构树

Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型,如下图所示。

 

 Linux文件目录采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树型结构,但是在DOS和 windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。但是在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,各个磁盘分区上的树型目录不一定是并列的。

点击打开计算机点击文件系统就可以看见Linux的目录结构了



第2步:对比理解Linux系统的文档结构

有一块硬盘,分成了4个分区,分别是/;/boot;/usr和windows下的fat,对于/和/boot或者/和/usr,它们是从属关系;对于/boot和/usr,它们是并列关系。

如果我把windows下的fat分区挂载到/mnt/winc下,(挂载?什么是挂载,别急,【子任务4】就会讲。)那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。

第3步:列出Linux下一些常用目录的功用

/, 根目录。

/bin ,存放必要的命令。

/boot ,存放内核以及启动所需的文件(最好占一个分区)。

/dev,存放设备文件。

/etc ,存放系统配置文件(最好占一个分区)。

/home, 普通用户的宿主目录,用户数据存放在其主目录中(推荐占一个分区)。

/lib, 存放必要的运行库。

/mnt ,存放临时的映射文件系统,通常用来挂载使用。

/proc ,存放存储进程和系统信息。

/root ,超级用户的主目录(推荐占一个分区)。

/sbin ,存放系统管理程序。

/tmp ,存放临时文件。

/usr ,存放应用程序,命令程序文件、程序库、手册和其它文档。(推荐占一个分区)。

/var,在正常操作中被改变的文件。


【子任务二】了解Linux系统中的路径规则

 在Linux系统中什么是一个文件的路径呢,说白了就是这个文件存在的地方,如果你告诉系统这个文件的路径,那么系统就可以找到这个文件。在Linux的世界中,存在着绝对路径和相对路径。

 第1步:理解绝对路径

 绝对路径:路径的写法一定由根目录“/”写起,例如/usr/local/mysql 这就是绝对路径。

 第2步:理解相对路劲

 相对路径:路径的写法不是由根目录“/”写起,例如,首先用户进入到/ 然后再进入到home,命令为【cd /home】,然后使用【cd test】命令,此时用户所在的路径为/home/test。第一个cd命令跟/home,第二个cd命令后跟test,并没有斜杠,这个test是相对于/home目录来讲的,所以叫做相对路径。


【子任务三】掌握Linux系统中的基本命令

  对于一个Linux新手来说,使用Linux命令来帮助执行任务是一个最基本的要求。下面这些命令是每一个Linux新手都必须掌握的基本命令。

  第1步:使用【pwd】命令打印出当前所在目录

在linux系统中,只显示当前工作的目录,没有显示完成的路劲,【pwd】命令打印当前完整的工作路径。

第2步:使用【cd】 命令进入文件的目录

【cd】 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 【cd】命令上的。所以,学习Linux 常用命令,首先就要学好【cd】命令的使用方法技巧。

【cd /usr/local】进入到/usr/local目录。

【pwd】打印当前工作目录。

【cd ./】还是当前目录。

【cd . . /】进入当前目录的上级目录。


在上面的命令中,首先进入到/usr/local/lib/ 目录下,然后再进入 ./ 其实还是进入到当前目录下,用【pwd】查看当前的工作路劲,并没有发生变化,然后再进入../ 则是进入到了/usr/local/目录下,即/usr/local/lib目录的上一级目录。

在路径中【./】指的是当前目录,【../】 指的是当前目录的上一级目录。

第3步:使用【ls】命令显示文件信息

【ls】是列表的命令,在【ls】后加上-l就是以长列表的形式显示出来,内容较【ls】命令更加具体。

【ls –l】或【ll】显示当前文件夹内文件详细信息。

【ls –a】显示当前文件夹内隐藏文件。

【ls ~】显示用户宿主目录的文件信息。


第4步:使用【more】或【less】命令分屏显示文件与目录

 【more】命令: 以一页一页的形式显示文件;space键向后翻页,b键向前翻页。

 【less】命令:作用与【 more 】相似,都可以用来浏览文字档案的内容,不同的是 【less】 允许使用者往回卷动的方式查看文件,浏览速度较vi文本编辑器快;【j】以行为单位向下,【k】以行为单位向上;

 同时,在使用【less】 查看文件时,可以键入vi命令进行文本编译。

【ls /etc |more】让/etc中文件与目录分屏显示,只能向下查看。

【ls /etc |less】让/etc中文件与目录分屏显示,可以上下查看。

【less /etc/squid/squid.conf】分屏显示squid.conf中的内容。




第5步:【cat】命令查看文件内容

【cat】命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容,【cat】主要有三大功能:

(1)一次显示整个文件:【cat filename】。

(2)从键盘创建一个文件:【cat > filename】,只能创建新文件,不能编辑已有文件。

(3)将几个文件合并为一个文件:【cat file1 file2 > file】。

【cat /etc/passwd】查看文件passwd文件中的内容。

【cat /etc/passwd |less】查看文件passwd文件中的内容,可以上下移动,按【q】退出。

【cat /etc/fstab】显示/etc/fstab文件的内容。

【cat /boot/grub/grub.conf】显示/etc/fstab文件的内容。



按q退出




第6步:使用【mkdir 】命令创建目录

【mkdir yhy】在当前路径中创建yhy目录。

【mkdir yhy1 yhy2 yhy3】在当前路径中同时创建3个目录。


 mkdir 其实就是make directory的缩写。其语法为 mkdir  [-m或-p] [目录名称] ,其中-m ,–p为其选项,-m:这个参数用来指定要创建目录的权限,【mkdir –m 755 yhy】表示建立一个权限为755的文件夹,该参数不常用,所以笔者不做重点解释。-p:这个参数很管用的,先来做个试验,你会一目了然的,输入如下命令:【mkdir  /tmp/test/yhy】并运行,系统提示错误,无法创建。具体提示信息如下:

 

 当我们想创建 /tmp/test/yhy 目录,系统提示不能创建,原因是/tmp/test目录不存在,你会说,这个Linux怎么这样傻,/tmp/test目录不存在就自动创建不就OK了嘛,的确Linux确实很傻,如果它发现要创建的目录的上一级目录不存在就会报错。但是Linux也为我们想好了解决的办法,即参数-p。

运行下面的带【-p】的命令【mkdir  –p  /tmp/test/yhy】,系统将不再报错。

你看到这里,是明白参数-p的作用。没错,它的作用就是递归创建目录,即使上级目录不存在。还有一种情况就是如果你想要创建的目录存在的话,也会提示报错,然后加上参数-p后,就不会报错了。

第7步:使用【touch 】创建文件

 【touch】命令用于创建新的空文件或者修改已有文件的时间戳,最常用用法如下。

【touch fileA】如果fileA存在,使用【touch】指令可更改这个文件或目录的日期时间,包括存取时间和更改时间;如果fileA不存在,【touch】指令会在当前目录下新建一个空白文件fileA。

【touch file1 file2】在当前目录下建立文件file1和file2两个文件。

【touch /home/file1 file2】在/home目录下建立文件file1和file2两个文件。

【touch -t 201601142234.50 log.log】设定文件的时间戳为201601142234.50。

【mkdir dir1 dir2】当前目录下创建子目录dir1和dir2,即两个文件夹。


这两个命令容易混淆,【touch】后跟的是文件,mkdir后跟的是目录。

第8步:使用【rmdir】删除目录

【rmdir /tmp/test/yhy】删除yhy目录。

【ls /tmp/test】查看test目录下的文件及目录。

rmdir 其实是rmove directory 缩写,其只有一个选项-p 类似与【mkdir】命令,这个参数的作用是将上级目录一起删除。

【mkdir -p d1/d2/d3】依次建立d1/d2/d3文件夹。

【rmdir -p d1/d2/d3】依次删除d3, d2, d1。


如果一个目录中还有目录,那么当你直接【rmdir】 该目录时,会提示该目录不为空,不能删除。如果你非要删除不为空的目录,那么用【rm】命令。

第9步:使用【rm】删除目录或者文件

【rmdir】只能删除目录但不能删除文件,要想删除一个文件,则要用【rm】命令了。【rm】同样也有-f、-i、-r等很多选项。你可以通过【man rm】来获得详细帮助信息。在这里只列举较常用的几个选项。

【rm -f /root/dir2/myfile1】使用绝对路径删除文件myfile1, -f强制的意思,如果不加这个选项,当删除一个不存在的文件时会报错。

【rm -i /root/dir2/myfile2】-i这个选项的作用是,当用户删除myfile2文件时会提示用户是否真的删除,如果删除,输入【y】 否则输入 【n】。

【rm –rf /root/dir1】-r当删除目录时,加该选项,如果不加这个选项会报错。rm是可以直接删除不为空的目录的。

【rm –rf /root/dir2】删除dir2子目录,包括里面的文件。


第10步:使用【cp】命令复制文件

【cp】命令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

【cp  /etc/grub.conf  ./】将/etc/grub.conf文件复制到当前目录中。

【cp /etc/passwd /root/passwd.bak】复制/etc/passwd文件到/root/中,并重命名为passwd.bak。

【cp /root/*.mp3 /soft/ab】复制扩展名为mp3的所有文件到/soft/ab目录中。

【cp –r –f /root /soft/ab】复制一个目录到另一个目录,同时删除前面已经存在的目录。

【cp file1 file2 dir1】将file1 file2 复制到dir1中。


第11步:使用【mv】命令移动或重命名文件/目录

mv是Move的缩写,【mv】可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

mv 1.txt  2.txt  3.txt test3命令将1.txt 2.txt3.txt 三个文件移到 test3目录中。

mv -t /opt/soft/test/test4/  1.txt  2.txt  3.txt 】命令又将三个文件移动到test4目录中。

【mv file1 file2 dir2】将文件file1,file2从当前目录移动至dir2中。

【mv /dir2/file1 /dir2/myfile1】将dir2中的文件file1 改名为myfile1。

【mv /root/abc.jpg /etc/kk】将/root/abc.jpg文件移动到/etc/kk文件夹下。

【mv at.doc abc.doc】将at.doc该名为abc.doc。

【mv kk.zip .kk.zip】将kk.zip文件隐藏。

【mv .kk.zip kk.zip】将.kk.zip去除隐藏。

【mv -i 1.txt 2.txt】将文件1.txt改名为2.txt,如果2.txt已经存在,则询问是否覆盖。


第12步:重启与关机

在linux下一些常用的关机/重启命令有【shutdown】、【halt】、【reboot】、及【init】,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的 

重启命令:

【reboot】重启系统。

【shutdown -r now】立刻重启(root用户使用)  。

【shutdown -r 10】过10分钟自动重启(root用户使用)  。

【shutdown -r 20:35】在时间为20:35时候重启(root用户使用)。

关机命令:

【halt】立刻关机。

【poweroff】立刻关机。

【shutdown -h now】立刻关机(root用户使用)。

【shutdown -h 10】10分钟后自动关机。

如果是通过shutdown命令设置关机的话,可以用【shutdown -c】命令取消重启或关机。

第13步:查看系统相关状态

(1)【df】 命令显示磁盘占有空间。

         【df】命令可以显示目前所有文件系统的最大可用空间及使用情形,请看下列这个例子。


加了参数 -h 表示使用“Human-readable”的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 

上面的命令输出的第一个字段及最后一个字段分别是档案系统及其挂入点。从中可以到/dev/mapper/vg_yhy-lv_root这个分区被挂在根目录下,tmpfs这个分区被挂在/dev/shm目录下,/dev/sda1这个分区被挂在/boot目录下。

接下来的四个字段 Size、Used、Avail、Use%以及Mounted on分别是该分割区的容量、已使用的大小、剩下的大小、使用的百分比及挂载。当硬盘容量已满时,将步允许再写东西到该分区中。

另外,我们还可以使用参数 -i 来查看目前档案系统 inode 的使用情形。有的时候虽然分区还有空间,但若没有足够的 inode 来存放文件的信息,一样会不能增加新的文件。请看下面这个例子。

我们可以看到根分区已经用掉的inode数量为 101K,还有 1.1M的可用inode。

备注:所谓的 inode 是用来存放档案及目录的基本信息 (metadata),包含时间、档名、使用者及群组等。在分割扇区时,系统会先做出一堆 inode 以供以后使用,inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的inode来挂档案及目录。

(2)【free】命令能显示系统使用内存情况的信息。

  目前常用的Linux下查看内容的专用工具是【free】命令。

下面是对内存查看【free】命令输出内容的解释:

total:总计物理内存的大小为1 915 512B。

used:已使用的内存空间为173 548B。

free:可用的内存空间为1 741 964B。

Shared:多个进程共享的内存总额为0B。

Buffers/cached:磁盘的缓冲区内存空间为15 760B;高速缓存的空间为65 256B。


(3)【cat /proc/meminfo】命令查看内存使用的详细信息。 


    (4)【cat /proc/cpuinfo】查看CPU信息(型号) 


第14步:熟悉以下常用命令以及功能

   (1)【ls –al /root > file1】将用户root的家目录的所有目录列表保存至文件file1中。

   (2)【ls –al /bin | grep in>file2】将/bin下的文件名中包含了in字符的文件名保存至文件file2中。

(3)【cat file1 fiel2】同时显示file1  file2内容。

(4)【cat file1 fiel2 > fiel3】将file1  file2内容合并成新文件file3。

(5)【head file3】显示file3的前10行内容,head命令一般默认显示文件的前10行。

(6)【head 15 fiel3】显示file3的前15行内容。

(7)【tail 3 file3】显示file3的后3行内容。

(8)【wc –lw file1】统计file1中的行数、字数。

(9)【grep –c root file1】统计file3中包含root的行数。

(10)【find . –name “file*”】 查找文件名中包含了file字符的文件。

(11)【ls -l | grep –c “file”】 查找当前目录中有否文件名包含fiile的文件。

(12)【find /bin –size -1000c > myresult】查找/bin中有否1000字节以下的文件,并将查找结果保存至文件myresult。

(13)【find /bin -size 100 –print】查找有否100块以上的文件。

(14) 【find / –user test】查找有否用户test创建的文件。

(15)【cp / config* /bak】将所有文件名中包含了字符config的文件复制到目录 /bak。

(16)【cut –d: -f1 /etc/passwd】从/etc/passwd中提取用户名,统计个数,并将结果保存至文件中。

(17)【ls –al | wc –l】统计/bin目录下的文件目录项数。

(18)【ls -al | perl -pi -e 's/root/wqaz/g'】将用户当前目录下的文件目录显示列表中的所有root 替换成 wqaz,并理解变换结果。



【子任务四】挂载外部文件到Linux系统中

  安装linux系统以后,当我们插入u盘或放入光盘的时候linux系统是不可以自己识别的,是不能直接使用的,这是由Linux的文件系统管理决定的。首先,Linux将所有的硬件设备都当做文件来处理,因此当使用光驱、u盘等硬件设备时,必须将其挂载到系统中,只有这样Linux才能识别。

第1步:理解挂载的概念

  Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。Linux会将这些分属不同分区的、单独的文件系统“按一定的方式”形成一个系统的总的目录层次结构。这里所说的“按一定方式”就是指的挂载。

  将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。

  一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。

  对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与Linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;win2000、winXP、win7、win8以及win10是fat32或NTFS。挂载前要了解Linux是否支持所要挂载的文件系统格式。

第2步:使用挂载命令的参数

挂载时使用【mount】命令:格式:mount [-参数] [设备名称] [挂载点]

其中常用的参数有-t 指定设备的文件系统类型,常见的文件系统如下。

 minix: Linux最早使用的文件系统。

ext2 :Linux目前常用的文件系统。
  msdos :MS-DOS的fat,就是fat16。
  vfat: windows98/win2000/winXP常用的fat32。
  nfs: 网络文件系统。
  iso9660: CD-ROM光盘标准文件系统。
  ntfs : winXP/win7/win8/win10的文件系统。
  hpfs: OS/2文件系统。
  auto: 自动检测文件系统。

第3步:使用挂载命令选项

-o 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的如下。

  ro:以只读方式挂载。

  rw:以读写方式挂载。

  nouser:使一般用户无法挂载。

  user:可以让一般用户挂载设备。

      需要注意的是,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。也就是说要把文件系统挂载到哪,首先要先建上个目录。

      比如:要把win7系统挂载在hda1分区上,同时还要挂载光盘和U盘。

【mkdir /mnt/winc  】建立挂载点/mnt/winc。

【mount -t ntfs /dev/hda1 /mnt/winc】挂载win7的hda1分区。

【mkdir /mnt/usb】建立挂载点/mnt/usb。

【mount -t vfat /dev/sda1 /mnt/sub】挂载U盘。

【mkdir /mnt/cdrom】建立挂载点/mnt/cdrom。

【mount -t iso9660 /dev/cdrom /mnt/cdrom】挂载光盘。

    现在就可以进入/mnt/winc等目录读写这些文件系统了。

  要保证挂载U盘以及光盘的命令不出错,首先要确保U盘存在以及光驱里有光盘。

  如果你的win7目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。这就要用到 -o 参数里的codepage iocharset选项。codepage指定文件系统的代码页,简体中文中文代码是936;iocharset指定字符集,简体中文一般用cp936或 gb2312。

  当挂载的文件系统Linux不支持时,mount一定报错,可以重新编译Linux内核以获得对该文件系统的支持。



【子任务五】掌握Linux系统中的自动挂载

  每次开机访问windows分区或光驱、U盘时都要运行【mount】命令显然太烦琐,为什么访问其他的Linux分区不用使用】【mount】命令呢?

  其实,每次开机时,Linux自动将需要挂载的Linux分区挂载上了。那么我们是不是可以设定让Linux在启动的时候也挂载我们希望挂载的分区,如windows分区,以实现文件系统的自动挂载呢?

  这是完全可以的。在/etc目录下有个fstab文件,它里面列出了Linux开机时自动挂载的文件系统的列表。

  在/etc/fstab文件里,如下图所示。

 

 第一列是挂载的文件系统的设备名;第二列是挂载点;第三列是挂载的文件系统类型;第四列是挂载的选项,选项间用逗号分隔;第五六列留作备用。

 参数defaults实际上包含了一组默认参数:rw 以可读写模式挂载;suid 开启用户ID和群组ID设置位;dev 可解读文件系统上的字符或区块设备;exec 可执行二进制文件;auto 自动挂载;nouser 使一般用户无法挂载;async 以非同步方式执行文件系统的输入输出操作;

光驱和软驱是不自动挂载的,如果你非要设成自动挂载,参数设置为noauto,但要确保每次开机时光驱和软驱里都要有盘,否则系统无法启动。

 例如,要把系统中 /root/examine.iso 镜像文档挂载到 /mnt/iso 目录下。并且使其在系统重启后自动挂载(永久挂载),其步骤如下。

(1).先看看/mnt/iso挂载点在不在,若不在,通过命令建立:【#mkdir /mnt/iso】。

(2).挂载文件:【mount -o loop /root/examine.iso /mnt/iso】。

(3).写入/etc/fstab表。

使用【vim /etc/fstab】命令编辑/etc/fstab文件,在最下面添加如下的内容:

 

 

 结果如下图所示:

 

 当Linux下次启动时,系统会读取该文件,Linux系统就会自动把/root/examine.iso 镜像文档挂载到 /mnt/iso 目录下面。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值