第三周作业

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

先取出文件中默认shell 是/sbin/nolog 的行

[root@node03 /]# cat /etc/passwd | grep /sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@node03 /]#

对/sbin/nologin的用户使用grep -v反选,查出默认shell为非/sbin/nologin的用户

[root@node03 /]# cat /etc/passwd | grep -v /sbin/nologin
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
[root@node03 /]#

使用wc -l显示用户数量

[root@node03 /]# cat /etc/passwd | grep -v /sbin/nologin | wc -l
4
[root@node03 /]#

使用cut -d: -f 1显示用户名

[root@node03 /]# cat /etc/passwd | grep -v /sbin/nologin |cut -d: -f 1
root
sync
shutdown
halt
[root@node03 /]#

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

第一步确认配置文件/etc/passwd 及其内容

login name:登录用名(wang)
passwd:密码 (x)
UID:用户身份编号 (1000)
GID:登录默认所在组编号 (1000)
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)

cut -d: -f1,3,7 以:分隔符取1 3 7 列

[root@node02 ~]# cat /etc/passwd | cut -d: -f1,3,7
root:0:/bin/bash
bin:1:/sbin/nologin
daemon:2:/sbin/nologin
adm:3:/sbin/nologin
lp:4:/sbin/nologin
sync:5:/bin/sync
shutdown:6:/sbin/shutdown
halt:7:/sbin/halt
mail:8:/sbin/nologin
operator:11:/sbin/nologin
games:12:/sbin/nologin
ftp:14:/sbin/nologin
nobody:99:/sbin/nologin
systemd-network:192:/sbin/nologin
dbus:81:/sbin/nologin
polkitd:999:/sbin/nologin
sshd:74:/sbin/nologin
postfix:89:/sbin/nologin
apache:48:/sbin/nologin
mageia:1100:/bin/bash
slackware:2002:/bin/nologin
user1:2003:/bin/bash
user2:2004:/bin/bash
user3:2005:/bin/bash

sort -nr 排序 head -1 取第一行

[root@node02 ~]# cat /etc/passwd | cut -d: -f1,3,7|sort -nr|head -1
user3:2005:/bin/bash
[root@node02 ~]#

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

[root@node02 ~]# netstat -at | grep ':ssh'| tr -s ' '| cut -d' ' -f5 |cut -d: -f1|uniq -c |sort -nr
    4 10.0.0.1
    1 0.0.0.0
    1 [
[root@node02 ~]#

root@node02 ~]# netstat -t | grep ':ssh'| tr -s ' '| cut -d' ' -f5 |cut -d: -f1|uniq -c |sort -nr
    4 10.0.0.1

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

先写出取硬盘空间利用率最大的值的命令

[root@node02 data]# df
Filesystem             1K-blocks   Used Available Use% Mounted on
devtmpfs                 1001884       0   1001884   0% /dev
tmpfs                     1013948       0   1013948   0% /dev/shm
tmpfs                     1013948   9780   1004168   1% /run
tmpfs                     1013948       0   1013948   0% /sys/fs/cgroup
/dev/mapper/centos-root 104806400 1566180 103240220   2% /
/dev/sda1                 1038336 140420   897916 14% /boot
/dev/mapper/centos-data 52403200   33028 52370172   1% /data
tmpfs                     202792       0   202792   0% /run/user/0
#用下面的方法取出了分区利用率最大的值
[root@node02 data]# df | tr -s ' '|cut -d' ' -f5|sort -nr|head -n1
14%
[root@node02 data]#

编写shell脚本disk.sh

#!/bin/bash
#
#********************************************************************
#Author:               lixiangshuai
#QQ:                   2234396660
#Date:                 2022-03-15
#FileName:             disk.sh
#URL:                   http://www.magedu.com
#Description:         A test script
#Copyright (C):       2022 All rights reserved
#********************************************************************
df | tr -s ' '|cut -d' ' -f5|sort -nr|head -n1
执行:
[root@node02 data]# sh disk.sh
14%

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

第一步,先把需要显示的信息都用linux 命令写出来

主机名 :
[root@node02 ~]# hostname
node02
IPv4地址:
[root@node02 ~]# ifconfig eth0 | head -2|tail -1|tr -s ' '|cut -d' ' -f3
10.0.0.151
操作系统版本:
[root@node02 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
内核版本:
[root@node02 ~]# uname -r
3.10.0-1160.el7.x86_64
CPU型号:
[root@node02 ~]# lscpu | grep '^Model name'|tr -s ' '|cut -d: -f2
Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
内存大小:
[root@node02 ~]# free -h|grep '^Mem'|tr -s ' '|cut -d' ' -f2
1.9G
硬盘大小:
root@node02 ~]# lsblk | grep 'sda\>'|tr -s ' '|cut -d' ' -f4
200G

开始写脚本

[root@node02 data]# cat systeminfo.sh 
#!/bin/bash
#
#********************************************************************
#Author:               lixiangshuai
#QQ:                   2234396660
#Date:                 2022-03-15
#FileName:             systeminfo.sh
#URL:                   http://www.magedu.com
#Description:         A test script
#Copyright (C):       2022 All rights reserved
#********************************************************************
echo "主机名":`hostname`
echo "IPv4地址":`ifconfig eth0 | head -2|tail -1|tr -s ' '|cut -d' ' -f3`
echo "操作系统版本是":`cat /etc/redhat-release`
echo "内核版本是":`uname -r`
echo "CPU型号是":`lscpu | grep '^Model name'|tr -s ' '|cut -d: -f2`
echo "内存大小是":`free -h|grep '^Mem'|tr -s ' '|cut -d' ' -f2`
echo "硬盘大小是":`lsblk | grep 'sda\>'|tr -s ' '|cut -d' ' -f4`


[root@node02 data]# sh systeminfo.sh
主机名:node02
IPv4地址:10.0.0.151
操作系统版本是:CentOS Linux release 7.9.2009 (Core)
内核版本是:3.10.0-1160.el7.x86_64
CPU型号是: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
内存大小是:1.9G
硬盘大小是:200G
[root@node02 data]#

vim

安装

yum -y install yum  #vim 不是linux 默认自带的,需要安装

基本操作

1.打开文件
vim 文件名 <ENTER> #打开文件
2.光标移动使用箭头键或者hjkl四个字母
h(左)j(上)k(下)l(右)
3.退出
放弃所有更改退出: <ESC>   :q!   <ENTER> .
  保存更改退出:     <ESC>   :wq   <ENTER>  
4、进入insert 模式
  在光标前插入字符 i
  在光标后插入字符 A
5、删除光标处的字符: x
  删除光标所在的行: dd
 
注意:按<ESC>键可以让你回到正常模式或者取消你未完成的命令

移动光标

1. 跳到行首:       0
2. 移动到第一行:   gg
3. 移动到在最后一行: G
4. 移动到某一行 :   数字 G
5. 移动到单词的末尾: e

插入操作

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

2. 小写字母 a 要在光标的后面插入字符.
  大写字母 A 要在该行的末尾添加字符

 

删除操作

1. 删除整行:  dd
2. 删除光标到行尾: d$
3. 一些操作的格式是:
      操作符 [数字] 移动
  操作符:要做什么,例如字母d是用于删除
  数字: 你要重复的次数
  移动: 你的操作要作用在多少文本内容上,例如w就是一个单词,$是到行尾
  比如:d5$ 光标所在的行,包含光标所在的行,删除后面的5行
4. 删除光标到文件尾: dG

搜索

前向搜索,输入 / 然后紧跟你要搜索的字符串,
后向搜索,输入 ?
输入 n 来找到下一个出现的地方
输入 N 来找到上一个出现的地方
CTRL-O可以回到之前的编辑的位置
CTRL-I可以跳到新的位置

替换

1. 替换光标所在行的第一个old单词为new
  :s/old/new
2. 替换光标所在行的所有的old 单词为new
  :s/old/new/g
3. 替换两个#之间的单词
  :#,#s/old/new/g
4. 替换文件中所有的单词
  :%s/old/new/g
5. 每一个替换之前都需要确认的话,在命令末尾加一个 c
  :%s/old/new/gc

撤销操作

撤销之前的动作: u  (小写u)
撤销这一行的所有改动: U (大写U)
撤销刚才的”撤销“: CTRL-R

其他几个操作

1. :!命令   会执行一个外部命令
   
    一些例子如下:
  (MS-DOS)   (Unix)
  :!dir       :!ls       列出目录
  :!del FILE :!rm FILE 删除文件

2. :w 文件名 把当前vim文件另存为某个文件名

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

4. :r FILENAME 从某个文件中取出内容添加到当前的位置,会把文件中所有的内容添加到当前位置
5. :r !dir 把列出目录命令的结果添加到光标的位置

 

posted @ 2022-03-16 10:24  是阿帅不是阿衰  阅读(25)  评论(0编辑  收藏  举报