linux-文本编辑器

文件编辑
nano vi/vim emacs gedit
nano 内存临时创建
 
vim 三种模式:
命令模式:复制、裁剪、删除、跳转、粘贴
插入模式:编辑文件
末行模式:退出、保存、重命名、读入文件、搜索文件、跳转
 
vim 编辑的命令
命令模式:
光标定位: hjkl 光标上下左右
shift+^$ 跳转到所在行首和行尾
gg G 跳到行首和行尾
4G 4gg 跳的第四行
文本编辑: y 复制 yy 3yy ygg yG
d 删除 dd 3dd dgg dG
d^ 删除当前字符到行首
d$ 删除当前字符到行尾
D 从光标处删除到行尾
p 粘贴
x 删除光标所在字符
u 撤销、
dd 删除
ddp 剪切粘贴
/^d 以d开头
/n$ 以n结尾
r 可以用来修改一个字符
 
 
命令模式切换插入模式:
i 当前位置插入
o 下一行插入
a 当前字符之后插入
I 跳转到行首
A 跳转到行尾
s删除当前字符后插入
S删除当前整行插入
 
从插入模式进入末行模式
Esc
q 退出
w 保存 (w 文件命 = 重命名)
wq 保存退出
x 保存退出
! 强制
q! 强制退出
wq! 强制保存退出
:10 进入第10行
: r /etc/passwd 读入etc/passwd文件
R 进入替换模式
 
 
Ctrl v 进入可视模块
v 整行
 
 
临时设置:
:set nu 设置行号
:set ic 不区分大小写
:set list 显示控制字符
:set ai 自动缩进
 
:set nonu 取消行号设置
:set' noic 取消不区分大小写
:set noai 取消自动缩进
 
制表符设置
:set tabstop = 4 设置tab键为4个空格原有tab空格数也改动
:set softtabstop =4 原有的tab空格数不变,新内容改变
 
永久环境
/etc/vimrc 影响所有系统用户
~/.vimrc 影响当前用户
 
vim -o 文件 文件
横向同时打开两个文件 eg:vim -o 1.txt 2.txt
vin -O 文件 文件
纵向打开
ctrl w 切换
 
替换
:s/ab/**/ 替换光标所在行的第一个ad替换为i**
:s/ab/**/g 当前行所有的ab都替换** g代表全局、当前行
:%s/ab/**/g 替换整个文件的ab为**
:3,6s/ab/**/gc 替换3到6行内所有的ab为**
:%s/^/#/g 给所有行添加注释 %s/^#//g 取消注释
:%s/ // 删除每行的第一个空格
:%s// /g 空格替换成制表符 制表符
:g/^$/d 删除空行
:g/^s*$/d 删除所有空行
:%s/ //g 把所有文件合并成一行 换行符
 
set list 显示出的$是结尾的意思。
 
 
 
查看文件信息 wc
查看文件行数 wc -l
查看文件字符数 wc -c
 
 
文本内容的过滤 grep
grep "root" /etc/passwd
截取文件中带有root的内容
grep "r..t" /etc/passwd
截取文件中以r开头
grep "r[abc]t" /etc/passwd
截取以r开头中间【abc】中任意一个字符以t结尾
grep "r[a-z]t" /etc/passwd
截取以r开头中间a-z字符任意一个字符以t结尾
[a-z][A-Z][0-9]
grep "[^0-9]" 文件 [^] 取反
截取不是数字的内容
grep "^[^a-b]" 文件 ^开头 $结尾 ^$空行
截取开头不以a-z开头的文件
 
特殊字符集:
[[:digit:]] 任意单个数字
[[:alpha:]] 任意单个字母
[[:upper:]] 任意单个大写字母
[[:lower:]] 任意单个小写字母
[[:alnum:]] 任意单个数字、字母
[[:space:]] 任意单个空白字符
[[:punct:]] 任意单个标点
eg: grep "r[[:upper:]]t" /etc/passwd
 
匹配字符出现的次数
*前一个字符出现任意次
eg:grep "ro*" /etc/passwd
 
? 第一个字符出现次或次 ,可有可无
eg:grep "ro?" /etc/passwd
 
+ 前一字符出现次或者多次
eg:grep "r+" /etc/passwd
 
{4} 重复字符出现的次数精确 4次 {2,} {2,4}
eg:grep "o{2}" /etc/passwd
 
分组 (ab)
grep "(ab){2,}" /usr/share/dict/words
 
-i 忽略大小写
eg:grep -i "^r" /etc/passwd
 
-o 仅显示符合pattern的内容
eg:grep -o "r..t" /etc/passwd
 
-e 同时根据多个条件过滤内容
eg:grep -e "^#" -e "^$" /etc/fstab
 
-v 反向过滤
eg:grep -v "^#" /etc/fstab
grep -v -e "^#" -e "^$" /etc/fstab
 
-E 支持正则表达式
eg: grep -E "(ab){2,}" /usr/share/dict/words
grep -E "bin|sbin" /etc/passwd
 
-A n 显示符合条件的后n行内容 -B n 显示后n行的内容
ip addr show ens33 | grep -A 1"ether"
 
 
 
 
查找文件目录
find
-name 按文件名称查找
eg:find /etc/ -name passwd=(文件名)
find /etc/ -name "passwd$"
 
-size 按文件大小查找
eg:find /etc/ -size +15M=(文件大小) +大于多少 -小于多少
创建文件指定大小
dd if=/dev/zero of=/tmp/dd bs=1M count=20 创建一个大小为20M的dd文件
dd 创建指定大小的文件
if=/dev/zero 零发生文件
of=/tmp/dd 创建文件的位置和名字
bs=1M 指定大小单位 M K G
count=20 块 (块*大小)
 
du -h 查看指定文件大小
du -sh 查看指定目录的大小
 
-type 按文件类型查找
eg:find /dev/ -type d=(文件类型)
p 管道
f 普通文件
d 目录
s 套接字
b 块设备
| 链接
c 字符设备
 
-mtime 按时间查找文件
eg:find / -mtime +5 》》》5天前
find / -mtime -5 》》》最近5天
 
-exec 对查找的文件执行操作
eg:find /test/ -name "*.txt" -exec rm -f {} ;
find /etc/ -size +2M -exec cp {} /tmp/ ;
将查找的文件发在{}里对文件执行操作
 
sort 对指定字段排序
sort -t 指定字段分隔符 eg:sort -t":"
sort -k 指定列排序 eg:sort -t":" -k3
sort -n 按数值,默认按字符排序 eg: sort -t":" -k3 -n
sort -r 逆序 eg:sort -t":" -k3 -n -r
eg:
 
cut 取出指定字段
cut -d 指定分隔符
cut -f 指定字段 cut -d: -f1 /cut -d: -f1-3 /cut -d: -f1,3,5,7
cut -c 指定字符 cut -c 1 / cut -c 1,2,3 /cut -c 1-2,7
 
uniq 去重
uniq -u 只显示没有重复的值
uniq -d 显示连续重复的值
uniq -c 统计重复次数
uniq -i 忽略大小写
 
 
 
awk 打印指定字段
awk -F"" '{print $1}' /路径
-F 指定分隔符
$1 第一个字段
$NF 最后一个字段
$(NF-1)倒数第二个字段

原文地址:https://www.cnblogs.com/yk0625/p/14434770.html