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