当前位置: 首页 > article >正文

Shell 经典面试例题

1.shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。

编写脚本:

#!/bin/bash
FILE="/tmp/size.log"

if [ -f "$FILE" ]; then
    echo "文件存在,显示文件内容:"
    cat "$FILE"
else
    echo "文件不存在,创建文件并写入创建时间。"
    echo "创建时间:$(date)" > "$FILE"
fi
 

执行脚本结果:

[root@localhost ~]# vim 1.sh
[root@localhost ~]# chmod +x 1.sh
[root@localhost ~]# ./1.sh
文件不存在,创建文件并写入创建时间。

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

编写脚本:

#!/bin/bash

USER_PREFIX="user"
USER_COUNT=20

for ((i=1; i<=USER_COUNT; i++)); do
    USERNAME="${USER_PREFIX}$(printf "%02d" $i)"

    PASSWORD="user$(tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 5)"

    sudo useradd $USERNAME
    echo -e "$PASSWORD\n$PASSWORD" | sudo passwd $USERNAME

    echo "用户 $USERNAME 添加成功,密码为:$PASSWORD"
done
执行脚本结果:

Changing password for user user01.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user01 添加成功,密码为:useraPHte
Changing password for user user02.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user02 添加成功,密码为:userclBkI
Changing password for user user03.
New password: Retype new password: passwd: all authentication tokens updated successfully.
用户 user03 添加成功,密码为:user5B8Yg
Changing password for user user04.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user04 添加成功,密码为:userCZmXl
Changing password for user user05.
New password: BAD PASSWORD: The password contains the user name in some form
Retype new password: passwd: all authentication tokens updated successfully.
用户 user05 添加成功,密码为:user0k5xR
Changing password for user user06.
New password: Retype new password: passwd: all authentication tokens updated successfully.
用户 user06 添加成功,密码为:userGaAG1
Changing password for user user07.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user07 添加成功,密码为:userZefFN
Changing password for user user08.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user08 添加成功,密码为:userord6b
Changing password for user user09.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user09 添加成功,密码为:userLitYu
Changing password for user user10.
New password: Retype new password: passwd: all authentication tokens updated successfully.
用户 user10 添加成功,密码为:userj37Vx
Changing password for user user11.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user11 添加成功,密码为:userv23j9
Changing password for user user12.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user12 添加成功,密码为:useruKikd
Changing password for user user13.
New password: Retype new password: passwd: all authentication tokens updated successfully.
用户 user13 添加成功,密码为:userxH9hs
Changing password for user user14.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user14 添加成功,密码为:userQyMIF
Changing password for user user15.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user15 添加成功,密码为:userMSIyp
Changing password for user user16.
New password: BAD PASSWORD: The password contains less than 3 character classes
Retype new password: passwd: all authentication tokens updated successfully.
用户 user16 添加成功,密码为:userJcDYt
Changing password for user user17.
New password: BAD PASSWORD: The password contains the user name in some form
Retype new password: passwd: all authentication tokens updated successfully.
用户 user17 添加成功,密码为:userh1Vsr
Changing password for user user18.
New password: Retype new password: passwd: all authentication tokens updated successfully.
用户 user18 添加成功,密码为:user7Zgho
Changing password for user user19.
New password: BAD PASSWORD: The password contains the user name in some form
Retype new password: passwd: all authentication tokens updated successfully.
用户 user19 添加成功,密码为:usery1vKl
Changing password for user user20.
New password: Retype new password: passwd: all authentication tokens updated successfully.
用户 user20 添加成功,密码为:userMeXQ3

3.编写个shel 脚本将/usr/local 日录下大于10M的文件转移到/tmp目录下

编写脚本:、

#!/bin/bash

SOURCE_DIR="/usr/local"
TARGET_DIR="/tmp"

if [ ! -d "$TARGET_DIR" ]; then
    mkdir -p "$TARGET_DIR"
fi

find "$SOURCE_DIR" -type f -size +10M -exec mv {} "$TARGET_DIR" \;

echo "大于 10M 的文件已转移到 $TARGET_DIR"
执行脚本结果:

[root@localhost ~]# vim 3.sh
[root@localhost ~]# chmod +x 3.sh
[root@localhost ~]# ./3.sh
大于 10M 的文件已转移到 /tmp
 

以上为三个题目的解答!


http://www.kler.cn/a/500200.html

相关文章:

  • 【2024年华为OD机试】 (A卷,100分)- 租车骑绿岛(Java JS PythonC/C++)
  • matlab编写分段Hermite插值多项式
  • 带格式 pdf 翻译
  • Autoencoder(李宏毅)机器学习 2023 Spring HW8 (Boss Baseline)
  • 离线录制激光雷达数据进行建图
  • CSS语言的网络编程
  • Excel如何分区设置密码,一个区域一个密码,数据收集时使用太方便了
  • golang - context.Context:Goroutine数据传输和管理
  • 3DGabor滤波器实现人脸特征提取
  • Swagger学习⑰——@Link注解
  • Golang 设计模式
  • 自动化测试框架playwright 常见问题和解决方案!
  • Caffeine核心设计图解
  • SQL-leetcode-584. 寻找用户推荐人
  • 网络安全行业规划,零基础如何入门网络渗透?
  • 拥抱HarmonyOS之高效使用DevEco
  • 中阳智能量化交易模型:科技驱动的投资革命
  • linux网络 | https前置知识 | 数据加密与解密、数据摘要
  • 继续坚持与共勉
  • openstack下如何生成centos9 centos10 和Ubuntu24 镜像
  • Linux 免杀
  • leetcode 483. 最小好进制
  • 《Opencv》图像的旋转
  • Android车机DIY开发之学习篇(五)默认应用修改
  • 【网络安全 SOC】痛苦金字塔 Pyramid Of Pain