管理与维护Linux系统

任务二  认识Linux的文件系统

1. Linux系统目录结构以及简单说明

linux目录图:



root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。
home --- 存储普通用户的个人文件
ftp --- 用户所有服务
httpd
samba
user1
user2
bin --- 系统启动时需要的执行文件(二进制)
sbin --- 可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行
proc --- 虚拟,存在linux内核镜像;保存所有内核参数以及系统配置信息
1 --- 进程编号
usr --- 用户目录,存放用户级的文件
bin --- 几乎所有用户所用命令,另外存在与/bin,/usr/local/bin
sbin --- 系统管理员命令,与用户相关,例如,大部分服务器程序
include ---  存放C/C++头文件的目录
lib --- 固定的程序数据
local --- 本地安装软件保存位置
man --- 手工生成的目录
info --- 信息文档
doc --- 不同包文档信息
tmp
X11R6 ---  该目录用于保存运行X-Window所需的所有文件。该目录中还包含用于运行GUI要的配置文件和二进制文件。
X386 --- 功能同X11R6,X11 发行版5 的系统文件
boot --- 引导加载器所需文件,系统所需图片保存于此
lib --- 根文件系统目录下程序和核心模块的公共库
modules --- 可加载模块,系统崩溃后重启所需模块
dev --- 设备文件目录
etc --- 配置文件
skel --- home目录建立,该目录初始化
sysconfig --- 网络,时间,键盘等配置目录
var
file
lib --- 该目录下的文件在系统运行时,会改变
local --- 安装在/usr/local的程序数据,变化的
lock --- 文件使用特定外设或文件,为其上锁,其他文件暂时不能访问
log --- 记录日志
run --- 系统运行合法信息
spool --- 打印机、邮件、代理服务器等假脱机目录
tmp
catman --- 缓存目录
mnt --- 临时用于挂载文件系统的地方。一般情况下这个目录是空的,而在我们将要挂载分区时在这个目录下建立目录,再将我们将要访问的设备挂载在这个目录上,这样我们就可访问文件了。
tmp --- 临时文件目录,系统启动后的临时文件存放在/var/tmp
lost+found --- 在文件系统修复时恢复的文件
 
/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
注:/etc/X11存放与x windows有关的设置。
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found
/mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
/sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
/usr:应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间

2.Linux系统的路径规则:

绝对路径:路径的写法一定由根目录"/"写起,列如/usr/local/mysql。

相对路径:路径的写法不是由根目录“/"写起,列如,用户进入到/,然后在进入到home,命令为【cd/home】命令,此时用户所在的路径为/home/test/。第一个命令cd命令根/home,第二个cd命令后跟test,并没有斜杆,这个test是相对于/home目录而言的,即叫相对路径。

3.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文件的内容。
 第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.txt、3.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,并理解变换结果。


4.挂载外部文件到linux系统中:

第一步:理解挂载的概念
 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内核以获得对该文件系统的支持。 


阅读更多

没有更多推荐了,返回首页