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

[root@CentOS8 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
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:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
unbound:x:996:992:Unbound DNS resolver:/etc/unbound:/sbin/nologin
clevis:x:995:991:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
cockpit-ws:x:994:990:User for cockpit web service:/nonexisting:/sbin/nologin
cockpit-wsinstance:x:993:989:User for cockpit-ws instances:/nonexisting:/sbin/nologin
sssd:x:992:988:User for sssd:/:/sbin/nologin
setroubleshoot:x:991:987::/var/lib/setroubleshoot:/sbin/nologin
chrony:x:990:986::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash

[root@CentOS8 ~]# 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:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
unbound:x:996:992:Unbound DNS resolver:/etc/unbound:/sbin/nologin
clevis:x:995:991:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
cockpit-ws:x:994:990:User for cockpit web service:/nonexisting:/sbin/nologin
cockpit-wsinstance:x:993:989:User for cockpit-ws instances:/nonexisting:/sbin/nologin
sssd:x:992:988:User for sssd:/:/sbin/nologin
setroubleshoot:x:991:987::/var/lib/setroubleshoot:/sbin/nologin
chrony:x:990:986::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin

[root@CentOS8 ~]# 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
user1:x:1000:1000::/home/user1:/bin/bash
[root@CentOS8 ~]# cat /etc/passwd | grep -v '/sbin/nologin$' | wc -l
5
[root@CentOS8 ~]# cat /etc/passwd | grep -v '/sbin/nologin$' | cut -d: -f1
root
sync
shutdown
halt
user1

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

[root@CentOS8 ~]# grep "\<`cat /etc/passwd | cut -d: -f3 | sort -rn | head -n 1`\>" /etc/passwd
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

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

[root@CentOS8 ~]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 10.0.0.8:22 10.0.0.4:52422 TIME_WAIT
tcp 0 52 10.0.0.8:22 10.0.0.1:49396 ESTABLISHED
tcp 0 0 10.0.0.8:22 10.0.0.4:52428 ESTABLISHED
tcp 0 0 10.0.0.8:22 10.0.0.1:58257 ESTABLISHED
tcp 0 0 10.0.0.8:22 10.0.0.4:52424 TIME_WAIT
tcp 0 0 10.0.0.8:22 10.0.0.4:52430 ESTABLISHED
tcp 0 0 10.0.0.8:22 10.0.0.4:52426 TIME_WAIT
tcp 0 0 10.0.0.8:22 10.0.0.4:52360 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
[root@CentOS8 ~]# netstat -ant |grep "ESTABLISHED" | tr -s ' ' | cut -d" " -f5 | grep -Eo "([0-9]{1,3}\.){3}[0-9]"|sort | uniq -c | sort -nr
3 10.0.0.4
2 10.0.0.1
[root@CentOS8 ~]#

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

[root@CentOS8 data]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 372M 0 372M 0% /dev
tmpfs tmpfs 392M 0 392M 0% /dev/shm
tmpfs tmpfs 392M 5.7M 386M 2% /run
tmpfs tmpfs 392M 0 392M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 5.0G 2.0G 3.1G 40% /
/dev/mapper/cl-data xfs 3.0G 54M 3.0G 2% /data
/dev/nvme0n1p1 xfs 1014M 202M 813M 20% /boot
tmpfs tmpfs 79M 0 79M 0% /run/user/0


[root@CentOS8 data]# vim disk.sh
#!/bin/bash
#This script is for check Maximum disk partition usage information
#############################
MAX_Usage=`df -Th | grep -Eo "[0-9]{1,3}\%" | sort -rn | head -1`
MAX_File=`df -Th | grep $MAX_Usage | cut -d' ' -f1` echo -e "\033[1;32mMaximum disk usage partition information\033[0m"
echo -e "MAX_Usage: \033[1;31m $MAX_Usage\033[0m"
echo -e "MAX_File: \033[1;31m $MAX_File\033[0m"


[root@CentOS8 data]# chmod a+x disk.sh
[root@CentOS8 data]# ./disk.sh
Maximum disk usage partition information
MAX_Usage: 40%
MAX_File: /dev/mapper/cl-root [root@CentOS8 data]# dd if=/dev/zero of=/data/file bs=1M count=2500
2500+0 records in
2500+0 records out
2621440000 bytes (2.6 GB, 2.4 GiB) copied, 2.09592 s, 1.3 GB/s
[root@CentOS8 data]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 372M 0 372M 0% /dev
tmpfs tmpfs 392M 0 392M 0% /dev/shm
tmpfs tmpfs 392M 5.7M 386M 2% /run
tmpfs tmpfs 392M 0 392M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 5.0G 2.0G 3.1G 40% /
/dev/mapper/cl-data xfs 3.0G 2.5G 505M 84% /data
/dev/nvme0n1p1 xfs 1014M 202M 813M 20% /boot
tmpfs tmpfs 79M 0 79M 0% /run/user/0
[root@CentOS8 data]# ./disk.sh
Maximum disk usage partition information
MAX_Usage: 84%
MAX_File: /dev/mapper/cl-data

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

[root@CentOS8 data]# vim system_info.sh 

#!/bin/bash
#打印输出系统信息:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
#
#Copyright (C): janzen@q All rights reserved RED="\033[1;31m"
GREEN="\033[1;32m"
White="\033[0m"
HostName=`hostname`
IP=`hostname -I`
[[ -e /etc/redhat-release ]] && OSVersion=`cat /etc/redhat-release` || OSVersion=`cat //etc/issue | grep -v ^$ | cut -d'\' -f1`
CPU=`lscpu | grep "^Model name:" | tr -s ' ' | cut -d":" -f2 | grep -Eo "[A-Za-z0-9].*"`
MEM=`free -h | grep Mem | tr -s " " | cut -d' ' -f2`
DISK=`lsblk |tr -s ' ' |grep "disk $" | cut -d' ' -f4`
DISK=`echo $DISK` echo -e "\033[1;33m-------------System Info----------------$White"
echo -e "${RED}Hostname: $GREEN$HostName$White"
echo -e "${RED}IP: $GREEN$IP$White"
echo -e "${RED}OS_Version: $GREEN$OSVersion$White"
echo -e "${RED}CPU: $GREEN$CPU$White"
echo -e "${RED}MEM: $GREEN$MEM$White"
echo -e "${RED}DISK: $GREEN$DISK$White"
echo -e "\033[1;33m-------------------End-------------------$White"

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

【Linux】文本处理及Shell编程的更多相关文章

  1. Linux学习笔记(17) Shell编程之基础

    1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...

  2. Linux(五)shell编程基础

    一.Linux shell简介 1.shell概述 Shell 是用户与内核进行交互操作的一种接口,目前最流行的 Shell 称为 bash Shell          Shell 是一门编程语言& ...

  3. linux系列之-—01 shell编程笔记

    一.特殊变量($0.$1.$2. $?. $# .$@. $*) shell编程中有一些特殊的变量可以使用.这些变量在脚本中可以作为全局变量来使用. 名称 说明 $0 脚本名称 $1-9 脚本执行时的 ...

  4. linux学习(七)Shell编程中的变量

    目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root ...

  5. Linux常用命令和Shell编程基础

    目录相关 cd - .与.. 分别表示当前目录和父目录 - ~与$HOME 都是指当前用户的主目录 - cd – 切换到上一次所在的目录(不一定是父目录) pwd - pwd 显示当前目录 - $PW ...

  6. [读书笔记]Linux命令行与shell编程读书笔记02 环境变量以及其他

    1. Linux的环境变量. 全局环境变量的查看 printenv 一个结果示例 XDG_SESSION_ID=354TERM=xtermSHELL=/bin/bashSSH_CLIENT=10.24 ...

  7. [读书笔记]Linux命令行与shell编程读书笔记01

    1. Linux的组成部分 1)linux内核(kernel) 2)GNU工具链 3)GUI/CLI工作几面(shell) 4)应用程序(app) 2Linux内核的主要工作: 1) 管理内存 2)管 ...

  8. Linux学习笔记(18) Shell编程之流程控制

    1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...

  9. [读书笔记]Linux命令行与shell编程读书笔记04 安装软件,编辑器注意事项

    1. debian以及redhat两种主流的linux发行版用的包管理工具 debian的包管理工具是 dpkg 再现安装的是 apt apt的工具主要有 apt-get apt-cache apti ...

  10. [读书笔记]Linux命令行与shell编程读书笔记03 文件系统等

    1. 文件系统的种类 ext ext2 ext3 ext4 JFS XFS 其中ext3 开始支持journal日志模式 与raid卡类似 有 数据模式  排序模式 以及回写模式 数据模式最安全 回写 ...

随机推荐

  1. Field userService in com.lin.hms.controller.LogController required a bean of type 'org.lin.hms.service.UserService' that could not be found.

    需要一个bean但找不到 解决 我们在controller使用的service没有注入spring容器,那么我们可以在启动类上,加上包扫描注解,让这个bean所在的包能扫描到: @ComponentS ...

  2. I - Cloud Retainer's Game

    I - Cloud Retainer's Game 传送门: I. Cloud Retainer's Game (codeforces.com) 题意: 在坐标轴上有2个边界:y=0和y=H.有n个质 ...

  3. vuforia 打包IOS 第一次启动正常, 删掉过程重新启动初始化失败。

    我使用的是2019.4.17版本,降级到2019.2.17问题解决

  4. springboot的websocket因IP问题无法连接

    首先遇到这个问题有点奇葩,出现在项目上线时的客户现场,头两天一直都无法确定原因,因为它的表现方式很奇怪,基于springboot实现的websocket,同样的代码在公司研发环境不会有问题,客户现场会 ...

  5. 三天吃透MySQL面试八股文

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  6. CF1037H Security题解

    根据字典序的定义,位置大的大于长度长的,长度长的大于长度短的. 所以我们贪心,先追求长度长的,再追求后面的位置大的,再追求前面的位置大的. 我们要一个能遍历子串的结构,就选 SAM 得了. 还有个限制 ...

  7. RHCE服务----DNS

    实验要求: 1.建立DNS服务器,负责解析的域为openedu.com 2.要求将MX记录指向mail.openedu.com,且对应A记录为本机IP 3.要求将NS记录指向ns1.openedu.c ...

  8. Java面试——阻塞队列

    一.阻塞队列 [1]首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示:

  9. fullcalendar 日历插件的使用

    [需求]:使用 fullcalendar日历插件,完成如下功能:可以进行拖动,点击空白处添加,双击后修改和删除等功能.API 链接

  10. 使用requests的session发送请求

    import requests # (1)网址 url = 'https://www.xslou.com/login.php' # (2)输入登录框-->输入密码框-->点击登录找到php ...