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. 微信支付服务商api对接

    引入官方sdk <!--微信v3支付sdk {https://github.com/wechatpay-apiv3/wechatpay-apache-httpclient}--> < ...

  2. 关于PB用JDBC连接MySQL,亲测有效

    以前自学过一段时间的PB,数据窗口让人印象深刻,前段时间,在西瓜视频看到有人录制了PB的教学视频,让我想起以前自学的那段时光,遇到了问题,也不知道问谁,现在网络发达,可以在网上查找问题,但是有大多数博 ...

  3. java锁之初相见

    废话不多说,先上锁的分类图 1.乐观锁&悲观锁 悲观锁 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,把别的线程阻塞住,最终确保数据不会被别的线程修改. ...

  4. win10修复系统

    DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow

  5. mongodb定时备份

    1. https://www.jianshu.com/p/a9352e28e2d6   (未测试) 通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操 ...

  6. Anaconda与conda、pip与conda的区别 - 搬运

    Anaconda与conda.pip与conda的区别 风影忍着   转自:https://zhuanlan.zhihu.com/p/379321816     作为一个Python初学者,在请教资深 ...

  7. 01.html大致主体格式

    <!DOCTYPE html> 不是HTML标签,就是文档声明标签 告诉浏览器使用哪种html版本来显示网页,其必须在文档中的最前面位置,要放在<html>标签之前, < ...

  8. DVWA-Insecure CAPTCHA(不安全的验证码)

    Insecure CAPTCHA,意思为不安全的验证码 全称为Completely Automated Public Turing Test to Tell Computers and Humans ...

  9. Java Swing的练习感悟

    感悟心得 这还是我第一次使用Java Swing写代码呢,直接就是趣味性拉满! 在相关的界面代码的基础上,在必要的位置嵌入Java代码,就可以很好的实现啦! 简单的嘞! (有兴趣的各位可以选择去浅浅地 ...

  10. 【Visual Leak Detector】在 QT 中使用 VLD(方式三)

    说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记. 目录 说明 1. 使用前的准备 2. 在 QT 中使用 VLD 2.1 复制 lib 库及头文件 2.2 在项目 .pro 文件中指明路 ...