ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

5-vim编辑器

2022-05-02 22:04:03  阅读:169  来源: 互联网

标签:文件 tar passwd vim etc 编辑器 txt root


一.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文件夹

标签:文件,tar,passwd,vim,etc,编辑器,txt,root
来源: https://www.cnblogs.com/wxd131488/p/16217026.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有