d, ^d: 向文件尾部翻半屏 u, ^u: 向文件首部翻半屏
q: 退出
: 跳转至第#行
1G: 回到文件首部 G: 翻至文件尾部
/KEYWORD: 向文件尾部搜索(?KEYWORD相反) n: 下一个 N: 上一个
- <a name="8gcdto"></a>### bash的快捷键
Ctrl + l 清屏,相当于clear命令 Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + a 光标移到命令行首,相当于Home Ctrl + e 光标移到命令行尾,相当于End Ctrl + u 从光标处删除至命令行首 Ctrl + k 从光标处删除至命令行尾
Alt + N 提示输入指定字符后,重复显示该字符N次 Ctrl + w 从光标处向左删除至单词首 Alt + d 从光标处向右删除至单词尾 Alt + f 光标向右移动一个单词尾
- <a name="xxl8wi"></a>
### vim命令的操作快捷键
```bash
vim +10 anaconda-ks.cfg 打开文件后,让光标处于第#行的行首,+默认行尾
vim +/FTP /etc/passwd 打开文件后,直接让光标处于第一个被FTP字符串匹配到的行的行首
vim -d /etc/fstab /etc/issue 比较多个文件,ctrl+w松开按左右方向键切换屏幕
三种主要模式:
命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本
插入(Insert)或编辑模式:修改文本
扩展命令(extended command)模式:保存,退出等
命令模式 --> 插入模式
i: 在光标所在处输入
a: 在光标所在处后面输入
o: 在当前光标所在行的下方打开一个新行
I: 在当前光标所在行的行首输入
A: 在当前光标所在行的行尾输入
O: 在当前光标所在行的上方打开一个新行
插入模式
:!hostname 直接在vim中执行命令,enter退出
:r!hostname 在当前光标所在行的下方读入命令的输出
r /etc/issue 读文件内容到当前文件中
w /app/f1 将当前文件内容写入另一个文件
命令模式
H:当前页首 M:当前页中间行 L:当前页底
0: 数字0,跳转至行首
$: 跳转至行尾
1G, gg: 第一行
G: 最后一行
#G: 跳转至由#指定行(如7G)或 插入模式:7
Ctrl+f: 向文件尾部翻一屏
Ctrl+b: 向文件首部翻一屏
Ctrl+d: 向文件尾部翻半屏
Ctrl+u: 向文件首部翻半屏
字符编辑:
xp: 交换光标所在处的字符及其后面字符的位置
~: 转换大小写
J: 删除当前行后的换行符
替换命令:
r: 替换光标所在处的字符
R: 切换成REPLACE模式,写入字符,ESC退出
删除命令:
x: 删除光标处的字符
#x: 删除光标处起始的#个字符
d: 删除命令,可结合光标跳转字符,实现范围删除
d$: 删除到行尾
d^: 删除到非空行首
d0: 删除到行首
dd: 删除光标所在的行
#dd: 多行删除(如3dd)
D: 从当前光标位置一直删除到行尾,留空行,等同于d$
dgg: 从当前光标位置一直删除到第一行
dG: 从当前光标位置一直删除到最后一行
复制命令:
y: 复制,行为相似于d命令,可结合光标跳转字符
y$: 复制到行尾
y0: 复制到行首
y^: 复制到非空行首
yy: 复制光标所在的行
#yy: 复制多行
Y: 复制整行
粘贴命令:
p: 是整行则在当前光标所在行的下方;否则在当前光标所在处的后面
P: 是整行则在当前光标所在行的上方;否则在当前光标所在处的前面
改变命令:c: 修改后切换成插入模式
c$: 删除到行尾,并切换成插入模式
c^: 删除到非空行首,并切换成插入模式
c0: 删除到行首,并切换成插入模式
cc: 删除当前行并输入新内容,相当于S
#cc: 删除多行,并切换成插入模式
C: 删除当前光标到行尾,并切换成插入模式
100iwang + ESC: 粘贴“wang”100次
0y$: 到行头开始拷贝到本行最后一个字符
0gU$: 整行变大写
0gu$: 整行变小写
ye: 从当前位置拷贝到本单词的最后一个字符
撤消更改:
u: 撤销最近的更改
Ctrl+r: 撤消u更改
U: 撤消光标落在这行后所有此行的更改
. 重复前一个命令操作
n. 重复前一个命令操作n次
扩展命令模式
地址定界:
使用方式: 后跟一个编辑命令
d
y
w file: 将范围内的行另存至指定文件中
r file: 在指定位置插入指定文件中的所有内容
:1,6d 删除1至6行
:. 当前行
:$ 最后一行
:.,$-1 当前行到倒数第二行
:% 全文, 相当于1,$
:/^adm/,/^ftp/y 复制adm到ftp之间的内容
:/^adm/,$y 复制adm到最后行尾之间的内容
查找:
/KEYWORD: 向文件尾部搜索(?KEYWORD相反)
n: 下一个
N: 上一个
查找并替换:
格式: s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可使用\1,...等后向引用;还可以使用“&”引用前面查找的整个内容
修饰符:
i: 忽略大小写
g: 全局替换;默认情况下,每一行只替换第一次出现
gc: 全局替换,每次替换前询问
:%s/root/ROOT/
:%s/root/ROOT/g 全文全局替换
:%s/root/ROOT/gc 全文全局替换,每次替换前询问
:%s/^\([^#]\)/#\1/ 正则匹配非#开头的行插入#(后向引用)
:%s/^[^#]/#&/ 和上述一样功能
:.,$s/^#// 当前行到最后一行#删除
查找有分隔符/可替换为其它字符或转义,例如
:%s@/dev/sda@/app/disk@g
s#/boot#/#i
vim的寄存器:
有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享
寄存器名称a,b,…,z,格式:“寄存器 放在数字和命令之间
如: 3"tyy 表示复制3行到t寄存器中
"tp 表示将t寄存器内容粘贴
未指定,将使用无命名寄存器
可视化模式:
v 面向字符,上下左右移动光标
V 面向行,上下左右移动光标
ctrl+v 面向块,上下左右移动光标,
> 选中的块或行朝右移
使用多个窗口:
多文件窗口分割:
vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O: 垂直分割
单文件窗口分割:
Ctrl+w松开, 按s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q: 取消相邻窗口
ctrl+w,o: 取消全部窗口
在窗口间切换:Ctrl+w松开,方向键
:qall 全部退出
:wqall 全部保存退出
定制vim的工作特性:
配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc(自己建一个)
当前有效,扩展模式:下
set nu 显示行号
set nonu 取消显示行号
set ic 忽略字符的大小写
set noic 不忽略字符的大小写
set paste 启用复制保留格式
set nopaste 禁用复制保留格式
set ai 启用自动缩进
set noai 禁用自动缩进
set si 启用智能缩进
set nosi 禁用智能缩进
set hlsearch 启用高亮搜索
set nohlsearch 禁用高亮搜索
syntax on 启用语法高亮
syntax off 禁用语法高亮
set list 启用显示Tab和换行符 ^I 和$显示
set nolist 禁用显示Tab和换行符 ^I 和$显示
set ff=dos|unix win和unix文件格式转换
set textwidth=65 (vim only) (从左到右)启用设置文本宽度(达到多少字换行)
set wrapmargin=15 (从左到右)设置文本宽度
set cul 启用设置光标所在行的标识线
set nocul 禁用设置光标所在行的标识线
-
开机以root身份自登录启动
nano /etc/gdm/custom.conf [daemon] AutomaticLoginEnable=true AutomaticLogin=root -
时间戳转换和设置时区
```bash date -d @1510111518 “+%Y-%m-%d %H:%M:%S”
timedatectl list-timezones timedatectl set-timezone Asia/Shanghai
- <a name="8x9pqm"></a>
### 登录提示
/etc/motd 登录后提示 /etc/issue 登录前提示
- <a name="cghvti"></a>
### 通过misc便捷挂载光盘
```bash
systemctl enable autofs
-
查看当前bash进程以及进程树
echo $$ 查看当前bash进程 echo $PPID 查看当前bash父进程 pstree -p 进程树 -
解压压缩归档
```bash 文件压缩(从上往下压缩效率越高) cat m | zip m.zip - unzip -p m.zip > x
compress -c m > m.Z uncompress -c m.Z > mm 或 zcat m.Z > mm
gzip -c m > m.gz gzip -c -d m.gz > mmm 或 zcat m.gz > mmm
bzip2 -k m bzcat m.bz2 > mmmm
xz -k m xzcat m.xz > mmmmm
文件夹压缩 zip -r sysconfig.zip /etc/sysconfig unzip sysconfig.zip
文件夹归档 tar -cvf sysconfig.tar /etc/sysconfig/ 查看归档文件 tar -tvf sysconfig.tar.bz2 展开归档 tar -xvf sysconfig.tar.bz2 tar -xvf sysconfig.tar.bz2 -C /tmp/
文件夹归档并压缩 tar -zcvf sysconfig.tar.gz /etc/sysconfig/ tar -jcvf sysconfig.tar.bz2 /etc/sysconfig/ tar -Jcvf sysconfig.tar.xz /etc/sysconfig/
分割tar等压缩(5M可以换成更小) split -d -b 5M etc.tar etc 合并 cat etc0* > etc2.tar ```
