liunx作业笔记1

一、选择题(每小题 2 分,共 20 分)

1、下列变量命名为Shell中无效变量名的是( D )

|---------|---------|
| A、v_ar1 | B、var1 |
| C、_var | D、*var |

变量名以字母开头,包含下划线和数字。

2、关于expr命令的使用下列命令中得数不等于14的是( C )

|--------------|---------------|---------------|---------------|
| A、expr 6 + 8 | B、expr 28 / 2 | C、expr 2 * 7 | D、expr 16 - 2 |

echo $(expr 6 + 8)

3、以下不属于Shell的非交互式使用特点的是( C )

|-----------------|--------------|
| A、需要提前设计、智能化难度大 | B、批量执行、效率高 |
| C、逐条解释执行、效率低 | D、方便在后静悄悄地运行 |

逐条解释执行的特点适用于Shell的交互式使用,而非交互式使用时,Shell脚本可以批量执行命令,提高效率。

4、下列使用test命令算术测试实例输出结果为 No 的是( B )

|--------------------------------------------------|--------------------------------------------------|
| A、test 5 -eq 5 && echo Yes || echo No | B、test [ 5 -gt 10 ] && echo Yes || echo No |
| C、test [ 5 -le 10 ] && echo Yes || echo No | D、test 5 -ne 10 && echo Yes || echo No |

test 5 -eq 5 && echo Yes || echo No:-eq 表示相等,所以 test 5 -eq 5 返回真(true)

5、下列结构属于if单分支结构的是( B )

|-------------------------|------------------|------------------|--------------------------------|
| A、if...elif...else...fi | B、if...else...fi | C、if...then...fi | D、if...elif...elif...else...fi |

if...elif...else...fi:这是一个多分支结构,包含了 elif(else if)和 else 分支。

if...else...fi:这是一个单分支结构,只包含了 if 和 else 分支,没有额外的 elif。

if...then...fi:这是一个基本的单分支结构,只有 if 和 then,以及结束符 fi。

if...elif...elif...else...fi:这是一个多分支结构,包含了多个 elif 和一个 else 分支。
基本单分支(if...then 结构):不包含 else 分支,因此只有一种执行路径:条件成立时执行 then 后面的命令。

6、在正则表达式中元字符句点 "."使用"360."不可能匹配的字符是( B )

|----------|--------|
| A、3600 | B、360 |
| C、360abc | D、3606 |

360后面要跟一个字符

8、下列选项中,在正则表达式中哪个元字符表示匹配一个或多个重复的前一个字符?( B )

|-----|------|
| A、? | B、+ |
| C、$ | D、* |

?:匹配零个或一个重复的前一个字符。

+:匹配一个或多个重复的前一个字符。

$:匹配输入的结尾位置。

*:匹配零个或多个重复的前一个字符。

  1. 下列选项属于在Shell脚本中,正确函数定义的是?( A )

|------------------------|
| A、 my_function() {} |
| B、 func my_function {} |
| C、def my_function {} |
| D、fn my_function() {} |

10、下列选项中,哪个sed命令用于替换单词"apple"为"orange"?( B )

|--------------------|-------------------|
| A、 g/apple/orange/ | B、s/apple/orange/ |
| C、 r/apple/orange/ | D、d/apple/orange/ |

sed

1.在Shell脚本中,用来检查文件是否存在的条件测试符是_____-e________。

复制代码
#!/bin/bash

file="/a.txt"

if [ -e "$file" ]; then
    echo "文件 $file 存在."
else
    echo "文件 $file 不存在."
fi

2.Shell脚本中,可以使用read命令的______-s_____选项来隐藏用户的输入。

复制代码
#!/bin/bash

echo "请输入密码:"
read -s password

echo "密码已输入,长度为 ${#password}。"

3.如何只用 echo 命令替换字符串的一部分 ?

答: 用sed ;例如:echo "Hello, World" | sed 's/World/Universe/'

4.计算本地用户数目 ?wc -l /etc/passwd;这条命令将统计/etc/passwd文件中的行数,每一行对应一个用户的信息。在Unix和类Unix系统中,/etc/passwd文件包含了系统中所有用户的基本信息。

5.如何列出第二个字母是 a 或 b 的文件 ?

复制代码
ls | grep -E '^.a|^.b',注意ls是在当前目录下操作的

6.如何将整数 a 加到 b 并赋值给 c ?

复制代码
c=$((a + b))再echo $c
复制代码
重写这个命令,将输出变量转换为复数: item="car"; echo "I like $item" ?

     答:item="car";echo "I like ${item}s"
复制代码
哪个命令将命令替换为大写 ?
答:用tr例如:echo "hello world" | tr 'a-z' 'A-Z'

不用 wc 命令如何计算字符串中的单词数目 ?
#!/bin/bash   脚本解释器为 Bash
string="This is a sample string."
#这一行将字符串 $string 按照空格分割成数组 words,删除多余的空格,数组的每个元素就是一个单词。
words=($string)
# ${#words[@]} 是获取数组长度的方式,即数组 words 中单词的个数。
echo "Number of words: ${#words[@]}"  



如何去除字符串中的所有空格 ?
#!/bin/bash
str="Hello   World"
#'s/ //g' 中的 s 表示替换操作;/ / 是要替换的内容,这里是空格;
#/g 表示全局替换,即一次处理所有匹配;
所以,sed 's/ //g' 的作用是将字符串中的所有空格替换为空,即去除所有空格。
xiaoxiaowang=$(echo $str | sed 's/ //g')
echo $xiaoxiaowang

为新装的客户机配好Yum仓库。
--软件源位于 file:///misc/cd
--通过脚本建立 /etc/yum.repos.d/rhel6.repo 文件
#!/bin/bash
# 定义Yum仓库配置内容
cat <<EOF > /etc/yum.repos.d/rhel6.repo
[rhel6]       软件源的名称
name=Red Hat Enterprise Linux 6        软件源的描述
baseurl=file:///misc/cd
enabled=1         这表示启用该软件源。1 表示启用,0 表示禁用。
gpgcheck=0   gpk检验
EOF
# 确认仓库文件创建成功
if [ -f /etc/yum.repos.d/rhel6.repo ]; then
    echo "/etc/yum.repos.d/rhel6.repo 文件已成功创建。"
else
    echo "创建 /etc/yum.repos.d/rhel6.repo 文件失败。"
fi
相关推荐
聪明的笨猪猪42 分钟前
Java JVM “内存(1)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
_dindong1 小时前
Linux网络编程:Socket编程TCP
linux·服务器·网络·笔记·学习·tcp/ip
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 属性优先级 行内写法 变量选择 笔记42
java·spring boot·笔记
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 总结 热部署 常用配置 笔记44
java·spring boot·笔记
rechol2 小时前
汇编与底层编程笔记
汇编·arm开发·笔记
lzj_pxxw3 小时前
嵌入式开发技巧:舍弃标志位,用宏定义函数实现程序单次运行
笔记·stm32·单片机·嵌入式硬件·学习
润 下4 小时前
C语言——回调函数的典型示例(分析详解)
c语言·开发语言·人工智能·经验分享·笔记·程序人生
朝新_4 小时前
【EE初阶 - 网络原理】传输层协议
java·开发语言·网络·笔记·javaee
koo3644 小时前
李宏毅机器学习笔记27
人工智能·笔记·机器学习
峰顶听歌的鲸鱼4 小时前
1.云计算与服务器基础
运维·服务器·笔记·云计算·学习方法