Linux目录和文件管理

一、Linux目录结构

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

Linux 操作系统在定位文件或目录位置时,使用斜杠“/”进行分隔(区别于 Windows 操作系统中的反斜杠“\”)。整个树形目录结构中,使用独立的一个“/”表示根目录,根目录是Linux 操作文件系统的起点,其所在的分区称为根分区。在根目录下,Linux 操作系统将默认建立一些特殊的子目录,分别具有不同的用途。下面简单介绍一下其中常见的子目录及其作用。

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

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

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

& /etc:系统主要的配置文件几乎都放置到这个目录内,例如人员的账号密码文件、各种服务的起始文件等。

& /home:存放所有普通系统用户的默认工作文件夹(即宿主目录、家目录),如用

户账号“teacher”对应的宿主目录位于“/home/teacher/”。如果服务器需要提供给大量的普通用户使用,建议将“/home”目录也划分为独立的分区,以方便用户数据的备份。

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

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

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

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

二、查看及检索文件

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

cat 命令本来用于连接(Concatenate)多个文件的内容,但在实际使用中更多地用于查看文件内容。使用该命令时,只需要把要查看的文件路径作为参数即可。例如,以下操作就可查看cat/etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中的内容,并了解第一块以太网卡的配置信息。

2.more 和 less 命令——分页查看文件内容(当文件内容较多时使用此命令)

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

& more 命令除了可以分屏查看文件内容以外,还可以结合管道符号“|”分屏查看执行命令时的输出信息,这在命令输出内容较多的情况下特别有用。例如,以下操作可以分页查看/etc/目录下扩展名为“.conf”的配置文件。

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

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

  & head 和 tail 是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容。可以使用“-n”选项(n 为具体的行数)指定需要显示多少行的内容,若不指定行数,默认只显示十行。例如:执行“head -4 /etc/passwd”命令,可以查看用户账号文件/etc/passwd 开头第一行至第四行的内容。

& tail 命令则正好相反,用于查看文件末尾的内容。tail 命令通常用于查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问、服务调试等相关信息。配合“-f”选项使用时,还可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化。例如,以下操作可以查看系统公共日志文件/var/log/messages 的最后十行内容,并在末尾跟踪显示该文件中新记录的内容(按 Ctrl+C 组合键终止)

三、统计和检索文件内容

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

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

① -l:统计文件内容中的行数

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

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

当文件的行数、单词数或字节数具有特定的意义时,使用 wc 命令可以巧妙地获得一些特殊信息。

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

  & 使用不带任何选项的 wc 命令时,默认将统计指定文件的行数、单词数、字节数(相当于同时使用“-l”“-w”“-c”三个选项)。

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

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

  & 使用grep命令的基本格式:grep [选项]… 查找条件 目标文件

  & grep 命令的常用选项如下:

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

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

四:压缩和解压缩工具

1.gzip 和 gunzip 命令

& 使用 gzip 制作的压缩文件默认的扩展名为“.gz”。制作压缩文件时,使用“-9”选项可以提高压缩的比率,但文件较大时会需要更多的时间,且容易损坏文件内容。

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

2.bzip2 和 bunzip2 命令

& bzip2 和 bunzip2 命令的用法与 gzip、gunzip 命令基本相同,使用 bzip2 制作的压缩文件默认的扩展名为“.bz2”。

& 与 gzip、gunzip 命令相同,当需要解压缩经 bzip2 压缩的文件时,只需使用带“-d”选项的bzip2 命令即可,或者直接使用 bunzip2 命令。

五、使用tar归档和释放工具

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

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

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

③-f:表示使用归档文件

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

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

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

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

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

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

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

1.制作归档备份文件

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

tar [选项] … 归档及压缩文件名 需要归档的源文件或目录…

2.从归档文件中恢复数据

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

tar [选项] … 归档及压缩文件名 [-C 目标目录]

六、vi编辑器(字符操作界面中的文本编辑器)

& vi 是一个功能强大的全屏幕文本编辑工具,一直以来都作为类 UNIX 操作系统的默认文本编辑器。vim 是 vi 文本编辑器(简称 vi 编辑器)的增强版本,在 vi 编辑器的基础上扩展了很多实用的功能,但是习惯上也将 vim 称为 vi。为了使用方便,可以设置一个命令别名,将 vi 指向 vim 程序(本书中以 vim 程序为例),具体操作如下:

1.vi 编辑器的工作模式

& 在 vi 编辑界面中可以使用三种不同的工作模式,即命令模式、输入模式和末行模式,在不同的模式中能够对文件进行的操作也不相同

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

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

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

& 命令模式、输入模式和末行模式是 vi 编辑环境的三种状态,通过不同的按键操作可以在不同的模式间进行切换。例:

2.模式切换

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

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

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

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

④I:在光标所在行的开头(行首)插入内容

⑤o:在光标所在行的后面插入一个新行

⑥O:在光标所在行的前面插入一个新行

3.移动光标

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

& 翻页移动:

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

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

& 行内快速跳转

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

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

在上述按键操作中,Page Down、Page Up、Home、End 键及方向键同样也可在 vi的输入模式中使用

& 行间快速跳转

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

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

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

4.复制、粘贴和删除

& 删除操作

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

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

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

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

& 复制操作

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

& 粘贴操作

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

5.查找文件内容

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

6.撤销编辑及保存和退出

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

& 当需要保存当前的文件内容并退出 vi 编辑器时,可以使用按键命令ZZ

7.末行模式中的基本操作

& 保存文件及退出 vi 编辑器

①保存文件:对文件内容进行修改并确认以后,需要执行如下的“:w”命令进行保存;若需要另存为其他文件,则需要指定新的文件名,必要时还可以指定文件路径。如:“:w /root/newfile”操作将把当前编辑的文件另存到/root 目录下,文件名为newfile。

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

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

  & 打开新文件或读入其他文件内容

①打开新的文件进行编辑。在当前 vi 编辑器中,执行“:e 新的文件”形式的末行命令可以编辑(Edit)新文件。

②在当前文件中读入其他文件内容。执行“:r 其他文件”形式的末行命令可以读入(Read)其他文件中的内容,并将其复制到当前光标所在位置。

& 替换文件内容

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

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

替换格式中最末尾的“/g”部分也是可选内容,表示对替换范围内每一行的所有匹配结果都进行替换,省略“/g”时将只替换每行中的第一个匹配结果。

注:不进入末行模式按shift键按ZZ可以退出或末行模式下wq/x保存退出

  • 28
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值