Linux基础文件处理

文件内容相关命令:

1)介绍vi和vim
vi   相当于win记事本,默认是有的,
vim  相当于notepad++,typora(MD),默认没有需要安装。


2)安装vim工具
[root@userboy ~]# rpm -qa vim-enhanced
vim-enhanced-7.4.629-8.el7_9.x86_64

yum install vim-enhanced -y

 3)VIM模式
见图:视频里

切入命令模式使用冒号的时候:
:
w 保存  write
u 撤销  undo  保存之前
q 退出  quit
! 强制 


 4)VIM快捷键
1)普通模式:
1.移动光标
cat /etc/passwd >userboy.txt
G  文件结尾
gg 文件开头
$  行尾
0  行头
ngg     切换到第n行
n[回车] 移动n行

2.搜索和替换
/内容 向下搜索,此时按n继续搜索,N反向继续搜索。
?内容 向上搜索,此时按n继续搜索,N反向继续搜索。
:%s/A/B/g,把A替换成B,如果A或B中有斜线,把分割的斜线换#或@
   s为替换,g全局替换
:n1,n2s/A/B/g                n1、n2为数字,在第n1行和n2行间寻找A,用B替换

3.复制、粘贴 删除
yy  复制当前行
nyy 复制从当前开始的n行
p   粘贴到光标的下一行
P   粘贴到光标的上一行
dd  删除当前行
ndd 删除从当前行开始的n行
x   删除光标后字符
X   删除光标前字符
u   撤销

d1gg  d1G 删除当前行至第一行
dG                删除当前行至最后一行
d0                删除当前光标文本至行首
d$                删除当前光标文本至行尾

进入编辑模式命令
i                在当前光标所在处插入文字
A                在当前所在行的行尾最后一个字符处开始插入文字,和I相反
I                在当前所在行的行首第一个非空格符处开始插入文字,和A相反
O                在当前所在行的上一行处插入新的一行
o                在当前所在行的下一行处插入新的一行

2.命令模式
:set nu   显示行号
:set nonu 取消行号

编辑文件同时定位到102行。
vim /etc/sudoers +102

=====cat查看文件内容===========
-n 显示行号

cat /etc/passwd

========echo打印内容输出内容===========
-n 不换行
-e 支持转义字符
    \n 换行
                \t tab

-n实践:
[root@userboy ~]# echo "userboy";echo usergirl
userboy
usergirl
[root@userboy ~]# echo -n "userboy";echo usergirl
userboyusergirl

-e实践
[root@userboy ~]# echo  "userboy\nusergirl"
userboy\nusergirl
[root@userboy ~]# echo -e "userboy\nusergirl"
userboy
usergirl
[root@userboy ~]# echo -e "userboy\tusergirl"
userboy                usergirl

===more/less查看文件内容(浏览)===
less参数:
-N 显示行号

===head 头 查看文件头部,默认头10行===
-n数字 显示n行,缩写-数字

实践:
[root@userboy ~]# head -n 5 userboy.txt
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@userboy ~]# head -5 userboy.txt
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

===tail 尾 查看文件尾部,默认10行===
-n数字 显示n行,缩写-数字
userboy:x:1000:1000:userboy:/home/userboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin
[root@userboy ~]# tail -2 userboy.txt
userboy:x:1000:1000:userboy:/home/userboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin

-f 动态跟踪文件尾部的变化,查看日志文件结尾。

测试脚本:
for n in `seq 1000`;do echo "$n I am userboy.I am 30">>~/userboy.txt;sleep 2;done


[root@userboy ~]# tail -f userboy.txt
2 I am userboy.I am 30
3 I am userboy.I am 30
4 I am userboy.I am 30
5 I am userboy.I am 30
6 I am userboy.I am 30
7 I am userboy.I am 30
8 I am userboy.I am 30


===grep 过滤内容,筛选内容==== 三剑客之一,老三
按行输出

grep [选项] 内容 文件

--color-auto 过滤的内容显示颜色

1)过滤出含有root字符串的行
[root@userboy ~]# grep root userboy.txt
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

2)过滤出【不】含有root字符串的行
-v 取反
[root@userboy ~]# grep -v root userboy.txt
bin:x:1:1:bin:/bin:/sbin/nologin

3)过滤出含有root字符串(含大写)的行
-i 不区分大小写
[root@userboy ~]# grep -i root userboy.txt
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ROOT
491 I ROOT  am userboy.I am 30

4)同时过滤含有userboy和root的行。
-E 同时过滤多个字符串
[root@userboy ~]# grep -E "userboy|root" userboy.txt
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

grep -E = egrep
扩展的grep,egrep
[root@userboy ~]# egrep "userboy|root" userboy.txt
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
userboy:x:1000:1000:userboy:/home/userboy:/bin/bash

了解参数
-o 只输出匹配的内容
[root@userboy ~]# grep -o root userboy.txt
root
root
root

-n 过滤出的内容,在文件中的行号
[root@userboy ~]# grep -n root userboy.txt
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

[root@userboy ~]# grep -n ".*" userboy.txt ==cat -n userboy.txt
1:root:x:0:0:root:/root:/bin/bash
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
特殊注意:此处过滤的点代表任意一个字符。

-w 按单词过滤
userboy和userboy123不是一个东西了,userboy123不会被过滤出来。

[root@userboy ~]# grep -w userboy userboy.txt
userboy:x:1000:1000:userboy:/home/userboy:/bin/bash
489 I am userboy.I am 30
490 I am userboy.I am 30

========touch 创建文件================
touch file1
touche file1 file2 file3
touch  file{1..100}


{1..100} 一个序列
[root@userboy ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@userboy ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@userboy ~]# echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

seq输出数字序列
输出1-5
[root@userboy ~]# seq 5
1
2
3
4
5
输出2-5
[root@userboy ~]# seq 2 5
2
3
4
5
步长2,从2到10
[root@userboy ~]# seq 2 2 10
2
4
6
8
10

-s 指定空格为分隔符
[root@userboy ~]# seq -s " " 5
1 2 3 4 5
[root@userboy ~]# echo {1..5}
1 2 3 4 5

-w 补齐位数
[root@userboy ~]# seq -w -s " " 10
01 02 03 04 05 06 07 08 09 10

考题1:在/data目录下创建userboy.txt,并增加"I am studying linux."一行内容。
该题有多种解题方法。


考题2:请用一条命令完成创建目录/userboy/test,即创建/userboy目录及/userboy/test目录。


今日作业:
下节内容:
1.alias/unalias
2.cp直接覆盖知识
3.tr
4.重定向
5.第8章 linux文件类型,查找与打包命令
视频预习: 13 14
https://ke.qq.com/course/2806831?taid=9996020988171311

尖刀组;
1.yum
2.rpm
3.wget
4.curl
5.vim快捷键,命令行快捷键 整理出思维导图。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值