1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
grep -v 'nologin' /etc/passwd | wc -l
grep -v 'nologin' /etc/passwd | cut -d':' -f1
2、查出用户UID最大值的用户名、UID及shell类型
[root@joy ~]# cat /etc/passwd | cut -d':' -f3 | sort -rn | head -1 | xargs -i grep {''} /etc/passwd |cut -d':' -f1,3
,7
nfsnobody:65534:/sbin/nologin
3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
ss -tn | grep '^ESTAB' | tr -s ' ' : | cut -d':' -f6 | sort | uniq -c | sort -rn
4、编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
[root@joy ~]# cat ./disk.sh
#! /bin/bash
usage=`df | grep -E '/dev/sd'| grep -Eo '[0-9]+%'| grep -Eo '[0-9]+'|sort -rn | head -1`
echo MaxUsage:$usage
5、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
6、20分钟内通关vimtutor(可参考https://yyqing.me/post/2017/2017-02-22-vimtutor-chinese-summary)
vim
vim /file
vim +N /file 打开并处在N行 没有N处在最后一行
vim +/pattern 打开文件定位至第一次被模式匹配到的行的行首
编辑模式
i 光标前输入 I当前光标所在行的行首输入
a 光标后输入 A当前光标所在行的行尾输入
o 当前光标下一行新建行首输入 O当前光标上一行新建行首输入
/pattern查找 整个文件
?pattern 当前光标到文件首部查找
n 下一个
N 上一个
支持正则表达式(末行模式)
替换:add1,add2s/pattern/string/g
输入模式
ESC返回编辑模式
末行模式
从编辑模式进入:进入末行模式
:set nu 行号 set nonu取消
要想永久显示行号 vim ~/.bashrc 添加一行 set nu #复制内容会把行号复制进去的 狗头 vim /etc/.bashrc设置所有人都有效 不建议
:set ic /set noic 忽略大小写
:set list /set nolist 显示/取消 tab ^ |和$字符 写脚本可以排错等常用 tab有字符
:set ai /set noai 显示/取消自动缩进 shell脚本是很有用
:set paste /set nopaste 粘贴时保留原格式 不会因为自动缩进而乱码
:set hl /set nohl 高亮
syntax on/off 语法高亮
:set ff=dos/linux 设置为windows或者linux文件
:set et 设置tab键转化为空格 写脚本有用
:set ts=# 设置1个tab键等于几个空格 要后与set et一起用
:set cul /set nocul 光标下添加横线
:set or = set all 查看set帮助
:10d 删掉10行
:1,10d 删掉1-10行
:!不退出返回终端执行命令界面 !command 再次回车返回
:wq 、保存退出 =:x
:q不保存退出 更改保存
:q!不保存强行退出
:w!强行保存 root权限
:.表示当前行$最后一行
:.,$-3d 当前到倒数第3行
:add1,add2s/pattern/string/g 替换
:x 保存退出 不安全
:X 加密
:r /file 将文件内容读到光标处 相当于复制粘贴 好用
:r! command 将命令结果读到光标处 好用
:%s/a/b/g g全局替换 =%s#a#b#g =%s@a@b@g 有时候替换文件/file需要转义。比较麻烦
ZZ 编辑模式下保存退出
ZQ 编辑模式下不保存退出
移动光标:
H页首
N页中
L页底
h 左 #h 跳动#个字符
l 右 #l 跳动#个字符
j 下 #j 跳动#个字符
k 上 #K 跳动#个字符
#h 向左移动#个字符
w 下一个单词的词首 #w
e 当前词尾或下个单词的词尾
b 当前词首或前个单词的词首
也支持#w等用法
0 行首 绝对行首
^ 行首 非空白行首
$ 绝对行尾
#G 直接跳转到#行上
G 最后一行
GG 第一行
:n 直接跳到n行上
ctrl+f 下一屏幕
ctrl+b 上一屏幕
ctrl+d 下半屏
ctrl+u 上半屏
#x 删除光标所在的#个字符
d$ 从光标到行尾
d0 从光标到行首
dw 删除一个单词
#dw 删除#个单词
dd 删除当前行
#dd 删除光标后#行
~大小写转换
删除内容被保存在缓存区中,最后一次可被粘贴
p 如果删除的或复制的内容,粘贴到光标所在(删除的是整行)行下方或(删除的是非整行)后面
P 如果删除的或复制的内容,粘贴到光标所在(删除的是整行)行上方或(删除的是非整行)后面
复制y同d命令一致
yy 复制一行
y$
...
先删除内容再转换到输入模式=修改 c的用法同d
cc 删除并转入输入模式
替换
r 单个字符 等字符转换
R 替换模式多字符替换 等字符转换
类鼠标操作:
v 字符随意选中
V 行随意选中
ctrl v 块随意选中 矩阵形状 例:特意行加# 选中矩阵 I 加入# esc退出
撤销编辑u
u 撤销前一次操作 可连续操作 最多50次
#u 撤销#次操作
ctrl+r 撤销撤销。还原最近的撤销
重复此前的操作 .
可视化模式v
先选定位置,v进入可视化操作,d删除 y复制
V矩形化操作,整行操作
vim编辑多个文件
vim /file1 /file2 /file3...
:next 编辑下个文件
:prev 编辑上个文件
:last 编辑最后一个文件
:qa 全部退出
分屏显示
ctrl+w松开按s 水平拆分窗口
ctrl+w松开按v 垂直拆分窗口
窗口切换ctrl+w松开按上下键
编辑多个文件时
vim -o /file /file..水平分割窗口
vim -O /file /file..垂直分割窗口
将文件部分内容保存为另外一个文件中
:w /file
:add1 add2w /file
将其他文件中的内容填充进现在文件中的光标后
:r /file
shell交互
:!command
:vimtutor 练习使用
:help 使用帮助
高级话题
1.显示行号、取消行号 :set nu :set nonu
2.忽略或区分大小写 :set ic(ignorecase) :set noic(noignorecase)
3.缩进 :set ai(autoindent) :set noai
4.搜索高亮显示 :set hlsearch :set nohlsearch
5.语法高亮 :syntax on :syntax off
以上都是临时显示,永久要更改配置文件
全局 /etc/vimrc
本地 ~/.vimrc
手册命令: vimtutor 练习使用
文件提醒,编辑中意外退出未保存 原文件留下有个副本 .原文件名字.swap 手动删除