linux使用技巧(shell/vi/screen)

1,Shell

bash > awk '{print {NF}}' file
此时想修改操作命令可参照下面快捷方式

ctrl a 光标移动到命令最前面
ctrl e 光标移动到命令最后面
ctrl f 光标向右移动一个字符
ctrl b 光标向左移动一个字符
alt b 光标向左移动一个单词
alt f 光标向右移动一个单词

ctrl u 从光标所在处开始删除字符,直到行首
ctrl k 从光标所在处开始删除字符,直到行尾
ctrl w 删除光标前的一个单词
ctrl y 恢复删除的字符
ctrl l 清屏

2,Vim

14G 移动到14行

上下两行合并(J)

删除当前字符到指定{?}字符之间内容
df{?}
dt{?}
cf{?}
ct{?}
 
多窗口(结合Ctrl+D查看目录文件)
:sp file2
:vsp file3

窗口间切换ctrl w [h|j|k|l] 或者 ctrl w w
窗口关闭:close 或 :q
 
多行编辑 
    添加注释:Ctrl+v 进入列编辑模式。向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如“#”,再连按Esc。就会全部注释了。
    删除注释:同样 Ctrl+v 进入列选择模式,移到光标把注释符选中,按下d,OK了

撤销/恢复撤销
u
ctrl r

重复上一次操作(.)

在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘  
vi file  
:w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1  
:20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1  


用VI编辑一个文件,但需要删除大段大段的内容  
vi file  
Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G.  
:23,1045d 假定两次行号为23和1045,则把这几间的内容全删除  

在当前屏幕中
 H 跳到第一行
 M 跳到中间一行
 L 跳到最后一行

3,Screen

screen 创建多个screen,方便切换。具体命令:
screen
screen -S [screen-name]
ctrl a c:创建窗口; ctrl a k:杀死某一个窗口;当当前窗口没有响应时,该命令超级有效; ctrl a d: 取消screen模式,恢复成只1有个窗口状态; 窗口间的切换: ctrl a Num:加数字,切换到第num个窗口; ctrl a a: 两个窗口间相互切换; ctrl a n: 后一个窗口 ctrl a p: 前一个窗口 screen -r //查看所有的screen,并且可以恢复detach的进程; screen -d //并且可以恢复detach的进程; 点击(此处)折叠或打开 screen -r There is a screen on:
14997.pts-0.dev-02 (Attached) 如screen -r 14997,其中14997为线程号: 用如下命令时,显示的第一列数字为其编号 ps aux | grep hma hma 13708 0.0 0.0 4676 2084 pts/0 Ss 15:18 0:00 -bash hma 14997 0.0 0.0 5148 3324 ? Ss 15:23 0:00 SCREEN hma 14998 0.0 0.0 3428 1852 pts/3 Ss+ 15:23 0:00 bash hma 15015 0.0 0.0 3436 1872 pts/4 Ss 15:23 0:00 bash hma 15028 0.0 0.0 3428 1852 pts/5 Ss+ 15:23 0:00 bash hma 15039 0.0 0.0 3428 1852 pts/6 Ss+ 15:24 0:00 bash 用screen -r可以恢复界面,与本地是否连接没有关系。即便本地的ssh断开了,也可以通过上述命令恢复工作界面。

窗口分割的功能:
水平分割 ctrl a 然后 S
垂直分割 ctrl a 然后 | (某些版本不支持)
切换窗口 ctrl a 然后 Tab
关闭分割 ctrl a 然后 Q
ctrl a " or ctrl a a
原文地址:https://www.cnblogs.com/ciaos/p/3146745.html