Linux目录和文件管理

一、Linux 目录结构

        Linux操作系统中的目录和文件数据被组织为一个树形目录结构,所有的分区、目录、 文件等都具有一个相同的位置起点      根目录。Linux 操作系统中只有一个根目录,而 Windows 操作系统中每个分区都有一个根目录,这点需要加以区别。

        根目录是 Linux操作文件系统的起点,其所在的分区称为根分区。在根目录下, Linux 操作系统将默 认建立一些特殊的子目录,分别具有不同的用途。下面简单介绍一下其中常见的子目录及其作用。   

     >  /boot:此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录,  vmlinuz  initrd.img。在安装 Linux 操作系统时,为 boot 目录创建一个分区,有利于对系统进行备份。

       >  /bin:bin   binary 的缩写。这一目录存放了所有用户都可执行的且经常使用的命令,如 cpls 等。

        >  /dev: 此目录保存了接口设备文件,如/dev/hda1、/dev/cdrom 等。

        >  /etc:  系统主要的配置文件几乎都放置到这个目录内,例如人员的账号密码文件、各

种服务的起始文件等。

      >  /home: 存放所有普通系统用户的默认工作文件夹(即宿主目录、家目录),如用 户账号"teacher"对应的宿主目录位于“/home/teacher/ 。如果服务器需要提供给大 量的普通用户使用,建议将“/home”目录也划分为独立的分区,以方便用户数据的

备份。

        >  /root: 该目录是Linux 操作系统管理员(超级用户)root的宿主目录,默认情况下只有 root用户的宿主目录在根目录下而不是在“/home ”目录下。

        > /sbin: 存 放Linux 操作系统中最基本的管理命令, 一般管理员用户才有权限执行。

        >  /usr:   存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序。

        >   /var:   存放系统中经常需要变化的一些文件,如系统日志文件、用户邮箱目录等在实际应用系统中,“/var目录通常也被划分为独立的分区。

二、查看及检索文件

        在 Linux 操作系统中,绝大多数的配置文件是以普通文本格式保存的,这些配置文件决 定着系统及相关服务、程序的运行特性。

        1.查看文件内容

          对于一个文本格式的配置文件,可以利用不同的查看方式来获知文件内容,如直接显示 整个文件内容、分页查看文件内容,或者只查看文件开头或末尾的部分内容。在 Linux 操作系统中,分别由不同的命令来实现这些操作。

        (1)cat     命令      显示并连接 (Concatenate) 文件的内容

        cat 命令本来用于连接 (Concatenate  ) 多个文件的内容,但在实际使用中更多地用于 查看文件内容。cat 命令是应用最为广泛的文件内容查看命令。使用该命令时,只需要 把 要 查 看                       letc/sysconfig/network-scripts/ifcfg-ens33          配置文件中的内容,并了解第一块以太网卡的配置信息。

[root@localhost ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens33

        如果需要同时查看多个文件的内容,可以添加多个文件路径作为查看对象。

        (2).more         less    命令   分页查看文件内容

        使用 cat 命令可以非常简单地直接显示整个文件的内容,但是当文件中的内容较多时, 很可能只能看到最后一部分信息,文件前面的大部分内容都来不及看到。而 more    less命令通过采用全屏的方式分页显示文件,便于我们从头到尾仔细地阅读文件内容。

        more  命令是较早出现的分页显示命令,表示文件内容还有更多 (more)        less  命令是较晚出现的分页显示命令,提供了比早期 more   命令更多的一些扩展功能。两个命令        的用法基本相同。

        使用 more  命令查看超过一屏的文件内容时,将进行分屏显示,并在左下角显示当前内 容在整个文件中的百分比。在阅读界面中,可以按 Enter   键向下逐行滚动查看,按 Space   键可以向下翻一屏,按 b 键向上翻 一屏,按q 键退出并返回原来的命令环境。

[root@localhost~] #more  /etc/httpd/conf/httpd.conf

        more  命令除了可以分屏查看文件内容以外,还可以结合管道符号“I”分屏查看执行命令 时的输出信息,这在命令输出内容较多的情况下特别有用。

[root@localhost ~]#Is -Ih /etc/.conf |more

        less  命令使用方法与 more  命令基本类似,但是比 more  好的是, less  命令结合管道 符号“”分屏查看执行命令时输出的信息时,既可以向下翻页,也可以向上翻页。而 more 命令只能向下翻页,不能向上翻页。

        

       (3).head       tail  命令——查看文件开头或末尾的部分内容

        head 和 tail是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于 显示文件末尾的一部分内容。可以使用“-n”选项 (n  为具体的行数)指定需要显示多少行的内容,若不指定行数,默认只显示十行。

[root@localhost ~]# head -4 /etc/passwd

        tail 命令则正好相反,用于查看文件末尾的内容。tail  命令通常用于查看系统日志(因 为较新的日志记录总是添加到文件最后),以便观察网络访问、服务调试等相关信息。配合 “-f”选项使用时,还可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化。

[root@localhost~]#tail -f INar/log/messages
        2.统计和检索文件内容

        在维护 Linux 操作系统的过程中,除了查看文件内容以外,有时还需要对文件内容进行统计,或者查找符合条件的文本内容。

        (1).wc      命令   统计文件内容中的单词数量 (Word          Count)、行数等信息

        wc 命令用于统计文件内容中包含的行数、单词数、字节数等信息,使用文件名作为参数,可以同时统计多个文件。较常用的选项如下所述。

        >  -1:统计文件内容中的行数。

        >   -w:   统计文件内容中的单词个数(以空格或制表位作为分隔)

        >   -c:   统计文件内容中的字节数。

        当文件的行数、单词数或字节数具有特定的意义时,使用 wc 命令可以巧妙地获得一些 特殊信息。使用不带任何选项的wc 命令时,默认将统计指定文件的行数、单词数、字节数(相当 于同时使用“-I”“-W”“-c”三个选项)。

[root@localhost~   ]#wc  -l  /etc/passwd
46  /etc/passwd

        若将wc 命令与管道符号一起使用,还可以对命令输出结果进行统计。例如,若要统计 /etc/目录下共包含多少个扩展名为“.conf'的文件,可以先通过"find /etc -name "*.conf'”命令 找出符合条件的文件位置,由于find 命令的输出结果也是每行一个文件记录,因此只需结合管道符号执行“wc-I” 操作即可得出符合条件的文件数量

[root@localhost   ~]#find  /etc   -name  "*.conf"|wc  -I

        

        (2).grep      命令   检索、过滤文件内容

        grep 命令用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字符串作 为查找条件,也可以使用复杂的条件表达式(例如,“^word ”表示以 word 开头,“word$”表示 word 结尾, “^$”表示空行)。使用 grep 命令的基本格式如下:

grep  [选项]…  查找条件  目标文件

        grep 命令的常用选项如下所示

        >   -i:   查找内容时忽略大小写 ( lgnore Case)

        >  -v:  反转查找 ( Invert), 即输出与查找条件不相符的行。

三、备份与恢复文档

        在Linux操作系统中,最简单的文件和目录备份工具就是 cp (复制)命令。但是当需 要备份的文件、目录数量较多时,仅仅使用cp 命令就显得“力不从心”,并且备份的文件数 量及其所占用的磁盘空间都可能会对服务器产生不小的压力。因此,有必要对需要备份的数据进行归档和压缩。

        这里所说的归档操作实际上相当于“打包”,即将许多个文件和目录合并保存为一个整体 的包文件,以方便传递或携带。而压缩操作可以进一步降低打包后的归档文件所占用的磁盘空间,充分提高备份介质的利用率。

        Linux 操作系统中较常用的压缩命令工具包括 gzipbzip2, 最常用的归档命令工具为 tar。使用 tar命令可以通过特定选项自动调用gzip  bzip2 程序,以完成归档、压缩的整套流程,当然也可以完成解压、释放已归档文件的整套流程。

        1  使用压缩和解压缩工具

        gzip  bzip2 Linux  操作系统中使用最多的两个压缩工具,这两个命令都可以压缩指 定的文件,或者将已经压缩过的文件进行解压。两者使用的压缩算法各不相同,但命令使用格式基本类似, 一般来说 bzip2 的压缩效率要好一些。

        (1)gzip    gunzip 命令

        使用gzip 制作的压缩文件默认的扩展名为“.gz”。制作压缩文件时,使用“-9”选项可以提 高压缩的比率,但文件较大时会需要更多的时间。例如,以下操作将对/root/public_htm l  录下的 mkfile文件进行压缩,生成压缩文件 mkfile.gz (原始文件 mkfile 不再保留),压缩后的文件大小变为30KB (未压缩时为 62KB)

[root@localhost~]#Is -Ih /root/public_html/mkfile*
-IWXr-XT-x.1 root root 62K9月  2315:14 /root/public_html/mkfile
[root@localhost ~]#gzip /root/public_htmlmkfile
[root@localhost ~]#Is -Ih /root/public_html/mkfile*
-rWXT-XT-x.1 root root 30K 9 月  2315 :14 /root/public_html/mkfile.gz

        当需要解压缩经 gzip压缩的文件时,只需使用带“-d”选项的 gzip 命令即可,或者直接使用

gunzip  命令。例如,若将压缩文件 mkfile.gz  进行解压缩,可执行以下操作。

[root@localhost ~]# gunzip /root/public_html/mkfile.gz
[root@localhost ~]# gzip -d /root/public_html/mkfile.gz
        (2)bzip2    bunzip2 命令

        bzip2  bunzip2 命令的用法与 gzipgunzip 命令基本相同,使 bzip2 制作的压缩文 件默认的扩展名为“.bz2” 。例如,以下操作将对当前目录下的 mkfile 文件以较高压缩比进行 压缩,生成压缩文件 mkfile.bz2  (原始文件 mkfile 不再保留),压缩后的文件大小变为 30 KB(未压缩时为62 KB) 

[root@localhost~]#Is -Ih /root/public_html/mkfile*
-rWXT-xT-x.1 root root 62K May 401:32 /root/public_html/mkfile
[root@localhost~]#bzip2 -9 /root/public_html/mkfile
[root@localhost~]#Is -Ih /root/public_html/mkfile*
-rWxT-xT-x.1 root root 30K May 401:32 mkfile.bz2

        与 gzip、gunzip命令相同,当需要解压缩经bzip2 压缩的文件时,只需使用带“-d选项的 bzip2 命令即可,或者直接使用 bunzip2 令。例如,若要将压缩文件 mkfile.gz 进行解压缩,可执行以下操作。

[root@localhost ~]#bzip2 -d /root/public_html/mkfile.bz2
[root@localhost ~]#bunzip2 /root/public_html/mkfile.bz2
        2.使用tar归档和释放工具

        tar命令主要用于对目录和文件进行归档。在实际的备份工作中,通常在归档的同时也 会将包文件进行压缩(需要调用前面的 gzip  bzip2 命令),以节省磁盘空间。使用 tar命令时,选项前的“-”号可以省略。常用的几个选项如下所述。

        >   -c:   创建 ( Create).tar    格式的包文件。

        >  -C:   解压时指定释放的目标文件夹。

        >  -f:   表示使用归档文件。

        >   -j:调用 bzip2 程序进行压缩或解压。

        >   -p:   打包时保留文件及目录的权限。

        >  -P: 打包时保留文件及目录的绝对路径。

        >  -t:   列表查看包内的文件。

        >  -v:   输出详细信息 ( Verbose)

        >   -x: 解开.tar 格式的包文件。

        >  -z: 调用 gzip 程序进行压缩或解压。

       (1) 制作归档备份文件

        制作归档及压缩包(备份)文件时,tar  命令的基本格式如下:

tar   [选项]…  归档及压缩文件名  需要归档的源文件或目录…
[root@localhost /]#tar zcvf sysfile.tar.gz /etc/boot
        (2)         

        解压并释放(恢复)归档压缩包文件时, tar  命令的基本格式如下:

tar  [选项]…  归档及压缩文件名 [-C  目标目录]
[root@localhost ~]#tar jxf /tmp/usershome.tar.bz2 -C letc

四、使用vi文本编辑器

        配置文件是 Linux操作系统的显著特征之一,其作用有点类似于 Windows  操作系统中 的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。本节将学习 如何使用Linux 字符操作界面中的文本编辑器——vi, 以便更好地管理和维护系统中的各种配置文件

        1 vi 编辑器的工作模式

        vi 编辑器是工作在字符终端环境下的全屏幕编辑器,因此编辑界面相对比较简单,没有 为用户提供鼠标操作和菜单系统,而是通过按键命令实现相应的编辑和操作功能。在 vi辑界面中可以使用三种不同的工作模式,即命令模式、输入模式和末行模式,在不同的模式中能够对文件进行的操作也不相同。

        >   命令模式:启动 vi编辑器后默认进入命令模式。该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。

        >  输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修  改或添加新的内容。处于输入模式时,vi 编辑器的最后一行会出现“--INSERT-- 的状态提示信息。

        >  末行模式:该模式中可以设置 vi编辑环境、保存文件、退出编辑器,以及对文件 内容进行查找、替换等操作。处于末行模式时, vi 编辑器的最后一行会出现冒号“:”提示符。

        命令模式、输入模式和末行模式是 vi 编辑环境的三种状态,通过不同的按键操作可以 在不同的模式间进行切换。例如,从命令模式按:(冒号)键可以进入末行模式,按a、 i、o等键可以进入输入模式;在输入模式、末行模式均可按 Esc  键返回命令模式

        2.命令模式中的基本操作

        执行单独的“vi命令即可进入vi 编辑器的命令模式,还会显示相关版本信息,如图2.3 所示。但更常见的使用方法是指定要编辑的文件名作为参数,若该文件不存在,则 vi 根据该文件名称打开一个新的空文件。

[root@localhost~]#cp /etclyum.conf Jvitest.file

[root@localhost ~]#vivitest.file

        在 vi 编辑器的命令模式中,可以输入特定的按键(称为 vi 操作命令,注意区别于Linux 操作系统命令)进行操作,主要包括模式切换、光标移动、复制、删除、粘贴、文件内容查找及保存和退出等操作,这里只介绍一些最基本且常用的按键命令。

        (1).    

        在命令模式中,按 a i o 等键可以快速切换至输入模式,同时确定插入点的方式和位 置,以便录入文件内容。需要返回命令模式时,按 Esc  键即可。常见的几个模式切换键及其作用如下。

        >   a:   在当前光标位置之后插入内容。

        >   A: 在光标所在行的末尾(行尾)插入内容。

        >  i:  在当前光标位置之前插入内容。

        >  l: 在光标所在行的开头(行首)插入内容。

        >  0:在光标所在行的后面插入一个新行。

        >  0:在光标所在行的前面插入一个新行。

       (2). 移动光标

        >   光标方向的移动。直接按个、↓、←、  四个方向键完成相应的光标移动。

        >  翻页移动。

                ◆  按 Page Down 键或 Ctrl+F  组合键向下翻动一整页内容。

                ◆  按 Page Up 键或 Ctrl+B 组合键向上翻动一整页内容。

        >  行内快速跳转。

                ◆ Home 键或^键、数字0 键将光标快速跳转到本行的行首。

                ◆ End 键或$键将光标快速跳转到本行的行尾。

        在上述按键操作中, Page   Down、Page   Up、Home、End 键及方向键同样也可在 vi

的输入模式中使用。

        >  行间快速跳转。

                ◆ 使用按键命令 1G 或者 gg 可跳转到文件内容的第1行。

                ◆ 使用按键命令G 可跳转到文件的最后一行。

                ◆ 使用按键命令#G 可跳转到文件中的第#行(其中“#”号用具体数字替换)。

       (3). 复制、粘贴和删除

        >  删除操作

        ◆  按 x 键或 Delete 键删除光标处的单个字符。

        ◆ 使用按键命令dd 删除当前光标所在行,使用#dd 的形式还可以删除从光标处 开始的#行内容(其中“#”号用具体数字替换)。

        ◆  使用按键命令d^删除当前光标之前到行首的所有字符。

        ◆  使用按键命令d$ 删除当前光标处到行尾的所有字符。

        >  复制操作。使用按键命令yy 复制当前行整行的内容到剪贴板,使用#yy 形式还 可以复制从光标处开始的#行内容(其中“#”号用具体数字替换)。复制的内容需要粘贴后才能使用。

        >  粘贴操作。在 vi编辑器中,前一次被删除或复制的内容将会保存到剪切板缓冲区 中,按p 键即可将缓冲区中的内容粘贴到光标位置处之后,按P 键则会粘贴到光标位置处之前。

        (4). 查找文件内容

        在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(按? 键则向前查找)。完成查找后可以按 n N 键在不同的查找结果中进行选择。例如,输入 “/yum”,  Enter 键后将查找出文件中的“yum”字符串并高亮显示,光标自动移动至第一个查找结果处,按 n 键可以移动到下一个查找结果

        (5). 撤销编辑及保存和退出

        在对文件内容进行编辑时,有时候需要对一些失误的编辑操作进行撤销,这时可以使用 按键命令u、U 键。其中, u 键命令用于取消最近一次的操作,并恢复操作结果,可以多次重复按u 键恢复已进行的多步操作; U 键命令用于取消对当前行所做的所有编辑。当需要保存当前的文件内容并退出vi编辑器时,可以使用按键命令ZZ

        3 末行模式中的基本操作

        在命令模式中按:键可以切换到末行模式,vi 编辑器的最后一行中将显示“:”提示符,用 户可以在该提示符后输入特定的末行命令,完成如保存文件、退出编辑器、打开新文件、读取其他文件内容及字符串替换等丰富的功能操作。

        (1). 保存文件及退出 vi 编辑器

        >  保存文件。对文件内容进行修改并确认以后,需要执行如下的“:w”命令进行保存。

        若需要另存为其他文件,则需要指定新的文件名,必要时还可以指定文件路径。例如,

执行如下的“w   /root/newfile操作将把当前编辑的文件另存到/root 目录下,文件名为newfile.

:w  /root/newfile

>  退出编辑器。需要退出vi 编辑器时,可以执行“:q”命令。若文件内容已经修改却没 有存,则仅使用“:q”命令将无法成功退出,这时需要使用如下的“:q!”命令强行退出(不保存即退出)。

        >  保存并退出。既要保存文件又要退出vi 编辑器可以使用一条末行命令“:wq”或“:x”实现,其效果与命令模式中的 ZZ 命令相同

        (2)打开新文件或读入其他文件内容

>   打开新的文件进行编辑。在当前 vi 编辑器中,执行“:e  新的文件”形式的末行命令 可以编辑 (Edit)   新文件。例如,执行如下的“;/initial-setup-ks.cfg操作将直接打开当前用户宿主目录中的 initial-setup-ks.cfg 文件进行编辑。

        
:e /initial-setup-ks.cfg

        >  在当前文件中读入其他文件内容。执行“r   其他文件”形式的末行命令可以读入   (Read) 其他文件中的内容,并将其复制到当前光标所在位置。例如,执行如下的 :r/etc/filesystems”操作将把系统文件/etc/filesystems 中的内容复制到当前文件中。

:r  /etc/filesystems
 

        (3)替换文件内容

        在 vi 编辑器的末行模式中,能够将文件中特定的字符串替换成新的内容,当需要大批 量修改同一内容时,使用替换功能将大大提高编辑效率。使用替换功能时的末行命令格式如下:

:[替换范围] sub/ 旧的内容/新的内容Vg]

在上述替换格式中,主要关键字为sub  (Substitute,     替换),也可以简写为s  替换范围是可选部分,默认时只对当前行内的内容进行替换, 一般可以表示为以下两种形式。

>  %: 在整个文件内容中进行查找并替换。

>  n,m: 在指定行数范围内的文件内容中进行查找并替换。

替换格式中最末尾的“/g 部分也是可选内容,表示对替换范围内每一行的所有匹配结果 都进行替换,省略g” 时将只替换每行中的第一个匹配结果。例如,若要将文档中第5行~ 15 行中的"initdefault"字符串替换为“DEFAULT”, 可以执行以下操作:

:5,15  s  /initdefault/DEFAULT/g

        当需要对整个文档范围进行查找替换操作时,需要使用“% ”符号表示全部。例如,以下操作将会把当前文件中所有的“initdefault字符串替换为“bootdefault”

:%s /initdefault/bootdefault/g
  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值