5-vim编辑器

一.vim 编辑器
默认vi是安装的,vim需要通过yum install vim -y 安装

a,i,o开启编辑模式,q退出,q!强制退出,wq[x]保存退出,wq![x!]强制保存退出,u返回上一步操作,ctrl+r返回下一步操作
shift+$:光标移动到行尾,按下0回到行首
gg:光标移动到列的行首,按下G回到列行尾,3(n)G移动到具体某一行
H:跳到屏幕首行
M:跳到屏幕中间
L:跳到屏幕底部

dd:光标移动到目标行,按下dd执行删除操作
3(n)dd:删除多行操作
dd+p:按下dd后,光标移动到目标行,按下p执行剪切操作
3(n)dd+p:按下3(n)dd后,光标移动到目标行,按下p执行多行剪切操作

批量去注释:
前提:注释的行需要整齐排列
1.在命令模式,按ctrl+v进入可视块
2.上下键选中#号
3.按下d执行删除操作
批量加注释:
前提:注释的行需要整齐排列
1.先将光标移动到首行的开头位置
2.在命令模式,按ctrl+v进入可视块
3.上下键选中第一列
4.shift+i,然后输入#
5.连续按两下esc键,完成批量操作

复制一行:
把光标移动到该行位置,按下yy
把光标移动到目标行的任意位置,按下3【n】p【P】
复制多行:
把光标移动到该行位置,按下3(n)yy
把光标移动到目标行的任意位置,按下p

查找:
/查找的内容:n/N表示上下移动

扩展模式的操作(esc+:)
:% s/engon/EGON/g:进入扩展模式,将egon全部换成EGON(%代表全部行,s代表替换,/代表分隔符,g代表每一行的从左到右)
:1 s/engon/EGON/g:表示只替换一行
:1,3 s/engon/EGON/g:表示替换1-3行
:3,$ s/engon/EGON/g:表示替换第3往后的全部行
:% s/^engon/EGON/g:表示只把开头的egon替换
:% s/engon$/EGON/g:表示只把egon结尾的替换
:% s/engon/MMM/g(i):表示把engon替换成MMM区分大小写(加i全部替换)
:3,5 w /root/b.txt:表示把当前文件的3-5内容写入b.txt文本文件中
:r /etc/hosts:表示从另外文件读取内容到当前文件

:set (no)nu:设置行号(取消行号)
:set (no)ic:设置不区分大小写(区分大小写)
:set (no)ai:设置缩进
vim /etc/vimrc:修改添加文件配置即可永久生效

vimdif手动打补丁与path打补丁
vimdiff a.txt b.txt:查看a.txt,b.txt两文件的区别差异,按ctrl+2次w键,切换文件进行编辑
diff a.txt b.txt:效果同上

打补丁:
diff -u 1.txt 2.txt > a.diff #以2.txt文件为主
diff -u 2.txt 1.txt > b.diff #以1.txt文件为主
patch 1.txt a.diff # 给1.txt文件打补丁,将1.txt变成与2.txt一样的文件

vim同时编辑多个文件:
vim -o a.txt b.txt
编辑完a.txt文件,按住ctrl+2次w键,编辑完b.txt文件,esc键保存退出。

vim交换文件:
vim编辑文件未保存关闭,vim会有生成一个交换文件(正常保存退出,编辑完成自动删除),可复原文件
vim -r a.txt(未保存文件)

 

 

二.文件处理三剑客
1.sed 流式编辑器
sed 对比vim
1).sed可以把处理文件的规则('p','d')先写好,然后用同一套规则编辑多个文件,而vim只能一个个编辑—>可用一套规则处理多个文件
2).sed处理文件,一次只处理一行,即同一时间内存中只有文件的一行内容,无论文件多大,都不会对内存造成过大的压力—>可用于处理大文件
如何使用sed
sed 选项 '规则' 文件
sed '' a.txt :规则为空,正常输出文件

选项:
-n:取消默认输出
-i:把输出到屏幕中的内容(规则处理的结果+默认输出的结果),流向文件中

规则:定位+命令
定位方式:
行号定位:
sed '1p' a.txt 打印第一行
sed '1,3p' a.txt 打印第一,二,三行
sed '1p;5p' a.txt 打印第一,五行
正则定位:
sed '/egon$/d' a.txt :将egon结尾的行删掉
sed '/^egon/p' a.txt:将egon开头的行复制
sed '/egon$/p' a.txt:将egon结尾的行复制
sed 's/egon/EGON/(g)' a.txt:将egon替换成EGON
sed '1,3s/egon/EGON/' a.txt:将1到3行的egon替换成EGON
ifconfig | sed 's/ens33/eth0/':搭配管道符号进行文本文件操作
命令:
d
p
s///gi

2.awk 处理有规律的文本
主要擅长处理有规律的文本,主要用于做一些格式化处理

awk 选项 '规则' 文件路径

选项:
-F:指定分隔符
规则:定位+命令
行号定位:NR
awk -F: 'NR == 3{print $1,$3}' /etc/passwd:打印第三行第1段到第3段的内容
awk -F: 'NR >=3 && NR <=5{print $1,$3}' /etc/passwd:打印第三到五行第1段到第3段的内容
awk -F: 'NR =3 || NR =5 ||NR=7{print $1,$3}' /etc/passwd:打印第三到五行第1段到第3段的内容
awk -F: '$1 == "root"{print $0}' /etc/passwd:打印第一段为"root"的内容
awk -F: 'NR>=1 && NR<=3 && $1 == "root"{print $0}' /etc/passwd:加上行数约束条件

正则定位:
awk -F: '//{print $1,$5}' 文件路径:打印第1段到第5段的内容
没有定位代表定位所有行

命令:
{print $n}

3.grep 从一堆杂乱无章的内容中过滤出我们想要的内容
擅长过滤

grep 选项 "过滤规则" 文件

grep -n "root" /etc/passwd:显示行号
grep -i "root" /etc/passwd:忽略大小写
grep -l "root" /etc/passwd:如果文件中但凡是存在root的行就算过滤成功,会返回文件名
grep -rl "root" /etc/:扫描/etc文件夹下,但凡存在root的行过滤出来,会返回文件名

ps aux:查看所有进程
ps aux | grep "sshd":过滤查看sshd的进程信息,找到pid
kill -9 pid号:杀掉进程

windows系统查看进程/杀进程
1.ctrl+alt+delete键,进入任务管理器,选中进程右键,关闭进程
2.
win+r,输入cmd命令
tasklist:查看所有进程
tasklist | findstr "WeChat":查看微信进程,找到pid
taskkill /F /PID pid号:杀掉进程
ps:天然支持管道
三.文件查找命令find
四.文件的上传与下载

 

 

三.文件查找命令find
1.按文件名查找
find 文件路径 -name "文件名"
find /etc -name "ifcfg-ens33":区分大小写
find /etc -iname "ifcfg-ens33":不区分大小写
find /etc -name "ifcfg-*":按通配符查找
2.按文件大小查找
find 文件路径 -size 文件大小
find /etc -size +3M
find /etc -size -3M
3.按文件和大小条件同时成立查找
find / -name "ifcfg-*" -a -size +3M:-a表示同时成立
find / -name "ifcfg-*" -o -size +3M:-o表示任一成立
3.按文件属主/属组条件查找
find /home -user egon -group egon:查找属主和属组都是egon的文件
id root:查看root的用户信息
stat a.txt:查看文件a.txt的信息
4.xargs连接find查找管道
find /home -nouser -nogroup | xargs rm -rf:删除无属主和属组的用户,xargs起到连接管道输入的作用
find /etc/ -name "ifcfg-ens33" | xargs -I {} cp -rv {} /test:使用xargs连接管道输入复制文件
find /etc/ -name "ifcfg-ens33" | xargs -I {} mv {} /test:移动文件
find /etc/ -name "ifcfg-ens33" | xargs -I {} chown root.root {}:给文件赋权

 

 

四.文件上传下载:
wget(curl) -O /test/a.tar.gz http://链接地址:下载安装包,指定路径且可重命名
while true;do curl http://链接地址;done:压力测试,curl命令在于访问链接,但是不下载保存,不断向服务端发送请求。;勿漏
while true;do curl http://链接地址;sleep 1;done:间隔1秒执行

yum install lrzsz -y:下载linux与windows系统连接的安装包(lrzsz)
sz /test/1.jpg:将linux文件拖到windows系统目录界面
rz windows系统文件:将windows系统文件图片等上传至linux

 

 

五.输出与重定向:
输出:
ifconfig > a.txt:将ifconfig打印到屏幕的内容覆盖到a.txt文本中
pwd >> a.txt:将pwd打印到屏幕的内容追加到a.txt文本中
ifconfig xssxx 1> a.txt 2> b.txt:输入分流,将执行成功的信息覆盖到a.txt,执行错误的信息覆盖到b.txt
ifconfig xssxx 1>> a.txt 2>> b.txt:输入分流,将执行成功的信息追加到a.txt,执行错误的信息追加到b.txt
ifconfig wasds &> c.txt:将执行的结果无论成功,错误都覆盖到c.txt
ifconfig wdsad &> /dev/null:将不需要打印的信息丢到黑洞文件夹
输入:
cat > d.txt < /etc/hostname:将hostname文件的内容覆盖到d.txt中
cat >> d.txt < /etc/hostname:将hostname文件的内容追加到d.txt中
cat > d.txt <<EOF:将键盘输入的内容覆盖到d.txt中,输入完毕,输入EOF回车结束
cat >> d.txt <<EOF:将键盘输入的内容放追加到d.txt中,输入EOF回车结束

 

 

六.字符处理命令:
sort -t ':' -k2 -n a.txt:以":"为分隔符,将a.txt中第二列内容顺序排列
sort -t ':' -k2 -n -r a.txt:以":"为分隔符,将a.txt中第二列内容绛序排列
sort a.txt |uniq:将a.txt中内容去重输出
sort a.txt |uniq -c:将a.txt中内容去重输出且标记重复次数
sort a.txt |uniq -d:将a.txt中内容重复的记录输出
sort a.txt |uniq -u:将a.txt中内容非重复的记录输出

head -5 /etc/passwd | cut -d: -f1:将/etc/passwd文件前5行,第一段内容打印出来
head -5 /etc/passwd | cut -d: -f1-3:将/etc/passwd文件前5行,第一段至第三段内容打印出来
head -5 /etc/passwd | cut -d: -f1,3:将/etc/passwd文件前5行,第一段和第三段内容打印出来

head -1 /etc/passwd | tr -d root:将/etc/passwd文件前1行,root字符删除
head -1 /etc/passwd | tr root Root:将/etc/passwd文件前1行,root字符替换成Root(注:逐一替换)

wc -c /etc/passwd:统计/etc/passwd单词个数
wc -l /etc/passwd:统计/etc/passwd文件行数

 

 

七.打包压缩:
打包—>把多个东西扔到袋子里
压缩—>把袋子的空间挤压一下

方式一:
打包压缩:
tar cvf bak.tar /etc/hosts:将/etc/hosts目录下的文件打包到当前文件夹(bak.tar)
tar cvzf bak.tar.gz /etc/hosts:将/etc/hosts目录下的文件打包并压缩到当前文件夹
tar cvzf `date "+%Y+%m+%d"`_bak.tar.gz /etc/hosts:将/etc/hosts目录下的文件打包到当前文件夹,带上打包日期(``代表获取结果)
tar cvjf bak.tar.bz2 /etc/hosts:将/etc/hosts目录下的文件打包并压缩到当前文件夹

解压:
tar xvf bak.tar.gz:将bak.tar.gz解压到当前文件夹
tar xvf bak.tar.gz -C /test:将bak.tar.gz解压到test文件夹下
gzip bak.tar:将bak.tar压缩包解压到当前文件夹(gzip压缩算法)
bzip2 bak.tar:将bak.tar压缩包解压到当前文件夹(bzip2压缩算法)

方式二:
zip bak.zip /root/a.txt /etc/hostname:将/root/a.txt,/etc/hostname文件打包并压缩到当前文件夹
unzip bak.zip:将bak.zip压缩包解压到当前文件夹
unzip bak.zip -d /test:将bak.zip压缩包解压到test文件夹

posted @ 2022-05-02 21:50  修心的博客  阅读(95)  评论(0编辑  收藏  举报