1.在/usr/目录下,创建test00目录,进入该目录,连续创建20个目录,目录的名称是stu01~20。
逻辑过程要求:该目录下如果已经存在需要创建的目录,则自动跳过创建命令动作。
touch sb.sh
sudo gedit sb.sh
#!/bin/bash
if [ ! -d $stu.$i ];then
for((i=01;i<=20;i++))
do
sudo mkdir stu.$i;
ls stu.$i;
done
else
echo "exist"
fi
bash sb.sh
2.创建用户stu01,
sudo useradd -d stu01
要求:a.用户拥有自己的目录,
b.允许远程登录,
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
c.配置账户密码最短使用期限为 10天,最长使用期限为 90 天。
sudo chage stu01 -M 90 -m 10 -W 5
overdue=$(chage -l ${username} | grep '密码过期时间' | awk '{print $3,$4,$5}')
echo 账号${username}密码过期时间为"${overdue}"
配置完成后,过期的提醒消息到屏幕上方便阅读,该信息自行定义。
#!/bin/bash
sudo useradd -d /home/stu01 -m stu01
sudo echo -e "123456n123456" | passwd stu01
ed -i -e 's/^PermitRootLogin.*$/PermitRootLogin yes/' /etc/ssh/sshd_config
ed -i -e 's/^PasswordAuthentication.*$/PasswordAuthentication yes/'etc/ssh/sshd_config
service sshd restart
sudo chage -M 90 -m 10 stu01
sudo chage -l stu01
3.ping网段,
要求:
1.获取当前服务器的ip,比如172.17.31.130
hostname -i
cat /proc/net/arp
//端中使用命令“ifconfig-a”,如果提示找不到“ifconfig”,根据提示安装"net-tools",运行命令"sudo apt install net-tools"
再运行“ifconfig-a”k可以查看网络连接信息
2.则ping 172.17.31.30~130范围内的机器,100台的数量
ping-c 100 ip地址
3.给出ping通了多少台机器的相关信息,显示到屏幕上。
#!/bin/bash
#获取当前服务器的IP地址
IP=`/sbin/ifconfig -a|grep inet|grep -v inet6|grep -v 127.0.0.1|awk '{print $2}'|tr -d "addr:"`
#以.分割IP地址
IP_ARR=(${IP//./ })
#获取网段
NETWORK=${IP_ARR[0]}.${IP_ARR[1]}.${IP_ARR[2]}.
num=0
for i in {125..130}
do
#检查是否存在该IP地址
ping -c 1 -w 1 ${NETWORK}$i &>/dev/null
if [ $? -eq 0 ];then
echo 找到了${NETWORK}${i}
num=`expr ${num} + 1`
fi
done
echo Ping通了${num}台服务器
--------------------------------------------------------------------
#!/bin/bash
ip=`ifconfig -a|grep inet|grep -v inet6|grep -v 127.0.0.1|awk '{ print $2 }'|tr -d "addr:"`
echo $ip
ip_arp=(${ip//./})
network=${ip_arp[0]}.${ip_arp[1]}.${ip_arp[2]}.
for i in {30..130}
do
ping -c 1 -w 1 ${network}$i &>/dedv/null
if [ $? -eq 0 ];then
echo "ping通了${network}$i"
else
echo "ping不通${network}$i"
fi
done
4 文本信息筛出
a.使用history命令,获取结果数据,不带行号。将结果重定向输出到文件command.log中
cat ~/.bash_history
cat ~/.bash_history>command.log
b.逐一读取该文件中的每一行内容后,然后生成新文件command_01.log
touch sb.sh
sudo gedit sb.sh
#!/bin/bash
while read line
do
if [[ $line != *"sudo"* ]]
then
#获取这一行的第一个参数
echo #${line}>>command_01.log
else
echo ${line}>>command_01.log
fi
done
bash sb.sh
sed 's/^/#&/g' command_01.log //添加#
grep "^sudo" command_01.log //查找sudo开头的
要求:文件command_01.log跟文件command.log类似,行数不变,
凡是非sudo开头的行,在开头添加符号“#”
比如,某行“sh test.sh”则修改为“#sh test.sh”
5.更换软件源(默认21.10系统版本)
编写程序,选择输入1或者2或者3
则将当前系统的软件源,对应更换为清华大学,浙江大学,中国科技大学的镜像源
更换信息完成后,重建软件源的缓存和更新源。
#!/bin/bash
source_url=""
#获取传入的参数
case $1 in
"1")
#清华源
source_url="https://mirror.tuna.tsinghua.edu.cn/"
;;
"2")
#浙大源
source_url="http://mirrors.zju.edu.cn/"
;;
"3")
#中科大源
source_url="https://mirrors.ustc.edu.cn/"
;;
*)
echo "参数错误"
exit 1
;;
esac
#换源
sudo sed -i -r "s/(http|https)://[a-z.]+//${source_url}/" /etc/apt/sources.list
#更新缓存
sudo apt-get clean
#更新源
sudo apt-get update
————————————————————————————————————————
#!/bin/bash
Codename=$(cat /etc/os-release | grep VERSION_CODENAME | awk -F'=' '{print $2}')
echo "检测到你的Ubuntu版本3: $Codename"
echo "请选择镜像源"
echo " 1.清华大学 2. 浙江大学 3. 中科大"
read -s -n1 sourceChoice
if [ $sourceChoice -ne 1 ] && [ $sourceChoice -ne 2 ] && [ ssourceChoice -ne 3 ] ; then
echo
echo '输入有误'
exit
fi
case $sourceChoice in
1)
choose ='tsinghua'
;;
2)
choose ='zhejian'
;;
3)
choose ='ustc'
;;
esac
case $choose in
tsighua)
sourceweb = 'http://mirrors.tuna.tsinghua.edu.cn'
;;
zhejian)
sourceweb = 'htttp://mirrors.zju.edu.cn'
;;
ustc)
sourceweb = 'http://mirrors.ustc.edu.cn'
;;
esac
echo "备份sources.list..."
sudo cp /etc/apt/sources.list/etc/apt/soarces.list.bak
echo "设置新镜像源..."
echo"
deb $sourceweb/ubuntu/ $Codename main restricted universe multiverse
deb $sourceweb/ubuntu/ $Codename-security main restricted universe multiverse
deb $sourceweb/ubuntu/ $Codename-updates main restricted universe mulitiverse
deb $sourceweb/ubuntu/ $Codename-proposed main restricted universe mulitiverse
deb $sourceweb/ubuntu/ $Codename-backports main restricted universe mulitiverse
deb-src $sourceweb/ubuntu/ $Codename main restricted universe mulitiverse
deb-src $sourceweb/ubuntu/ $Codename-security main restricted universe multiverse
deb-src $sourceweb/ubuntu/ $Codename-updates main restricted universe mulitiverse
deb-src $sourceweb/ubuntu/ $Codename-proposed main restricted universe mulitiverse
deb-src $sourceweb/ubuntu/ $Codename-backports main restricted universe mulitiverse">etc/apt/sources.list
echo "更新源..."
sudo apt-get update



