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. mysql 设置查询超时配置

    mysql设置查询超时 mysql5.6: max_statement_time (毫秒) mysql5.7: max_execution_time(毫秒) mariadb: max_statemen ...

  2. 关于Windows10纯净启动的相关修改流程

    关于纯净启动的相关流程 自动登录 打开命令提示符运行control userpasswords2后回车 在弹出的用户账户窗口中,取消勾选"要使用本计算机,用户必须输入用户名和密码" ...

  3. js延迟加载、js异步加载

    1.js延迟加载 (1)js延迟加载是js性能优化的一种方式 (2)作用:为了提高网页的加载速度 (3)原理:等网页加载完成之后再加载js文件 ··需要优化的原因:HTML元素是按照其在页面中出现的次 ...

  4. uglifyjs-webpack-plugin配置

    项目使用vuecli3搭建,在vue.config.js文件中进行配置,主要配置了去除线上环境的打印信息. 首先安装插件, 执行命令 npm install uglifyjs-webpack-plug ...

  5. WPF监听快捷键的几种方式

    调用Win32 API(优先级最高,全局监听, 支持最小化失焦等情况) 那么,假如我要在一个WPF程序监听CTRL+5按键,首先在主窗口程序添加以下代码: /// <summary> // ...

  6. java 环境变量配置详细教程(2023 年全网最详细)

    前言: 在上一篇文章中,壹哥给大家重点讲解了 Java 实现跨平台的原理,不知道你现在有没有弄清楚呢?如果你还有疑问,可以在评论区留言- 之前的三篇文章,主要是理论性的内容,其实你暂时跳过不看也是可以 ...

  7. boss直聘自动化爬取招聘信息

    自己百度下载一个scrpy(爬虫框架) 不知博客园咋传文件 百度网盘 永久访问 链接:https://pan.baidu.com/s/1_-5lnnTj_qs9d_jtWkFgcA 提取码:x3ur

  8. 在云服务器上搭建个人版chatGPT及后端Spring Boot集成chat GPT

    总结/朱季谦 本文分成两部分,包括[国内服务器上搭建chat GPT]和[后端Spring Boot集成chat GPT]. 无论是在[国内服务器上搭建chat GPT]和[后端Spring Boot ...

  9. FileReader之获取文本文件内容为字符串

    FileReader之获取文本文件内容为字符串 FileReader官网描述: FileReader 对象允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 Fil ...

  10. 鸿蒙开发学习笔记-UIAbility-Router页面跳转接口源码分析

    在鸿蒙开发中,UIAbility的跳转使用 router 方法. 在使用的时候需导入 import router from '@ohos.router'; 该方法接口成员如下: 1.interface ...