【面试全纪实 | Linux 05 编程类】请回答,你真的了解Linux吗?

🗺️博客地图

📍1. 判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下?

📍2. 添加一个新组为 class1 ,然后添加属于这个组的 30 个用户,用户名的形式为 stdxx ,其中 xx 从 01 到 30 ?

📍3. 编写 Shell 程序,实现自动删除 50 个账号的功能,账号名为 stud1 至 stud50 ?

📍4. 写一个 sed 命令,修改 /tmp/input.txt 文件的内容?


1. 判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下?

#!/bin/bash
read -p "请输入文件名: " FILENAME
if [ -c "$FILENAME" ];then
    cp $FILENAME /dev
fi

2. 添加一个新组为 class1 ,然后添加属于这个组的 30 个用户,用户名的形式为 stdxx ,其中 xx 01 30

脚本一:

#!/bin/bash
groupadd class1
for((i=1;i<31;i++))
do
if [ $i -le 10 ];then
    useradd -g class1 std0$i
else
    useradd -g class1 std$i
fi
done

脚本二:

#!/bin/bash

# 创建新组
groupadd class1

# 创建30个用户
for ((i=1;i<=30;i++)); do
    # 格式化数字,保留两位数
    num=$(printf "%02d" $i)
    # 创建新用户
    useradd -g class1 std$num
done

# 输出提示信息
echo "30个用户已经添加到class1组中。"

3. 编写 Shell 程序,实现自动删除 50 个账号的功能,账号名为 stud1 stud50

#!/bin/bash
for((i=1;i<51;i++))
do
    userdel -r stud$i
done

4. 写一个 sed 命令,修改 /tmp/input.txt 文件的内容?

要求:
  • 删除所有空行
  • 一行中,如果包含 “11111”,则在 “11111” 前面插入 “AAA”,在 “11111” 后面插入 “BBB” 。比如:将内容为 0000111112222 的一行改为 0000AAA11111BBB2222 
[root@~]# cat -n /tmp/input.txt
1 000011111222
2
3 000011111222222 
4 11111000000222 
5 
6 
7 111111111111122222222222 
8 2211111111 
9 112222222 
10 1122 
11
 
## 删除所有空行命令
[root@~]# sed '/^$/d' /tmp/input.txt
0000111112220000111112222221111100000022211111111111112222222222222111111111122222221122 

## 插入指定的字符
[root@~]# sed 's#\(11111\)#AAA\1BBB#g' /tmp/input.txt
0000AAA11111BBB2220000AAA11111BBB222222AAA11111BBB000000222AAA11111BBBAAA11111BBB1112222222222222AAA11111BBB1111122222221122

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子Linux

各位看官老爷,行行好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值