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 执行脚本结果: ![](https://i-blog.csdnimg.cn/direct/563e1c9a8b784a4eb70def096e43e2a8.png) 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" 执行脚本结果: ![](https://i-blog.csdnimg.cn/direct/4609a411077a4e5295eed2a61068794c.png) \[root@localhost \~\]# vim 3.sh \[root@localhost \~\]# chmod +x 3.sh \[root@localhost \~\]# ./3.sh 大于 10M 的文件已转移到 /tmp 以上为三个题目的解答!

相关推荐
还不秃顶的计科生24 分钟前
LeetCode 热题 100第二题:字母易位词分组python版本
linux·python·leetcode
咯哦哦哦哦25 分钟前
WSL + ubantu22.04 + 远程桌面闪退+黑屏闪退解决
linux·开发语言
fantasy5_532 分钟前
Linux 动态进度条实战:从零掌握开发工具与核心原理
linux·运维·服务器
weixin_4624462341 分钟前
exo + tinygrad:Linux 节点设备能力自动探测(NVIDIA / AMD / CPU 安全兜底)
linux·运维·python·安全
不瘦80斤不改名42 分钟前
Python 日志(logging)全解析
服务器·python·php
..过云雨1 小时前
17-2.【Linux系统编程】线程同步详解 - 条件变量的理解及应用
linux·c++·人工智能·后端
莫逸风1 小时前
【局域网服务方案】:无需找运营商,低成本拥有高性能服务器
运维·服务器
oMcLin1 小时前
CentOS 7 频繁出现 “Connection Refused” 错误的原因分析与解决
linux·运维·centos
小李独爱秋2 小时前
计算机网络经典问题透视:常规密钥体制与公钥体制最主要的区别是什么?—— 一文带你从“钥匙”看懂现代密码学核心
服务器·网络·tcp/ip·计算机网络·密码学
饭九钦vlog2 小时前
银河麒麟修复openssh升级脚本
linux·运维