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展示

相关推荐
海绵宝宝转agent20 分钟前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
Ruiery27 分钟前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包29 分钟前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
每天都要写算法(努力版)35 分钟前
【行业前沿报告】DAgger:让智能体在自己走到的状态上学习
人工智能·学习·机器学习
MicrosoftCloud1 小时前
用户权限 04|/etc/sudoers 安全配置:从最小授权到「别把 ALL 随便给人」
运维·安全·ubuntu·sudo·sudoers
wjkjpcba2 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭2 小时前
达梦事物特性及MVCC
linux·运维·数据库
亚川楼宇自控系统数据中心厂家4 小时前
实验室智能化管理系统|人环物智一体化管控平台
运维
羔羊++4 小时前
18_实验十七_其他命令与自定义启动变量
linux
sunshine22 girl4 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习