zoukankan      html  css  js  c++  java
  • 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)倒数第二个字段

  • 相关阅读:
    iOS新手在引入第三方出现的几个小问题
    XMPP安装中遇到需要卸载openfire的步骤
    KVC
    SQLite错误码
    简单对象的本地化(以图片为例)
    使用MD5完成自定义Person对象的加密过程
    IOS--工作总结--post上传文件(以流的方式上传)
    IOS开发系列 --- 核心动画
    监听键盘 防止输入时覆盖掉textfiled
    比较选择的开始时间和结束时间的大小
  • 原文地址:https://www.cnblogs.com/yk0625/p/14434770.html
Copyright © 2011-2022 走看看