Linux Emploment 第三周

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型号,内存大小,硬盘大小

Linux Emploment 第三周
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 手动删除

上一篇:vim编辑器删除空行


下一篇:Vim常用操作指令