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

时间:2022-09-01 05:04:56

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