进阶学习——Linux目录和文件管理

目录

一、Linux目录结构

1.根目录

2.常见的子目录

2.1常见的子目录的作用

二、命令

1.cat——查看文件内容

2.通式

3.总结

4.延伸

4.1 cat -A  ——显示隐藏字符

4.2 cat  -n  ——显示行号

4.3 cat  -b  ——跳过空行

4.4 cat  -s  ——压缩空行

4.5管道符和cat

4.5.1标准输入和标准输出

4.5.2 cat的倒序显示文件

4.5.3rev——将同一行的内容逆向显示

4.5.4重定向

4.5.5paste ——合并文件

4.5.6 xargs

4.5.7 hexdum——查看硬件设备内容(查看非文本文档)

5.分页查看

5.1more——查看文件内容

 5.1.1交换操作方法

5.2less

5.3more和less的区别

6.查看文件内容

6.1head——可以显示文件或标准输入的前面行

6.1.1用途

6.1.2通式

6.2tail——查看文件或标准输入的倒数行

6.2.1用途

6.2.2通式

6.3延伸

6.3.1head  -c

6.4重点延伸——实时查看文件后十行

6.4.1 head -n -k

6.4.2 tail -n +k

7.wc——统计

8.grep——检查和过滤文件内容

8.1 grep最主要的作用

8.2通式

8.3查找条件的设置

9.正则表达式

10.split——分割

10.1通式

11.gzip、bzip2——压缩、解压缩

11.1通式

11.2常用命令选项

11.2.1  -9(压缩)

11.2.2  -d(解压        )

11.2.3   bzip2  -k

12.tar——归档

三、vi——文本编辑器

1.作用

2.Linux系统中最常用的文本编辑器

3.通式

4.三种模式

4.1命令模式

4.2编辑模式

4.3末行模式

4.3.1末行模式操作

 4.3.2查找、替换


一、Linux目录结构

1.根目录

所有分区、目录、文件等的位置起点;整个树形目录结构中,使用独立的一个“ / ”表示

2.常见的子目录

/root  /bin  /boot  /dev  /etc  /home  /var  /usr  /sbin

2.1常见的子目录的作用

/root:系统管理员root的宿主目录

/home:普通用户的宿主目录

/boot:系统内核、启动文件

/dev:设备文件

/etc:配置文件

/bin:所有用户可执行的命令

/sbin:管理员可执行的命令

/usr:应用程序

/var:日志文件

二、命令

1.cat——查看文件内容

2.通式

cat  [选项]  文件名...

示例

[root@localhost ~]#cat /etc/hosts
[root@localhost ~]#cat /etc/sysconfig/network
[root@localhost ~]#cat /etc/redhat-release/proc/version

cat命令只能查看文本文档/只能查看普通文件,不能查看二进制文件

延伸:file命令可以看到该文件的文件格式

[root@localhost ~]#file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text

file  anaconda-ks.cfg代表查看该文件的文件格式为txt

3.总结

只能查看普通的文本文件,只支持标准输入

cat命令的缺点:如果内容过多显示不全(虚拟机内的cat命令会显示不全)

4.延伸

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

4.1 cat -A  ——显示隐藏字符

^I表示Tab键;$表示换行符

4.2 cat  -n  ——显示行号

4.3 cat  -b  ——跳过空行

4.4 cat  -s  ——压缩空行

延伸:hostname  -I  代表系统反馈当前的IP地址

但是反馈的IP地址末尾有一个空格

4.5管道符和cat

4.5.1标准输入和标准输出

标准输入:你输入的指令

cat命令标准输入

标准输出:电脑反馈给你的信息

所显示的test是标准输出

错误输出:电脑的一些报错信息

标准输入和标准输出默认在当前终端的屏幕上显示

4.5.2 cat的倒序显示文件

4.5.3rev——将同一行的内容逆向显示

4.5.4重定向

重新定义标准输出方向

表示将ls所查看的信息test重新定义方向传到/dev/pts/1下显示

cat a b >c 将a和b的文件传到c 并且建立c文件夹

cat test查看当前test文件下的文件,建立字符1定向到test(覆盖),test只显示test;(追加)字符1到test文件下,此时test文件下为1,1.

">"是覆盖

">>"追加

4.5.5paste ——合并文件

cat是竖向合     上下

paste是横向合 左右

管道符:命令1 |  命令2  |  命令3  |  .......

管道符的定义:将前面命令的结果当做后面命令的参数执行

管道符左边的命令一定要有标准输出

管道符右边的命令一定要能接收标准输入

cat既可以放左也可以放右

4.5.6 xargs

命令1 |  xargs 命令2

xarge可以使前后无法通过管道符传递的命令进行传递

4.5.7 hexdum——查看硬件设备内容(查看非文本文档)
[root@localhost ~]#hexdump -C -n 512 /dev/sda
#查看前512字节
-c表示十六进制  -n 512  表示前512个字节  sda表示磁盘(块设备)
s表示接口   d表示disk  a是第一块盘
所以该代码的表示是查看dev文件下sda磁盘的前512个字节用十六进制表示
0000000 63eb 1090 d08e 00bc b8b0 0000 d88e c08e
0000010 befb 7c00 00bf b906 0200 a4f3 21ea 0006
0000020 be00 07be 0438 0b75 c683 8110 fefe 7507
0000030 ebf3 b416 b002 bb01 7c00 80b2 748a 8b01
0000040 024c 13cd 00ea 007c eb00 00fe 0000 0000
0000050 0000 0000 0000 0000 0000 8000 0001 0000
0000060 0000 0000 faff 9090 c2f6 7480 f605 70c2
0000070 0274 80b2 79ea 007c 3100 8ec0 8ed8 bcd0
0000080 2000 a0fb 7c64 ff3c 0274 c288 be52 7c05
0000090 41b4 aabb cd55 5a13 7252 813d 55fb 75aa
00000a0 8337 01e1 3274 c031 4489 4004 4488 89ff
00000b0 0244 04c7 0010 8b66 5c1e 667c 5c89 6608
00000c0 1e8b 7c60 8966 0c5c 44c7 0006 b470 cd42
00000d0 7213 bb05 7000 76eb 08b4 13cd 0d73 845a
00000e0 0fd2 de83 be00 7d85 82e9 6600 b60f 88c6
00000f0 ff64 6640 4489 0f04 d1b6 e2c1 8802 88e8
0000100 40f4 4489 0f08 c2b6 e8c0 6602 0489 a166
0000110 7c60 0966 75c0 664e 5ca1 667c d231 f766
0000120 8834 31d1 66d2 74f7 3b04 0844 377d c1fe
0000130 c588 c030 e8c1 0802 88c1 5ad0 c688 00bb
0000140 8e70 31c3 b8db 0201 13cd 1e72 c38c 1e60
0000150 00b9 8e01 31db bff6 8000 c68e f3fc 1fa5
0000160 ff61 5a26 be7c 7d80 03eb 8fbe e87d 0034
0000170 94be e87d 002e 18cd feeb 5247 4255 0020
0000180 6547 6d6f 4800 7261 2064 6944 6b73 5200
0000190 6165 0064 4520 7272 726f 0a0d bb00 0001
00001a0 0eb4 10cd 3cac 7500 c3f4 0000 0000 0000
00001b0 0000 0000 0000 0000 340a 000a 0000 2080
00001c0 0021 d583 8c89 0800 0000 0000 00a0 d500
00001d0 8c8a fe8e ffff 0800 00a0 4000 01c0 6f00
00001e0 b17f 2a8e feac 4800 0260 b800 0a1f 0000
00001f0 0000 0000 0000 0000 0000 0000 0000 aa55
0000200

5.分页查看

5.1more——查看文件内容

more [选项] + 文件名

 5.1.1交换操作方法
  • 按Enter(回车键)向下逐行滚动
  • 按空格键向下翻一页
  • 按b键向上翻一页
  • 按q键退出

5.2less

less 输入   /关键字   进行搜索 (大小写敏感)

虚拟机中使用less可以通过↑↓键翻页

n向下;N向上

5.3more和less的区别

more不太推荐使用,更推荐使用less,原因是less不会自动退出

6.查看文件内容

6.1head——可以显示文件或标准输入的前面行

6.1.1用途

查看文件开头的一部分内容(默认为10行)

6.1.2通式

head -n 文件名

6.2tail——查看文件或标准输入的倒数行

6.2.1用途

查看文件结尾的少部分内容(默认为10行)

6.2.2通式

tail -n 文件名

tail -f 文件名

head -n 3 test

查看test文件的前三行;

tail -n 3 test

查看test文件的后三行

6.3延伸

ifconfig ens33 | head -n 2       查看ifconfig ens33文件的前两行的文件

ifconfig ens33 | head -n 2 | tail -n 1 查看ifconfig ens33文件前两行的后一行的文件

6.3.1head  -c

head -c 数字

echo 123 | head -c 1      建立123文件,查看第一个字符的文件

echo 123 | head -c 2      建立123文件,查看前两个字符的文件

echo 123 | head -c 3      建立123文件,查看前三个字符的文件

6.4重点延伸——实时查看文件后十行

tail -f 文件名

tailf 文件名

tailf = tail -f

seq 20 | head -n -3    建立20个字符   显示去掉后三个字符剩下所有

6.4.1 head -n -k

  (k代表数字)(-k代表去掉最后数字行)

seq 10 | head -n -3    建立10个字符  显示去掉后三个剩下的所有

6.4.2 tail -n +k

+k代表从数字行开始显示

seq 10 | tail -n +2    建立10个字符  从第二个字符开始显示

7.wc——统计

wc什么都不加   统计出:行、单词、字符

wc -l  只统计行

wc -w 只统计单词

wc -c 只统计字符

wc不是统计的真正的单词

只有tab和空格才算分隔符

8.grep——检查和过滤文件内容

正则表达式:匹配文件中的字符串

通配符:匹配文件的名字

ls和find后跟通配符

grep后跟的是正则表达式(文本三剑客 grep、awk、sed都支持使用正则表达式)

8.1 grep最主要的作用

过滤文件中命令的字符

8.2通式

grep [选项] ...查找条件(PATTERN)  目标文件(FILE)

选项效果
-i查找时忽略大小写
-v反转查找,输出与查找条件不相符的行
-o只显示匹配项
-f对比两个文件的向同行
-c匹配的行数

-N

显示行号
-r递归目录,但不处理软连接
-R递归目录,但处理软连接

8.3查找条件的设置

要查找的字符串以双引号括起来

“^......”表示以......开头   ; “......$”表示以......结尾

"^$"表示空行

过滤/etc/passwd文件中含有root的行,并且高亮显示 :

过滤ifconfig ens33文件中含有netmask的行,并且高亮显示

grep -i  查找时忽略大小写

grep -v 反选

grep -o  只显示找出来的内容

例题,找出文件中两个相同的部分,grep -f a文件 b文件;将a文件作为条件去匹配b文件,得出a文件和b文件相同的部分

grep -c  命中的行数

grep后不能跟文件夹

例题,在某一文件夹中,快速找到所有含有root字符的文件/如何快速过滤数据,找到含有特定字符的文件

grep -r root /etc/

在etc文件夹下倒序显示含有root字符的文件

9.正则表达式

“ .” 代表任意字符

^ 代表一行的开头

$ 一行的结尾

1. grep "^root" passwd

以root开头;

2. grep “root$” passwd

以root结尾;

3. grep “^$” passwd

空行;

4. grep -v “^$” passwd

非空行;

过滤非空行操作grep -n “^$” /etc/fstab

10.split——分割

例题,如果有一个10G的文件,怎么分割成小的文件

10G可能是日志文件,使用split命令对日志文件进行分割     

10.1通式

split -b 100M 文件名

对data文件夹bigfile进行分割

11.gzip、bzip2——压缩、解压缩

压缩只能对文件夹进行操作;gzip的压缩率要高于bzip2

11.1通式

gzip 文件夹名称

11.2常用命令选项

11.2.1  -9(压缩)

-9代表压缩层级   压缩层级越高  压缩的文件夹越小

11.2.2  -d(解压        )

d就是解压

11.2.3   bzip2  -k

保留源文件

12.tar——归档

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

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

选项效果
-f使用归档(只要使用归档,必须要有-f)
-c建立归档(创建(Create).tar 格式的包文件 )
-x解开归档(解开.tar 格式的包文件 )
-j调用 bzip2 程序进行压缩或解压
-z调用 gzip 程序进行压缩或解压
-C解压时指定释放的目标文件夹
-t不解开压缩包 查看压缩包中的内容
-v显示压缩解压缩的过程(输出详细信息(Verbose) ) 

-p

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

tar -cf 建归档

tar -xf 解归档

建立归档

tar -zcvf = tar fzcv (如果加- 代表f必须在最后一位

tar fzcv 压缩包的名字(*.tar.gz) *代表压缩包的名字

tar xf 压缩包的名字.tar.gz -C  解压缩

tar -t不解开压缩包  查看详细信息

三、vi——文本编辑器

1.作用

创建或修改文本文件

维护Linux系统中的各种配置文件

vim编辑器是默认安装的   功能强大

2.Linux系统中最常用的文本编辑器

vi:类UNIX操作系统的默认文本编辑器

vim:vim是vi文本编辑器(一般简称为vi编辑器)的增强版本

vim是vi的升级版本(光标和颜色);系统中一定会有vi不一定会有vim

3.通式

vim  选项  文件

vim   文件名不存在   新建

vim   文件名存在       修改

选项效果
+#打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN默认行尾
打开上一次的文件

4.三种模式

4.1命令模式

命令模式为进入vim最初始的模式,此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i

移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

退出vim:

zz保存退出

zq不保存退出

~转换大小写

单词间跳转:

w:下一个单词的词首
e:当前或下一单词的词尾
b:当前或前一个单词的词首

当前页跳转:
H:把光标移到当前屏幕最首行    
M:把光标移动当前屏幕中间行     
L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端

行内跳转:
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾

w 一个单词一个单词跳转

行间移动:
#G 或者扩展命令模式下 
:#   跳转至由第#行
G 跳转末行
1G/gg 跳转首行

命令模式翻屏操作:
Ctrl+f 向文件尾部翻一屏,相当于Pagedown
Ctrl+b 向文件首部翻一屏,相当于Pageup
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏

字符编辑

x 删除一个字符
#x 剪切光标处起始的#个字符
xp 交换光标所在处的字符及其后面字符的位置
~ 转换大小写
J(大写) 删除当前行后的换行符

替换命令(replace)
r 只替换光标所在处的一个字符
R 切换成REPLACE模式(一直处于替换模式 可以一直对vim编辑器内的单词或者字符进行编辑 ,在末行出现-- REPLACE -- 提示),按ESC回到命令模式

删除命令(delete)
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw 下一个单词的词首
de 当前或下一个单词的词尾
db 当前或上一个单词的词首

dd 剪切光标所在的行

10dd 删除10行

复制命令(yank)
y 复制,行为相似于d命令
y$
y0
y^
ye
yw
yb

yy  复制行

10yy 复制10行

#yy 复制多行

Y:复制整行

粘贴命令(paste)
p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

改变命令(change)
命令 c 删除后切换成插入模式
c$
c^
c0
cb
ce
cw
cc  #删除当前行并输入新内容,相当于S
#cc  
C   #删除当前光标到行尾,并切换成插入模式,相当于c$

查找
/ :从当前光标所在处向文件尾部查找
? :从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向

撤消更改
u 撤销最近的更改,相当于windows中ctrl+z
#u 撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
Ctrl-r 重做最后的“撤消”更改,相当于windows中crtl+y
. 重复前一个操作
#. 重复前一个操作#次

按d+i可以清除{}内的数据  

 

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

4.2编辑模式

使vim进入到输入模式是在命令模式下输入“ i ”  “ o ”

“ i ”在当前光标前插入;“ o ”在下一行插入

使vim进入到命令模式是在输入模式下输入Esc

4.3末行模式

输入模式和末行模式不能相互切换

末行模式只在最后一行进行操作

末行模式主要作用:显示行号,给文件加密码等都在末行模式进行操作

使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键

4.3.1末行模式操作

set number(set nu) 显示行号;取消显示 set nonumber( set nonu)

set cursorline(set cul) 加下划线;取消显示set nocursorline

nohl 取消高亮

set autoindent(set ai )回车换行之后自动补齐(自动缩进);取消自动缩进set noai

set all 查看帮助

set key 设置密码(如果要取消密码 输入密码进入末行操作之后 再次输入set key (空格))

.           #当前行
$             #最后一行
.,$-1         #当前行到倒数第二行
%             #全文, 相当于1,$

快捷键功能效果

:q

退出不保存
:q!强制退出不保存
:w保存
:w  新文件名另存为新文件
:wq :zz :x保存并退出
:e 其他文件名(如果已被修改需要加e!)打开新文件进行编辑
:r 其他文件名在当前文件中读入其他文件内容
! 命令执行命令
: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 )光标所在行有下划线(取消)
no hl取消高亮
:set ai对齐 回车后和上一行对齐
:set all可以看所有的一些帮助
set key=password 加密码
set key=空白取消密码
set tabstop=4 (set ts=4)tab 一次为四个空格
.!命令 (who,date )将date命令插入当前行注意会覆盖当前行
 4.3.2查找、替换

 忽略字符的大小写

格式:范围 s/文件中的旧内容/替换的内容/修饰符

s///

s@@@

s###

范围:

不写范围的话是光标当前行

%代表全文

"# " #号行 #代表数字 某一行

2代表第二行

2,5代表2到5行

$代表最后一行

$-1 代表倒数第二行

2,$ 代表2到最后一行

举例:%s/a/admin/g

在全文查找a字符替换成admin

给所有行的开头加上#

% s/^/#/

再删除所有行开头的#

% s/^#//

注意:配置文件只有开头的#才是注释

文件内容替换

命令功能
: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命令,将对每个替换动作提示用户进行确认

g #全局替换;默认情况下,每一行只替换第一次出现

  • 27
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值