h #向上
j #向左
k #向右
l #向下
a #插入
o #插入一行,并在行首开始
O #在当前行前插入一行,并在行首开始
dd #删除当前行
x #删除当前字符
yy #复制当前行
p #在当前行后面粘贴
P #在当前行前面粘贴
10G #光标到第10行
G #到文件末尾
0 #行首
u #撤销
ctrl+v #多列操作
ctrl+r #撤销刚才的撤销操作
ctrl+f/b #下一页/上一页
shift+# #查找当前单词的下一个出现位置
:set nu #显示行号

b. 窗口切分:

split/vsplit #垂直/水平切分
ctrl+w+w #切换窗口
:quitall #全部退出
:only #只保留当前窗口
:wall #全部保存
:edit file #打开文件file编辑
vi -o a.sh b.sh #打开a.sh和b.sh并切分窗口编辑

c. tags使用:

  1. :
    tags=tags file #指定tag文件
     
  2.  
    ctrl+] #跳转到当前单次定义处
  3.  
    ctrl+T #跳转回远处</span>

awk

awk是一种功能强大的文本处理工具,它提供了极强大的功能,可以样式装入,流控制,数学运算符,进程控制符号,内置变量和函数。

sed -n '1,5p' file #只显示1-5行
sed '1,5d' file #去除1-5行
sed '/^ *$/d' file #删除空格行
cat file | tr " " "\t" > file1 #替换空格为\t
sed '/[a-z]/d' file #删除匹配行

#中文处理:
cat a | tr -d -c $'[a-z0-9\.\?\_ \r\t\n{}()!?]' #删除文件中中文
cat file | grep -Po '(?<=")[^!-~]+' #提取文件中中文
tr -d $'[a-zA-Z\.\?\_+\r{}()!?,/\-"\':<>%]'
| sed 's/《//;s/「//;s/」//;s/、//;s/》//;s/》//;s/〕
//;s/(//;s/②//;s/①//;s/③//;s/《//;s/》//'

#仅保留文件中中文

4.  ctags:

ctrl+z #当前任务切换到后台执行
ctrl+d #结束输入或退出shell
ctrl+s #暂停屏幕输出
ctrl+q #恢复屏幕输出
Ctrl+a #切换到命令行开始处
ctrl+e #切换到命令行末尾
ctrl+u #剪切清除光标之前的内容
ctrl+k #清除光标及光标以后的内容
ctrl+y #在光标处粘贴剪切的内容
ctrl+r #查找历史命令
ctrl+t #调换光标与光标前字符,并且换光标到下一个字符
ctrl+x+u #撤销操作

三、文件处理类:

mv #移动文件/重命名
cp #拷贝文件
rm #删除文件夹 -rf 删除目录并且忽略提示
find ./ -name filename #查找文件
locate #全部计算机查找文件
find. | xargs grep -ri "IBM" #查找当前目录下包含IBM的文件

四、用户管理类:

useradd username -d /home/username -s /bin/bash -g usergroup -G useradditionalgroup #移动文件/重命名
passwd username #修改用户密码
userdel username #删除用户

五、系统管理类:

du -d 1 -h * #查看当前目录文件大小
netstat -nao #查看进程占用端口号
mount /dev/sda3 /mnt/mount #加载硬/U盘
fdisk -l #查看电脑硬盘占用情况
df #查看电脑分区使用情况
top #查看运行进程
kill/killall #杀死进程
ps -ef | grep processname | grep -v grep | cut -d " "-f 2 | xargs kill -s 9 #杀死进程
screen #终端屏幕管理工具
polysh #多机log管理工具

六、其他:

ctrl+z #把当前进程暂停,并切换到后台
jobs #查看后台运行进程
fg 1 #把第一个进程放置到前台执行
bg 1 #把第一个进程放置到后台执行
alias command1 command2 #把command1的别名设置为command2

#vimdiff
zf #创建折叠
za #切换折叠状态
zo #打开折叠
zc #关闭折叠
zr #打开所有折叠
zm #关闭所有折叠
zj/zk #下一折叠开始/上一折叠末尾
dp #拷贝另一个文件的当前行到当前文件中
do #拷贝另一个文件的内容到当前文件中

#crontab 定时任务
crontab -e #打开计划任务管理界面
00 14 * * 7 cd pwd; sh execute.sh 1>log 2>err & #定时开启计划任务 分/时/日/月/星期

nohup sh execute.sh 1>log 2>err & #建立终端断开仍会继续执行的异步任务

dmesg 是一种程序,用于检测和控制内核环缓冲。 

七、问题及解决办法:

1. 去除字符串前面的0。

2.ubuntu 执行shell脚本,报错Syntax error: "(" unexpected解决方法的方法: 
写了一些简单的shell脚本,简单的数组处理,可是却无法编译执行。

后来仔细检查代码和搜索发现:因为Ubuntu为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼。现在我们可以 取消dash。
sudo dpkg-reconfigure dash 。然后在弹出的窗口中选择否。

3. 重用ssh连接:ssh有一个功能,可以在第一次打开以后一直保留这个ssh连接,
后续继续打开的ssh连接会继续使用这个ssh连接的TCP连接,也就是下次不用输入密码了。

vi编程技巧:的更多相关文章

  1. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

  2. 10个你必须掌握的超酷VI命令技巧

    摘要:大部分Linux开发者对vi命令相当熟悉,可是遗憾的是,大部分开发者都只能掌握一些最常用的Linux vi命令,下面介绍的10个vi命令虽然很多不为人知,但是在实际应用中又能让你大大提高效率. ...

  3. 【转】10个你必须掌握的超酷VI命令技巧

    摘要:大部分Linux开发者对vi命令相当熟悉,可是遗憾的是,大部分开发者都只能掌握一些最常用的Linux vi命令,下面介绍的10个vi命令虽然很多不为人知,但是在实际应用中又能让你大大提高效率. ...

  4. js异步编程技巧一

    异步回调是js的一大特性,理解好用好这个特性可以写出很高质量的代码.分享一些实际用的一些异步编程技巧. 1.我们有些应用环境是需要等待两个http请求或IO操作返回后进行后续逻辑的处理.而这种情况使用 ...

  5. EF – 2.EF数据查询基础(上)查询数据的实用编程技巧

    目录 5.4.1 查询符合条件的单条记录 EF使用SingleOrDefault()和Find()两个方法查询符合条件的单条记录. 5.4.2 Entity Framework中的内部数据缓存 DbS ...

  6. VC多文档编程技巧(取消一开始时打开的空白文档)

    VC多文档编程技巧(取消一开始时打开的空白文档) http://blog.csdn.net/crazyvoice/article/details/6185461 VC多文档编程技巧(取消一开始时打开的 ...

  7. java命名规范和编程技巧

    一个好的java程序首先命名要规范. 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,方便维护等作用 Package 的命名 Package 的名字应该都是由一个小写 ...

  8. 无插件Vim编程技巧

    无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim  相信大家看过<简明Vim教程& ...

  9. 从linux内核中学到的编程技巧 【转】

     从linux内核中学到的编程技巧  分类: LINUX 1构建泛型宏 (./linux/include/linux/kernel.h) #define min(x, y) ({ \ typeof(x ...

随机推荐

  1. react github项目

    https://github.com/bailicangdu/react-pxq 网址;https://github.com/bailicangdu/react-pxq

  2. 2019微信浏览器跳转外部浏览器下载app打开任意站实现方法

    很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接和下载APP,其实这并不难,只要我们实现微信跳转功能即可.下面给大家介绍这个功能 方案实现教程: 功能目的 生成微 ...

  3. python实现可以被with上下文管理的类或函数

      # .开始之前先明确一下with机制 # 1.类包函数__enter__()和__exit__()函数,即是可以被上下文管理的类 # __enter__用来执行with时的方法,__exit__返 ...

  4. python数据类型值数字类型

    1.bin()函数是将十进制数转换成二进制数 2.oct()函数将十进制数转换成八进制数 3.hex()函数将十进制数转换成十六进制     数 十六进制表示:0-9 a b c d e f 4.数字 ...

  5. (.NET高级课程笔记)Lambd、Linq总结

    知识总结 1.委托简介:委托是一种类型,可以写在类里,也可以写在类外面,级别和类一样高. 2.匿名方法.匿名类 3.Lambda表达式:goes to 4.系统自带委托:Func/Action 5.扩 ...

  6. Angular.js指令

    ng-style   <input type="button" value="set color" ng-click="myStyle={col ...

  7. PHP的openssl加密

    PHP的openssl扩展 openssl扩展使用openssl加密扩展包,封装了多个用于加密解密相关的PHP函数,极大地方便了对数据的加密解密. 常用的函数有: 对称加密相关: string ope ...

  8. 笔记本电脑没有Pause键,远程桌面无法全屏

    用过mstsc远程桌面的都知道,可以用CTRL+ALT+Break 切换为全屏操作,但有些品牌的电脑不知道设计理念是啥,居然没有Break键,解决办法就是用Fn+B键替换Break键,也就是同时按住C ...

  9. linux常用英文单词记录

    1.skip 跳过忽略 2.next 下一步3.hostname 主机名4.password 密码5.complete 完成6.network 网络7.conf config configuratio ...

  10. 【题解】Luogu P4069 [SDOI2016]游戏

    原题传送门 看到这种题,想都不用想,先写一个树链剖分 然后发现修改操作增加的是等差数列,这使我们想到了李超线段树 先进性树剖,然后用李超线段树维护区间最小,这样就做完了(写码很容易出错) 复杂度为\( ...