认识及熟悉Vim

目录


vim简介

什么是vim?

vim是一个类似于vi的文本编辑器。

为什么要用vim?

vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 确性,方便程序设计。

vim的三种模式

一般模式

打开文件后直接进去vim的一般模式,可以使用上下左右来移动光标,也可以使用删除字符或删除整行来 处理文件内容, 也可以使用复制、粘贴来处理文件数据。
按Esc退回到一般模式。

一般模式下常用快捷键

– h或← 光标左移一个字符。如果是30h,表示左移30个字符,下同
– j或↓ 光标下移一个字符
– k或↑ 光标上移一个字符
– l或→ 光标右移一个字符
– [Ctrl]+[f] 屏幕向下移动一页
– [Ctrl]+[b] 屏幕向上移动一页
– 0或[Home] 移动到此行最前面字符处
– H 光标移到当前屏幕最上方行的第一个字符
– M 光标移到当前屏幕最中间行的第一个字符
– L 光标移到当前屏幕最下方行第一个字符
– G 到此文件最后一行
– nG 移动到第n行
– gg 相当于1G,即到行首
– n[Enter] 光标下移n行
– /word 向下查找单词“word”
– ?word 向上查找单词“word”
– n 英文按键,表示重复前一个查找操作
– N 与n相反(反向查找,跟?相同)
– :s/word1/word2/g 在当前行查找word1替换成word2
– :%s/word1/word2/g 在当前文件查找word1替换成word2
– :n1,n2s/word1/word2/g 在n1到n2行查找word1替换成word2
– :1, s/word1/word2/g1word1word2:1, s / w o r d 1 / w o r d 2 / g 在 1 到 最 后 一 行 查 找 w o r d 1 替 换 成 w o r d 2 – : 1 , s/word1/word2/gc 同上,在替换前confirm用户是否替换
– x 向后删除一个字符
– nx 向后删除n个字符
– X 向前删除一个字符
– dd 删除光标所在行
– ndd 删除光标所在行以下n行
– d1G删除光标所在行到第一行所有数据
– dG 删除光标所在行到最后一行所有数据
– d d0yynyyny1GyGy 删 除 光 标 所 在 处 到 同 行 最 后 一 个 字 符 – d 0 删 除 光 标 所 在 处 到 同 行 第 一 个 字 符 – y y 复 制 光 标 所 在 行 – n y y 复 制 光 标 所 在 向 下 n 行 – y 1 G 复 制 光 标 所 在 行 到 第 一 行 所 有 数 据 – y G 复 制 光 标 所 在 行 到 最 后 一 行 所 有 数 据 – y 复制光标所在处到同行最后一个字符
– y0 复制光标所在处到同行第一个字符
– p 将已复制的数据粘贴到光标所在下一行
– P 同上,粘贴到上一行
– u 复原前一个操作

编辑模式

按下i,I,o,O,a,A,r,R等任何一个字母后进入编辑模式。 按下以上按键后,在画面的左下方会出现INSERT或REPLACE的字样, 此时才可以进行编辑。 编辑模式下可以输入文件内容。 而如果要回到一般模式时, 按下Esc按键即可。

编辑模式快捷键

– i 从光标所在处插入
– l 从所在行第一个非空白字符处插入
– a 从光标所在下一个字符处插入
– A 从光标所在行最后一个字符处插入
– o 在光标所在处下一行插入新的一行
– O 在光标所在处上一行插入新的一行
– r 替换光标所在处字符一次
– R 一直替换光标所在处文字直到按下Esc

命令模式

在一般模式当中,输入: / ? 三个中的任何一个按钮,就可以将光标移
动到最底下那一行。在这个模式当中,可以提供查询、替换等功能。同时,存盘、替换 字符、离开vi、显示行号等等命令都是在此模式进行。

命令模式快捷键

– :w[filename] 另存为filename
– :r[filename] 读取filename到光标所在行后面
– :n1,n2 w[filename] 将n1到n2行另存为filename
– :! command 临时切换到命令行模式下执行command,
如 :! ls /tmp
– :q!
不保存离开
– :wq! 保存后离开
– :set nu 显示行号
– :set nonu 取消显示行号

常见shell命令

变量设置

变量读取echo $variable
echo $LOGNAME
echo $HOME
echo ${LOGNAME}
变量设置
变量与变量内容通过=号来链接

等号两边不能包含空格
变量名称只能是英文字母与数字,不能以数字开头
变量内容包含空格,使用单引号或双引号
变量内容由其他命令提供使用“或是$()
通常变量名大写为系统默认变量,自己定义变量可以使用小写,方 便区分

取消变量的定义 unset 变量名 unset version

数据重定向

数据重定向就是将某个命令执行后应该要出现在屏幕上的数据, 给他传输到其他的地方,例如传输到文件或是其他命令 。通常执行一条命令的时候会有标准输出和标准错误输出。
标准输入(stdin):编号为0
标准输出(stdout):编号为1
标准错误输出(stderr):编号为2
1>:以覆盖的方法,将正确的数据输出到文件;
1>>:以累加的方法,将正确的数据输出到文件;
2>:以覆盖的方法,将错误输出的数据输出到文件;
2>>:以累加的方法,将错误输出的数据输出到文件;
举例:将ls的输出重定向到ls.log当中去
ll 1> ls.log
cat ls.log

命令执行判断

  • $?:命令回传值
  • &&:若cmd1执行完毕且正确执行( ?=0)cmd2cmd1( ? = 0 ) , 则 开 始 执 行 c m d 2 , 若 c m d 1 执 行 完 毕 且 为 错 误 ( ?≠0),则cmd2不执行。
  • ||:若cmd1执行完毕且正确执行( ?=0)cmd2cmd1( ? = 0 ) , 则 c m d 2 不 执 行 。 若 c m d 1 执 行 完 毕 且 为 错 误 ( ?≠0),则开始执行cmd2

管道命令

利用Linux所提供的管道符“|”将两个命令隔开,管道符左边 命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的 输入,第二个命令的输出又会作为第三个命令的输入,依此类推 。

举例:
– 将ls的查询信息传递给grep命令进行搜索
drwxr-xr-x 11 demo games 4096 Nov 5 02:18 R-3.1.0
-rw-r–r– 1 root root 28469975 Apr 18 2014 R-3.1.0.tar.gz

find命令

  • 命令功能: linux中最有用的命令之一。 在一个目录(及子目录)中搜索文件,可以指定一些匹配条件 ,如按文件名、文件类型、用户甚至是时间戳查找文件
  • 命令格式: find [path…] [-option]
    -path:find命令所查找的目录路径。例如用.来表示当前目录,用 /来表示系统根目录
    -options:
    -print:将匹配的文件输出到标准输出
    -exec:对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command’ { } \;,注意{ }和\;之间的空格。

    find ./ -size 0 -exec ls {} \; 显示文件大小为零的文件

    • find / -name demo 在/目录及其子目录下面查找名字 为demo的文件

      find . -name “*.java” 在当前目录及其子目录(用“.” 表示)中查找任何扩展名为“java”的文件

    • perm 按照文件权限来查找文件。

      find . -perm 755 –print 在当前目录下查找文件权限位为755的 文件,即文件所有者可以读、写、执行,组与其他用户可以读、 执行的文件

    • user 按照文件所有者来查找文件。

      find ~ -user chinahadoop –print 在$HOME目录中查找文件属 主为chinahadoop的文件

    • group 按照文件所属的组来查找文件。

      find / -group hadoop –print 在/目录下查找属于hadoop用户 组的文件

    • mtime -n +n
      按照文件的更改时间来查找文件, -n表示文件更改时间距现在n 天以内,+n表示文件更改时间距现在n天以前。

    • nogroup
      查找无有效所属组的文件,即该文件所属的组在/etc/groups中不 存在。

    • type
      查找某一类型的文件,诸如:
      b - 块设备文件。
      d - 目录。
      c - 字符设备文件。
      p - 管道文件。
      l - 符号链接文件。
      f - 普通文件。
    • size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

sed命令

非交互式文本处理工具。 把每一行都存在临时缓冲区中,对这个副本进行编辑,所以 不会修改原文件。
sed [option] “[action]” [filename]
– option:
• -h或—help 显示帮助。
• -n仅显示script处理后的结果。
• -V或—version 显示版本信息。
• -e :允许对输入数据应用多条sed命令进行编辑。
• -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作。
– action:
• s:字符串替换
• i:插入
• d:删除
• a:追加
• c:替换
• p:打印指定的输出行

sed “s/chinahadoop/hadoop/g” demo.txt s表示替换命令,/chinahadoop/表示匹配chinahadoop /hadoop/表示把匹配替换成hadoop /g 表示一行上的替换所有的匹配
- \如果我们需要一次替换多个模式 第一种方式 sed ‘s/l/L/1;s/o/O/3g’ demo.txt 第二种方式 sed -e ‘s/l/L/1’ -e ‘s/o/O/3g’ demo.txt

grep命令

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来) , 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并 把匹配的行打印出来。
grep [OPTIONS] PATTERN [FILE…]
-?:同时显示匹配行上下的?行 如:grep -2 pattern filename同时显示匹配行的上下2行。
-b,–byte-offset 打印匹配行前面打印该行所在的块号码。
-c,–count 只打印匹配的行数,不显示匹配的内容。
-f File,–file=File 从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。
-h,–no-filename 当搜索多个文件时,不显示匹配文件名前缀。
-i,–ignore-case 忽略大小写差别。
-q,–quiet 取消显示,只返回退出状态。0则表示找到了匹配的行。
-n,–line-number 在匹配的行前面打印行号。
-v,–revert-match 反检索,只显示不匹配的行。

在ls显示的内容中查看包含demo的行并用颜色区分并添加行号
ll | grep demo –color -n

tail命令

把某个档案文件的最后几行显示到终端上,如果该档案有更新 ,tail会自动刷新,确保你看到最新的档案内容。
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比如你的文 件如果包含中文字,如果指定-c参数,可能导致截断,但使用-m则会 避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
– File 指定操作的目标文件名
当涉及到number,如果不指定,默认显示10行。Number前面可 使用正负号,表示该偏移从顶部还是从尾部开始计算

sort命令

sort命令默认的情况下是按照字符排序
-n 按照数值排序
-u 不出现重复的行
-r 逆向排序
-t 指定分段的符号
-k 指定的第几个段

cut命令

cut命令在文件中负责剪切数据用的。命令格式: cut [-option] file
option:
-b 字节
-c 字符
-f 提取第几列
-d 按指定分隔符分割列

history命令

用于显示全部历史。
history 5 显示执行过的上5条命令
使用上下箭头键也可以查看上一条跟下一条命令
!! 运行上一条命令
!88 运行第88条命令
!88 /test 运行第88条命令并在命令后面加上/test
!?CF? 运行上一个包含CF字符串的命令
!ls 运行上一个ls命令
!ls:s/CF/l 运行上一个ls命令,其中把CF替换成l
fc 编辑并运行上一个历史命令 fc 66 编辑并运行第66个历史命令 fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行
使用ctrl+r搜索历史中的字符串
history -c 清空历史命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值