Linux基本命令 第二章-----目录和文件管理

本文详细介绍了Linux中的目录层次,如/usr和/var目录的用途,以及文件系统的目录结构。接着讲解了查看文件内容的各种命令,如cat、more、less、head/tail、tr、cut、wc、grep、paste、sort和uniq。还涵盖了压缩和解压缩的gzip、bzip2以及归档工具tar的使用。最后,文章深入探讨了vi编辑器的三种模式:命令模式、插入模式和末行模式,以及如何自定义vim的工作特性。
摘要由CSDN通过智能技术生成

目录

一、目录层次

1.1、常见目录

Linux /var 目录

1.2、文件系统的目录结构

二、查看文件内容

2.1、七类常见的Linux的文件

2.2、显示命令

2.2.1 cat

2.2.2 more

2.2.3 less

2.2.4 head/tail

2.2.5 tr

2.2.6 cut

2.2.7 wc

2.2.8 grep

2.2.9 paste

2.2.10 sort

2.2.11 去重uniq

三、压缩,解压缩

3.1、gzip bzip2

3.2、归档tar

四、vi编辑器

4.1、三种模式

4.1.1 命令模式

4.1.2输入模式

4.1.3 末行模式

4.1.4 可视化模式

4.2 配置文件定制vim的工作特性


一、目录层次

1.1、常见目录

一级目录功能(作用)
/bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/设备文件保存位置
/etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
/lib/系统调用的函数库保存位置
/media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的
/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
/root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/

临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空

Linux/usr目录

usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。

Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。

子目录功能(作用)
/usr/bin/存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin/存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。
/usr/lib/应用程序调用的函数库保存位置
/usr/XllR6/图形界面系统保存位置
/usr/local/手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
/usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/src/源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
/usr/includeC/C++ 等编程语言头文件的放置目录

Linux /var 目录

/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。

/var子目录功能(作用)
/var/lib/程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log/登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
/var/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/spool/里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
/var/www/RPM 包安装的 Apache 的网页主目录
/var/nis和/var/ypNIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
/var/tmp一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
  • 根(/)相当于一个入口,文件的总入口,也是唯一入口

  • bin (sbin) 二进制文件,可执行文件,也可能存在别处,默认使用较多所有用户软连接文件 ----------------命令

  • sbin 管理员可使用的二进制文件---------------------------------命令ls cd useradd

  • boot 系统内核、启动文件

  • dev 硬件文件(黄色)

  • etc 配置文件等同于windows 注册表,一般都是文本文件

  • run 运行的内存中文件 运行中的文件

  • tmp 临时文件 -t 特殊权限

  • usr应用程序和操作系统相关的文件 bin sbin

  • var/log日志文件,数据变化的

  • home 普通用户的家目录的上级目录zhangsan目录会在 home

  • root系统管理员的家目录上 /root

  • lib 动态库文件 类似于windows 的dll文件

  • proc 主要保存系统的内核、进程、外部设备状态和网络状态等

  • media 可移动设备

  • mnt 默认挂载点

  • opt 第三方应用程序安装所在目录程序

1.2、文件系统的目录结构

  • 以 . 开头的文件均为隐藏文件

  • 路径用/分开 / 不在第一位就是分隔符

  • 文件名最长 255个字符

  • 区分大小写 linux 注意事项

  • 不要太华丽

二、查看文件内容

2.1、七类常见的Linux的文件

  • d 目录文件directory
  • b 块设备文件block 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
  • c 字符设备character 这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用
  • l 符号链接文件link
  • p 管道文件pipe 主要用于进程间通信单向传输 一个发一个输管道文件
  • s 套接字文件socket 套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信
  • -普通文件 普通文件,包括纯文本文件、二进制文件、各种压缩文件等
第一个字符文件类型
-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d目录,类似 Windows 系统中的文件夹。
b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c字符设备文件,例如键盘、鼠标等。
s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l链接文件,类似 Windows 系统中的快捷方式。

2.2、显示命令

2.2.1 cat

选项效果
-n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行)
-A显示隐藏字符

2.2.2 more

more[选项] 文件名

基本操作

  • 空格下一行 到文末后自动退出

  • b上一行

  • enter一行一行滚动

  • 自动退出

  • q退出

2.2.3 less

less[选项] 文件名

  • 可以使用/ 查找 n向下 N向上查找

  • Page Up 向上翻页,Page Down 向下翻页

  • 其余参考more

 2.2.4 head/tail

head -n 具体数字 文件名 (不加具体的数字,默认开头十行)

tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行)

tail -f 具体数字 文件名 实时跟踪最后十行

 2.2.5 tr

   基本功能转换

格式

tr [选项]... SET1 [SET2]

SET 是一组字符串,一般都可按照字面含义理解

-d 删除

-s 压缩

-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。

2.2.6 cut

cut 命令可以提取文本文件数据的指定列

格式

cut [选项]... [文件]...

常用选项

-d DELIMITER: 指明分隔符,默认tab
-f 想要获取的字段
     #: 第#个字段,例如 3
     #,#[,#]:离散的多个字段,例如 1,3,6
     #-#:连续的多个字段, 例如 1-6
     混合使用:1-3,7
-c   取字符

   2.2.7 wc

wc [选项]... 目标文件..

统计列数,wc本身就是参数 word

  • -l:统计行数

  • -w:统计单词个数

  • -c:统计字节数

 [root@localhost ~]# cat a.txt 
dasdasdads
[root@localhost ~]# wc a.txt 
 1  1 11 a.txt
[root@localhost ~]# cat a.txt 
das dasdads
[root@localhost ~]# wc a.txt 
 1  2 12 a.txt  
  
########注意空行和换行符

  2.2.8 grep

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

  • -i:查找时忽略大小写

  • -v:反向查找,输出与查找条件不相符的行

  • -o 只显示匹配项

  • -f 对比两个文件的相同行

  • -c 匹配的行数([root@localhost ky15]# grep -c root passwd 2)

基本格式

  • 要查找的字符串以双引号括起来单引号也可以

  • “^……”表示以……开头,“……$”表示以……结尾

  • “^$”表示空行

[root@test1 opt]# cat 123.txt |grep -v '^$' >test.txt  //将非空行写入到test.txt文件
[root@test1 opt]# grep "^b" 123.txt    //过滤已b开头
[root@test1 opt]#grep '/$'  123.txt    //过滤已/结尾
[root@test1 opt]# grep -v "^$" 123.txt //过滤非空行3 备份与恢复
[root@localhost yum.repos.d]# ifconfig ens33 |grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"
192.168.91.100
255.255.255.0
192.168.91.255
[root@localhost yum.repos.d]# ifconfig ens33 |grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"|head -1
192.168.91.100

2.2.9 paste

-d 指定分隔符

合并文件

#一个文件放密码一个文件放用户名
[root@localhost ~]#cat user.txt pass.txt 
lisi
liwu
liliu
123
345
444
[root@localhost ~]#paste user.txt pass.txt 
lisi	123
liwu	345
liliu	444


[root@localhost ~]#paste -d: user.txt pass.txt 
###分隔符 用冒号隔开
lisi:123
liwu:345
liliu:444

2.2.10 sort

排序

sort [options] file(s)

把整理过的文本显示在屏幕上,不改变原始文件

r n t k

-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-h 人类可读排序,如: 2K 1G 
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique),合并重复项,即去重
-t 指定分隔符
-k 指定列
[root@localhost ~]#sort /etc/passwd
abrt:x:173:173::/etc/abrt:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]#sort -t: -k3 /etc/passwd
#已冒号为分隔符,只排序第三列,不是已数字是已字符比较
[root@localhost ~]#sort -t: -k3 -n /etc/passwd
#正序
[root@localhost ~]#sort -t: -k3 -nr /etc/passwd
#到序
[root@localhost ~]#df |tail -n +2 |tr -s " " % |cut -d % -f5|sort -nr |head -1
8

2.2.11 去重uniq

uniq [OPTION]... [FILE]...

-c: 显示每行重复出现的次数

-d: 仅显示重复过的行

-u: 仅显示不曾重复的行

uniq常和sort 命令一起配合使用

三、压缩,解压缩

gzip和bzip都是压缩软件,比如windows里的好压和360 压缩或微软自带的等等

比较gzip和bzip之间的压缩比例,压缩时间等问题

3.1、gzip bzip2

gzip [-9] 文件名… 提高压缩比例,但是文件较大时效率会低 bzip2 [-9] 文件名... gzip -d .gz格式的压缩文件 d就是解压 bzip2 -d .bz2格式的压缩文件

9代表压缩比率,9最大1最小,使用以上两种压缩源文件不存在了

gzip的压缩率 要高于bzip2

不会使用 应为只能对文件操作

[root@test1 opt]# gzip *.txt    
#压缩后源文件没了 可以使用-k  保留源文件centos8 特性
[root@test1 opt]# ls
123456.txt.gz  123.txt.gz  1.txt.gz  2.txt.gz  abc.txt.gz  rh  test.txt.gz
[root@test1 opt]# gzip -d *.txt.gz    解压
[root@test1 opt]# ls
123456.txt  123.txt  1.txt  2.txt  abc.txt  rh  test.txt

3.2、归档tar

tar tape archive 磁带归档,磁带便宜磁带机很贵,慢永久保存,硬盘越来越便宜了

tar [选项] ... 归档文件名 源文件或目录 tar [选项] ... 归档文件名 [-C 目标目录]

c vf z j

(zj) x vf C

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

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

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

  • -f:表示使用归档文件(一般都要带上表示使用tar)

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

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

  • -t:列表查看包内的文件(要和f一起使用)

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

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

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

[root@localhost data]# tar -zcvf vm.tar.gz vm1 vm2 zz
vm1
vm2
zz/
[root@localhost data]# tar -jcvf vm.tar.gz vm1 vm2 zz

[root@localhost data]# tar -zxvf vm.tar.gzip -C /opt
vm1
vm2
zz/

[root@localhost zz]# tar -tf vm1.tar.gzip 
vm1

四、vi编辑器

Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。

linux中常见的 文本 还有 nano gedit 知道

推荐使用 Vi 文本编辑器的原因有很多,比如说:

  • 几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;

  • Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计 接口

vi与vim之间的区别 

vim是vi的升级版

基本格式:

vim [OPTION]... ...
命令  选项       文件

vim  文件名不存在  是新建
vim  文件名存在   就是修改

如果系统最小化安装vim并没有提前安装,可以使用

yum  install vim -y
最小桌面

常用选项

+#			打开文件后,让光标处于第#行的行首,+默认行尾
!			打开上一次的文件
+/PATTERN	让光标处于第一个被PATTERN匹配到的行行首用不多
[root@localhost opt]#vim +/^named passwd 
#匹配表达式
[root@localhost opt]#vim +10 passwd

4.1、三种模式

三种常见模式:

  • 命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本

  • 插入(Insert)或编辑模式:用于修改文本

  • 扩展命令(extended command )或末行模式:保存,退出等搜索替代

命令模式---->插入模式

i	insert, 在光标所在处输入
I	在当前光标所在行的行首输入
a	append, 在光标所在处后面输入
A	在当前光标所在行的行尾输入
o	在当前光标所在行的下方打开一个新行
O	在当前光标所在行的上方打开一个新行

4.1.1 命令模式

命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

操作键功能
ctrl+f或者Pagedown向下翻页
ctrl+b或者Pageup向上翻页
Home;^;0跳到本行的行首
按 End 键或$跳转到本行的行尾
1G 或 gg跳转到文件的第一行包括空行
G跳转文件的末尾
#G#代表行号数字,直接跳转到#行
M跳转到当前显示页面的中间行
x或delete删除当前光标的字符
dd删除一整行
#dd删除当前光标开始到第#行(包括当前行)
d^删除当前光标之前到行首 往前不包括当前光标处的字符 86 往后删除包括当前光标处的字符
d$删除当前光标到行尾
dw删除当前光标处的单词
R 或shift+r替换当前光标处文字,会进入替换模式
yy复制当前光标处整行
#yy复制当前光标处向下的#行
p粘贴到光标处下一行
P粘贴到光标处上一行
u只消除上一次可多次使用
UU 取消所有操作
/字符向下查找
?字符向上查找
n向同一方向重复上次的查找指令
N向相反方向重复上次的查找指定末行模式

4.1.2输入模式

输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。

切入到输入模式

快捷键功能描述
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I行首插入命令
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a在当前光标所在位置之后插入随后输入的文本
A行尾插入命令

4.1.3 末行模式

末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

快捷键功能效果
:q退出不保存
:q!强制退出不保存
:w保存
:w 新文件名另存为新文件:
:wq :zz :x保存并退出
:e 其他文件名(如果已修改需要加e!)打开新文件进行编辑
:r 其他文件名在当前文件中读入其他文件内容
: [替换范围] s /旧的内容/新的内容[/g]
:s /old/new替换当前行中的第一个old改为new
:s /old/new/g替换当前行中的所有old改为new
:#,# s /old/new/g#到#行所有old改为new
:%s /old/new/g%代表全文 全文替换所有old改为new
# d删除 第#行
#,# d删除#到#行
#,# y复制三到6 行
:set nu 或:set nonu加行号 不显示行号
:set cul (:set nocul )光标所在行有下划线(取消)
:set ai xml k8s对齐 回车后和上一行对齐
:set all 可以看所有的一些帮助可以看所有的一些帮助
set key=password加密码
set key=空白取消密码
set tabstop=4 (set ts=4)tab 一次为四个空格
.!命令 (who,date )将date命令插入当前行注意会覆盖当前行

4.1.4 可视化模式

在末行有”-- VISUAL -- “指示,表示在可视化模式

允许选择的文本块

  • v 面向字符,-- VISUAL --

  • V 面向整行,-- VISUAL LINE --

  • ctrl-v 面向块,-- VISUAL BLOCK --

范例:在文件指定行的行首插入#

1、先将光标移动到指定的第一行的行首
2、输入ctrl+v 进入可视化模式
3、向下移动光标,选中希望操作的每一行的第一个字符
4、输入大写字母 I 切换至插入模式
5、输入 # 
6、按 ESC 键

范例:在指定的块位置插入相同的内容

1、光标定位到要操作的地方
2、CTRL+v 进入“可视 块”模式,选取这一列操作多少行
3、SHIFT+i(I)
4、输入要插入的内容
5、按 ESC 键

4.2 配置文件定制vim的工作特性

Vim 启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim。

/etc/vimrc #全局
~/.vimrc #个人

Vim 配置文件分为系统配置文件和用户配置文件:

  • 系统配置文件位于 Vim 的安装目录(默认路径为 /etc/.vimrc);

  • 用户配置文件位于主目录 ~/.vimrc,即通过执行 vim ~/.vimrc 命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。

设置参数功能描述
set nu显示行号
set cul突出显示当前行。
set ai设置自动缩进,即每行的缩进同上一节相同。
set ts=4设置 Tab 键宽度为 4 个空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值