1.3.5 Linux系统的文件和目录
目录就是Windows系统下的文件夹。Linux系统中的根目录为"/",这一点和Windows系统不同。Windows系统中有盘符的概念,如C盘、D盘,每个盘符下都有根目录,例如,C盘的根目录为c:\。Linux系统中没有盘符的概念,只有一个根目录"/"。
1.根目录
尝试执行如下命令。
ls -l /
根目录下的所有内容如图1-53所示。
图1-53 根目录下的所有内容
下面介绍其中几个重要的目录。
●/etc:保存系统数据文件、启动文件和脚本等。
●/bin:存放普通用户常用的命令。
●/sbin:存放系统管理方面的常用命令。
●/boot:存放系统核心文件。
●/dev:存放与设备有关的文件。
●/lib:存放在编译某些程序时要用的函数库。
●/usr:存放用户安装的应用程序,类似于Windows系统中的program files目录。
●/var:存放系统数据文件。
●/root:系统管理员(root用户)的属主目录。
●/home:存放普通用户属主目录的目录。
●/media:在系统自动挂载存储设备时(如光驱、U盘)使用的目录。
●/mnt:在挂载设备时建议使用的目录,因为目前版本的Linux系统都使用自动挂载,所以该目录已很少使用,而被media目录取代了。
在Linux系统中,目录呈现树状结构,带有分支,也就是各级子目录。这些目录的访问路径分绝对路径访问和相对路径访问两种,其原理和DOS系统中的是一样的。
假设该CentOS中已经使用yum安装了tree(如果没有安装,则可以先参考1.4.4节的例1-49)。
在根目录下执行以下命令。
[root@CentOS2015 ~]# tree / |less
之后,就会看到根目录下的树状结构(见图1-54),命令中的less参数用于分屏显示。
图1-54 根目录的树状结构
需要注意的是,每个目录中还有两个特殊的目录-"."和".."。其中,"."目录表示当前目录,".."目录表示当前目录的上一层目录。可以借助这两个特殊目录来表示相对路径。例如,grub目录的相对路径可以表示为"../../grub"。
属主目录还有特殊的表示方法,用"~"表示当前用户的属主目录。例如,"[root@CentOS~]#"中的"~"符号,就代表默认登录后都位于本用户的属主目录中,当执行ls -l命令后,用户看到的是属主目录的内容。
2.vi编辑器
vi命令用于编辑文本文件。其语法如下。
vi 文件名
vi是一个比较强大的编辑工具,类似于Windows系统下的记事本,但是其功能要强大得多。vi分为3种模式,分别是一般模式、编辑模式、命令行模式。
●一般模式:当用户编辑一个文件时,一进入该文件即进入一般模式了。在这个模式下,用户可以做的操作有上下移动光标(见表1-2),删除某个字符,删除某行,复制、粘贴一行或者多行(见表1-3),查找与替换文本(见表1-4)。
●编辑模式:在一般模式下是不可以修改某一个字符的,要修改某一个字符只能在编辑模式下进行。从一般模式进入编辑模式,只需要用户按一个键(i、I、a、A、o、O、r、R)即可,每个键的含义如表1-5所示。当进入编辑模式时,在屏幕的最下一行会出现"INSERT"或"REPLACE"的字样。从编辑模式回到一般模式只需要按Esc键即可。
●命令行模式:在一般模式下,输入":"或者"/"即可进入命令模式。在该模式下,用户可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等(见表1-6)。
别外,还有一个vim命令。它的作用与vi是一样的,可以把vim看成vi的加强版;区别在于vim是带颜色的,文档内容显示得更清晰。
3.文件与目录操作命令
1)cd
cd是change directory的缩写,用于改变当前路径。其语法如下。
cd [相对路径或绝对路径]
例如,要进入根目录下的etc目录,用绝对路径表示的方法如下。
cd /etc
如果当前在/root目录下,要转到etc目录下,则用相对路径表示的方法如下。
cd ../etc
如果要回到自己的属主目录,则可以使用以下命令。
cd ~
2)pwd
pwd命令用于显示当前所在的目录。其语法如下。
pwd
例如:
[root@CentOS2015 ~]# cd / //切换到根目录
[root@CentOS2015 /]# pwd //查看当前目录
/ //显示/根目录
[root@CentOS2015 /]# cd ~ //切换到属主目录
[root@CentOS2015 ~]# pwd //查看当前目录
/root //显示当前root用户的目录
3)mkdir
mkdir命令用于创建目录,目录可以是相对路径,也可以是绝对路径。其语法如下。
mkdir [-option] 目录名称
当建立的目录的父目录不存在时,使用参数-p可以同时建立父目录。
例如,要在当前目录下建立一个叫test的目录,可以先用pwd命令查看所在目录,然后建立test目录,最后用ls命令查看新建的目录,如图1-55所示。
图1-55 创建一个目录
如果要同时建立多个目录,操作如图1-56所示。
图1-56 创建多个目录
4)rmdir
rmdir命令用于删除目录,目录可以是相对路径,也可以是绝对路径,但是需要注意,目录必须为空目录。其语法如下。
rmdir 目录名称
例如,在当前目录下要删除test目录,可以先用ls命令查看当前目录下的内容,再执行rmdir test命令,最后用ls命令查看删除的效果,如图1-57所示。
图1-57 删除一个目录
如果要在当前目录下删除test1、test2、test3这3个目录,操作如图1-58所示。
图1-58 删除多个目录
5)cp
cp命令用于复制文件。其语法如下。
cp [-option] 源 目标
常用参数如下。
●-r:递归处理,将指定目录下的文件与子目录一并处理。
●-u:如果源文件较新,或者没有目标文件,才进行复制,常用于备份。
【例 1-1】 属主目录下有一个test文件夹,其下面有一个testfile文件,现在要把testfile从test目录下复制到属主目录下,如图1-59所示。
对复制以后的文件还能进行重命名。
【例1-2】 将当前目录下的testfile文件复制到test目录下并重命名为copy_testfile,如图1-60所示。
图1-59 复制文件
图1-60 复制文件并重命名
如果需要将一个目录下的文件全部复制到另一个目录下,则可以在目录的路径后面加"*"号。
【例 1-3】 将当前目录下的test目录的所有内容复制到test1目录下,如图1-61所示。
图1-61 复制某个目录下的所有文件
如果需要将多个目录及下面的文件一次复制到另一个目录下,则可以使用参数-r。
【例 1-4】 有一个空的test2目录,现要将test、test1目录及子目录下的文件一并复制到test2目录中,如图1-62所示。
图1-62 复制多个目录
6)rm
rm命令用于删除文件。其语法如下。
rm [-option] 文件名
常用参数如下。
●-f:强制删除,不提示用户是否需要删除的信息。
●-r:循环删除,常用于删除目录。
【例 1-5】 删除test目录下的copy_testfile文件,如图1-63所示。
图1-63 删除普通文件
当利用rmdir命令删除文件夹时,文件夹必须是空的。一旦目录非空,先逐层删除文件再删文件夹就非常麻烦。这里可以使用rm -rf命令。
【例 1-6】 现要删除当前目录下的test1目录及test1目录下所有文件与子目录。为了不显示提示信息,需要加上-f参数,这样就可以跳出太多的确认提示信息,如图1-64所示。
图1-64 强制删除文件
7)mv
mv命令用于移动文件或目录。其语法如下。
mv 源 目标
【例1-7】 将当前目录下的test目录移动到test1目录下,如图1-65所示。
图1-65 移动文件
我们经常用mv命令来进行文件或者目录的重命名操作,如图1-66所示。
图1-66 重命名文件
4.管道命令
管道命令(|)可以把一个命令的输出作为其他命令的输入。其语法如下。
command 1 | command 2
它的功能是把command 1执行的结果作为command 2的输入。
【例 1-8】 列出当前目录中的任何文档,并把输出作为more命令的输入,more命令用于分页显示文件列表。
ls -l | more
5.查看文件内容命令
1)cat
cat是concatenate的简写,用于将一个文件的内容连续输出到屏幕上。其语法如下。
cat [-option] 文件名
常用参数如下。
●-n:连行号一起显示在屏幕上。
●-b:连行号一起显示在屏幕上,但空行不算。
●-v:显示控制符号。
【例 1-9】 将 etc 目录下 inittab 文件的内容显示出来,并显示行号,如图 1-67所示。
图1-67 使用cat命令显示文件内容
2)more
more命令的作用和cat命令类似,同样用于在屏幕上显示文件内容,但是如果文件内容太多(超过40行),则使用cat命令会一闪而过,而使用more命令则会在显示完一屏内容后暂停,等待用户往下翻。其语法如下。
more 文件名
常用参数如下。
●+n:从第n行开始显示。
●?n:定义屏幕大小为n行。
下翻命令可以用Enter键(单行下翻)、Ctrl+F组合键(整页下翻)、空格键(整页下翻)。如果要退出则按Q键。
版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。