文章目录

          • -

引言

总结一下有关Linux文件和目录的一些基础管理部分,以及vim编辑器的基础操作和命令。

一、Linux目录结构

Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:

在这里插入图片描述

/ 代表的是根目录——所有分区、目录、文件等的位置起点
常见的子目录:


/root系统管理员root的宿主目录/boot系统内核存放的目录/home存放所有普通系统用户的默认文件夹/bin存放所有用户都可执行且经常使用的命令,如cp,ls等/etc保存系统设置与管理的文件dev设备文件的存放位置(光驱、硬盘等)/sbin管理员可执行的管理命令usr应用程序/var日志文件

二、查看及检索文件

对于一个文本格式的配置文件,可以有不同的查看方式来获知文件的内容,如直接显示整个文本内容、分页查看文件内容、或者只查看文件开头或末尾的部分内容。

1.查看文件内容

  • cat——查看并显示出文件的内容

使用cat命令时,只需要把查找的文件路径作为参数即可。例如,用cat命令查看我们的网卡配置文件中的内容:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8c1620c9-37cf-4688-8657-27f114c247ea
DEVICE=ens33
ONBOOT=yes

cat命令也可以同时查看多个文件的内容,可以添加多个文件路径作为查看对象。下面我用cat同时查看系统的发行版本信息及开发环境、时间等信息

[root@localhost ~]# cat /etc/redhat-release /proc/version 
CentOS Linux release 7.4.1708 (Core) 
Linux version 3.10.0-693.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
  • more和less——分页查看文件内容

使用cat命令可以非常简单地直接显示出整个文件的内容,但是当文件中的内容较多时,有可能只能看到最后一部分信息,而文件前面的大部分内容来不及查看。这时候我们就可以利用more和less命令来实现全屏分页的方式来查看文件内容。

①more命令:

界面的操作方法:

  • 按Enter键向下逐行滚动
  • 按空格键向下翻一屏
  • 按b键向上翻一屏
  • 按q键退出
  • 下翻到最后一页后会自动退出

比如,我们要查看 /var/log/dmesg 文件:

[root@localhost home]# more /var/log/dmesg

执行结果如下图:
在这里插入图片描述

②less命令:
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
界面操作方法:

  • 按Page Up 向上翻页,Page Down 向下翻页
  • 按“/”键查找内容
  • 按“n”显示下一个内容,“N”显示上一个内容

我们再用less查看 /var/log/dmesg 文件 :

[root@localhost home]# less /var/log/dmesg

执行结果如下:

在这里插入图片描述

          • -
  • head和tail命令——查看开头或末尾的部分内容

head命令:显示文件开头的一部分内容,可以使用“-n”选项指定需要显示多少行的内容,若不指定默认显示十行

例:查看/etc/passwd 开头1~4行的内容

[root@localhost /]# head -4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

tail命令:查看文件末尾的内容(通常用于查看系统日志)

这里有个工作中经常使用到的操作,就是配合“-f”选项使用。
例如,查看系统公共日志文件/var/logmessages 的最后十行内容,并在结尾跟踪显示该文件中新纪录的内容(Ctrl+C可以终止)

[root@localhost /]# tail -f /var/log/messages 
Jul 30 21:10:09 localhost systemd: Started Network Manager Script Dispatcher Service.
Jul 30 21:20:01 localhost systemd: Started Session 94 of user root.
Jul 30 21:20:01 localhost systemd: Starting Session 94 of user root.
Jul 30 21:30:01 localhost systemd: Started Session 95 of user root.
Jul 30 21:30:01 localhost systemd: Starting Session 95 of user root.
Jul 30 21:40:01 localhost systemd: Started Session 96 of user root.
Jul 30 21:40:01 localhost systemd: Starting Session 96 of user root.
Jul 30 21:48:55 localhost systemd-logind: Removed session 2.
Jul 30 21:50:01 localhost systemd: Started Session 97 of user root.
Jul 30 21:50:01 localhost systemd: Starting Session 97 of user root.

2.统计文件内容

wc命令——统计文件内容中的单词数量、行数等信息
常用选项如下:

格式说明-c统计文件内容中的字节数-l统计文件内容中的行数-w统计文件内容中的单词个数

注意:如果不带任何选项,默认将统计指定文件的字节数、行数、单词个数

例如,统计出/etc/passwd文件中的行数,字节数和单词个数:

[root@localhost /]# wc /etc/passwd
  42   82 2142 /etc/passwd
[root@localhost /]# 

我们也可以把wc命令与管道符号一起使用,让其对命令输出结果进行统计。例如,统计/etc/下共包含多少个名为“.conf”的文件:

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

3.检索和过滤文件

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

grep命令最常用二个选项:

格式说明-i查找时不区分大小写-v显示不包含匹配文本的所有行(反向查询)

在工作中经常会遇到包含大量内容的配置文件,而其中往往包含了很多以“#”开头的注释文字,当只需要分析其中的有效配置信息时,这些空行和注释文字的存在不利于我们快速浏览信息。这时候使用grep命令就可以过滤掉这些无关信息,例如:显示出 /etc/yum.conf 文件中以“#”开头的行和空行除外的内容

[root@localhost /]# grep -v "^#" /etc/yum.conf | grep -v "^$"
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
          • -

三、备份和恢复文档

在Linux 系统中最简单的文件和目录备份工具就是 cp 命令。但是当需要大批量备份时,如果只用cp复制就会显得力不从心了,而且备份出来的文件数量及其占用的磁盘空间可能会对服务器产生一定的压力。因此,有必要对要备份的数据进行归档和压缩。

1.gzip和bzip2

压缩命令gzip、bzip2命令(压缩、解压缩后原文件消失)
作用:制作压缩文件、解开压缩文件,压缩、解压缩后原文件消失
压缩格式:
gzip [-9] 文件名…
bzip2 [-9] 文件名…
解压缩格式:
gzip -d .gz格式的压缩文件
bzip2 -d .bz2格式的压缩文件

常用命令选项:

格式说明-9使用 “-9”选项可以提高压缩比率-d用于解压缩己经压缩过的文件,相当于使用gunzip、bunzip2命令

例:

[root@localhost repo.bak]#gzip Centos-Base.repo
              压缩Centos-Base.repo文件
[root@localhost repo.bak]#gzip -d Centos-Base.repo.gz
              解压缩Centos-Base.repo.gz文件

2.gunzip和bunzip2

  • gunzip等价于gzip -d
  • bzip2和bunzip2命令的用法与gzip、gunzip命令基本相同

例:

[root@localhost repo.bak]#bunzip2 Centos-Base.repo.bz2
              解压缩Centos-Base.repo.bz2文件
          • -

3.tar

tar命令主要用于对目录和文件进行归档,在工作中经常使用到它。

常用的选项如下:

格式说明-c创建.tar格式的文件-C解压时指定释放的目标文件夹-f表示使用归档文件-j调用bzip2程序进行压缩或解压-p打包时保留文件及目录的权限-P打包时保留文件及目录的绝对路径-t列表查看包内的文件-v输出详细信息-x解开.tar格式的文件-z调用gzip程序进行压缩或解压

在工作中常用的有二种组合,例如:
①-zcvf

[root@localhost repo.bak]#tar -zcvf repo.tar.gz Cent0s-Base.repo CentOS-Debuginfo.repo
              Cent0s-Base.repo和CentOS-Debuginfo.repo压缩成repo.tar.gz文件

②-zxvf

[root@localhost repo.bak]#tar -zxvf repo.tar.gz -c /opt
             解压repo.tar.gz文件到opt目录
          • -

四、vi文本编辑器

在Linux系统中最常用的文本编辑器有vi和vim,vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑器,vim是vi编辑器的增强版本。

1.作用

  • 创建或修改文本文件
  • 维护Linux系统中的各种配置文件
          • -

2.工作模式

  • 命令模式:该模式主要完成如光标移动、字符串查找,以及删除、复制,粘贴文件内容等相关操作
  • 输入模式:该模式主要的操作就是录入文件内容,可以对文本文件正文进行修改或者添加新的内容
  • 末行模式:该模式中可以设置vi编辑环境、保存文件、推出编辑器,以及对文件内容进行查找,替换等操作
          • -

3.工作模式的切换

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

  • 从命令模式按冒号“ :”键可以进入末行模式
  • 按i、insert等键可以进入输入模式
  • 在输入模式、末行模式下都可以按Esc键返回至命令模式
          • -

4.常用快捷操作

①移动光标(命令模式)

  • a:在当前光标位置之后插入内容
  • -A:在光标所处行的行尾插入内容
  • -i:在当前光标位置之前插入内容
  • -I:在光标所在行的行首插入内容
  • -o:在光标所在行的后面插入一个新行
  • -O:在光标所在行的前面插入一个新行
  • 光标的方向移动可以直接使用键盘上的四个方向键↑↓←→来完成相应的移动。

②翻页及跳转(输入模式通用)

  • 使用Page Up键或者Ctrl+B组合键向上翻动一整页内容
  • 使用Page Down键或Ctrl+C组合键向下翻动一整页内容

③行内快速跳转(输入模式通用)

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

④行间快速跳转(命令模式)

  • 使用按键命令 IG或者gg可跳转到文件内容的第一行
  • 使用按键命令G可跳转到文件的最后一行
  • 使用按键命令#G可跳转到文件中的第#行(其中“#”号用具体数字替换)

在末行模式下,输入“set nu”命令可以显示出行号,输入“set nonm”命令则是取消显示行号。

⑤复制、粘贴和删除(命令模式)

复制操作:

  • 使用按键命令yy复制当前行整行的内容到剪贴板
  • 使用按键命令#yy复制从光标所在行的#行内容(“#”用具体数字代替)

粘贴操作

  • 按p键可将缓冲区的内容粘贴到光标位置处之后
  • 按P键可以粘贴到光标位置处之前

删除操作:

  • 使用x键或Del按键删除光标处的单个字符
  • 使用按键命令dd删除当前光标所在行,使用#dd的形式可以删除从光标处开始的#行内容(“#”用具体数字代替)
  • 使用按键命令d^删除当前光标之前到行首的所有字符
  • 使用按键命令d$删除当前光标处到行尾的所有字符

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

  • 打开新的文件进行编辑,例如,打开用户宿主目录中的install.log 文件进行编辑
 :e ~ /install.log
  • 在当前文件中读入其他文件内容,例如把系统文件/etc/filesystems中的内容复制到当前文件中
 :r /etc/filesystems

5.文件的保存和查找

①文件内容查找

格式说明/word从上而下在文件中查找字符串“word”?word从下而上在文件中查找字符串“word”n定位下一个匹配的被查找字符串N定位上一个匹配的被查找字符串

②撤销编辑及保存退出(末行模式)

  • u:按一次取消最近的一次操作,重复u键,恢复多步操作
  • U:用于取消对当前行所做的所有编辑
  • zz:保存当前的文件内容并退出vi编辑器

③保存文件及退出

保存文件:

  • 保存修改的内容——:w
  • 另存为其他文件——:w/root/newfile

退出vi编辑器

  • 未修改直接退出——:q
  • 放弃对文件内容的修改强制退出——:q!
  • 保存修改的内容并退出——:wq或 x

6.文件内容替换

在工作中经常会遇到需要大批量修改同一内容,vi编辑器的末行模式中,我们能够将文件中特定的字符串替换成新的内容,使用这个操作能让工作效率大大提高。

常用命令格式如下:

格式说明:s /old/new将当前行中查找到的第一个字符串“old”替换为“new”:s /old/new/g将当前行中查找到的所有的字符串“old”替换为“new”: #,# s /old/new/g在行号“#,#”范围内替换所有的“old”为“new”: % s /old/new/g在整个文件范围里替换所有的字符串“old”替换为“new”: s /old/new/c在替换命令的末尾加入c命令,将对每个替换动作提示用户进行确认

总结

Linux的vi编辑器快捷操作功能非常强大,里面文件内容替换功能在工作中用处页很多,熟练掌握以后能大大提高工作效率。

标签: Linux, 命令, 文件, 目录, root, localhost, repo, 内容

相关文章推荐

添加新评论,含*的栏目为必填