1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来

先用grep -v '/sbin/nologin' /etc/passwd | wc -l 查出非/sbin/nologin的用户个数,在用grep -v '/sbin/nologin' /etc/passwd | cut -d: -f1这个命令非/sbin/nologin的用户显示出来

文本处理工具、正则表达式、shell编程基础_补全

2、查出用户UID最大值的用户名、UID及shell类型

先用cat /etc/passwd 命令来查看一下现在系统有的用户信息,在用cut -d: -f1,3,7 /etc/passwd | sort -t: -k2 -nr | head -1

查出用户UID最大值的用户名、UID以及shell类型。

文本处理工具、正则表达式、shell编程基础_操作符_02

3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

使用netstat -nt 查看真在远程主机的连接信息,在用结合管道查出远程主机IP的连接数并按大到小排序

文本处理工具、正则表达式、shell编程基础_搜索_03

4、编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值

vim disk.sh

#!/bin/bash

MAX=`df | grep '^/dev/sd' | tr -s ' ' : | cut -d: -f5 | sort -nr | head -1`

echo 当前硬盘分区中空间利用率最大的值为:$MAX

文本处理工具、正则表达式、shell编程基础_vim_04

5、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小

vim systeminfo.sh

#!/bin/bash



RED="\E[1;36m"

GREEN="\E[1;32m"

END="\E[0m"

echo -e "$GREEN----------------------Host systeminfo--------------------$END"

echo -e "HOSTNAME: $RED`hostname`$END"

echo -e "IPADDR: $RED`ifconfig eth0 | grep -Eo '([0-9]{1,3}\.){3}.[0-9]{1,3}' | head -1`$END"

echo -e "OSVERSION: $RED`cat /etc/redhat-release`$END"

echo -e "KERNEL: $RED`uname -r`$END"

echo -e "CPU: $RED`lscpu |sed -En '/^Model name/s/.* (Intel.*)$/\1/p'`$END"

echo -e "MEMORY: $RED`free -h | grep Mem | tr -s " " : | cut -d: -f2`$END"

echo -e "DISK: $RED`lsblk | grep '^sd' | tr -s " " | cut -d " " -f4`$END"

echo -e "$GREEN---------------------------------------------------------$END"

文本处理工具、正则表达式、shell编程基础_vim_05

6、20分钟内通关vimtutor(可参考https://yyqing.me/post/2017/2017-02-22-vimtutor-chinese-summary

1、光标移到使用箭头或者hjkl四个字母【h(左) j(下) k(上) l(右)】

2、shell启动vim的命令是:vim 文件名 在<Enter>

3、退出vim:

放弃保存所有更改退出:<Esc> :q! <Enter>

保存更改退出:<Esc> :wq <Enter>

4、删除光标字符:x

5、插入字符:

在光标之前插入字符:i

在行尾添加字符:A

6、删除字符,从光标开始直到遇到下一个单词 dw

7、删除字符,从光标开始直到当前行的末尾 d$

8、删除一整行 dd

9、重复一个动作,可以在动作之前加一个数字: 2w

10、一些操作的格式是:

操作符 [数字] 移动

操作符:要做什么,例如字母d是用于删除

数字: 你要重复的次数

移动: 你的操作要作用在多少文本内容上,例如w就是一个单词,$是到行尾

11、把光标移动到行首: 0

12、撤销之前的动作: u (小写u)

撤销这一行的所有改动: U (大写U)

撤销刚才的”撤销“: CTRL-R

13、打印出你刚刚删除的内容: p 它会把内容打印在你光标的后面

14、喜欢光标位置的字符:先输入r,然后输入新的字符

15、改动类操作符可以让你改变从当前光标到”motion“的位置

例如:ce 可以改变从光标到单词的末尾 c$ 可以改变从光标都行末尾

16、移到到文件末尾:G 移到到某一行:行号 G 移到第一行:gg

17、前项搜索,输入/后面紧跟要搜的字符串

后向搜索,输入 ?

输入 n 来找到下一个出现的地方

输入 N 来找到上一个出现的地方

CTRL-O可以回到之前的编辑的位置

CTRL-I可以跳到新的位置

18、输入 % 来跳转到与之匹配的括号,当光标在 ( ) [ ] { }

19、替换改行的第一个old单词为new

:s/old/new

替换改行的所有old单词为new

:s/old/new/g

替换两个#之间的单词

:#,#s/old/new/g

替换文件中所有的单词

:%s/old/new/g

每一个替换之前都需要确认的话,在命令末尾加一个 c

:%s/old/new/gc

20、:!命令 会执行一个外部命令

例如:

:!ls

:!rm file

21、:w 文件名 把当前vim文件另存为某个文件名

22、v motion :w FILENAME 把选中的内容另存为到文件

23、:r FILENAME 从某个文件中取出内容添加到当前的位置

24、 :r !dir 把列出目录命令的结果添加到光标的位置

25、小写字母 o 在当前行的下方插入一个空白行,并进入编辑模式

大写字母 O 在当前行的上方插入一个空白行,并进入编辑模式

小写字母 a 要在光标的后面插入字符.

大写字母 A 要在该行的末尾添加字符

26、e 移动到单词的末尾

27、y操作符 用来拷贝文本, p 用来粘贴

28、大写字母 R 进入 替换模式,直到按下<ESC>键

29、":set xxx"来设置选项 "xxx", 举例选项如下:

'ic' 'ignorecase' 搜索的时候忽略大写小写

'is' 'incsearch' 在输入搜索目标字符串的时候实时匹配并显示

'hls' 'hlsearch' 高亮匹配项

set nu //显示行号

set autoindent //自动缩进

set ts=4 //设置tab的值为四个空格

set list //显示隐藏字符

set sm //自动匹配} ] ) ,编程时用

set sw=6 //shift+>> 右移一次6个字符

这些选项,可以用缩写也可以用简写

30、在选项前面加一个”no“来关闭该选项 :set noic

31、输入 :help 或者 按下<F1>or<HELP> 来打开帮助窗口

输入 :help cmd 来打开命令cmd的帮助文档 .

输入 CTRL-W CTRL-W 来跳转到另外的窗口

输入 :q 来关闭帮助窗口

可以创建一个vimrc文件来保存你自己喜欢的设置

当输入一个 : 时, 按下 CTRL-D 来看有哪些命令来补全.按下 <TAB> 来补全.