grep -v '/sbin/nologin' /etc/passwd |wc -l ; grep -v '/sbin/nologin' /etc/passwd |cut -d: -f12、查出用户UID最大值的用户名、UID及shell类型
cut -d: -f1,3,7 /etc/passwd|sort -t: -k2 -nr|head -n13、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
ss -nt | tr -s " " : |cut -d: -f6 | grep -Eo "([0-9]{1,3}.){3}[0-9]{1,3}" |sort -nr |uniq -d -c
4、编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
df | grep -Eo '[0-9]{1,3}%' | sort -nr |head -n1
5、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
echo '主机系统信息:'
echo '主机名:' `hostname`
echo 'ipv4地址:' `ifconfig ens33|grep -Eo '([0-9]{1,3}.){3}[0-9]{1,3}'|head -n +1`
echo '操作系统版本:' `cat /etc/redhat-release`
echo '内核版本:' `uname -r`
echo 'cpu型号:' `lscpu |grep -Ei "bmodel name"|tr -s " "|cut -d: -f2`
echo '内存大小:' `free -h |grep -i "bmem"|tr -s " " |cut -d" " -f2`
echo '硬盘大小:' `lsblk |grep -i "disk" |tr -s " "|cut -d" " -f4`
6、20分钟内通关vimtutor(可参考https://yyqing.me/post/2017/2017-02-22-vimtutor-chinese-summary)
vim主要模式有:普通模式(命令模式),输入模式,末行模式(拓展命令模式),可视化模式
h(左)j(上)k(下)l(右)命令模式–>输入模式
i insert,在光标前输入 I 在当前光标所在的行首输入 a append,在光标所在处后面输入 A 在当前光标所在的行尾输入 o 在当前光标所在的下方打开一个新行 O 在当钱光标所在的上方打开一个新行 i insert/ I:在光标前面 / 行首插入 a append/ A:在光标后面 / 行尾插入 o / O:在下 / 上一行行首插入
拓展命令模式基本命令
w 写(存)磁盘文件 wq 写入并退出 x 是写入并退出此文件, X 是加密此文件。 q 退出 q! 不保存退出,使更改的内容丢失 r filename 该文件的内容到当前文件中 w filename 将当前文件内容写入另一个文件 !command 执行命令 r!command 读入命令的输出
地址定界格式
# 具体第#行,例如2表示第2行 #,# 从左侧#表示起始行,右侧#表示结尾行 . 当前行 $ 最后一行 .,$-1 档期那行到倒数第二行 % 表示全文
地址j界定后跟一个编辑命令
d 删除 y 复制 p 粘贴 大写p 上一行粘贴 w file 将范围内的行另存至指定文件中 r file 在指定位置插入指定文件的所有内容
查找并替换
格式 /可以换成其他符号@、# 三个都换 更改目录的时候这样用,不然只能转译了,
s/要查找的内容/替换为的内容/修饰符
说明:
要查找的内容:可使用基末正则表达式 替换的内容:不能使用模式,但可以使用1, 2, ...等向后引用符号,还可使用"&"引用前面查找时查找的整个内容命令模式
命令模式:又称Normal模式,功能强大,只是此模式输入指令并在屏幕上显示,所以需要强大的记忆大量的快捷键才能更好的使用,此模式按键是看不见的
退出vim
ZZ 保存退出 大写 ZQ 不保存退出
光标跳转
字符键跳转:
h(左)j(下)k(上)l(右) #command:一次向某个方向移动#个字符
单词键跳转:
w:下一个单词的词首 e:当前或下一个单词的词尾 b:当前或前一个单词的词首 #command:由#指定一次跳转的单词数
当前页跳转:
H:当前屏幕的第一行 M:当前屏幕的中间行 L:当前屏幕的最下面一行 zt:当前行移动到当前屏幕的顶端(指移动屏幕,不更改内容) zb:当前行移动到当前屏幕的底端(指移动屏幕,不更改内容)
行首行尾跳转
^:当前行非空白行的行首 0(数字0):真正的行首空格也算 $:当前行非空白行的行尾
行间移动
#G 或者阔转命令模式下 :# 跳转至第#行 G 最后一行 1G,gg 第一行
句间移动 有一个 . 空格 隔开
) 下一句 ( 上一句
段落间移动 有空行
} 下一段
{ 上一段
命令模式翻屏操作
ctrl+f 向文件尾部翻一屏,相当于pagedown ctrl+b 向文件首部翻一屏,相当于pageup ctrl+d 向文件尾部翻半屏 ctrl+u 向文件首部翻半屏字符编辑
x 删除光标处的字符,准确的说是剪切 #x 光标处起始处器的#个字符 xp 交换光标处的字符和器后面字符的位置 ~ 转换大小写,大写转小写小写转大写, J 删除当前行后的换行符 (在光标处,按J(大写j),把下一行移到光标行的最后边)
替换命令(replace)
r 只替换光标所在处的一个字符 R 切换成REPALACE模式(在末行出现-- REPLACE --提示),按esc回到命令模式, 此时可以替换很多个
复制命令(delete)
d 删除命令可结合光标跳转字符,实现范围剔除 d$ 删除到行尾 d^ 删除到非空行首 d0 删除到行首 dw de db #COMMAND dd 剪切光标所在行 #dd 多行删除 D 从当前光标位置一直删除到行尾,等同于d$
复制命令(yank)
y 复制,行为相似于d命令 y$ y0 ye yw yb #COMMAND yy 复制行 #y 复制多行 Y 复制整行
粘贴命令(paste) 大小写p
P 缓冲区存的如果为整行,则粘贴当前光标的下方,否则,则粘贴至当前光标所在处的后面 p 缓冲区存的如果为整行,则粘贴当前光标的上方,否则,则粘贴至当前光标所在处的前面
改变命令(change)
命令c删除后切换成插入模式
c$ c^ c0 cb ce cw #COMMAND cc 删除当前行并输入新内容,相当于s #cc C 删除当前光标到行尾,并切换成插入模式,相当于c$可视化模式
子末行有"–VISUAL–"指示,表示在可视化模式
允许选择的文本框
- v面向字符,–VISUAL–
- V面向整行,–VISUAL LINE–
- ctrl+v面向块,–VISUAL BLOCK–
可视化键可用于移动键结合使用
w))箭头等
突出显示的文字可被删除,复制,变更,过滤,搜索,替换等
范例:在文件指定的行首插入# 加注释用很方便
1、先将光标移动到指定的第一行的行首 2、输入ctrl+v,进入可视化模式 3、向下移动光标,选中希望操做的每一行的第一个字符 4、输入大写字母 I 切换至插入模式 5、输入 # 6、按 ESC
范例:在指定的块位置插入相同的内容
1、光标定位为到要操作的地方 2、ctrl+v进入"可视化 块"模式,选取这一列操作多少行 3、shift+i(I) 4、输入要插入的内推 5、按 ESC
多文件模式
vim file1 file2 file3... :next下一个 :prew前一个 :first第一个 :last最后一个 :wall保存所有 :qall不保存退出所有 :wqall保存退出所有
多窗口模式
多文件分割
vim -o|-O file1 file2... -o:水平或上下分割 -O:垂直或左右分割(vim only) 在窗口键切换:ctrl+w,Arrow 就是ctrl+w松手后按方向键
单文件窗口分割
ctrl+w,s:split水平分割,上下分屏 ctrl+w,v:vertical,垂直分割,左右分配 ctrl+w,q:取消相邻窗口 ctrl+w,o:取消全部窗口 :wqall退出vim寄存器
有26个命名寄存器和一个无命名寄存器,常存放不同的剪切板的内容,可以在同一个主机的不同会话(终端窗口)键共享
寄存器的名称a,b,…,z,格式:"寄存器 放在数字和命令之间
范例:
3”tyy表示复制3行到t寄存器中,末行显示3 lines yanked into "t
"tp 表示将寄存器内容粘贴
未指定,将使用无命名寄存器
有10个数字寄存器,用0,1,…,9表示,0存放最近复制的内容,1存放最近删除内容。当新的文本变革和删除时,1转存到2,2转存到3,以此类推。数字寄存器,能在不同的会话间共享
标记和宏(macro)
ma 将当前位置标记为a,26个字母均可做标记,mb、mc等等 'a 跳转到啊标记的位置,实用的文档内标记方法,文档中跳跃编辑时很有用 qa 录制宏a,a为宏的名称,末行提示:recording @a q 停止录制宏 @a 执行宏a @@ 重新执行上次执行的宏
编辑二进制文件
#以二进制方式打开文件 vim -b binaryfile #扩展命令模式下,利用xxd命令转译为可读的十六制文件 :%!xxd #切换至插入模式下编辑,二进制文件 #切开扩展命令模式下,利用xxd命令转回二进制 :%!xxd -r #保存退出
00 00 改为616263 ,退出再查看就是abc。
vimtutor是一个vim的专门练习用的工具,不用担心损坏。
定制vim的工作特性(写脚本可会用)配置文件
/etc/vimrc #全局 ~/.vimrc #个人
行号
显示:set nu set number 取消显示:set nonu set nonumber
忽略字符的大小写
启用:set ic set ignorecase 不启用:set noic
自动对齐(缩进,用于写脚本的时候换行自动缩进,vim中不设置会自动到顶头开始)
启用:set ai set autoindeent 禁用:set noai
复制保留格式(粘贴的时候保持原格式)
set paste set nopaste
显示tab^|和换行符和$显示
启用:set list 禁止:set nolist
高亮搜索
启用:set hlsearch 禁用:set nohlsearch 或nohl
语法高亮
启用:syntax on 禁用:syntax off
文件格式 用 file 文件名 查看
启用windows格式:set fileformat=dos 启用unix格式:set fileformat=unix 简写 set ff=dos/unix
tab用空格代替 不太的版本的tab键可能不一样,把这两个都设置上,
启用:set expandtab 默认为8个空格代替tab 禁用:set noexpandtab 简写:set et
tab用指定空格的个数代替
启用:set tabstop=# 指#个的空格代替tab 简写:set ts=4
设置文本宽度 主要是看显示器的大小的话,自动换行的长度,
set textwidth=65(vim only) set wapmargin=15
设置光标所在行的标识线(显示的位置比较明显)
启用: set cursorline 简写 set cur 禁用:set nocursorline
加密 vim的加密,进入文件输入密码,破解不了(忘了密码就没招了)
启用:set key=password 禁用:set key=
set all 可以看到所有的vim指令



