Linux-Part8-考试(学习Linux第8天)

LINUX测试题

一·选择题(每题3分,共计30分)

1.Linux文件权限一共10位长度,分成四段,第三段表示的内容是( C)

A. 文件类型

B. 文件所有者的权限

C. 文件所有者所在组的权限C

D. 其他用户的权限

2.以下描述哪个是不正确的?( D )

A. ps -aux 查看所有用户所有进程;ps -ef 查看子父进程之间的关系

B. /etc/profile文件对所有用户设置;~/.bash_profile只对当前用户设置

C. cmd1&&cat f1.txt > f2.txt,该命令表示当命令cmd1成功执行,则将f1.txt复制成f2.txt

D. kill -9 和kill -15后面跟进程号都可以杀死进程,kill -15是强行杀死一个进程

3.如何删除目录/tmp下的所有文件及子目录(D )。

A、del /tmp/
B、rm -rf /tmp
C、rm -Ra /tmp/
D

D、rm -rf /tmp/*

4.电信用户报告说,有一个号码为35298286的固定电话的话单市话费用计算错误,请你协助在LS_CALL_200605030052这个文本话单文件中查找固定电话35298286在5月3日这天打出的所有市话话单的原始信息,请问选择下列的哪行命令可以满足用户提出的这个要求?( D )

A、find 35298286 LS_CALL_200605030052

B、more 35298286 LS_CALL_200605030052

C、cmp 35298286 LS_CALL_200605030052

D、grep 35298286 LS_CALL_200605030052

5.有一个备份程序mybackup,需要在周一至周五下午1点和晚上8点各运行一次,下面哪条crontab的项可以完成这项工作?( B )

A. 0 13,20 * 1,5 mybackup
B. 0 13,20
1,2,3,4,5 mybackup
C.
13,20 * 1-5 mybackup
D. 0 13,20 1,5
* mybackup

6.chmod a=rwx /opt/test该命令修改权限设置的结果是什么?( B )

A. 731 B. 777 C. 640 D. 650

7.你使用命令"vim/etc/inittab查看该文件的内容,你不小心改动了一些内容,为了防止系统出问题,你不想保存所修改内容,你应该如何操作( B )

A、在末行模式下,键入:wq

B、在末行模式下,键入:q!

C、在末行模式下,键入:x!

D、在编辑模式下,键入"ESC"键直接退出vim

8.如果想列出当前目录以及子目录下所有扩展名为.txt的文件,那么您可以使用的命令是( B )。

A. ls .txt    B. find ./  -name ".txt" C. ls --d .txt       D. find ./ ".txt

9.哪个目录存放用户密码信息( B )

A、/boot

B、/etc

C、/var

D、/dev

10.什么命令解压tar文件?( B)

A. tar -czvf filename.tgz B. tar -xzvf filename.tgz

C. tar -tzvf filename.tgz D. tar -dzvf filename.tgz

二、编程题(共70分)

1.根据输入的数字运行命令:(1:查看当前时间 2:查看网卡信息 3:查看当前用户4:查看当前目录下的文件)输入其他数字则给出提示控制输入的数字范围。附上所有代码和截图。(10 分)

(1)查看当前时间

date

(2)查看网卡信息

cat /etc/sysconfig/network-scripts/ifcfg-ens33

(3)查看当前用户

echo "$USER"

(4)查看当前目录下的文件

ls

2.编写一个脚本,读取学生分数,结果输出学生的等级的个数(A:90+, B:80+, C:70+, D:60+, F:60以下)。附上所有代码和截图 (10 分)

touch students.txt

bash 复制代码
m(){
    if [ $1 -ge 90 ]
    then 
        echo "A"
    elif [ $1 -ge 80 ]
    then
        echo "B"
    elif [ $1 -ge 70 ]
    then
        echo "C"
    elif [ $1 -ge 60 ]
    then
        echo "D"
    else
        echo "F"
    fi
}



sores=`sed -n '2,$ p' /root/students.txt \
| awk -v FS="," '{print$NF}'`

for i in $sores
    do
    echo "`m $i`"
    done \
| echo "A等:`grep -c "A"`人"

for i in $sores
    do
    echo "`m $i`"
    done \
| echo "B等:`grep -c "B"`人" 
for i in $sores
    do
    echo "`m $i`"
    done \
| echo "C等:`grep -c "C"`人" 
for i in $sores
    do
    echo "`m $i`"
    done \
| echo "D等:`grep -c "D"`人" 
for i in $sores
    do
    echo "`m $i`"
    done \
| echo "F等:`grep -c "F"`人" 
3.编写一个函数,传入一个参数,参数为一个字符串变量str,其内容为"关羽,张飞,大乔,刘备,谷爱凌,曹操,夏侯淳,小乔,李典,周瑜,孙坚",逐行显示出来每个名字,并且在显示大乔和小乔的时候追加是靓女,显示谷爱凌的时候追加是冠军,显示其他姓名时显示是靓仔,最后再打印输出靓女、靓仔、冠军的数量。附上所有代码,并将运行结果截图。(25分)
bash 复制代码
name="关羽,张飞,大乔,刘备,谷爱凌,曹操,夏侯淳,小乔,李典,周瑜,孙坚"

name=`echo "$name" \
| sed 's/,/,\\n/g' \
| sed 's/孙坚/孙坚,/g'`

nameplass=`echo "$name" \
| sed 's/大乔,/大乔,靓女/g' \
| sed 's/小乔,/小乔,靓女/g' \
| sed 's/谷爱凌,/谷爱凌,冠军/g' \
| sed "s/,$/,靓仔/g"`

echo "=================="
echo "$nameplass"
echo "=================="
echo "靓女的数目:`echo "$nameplass" | grep -c "靓女"`"
echo "靓女的数目:`echo "$nameplass" | grep -c "冠军"`"
echo "靓女的数目:`echo "$nameplass" | grep -c "靓仔"`"
echo "=================="
4.编写shell脚本,将数据文件movie.txt, 清洗成movie.csv格式(注意分数需要降序排序,标题里面需要保留空格),把csv文件使用mysqlcsv.sh(需要附上此文件代码)导入到数据库中。 附上所有代码,并将处理结果及导入数据库结果截图。(25分)

touch movie.txt

(1)清洗

bash 复制代码
sed 's/\[{//g' /root/movie.txt \
| sed 's/}\]//g'  \
| sed 's/}, {/\n/g' \
| sed 's/ //g' \
| sed "s/':'/,/g" \
| sed "s/':/,/g" \
| sed "s/'//g" \
| sort -t "," -nrk 20 \
| awk -v FS="," -v OFS="," 'BEGIN{print"id,title,release_date,score"}{print$8,$10,$14,$20}' \
> /root/movie.csv

(2)导入数据库

bash 复制代码
cp /root/movie.csv /usr/local/mysql/data/movie.csv

host="127.0.0.1"
port="3306"
user="root"
passwd="root123456"
dbname="test"

ways1="drop table if exists movie"

name="`sed -n '1 p' /root/movie.csv | sed 's/,/ varchar(100),\\n/g'` $name varchar(100)"
ways2="create table if not exists movie
 (
$name
 )"

 ways3=" LOAD DATA INFILE '/usr/local/mysql/data/movie.csv' INTO TABLE movie
 CHARACTER SET utf8
 FIELDS TERMINATED BY ','
 LINES TERMINATED BY '\n'
 IGNORE 1 LINES"

ways4="select * from movie"

mysql -h$host -P$port -u$user -p$passwd $dbname -e "$ways1"
mysql -h$host -P$port -u$user -p$passwd $dbname -e "$ways2"
mysql -h$host -P$port -u$user -p$passwd $dbname -e "$ways3"
mysql -h$host -P$port -u$user -p$passwd $dbname -e "$ways4"
echo "运行完毕"

(3)DBeaver展示

相关推荐
DXM052125 分钟前
牟乃夏《ArcGIS Engine地理信息系统开发教程》学习笔记3-地图基本操作与实战案例
开发语言·笔记·学习·arcgis·c#·ae·arcgis engine
程序员JerrySUN36 分钟前
驱动开发硬核特训 · Day 21(上篇) 抽象理解 Linux 子系统:内核工程师的视角
java·linux·驱动开发
雨声不在1 小时前
debian切换用户
linux·服务器·debian
不知名。。。。。。。。1 小时前
Linux—— 版本控制器Git
linux·运维·git
遇到我又惊又喜1 小时前
佛山大旺高新区3650 M5 ERP服务器维修案例
运维·服务器
qsmyhsgcs2 小时前
Java程序员转人工智能入门学习路线图(2025版)
java·人工智能·学习·机器学习·算法工程师·人工智能入门·ai算法工程师
内网渗透2 小时前
OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享
linux·docker·容器·openwrt·软路由
Humbunklung2 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(常用类矩阵QRectF)
笔记·python·学习·pyqt
易保山2 小时前
MIT6.S081 - Lab11 networking(网络栈)
linux·操作系统·c
安全系统学习3 小时前
网络安全之红队LLM的大模型自动化越狱
运维·人工智能·安全·web安全·机器学习·php