【Linux】文本处理及Shell编程
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编程的更多相关文章
- Linux学习笔记(17) Shell编程之基础
1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...
- Linux(五)shell编程基础
一.Linux shell简介 1.shell概述 Shell 是用户与内核进行交互操作的一种接口,目前最流行的 Shell 称为 bash Shell Shell 是一门编程语言& ...
- linux系列之-—01 shell编程笔记
一.特殊变量($0.$1.$2. $?. $# .$@. $*) shell编程中有一些特殊的变量可以使用.这些变量在脚本中可以作为全局变量来使用. 名称 说明 $0 脚本名称 $1-9 脚本执行时的 ...
- linux学习(七)Shell编程中的变量
目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root ...
- Linux常用命令和Shell编程基础
目录相关 cd - .与.. 分别表示当前目录和父目录 - ~与$HOME 都是指当前用户的主目录 - cd – 切换到上一次所在的目录(不一定是父目录) pwd - pwd 显示当前目录 - $PW ...
- [读书笔记]Linux命令行与shell编程读书笔记02 环境变量以及其他
1. Linux的环境变量. 全局环境变量的查看 printenv 一个结果示例 XDG_SESSION_ID=354TERM=xtermSHELL=/bin/bashSSH_CLIENT=10.24 ...
- [读书笔记]Linux命令行与shell编程读书笔记01
1. Linux的组成部分 1)linux内核(kernel) 2)GNU工具链 3)GUI/CLI工作几面(shell) 4)应用程序(app) 2Linux内核的主要工作: 1) 管理内存 2)管 ...
- Linux学习笔记(18) Shell编程之流程控制
1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...
- [读书笔记]Linux命令行与shell编程读书笔记04 安装软件,编辑器注意事项
1. debian以及redhat两种主流的linux发行版用的包管理工具 debian的包管理工具是 dpkg 再现安装的是 apt apt的工具主要有 apt-get apt-cache apti ...
- [读书笔记]Linux命令行与shell编程读书笔记03 文件系统等
1. 文件系统的种类 ext ext2 ext3 ext4 JFS XFS 其中ext3 开始支持journal日志模式 与raid卡类似 有 数据模式 排序模式 以及回写模式 数据模式最安全 回写 ...
随机推荐
- 微信支付服务商api对接
引入官方sdk <!--微信v3支付sdk {https://github.com/wechatpay-apiv3/wechatpay-apache-httpclient}--> < ...
- 关于PB用JDBC连接MySQL,亲测有效
以前自学过一段时间的PB,数据窗口让人印象深刻,前段时间,在西瓜视频看到有人录制了PB的教学视频,让我想起以前自学的那段时光,遇到了问题,也不知道问谁,现在网络发达,可以在网上查找问题,但是有大多数博 ...
- java锁之初相见
废话不多说,先上锁的分类图 1.乐观锁&悲观锁 悲观锁 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,把别的线程阻塞住,最终确保数据不会被别的线程修改. ...
- win10修复系统
DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow
- mongodb定时备份
1. https://www.jianshu.com/p/a9352e28e2d6 (未测试) 通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操 ...
- Anaconda与conda、pip与conda的区别 - 搬运
Anaconda与conda.pip与conda的区别 风影忍着 转自:https://zhuanlan.zhihu.com/p/379321816 作为一个Python初学者,在请教资深 ...
- 01.html大致主体格式
<!DOCTYPE html> 不是HTML标签,就是文档声明标签 告诉浏览器使用哪种html版本来显示网页,其必须在文档中的最前面位置,要放在<html>标签之前, < ...
- DVWA-Insecure CAPTCHA(不安全的验证码)
Insecure CAPTCHA,意思为不安全的验证码 全称为Completely Automated Public Turing Test to Tell Computers and Humans ...
- Java Swing的练习感悟
感悟心得 这还是我第一次使用Java Swing写代码呢,直接就是趣味性拉满! 在相关的界面代码的基础上,在必要的位置嵌入Java代码,就可以很好的实现啦! 简单的嘞! (有兴趣的各位可以选择去浅浅地 ...
- 【Visual Leak Detector】在 QT 中使用 VLD(方式三)
说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记. 目录 说明 1. 使用前的准备 2. 在 QT 中使用 VLD 2.1 复制 lib 库及头文件 2.2 在项目 .pro 文件中指明路 ...