运维开发工程师 面试题 shell编程

1. 32位随机密码生成

cat /proc/sys/kernel/random/uuid | tr -d '-'

2.查看当前系统每个ip的tcp连接数

-n 强制显示IP地址

-t 显示TCP连接

sudo netstat -nt 2> /dev/null | awk '/^tcp/ {print $5}' | cut -d ':' -f 1 | sort | uniq -c

3.显示 /etc/inittab 中包含了: 一个数字: 的行

grep ':[0-9]:' /etc/inittab

4.写一个脚本,批量添加20个用户,用户名为user01-20,密码为user后面跟5个随机字符

#!/bin/bash

for n in `seq -w 1 20`
do
    # 脚本第一个参数是A|a 时,批量创建uesr01-20,并将密码设为user加5个随机字符;脚本第一个参数是D|d时,批量删除user01-20    
    case $1 in
    A|a)
        sudo useradd -s /bin/bash user$n
        echo user$RANDOM | sudo passwd --stdin user$n
        ;;
    D|d)
        sudo userdel -r user$n
        ;;
    *)
        ;;
    esac
done

 附 连续输出 01 - 20 ,每个都是两个字符 seq -f "%02g" 1 20  ###  seq -w 1 20

5.写一个脚本呢实现192.168.1.0/24 网络里,当前在线的ip有哪些.能ping通则认为在线

ping -c 发送次数 -q 不回显 -i 收发间隔 -n 只输出数值

for i in {200..254}
do
        ping 172.16.11.$i -c 1 -q -i 0.8 -n 1>/dev/null 2>/dev/null
        [ $? == 0 ] && echo 172.16.91.$i 在线 >> online.txt
done
原文地址:https://www.cnblogs.com/zhengwenqiang/p/7272790.html