Linux上机练习题shell程序设计基础

合集下载

linux运维Shell编程入门测试题

linux运维Shell编程入门测试题

linux运维Shell编程入门测试题linux运维Shell编程入门测试题1.【单选题】10分| CentOS默认的shell是()A tcshB kshC bashD csh2.【单选题】10分| 编写shell脚本的标准首行是()A #!/usr/bin/perlB #!/usr/bin/expectC #!/bin/bashD #!/usr/bin/env python3.【单选题】10分| 虽然Linux系统没有文件扩展名的概念,但是我们通常认为以()结尾的文件是shell脚本A exeB docC shD py4.【单选题】10分| 要输出或打印环境变量或其他自定义变量定义的内容时,必须在变量名前加()符号而不能直接使用变量名。

A !C #D $5.【单选题】10分| 下面环境变量()表示获取当前执行的shell脚本的文件名。

A $0B $1C $*D $@6.【单选题】10分| 下面环境变量()表示获取当前执行的shell脚本的第1个参数值。

A $0B $1C $*D $@7.【单选题】10分| 下面哪个变量命名不符合命名规则?A oldboyB 123oldboyC oldboy123D oldboy_training8.【单选题】10分| 默认Centos系统命令行下,执行[ -f /etc/hosts ]echo 1 ||echo 0这条命令,输出结果为()B 0C /etc/hostsD True9.【多选题】10分| 下面哪些命令是bash的内置命令?A historyB cdC echoD cat10.【多选题】10分| 在CentOS6系统中,下面选项哪些是系统变量?A HOMEB PATHC SHELLD USE。

linux shell 练习题

linux shell 练习题

linux shell 练习题Linux Shell 练习题Linux Shell 是一种强大的命令行工具,用于管理和操作 Linux 系统。

它能够帮助用户完成各种任务,从简单的文件管理到复杂的系统配置。

为了提高自己的Shell 技能,下面是一些 Linux Shell 练习题,供大家练习和挑战。

1. 查找文件在 Linux 系统中,我们经常需要查找特定的文件。

请编写一个 Shell 脚本,能够在指定目录下查找包含特定关键词的文件,并将结果输出到一个文件中。

2. 文件备份文件备份是保护数据的重要手段。

请编写一个 Shell 脚本,能够将指定目录下的所有文件备份到另一个目录中,并在备份完成后显示备份的文件列表。

3. 文件统计统计文件中的行数、单词数和字符数是一项常见的任务。

请编写一个 Shell 脚本,能够统计指定文件的行数、单词数和字符数,并将结果输出到终端。

4. 文件排序文件排序是对文件内容进行整理和排序的一种方式。

请编写一个 Shell 脚本,能够对指定文件中的文本内容按照字母顺序进行排序,并将结果输出到一个新文件中。

5. 文件压缩文件压缩是减小文件大小、提高存储效率的一种方法。

请编写一个 Shell 脚本,能够将指定目录下的所有文件压缩成一个压缩包,并显示压缩包的大小。

6. 系统监控监控系统资源的使用情况是保证系统正常运行的重要手段。

请编写一个 Shell 脚本,能够实时监控系统的 CPU 使用率、内存使用率和磁盘空间,并将结果输出到终端。

7. 进程管理管理系统进程是保证系统稳定性和安全性的关键任务之一。

请编写一个 Shell 脚本,能够列出系统中所有正在运行的进程,并提供对进程的管理功能,如杀死指定进程等。

8. 网络连接网络连接是现代计算机的重要组成部分。

请编写一个 Shell 脚本,能够列出系统中所有的网络连接,并提供对连接的管理功能,如断开指定连接等。

9. 系统日志系统日志记录了系统的运行状态和事件信息。

Linux Shell编程复习 题集附答案

Linux Shell编程复习 题集附答案

Linux Shell编程复习题集附答案Linux Shell编程复习题集附答案在本文中,我们将为您提供一份包含答案的Linux Shell编程复习题集。

通过这些题目的练习,您可以加深对Linux Shell编程的理解,并巩固所学知识。

一、基础知识题1. 什么是Shell?Shell是一种解释性的编程语言,用户可以通过Shell来与操作系统进行交互和控制。

答案:Shell是一种解释器,它接收用户的命令并将其转换为操作系统能够理解和执行的形式。

2. 常见的Linux Shell有哪些?答案:常见的Linux Shell有Bash、Zsh、Csh、Ksh等。

3. 如何查看当前使用的Shell是哪种类型?答案:可以使用echo $0命令查看当前使用的Shell类型。

4. 什么是环境变量?如何查看当前的环境变量?答案:环境变量是用来存储系统运行时的配置信息的变量。

可以使用echo $变量名命令查看当前环境变量的值。

5. 如何定义一个变量并给其赋值?答案:可以使用变量名=值的形式来定义并赋值一个变量。

二、基本命令题1. 如何查看当前所在的目录?答案:可以使用pwd命令来查看当前所在的目录。

2. 如何列出当前目录下的所有文件和文件夹?答案:可以使用ls命令来列出当前目录下的所有文件和文件夹。

3. 如何切换到某个目录?答案:可以使用cd命令加上目标目录的路径来切换到某个目录。

例如:cd /path/to/directory。

4. 如何创建一个新的文件夹?答案:可以使用mkdir命令加上目录名来创建一个新的文件夹。

例如:mkdir new_folder。

5. 如何复制一个文件?答案:可以使用cp命令加上源文件和目标文件的路径来复制一个文件。

例如:cp source_file target_file。

三、条件控制题1. 编写一个Shell脚本,判断一个文件是否存在,若存在则输出文件存在,若不存在则输出文件不存在。

linux基础、shell程序设计试卷

linux基础、shell程序设计试卷

linux基础、shell程序设计试卷一、选择题。

(每题1分,共20分)1、一个文件名字为rr.tar.gz,可以用来解压缩的命令是()。

A、tarB、gzipC、compressD、uncompress2、关闭liinux系统(不重新启动)可使用的命令是()。

A、ctrl+alt+delB、haltC、shutdown -r nowD、reboot3、修改ip地址的命令是()。

A、pingB、ifconfigC、arpD、traceroute4、在vi编辑器中的命令模式下,键入()可在光标当前所在行下添加一新行。

A、OB、oC、iD、a5、你使用命令“vi /etc/inittab”查看该文件的内容,你不小心改动了一些内容,为了防止系统出问题,你不想保存所修改内容,你应该如何操作()。

A、在底行模式下,键入:wqB、在底行模式下,键入:q!C、在底行模式下,键入:x!D、在编辑模式下,键入“ESC”键直接退出vi6、删除文件命令为()。

A、mkdirB、moveC、mvD、rm7、假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是()。

A、fileB也随之被删除B、fileB仍存在,但是属于无效文件C、因为fileB未被删除,所以fileA会被系统自动重新建立D、fileB会随fileA的删除而被系统自动删除8、改变文件所有者的命令为()。

A、chmodB、touchC、chownD、cat9、在给定文件中查找与设定条件相符字符串的命令为()。

A、grepB、gzipC、findD、sort10、建立一个新文件可以使用的命令为()。

A、chmodB、moreC、cpD、touch11、对名为file的文件用 chmod 551 file命令进行修改,则它的许可权是()。

A、-rwxr-xr-xB、-rwxr--r--C、-r--r--r--D、-r-xr-x--x12、下面不是对linux操作系统特点描述的是()。

习题07_Shell编程

习题07_Shell编程

习题07_Shell编程一、单选1. 下面哪个命令是用来定义shell的全局变量( D )。

A. exportfsB. aliasC. exportsD. export2.在Shell脚本中,用来读取文件内各个域的内容并将其赋值Shell变量的命令是(D )。

A. foldB. joinC. trD. read3. 当字符串用双引号(’’)括起来时,SHELL将(C )。

A. 解释引号内的特殊字符B. 执行引号中的命令C. 不解释引号内的特殊字符D. 结束进程4. 以下哪个环境变量表示当前路径( B )。

A. PATHB. PWDC. HOMED. ROOT5. shell不仅是(用户命令的解释器),它同时也是一种功能强大的编程语言,(bash )是Linux的缺省shell。

6. 编写的Shell程序运行前必须赋予该脚本文件(执行)权限。

7. 对于Shell脚本程序,若输入参数数量多于9个,则程序遍历每个参数可通过使用(shift )命令实现。

8. 为脚本程序指定执行权的命令及参数是(chmod a+x filename )。

9. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边必有(空格)。

10. 输入了Shell命令的部分字符后按( tab )键可补全其余部分。

11.改变命令提示符的环境变量是(PS1 )。

11. grep -E '[Hh]enr(y|ietta)' file的功能是:(在文件File中查找Henry、henry、Henrietta或henrietta)。

12. 如下为命令终端下的一个截图:则,以下两句的执行结果是:(the home path is $HOME )。

path=‘the home path is $HOME’echo $path13. 以下为程序名为prog的程序内容。

则sh prog a b c d的执行结果为( C )。

set A B C Dshiftshiftecho $1三、简答1. 下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。

Linux上机练习题shell程序设计基础

Linux上机练习题shell程序设计基础

上机实习题:1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev目录下。

a#!/bin/bashdirectory=/devfor file in /bin/a2pdoif [ -f $file ]thencp $file $directory/$file.bakFidone2.编写一个 shell 脚本,完成功能: 1)显示文字“Waiting for a while….”2)长格式显示当前目录下面的文件和目录,并输出重定向到/home/file.txt 文件 3)定义一个变量,名为 s,初始值“Hello” 4)使该变量输出重定向到/home/string.txt 文件 m#!/bin/bashecho "waiting for a while… "ls -l.>/home/file.txts=helloecho $s > /home/string.txt3.编写一个 shell 脚本,它把第二个位置参数及其以后的各个参数指定的文件复制到第一个位置参数指定的目录中。

b#!/bin/bashdir=$1shiftwhile [$1]dofile=$1cp $1 $dirshiftdonels $dir4.编写一个 shell 脚本,利用 for 循环将当前目录下的.c 文件移动到指定的目录,并按文件大小显示出移动后指定的目录的内容。

d#!/bin/bashfor file in *.c{mv /$file/bin/a}ls -lS /bin/a5.利用数组形式存放 10 个城市的名字,然后利用 for 循环把它们打印出来。

c#!/bin/bashcity=(jinan,qingdao,rizhao,weifang,beijing,shanghai,shenzhen,guangzhou,chongqi ng,nanjing)for i in ${name[*]}doecho $idone6.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。

linux操作题及答案 shell练习题

linux操作题及答案    shell练习题

1.用Shell编程,判断一文件是不是只读文件,如果是将其拷贝到 /dev 目录下。

2.设计一个shell程序,添加一个新组为keji,然后添加属于这个组的30个用户,用户名的形式为usxx,其中xx从01到30。

3.编写shell程序,实现自动删除20个账号的功能。

账号名为us01至us20。

4.设计一个Shell程序,在根目录下建立20个目录,即user1~use r20,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

5、显示传统方式的九九乘法表7、十分钟后系统自动在root目录下新建一子目录test,并将root 目录中的hello.c将文件拷贝到该目录6.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:(1)在下午3 :20删除/ti目录下的全部子目录和全部文件;(2)每逢星期三下午4:30将/kk目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;(3)在下午5:55将IDE接口的CD-ROM卸载(假设:CD-ROM的设备名为hdc);1.read –p “please input a file:” Fif [ -r $F ]thencp $F /dev/fi2.①groupadd kejii=1while [ $i –le 30 ]do`if [$i –le 9 ]then USER=us0$ielse USER=us$ifiuseradd –g keji $USERi=$[$i+1]done②groupadd kejii=1while [ $i –le 9 ]douseradd –g keji us0$ii=$[$i+1]donewhile [ $i –le 30 ]douseradd –g keji us$ii=$[$i+1]done3.①. i=1while [ $i –le 20 ]doif [$i –le 9 ]then USER=us0$ielse USER=us$ifiuserdel $USERi=$[$i+1]done②i=1while [ $i –le 9 ]douserdel us0$ii=$[$i+1] donewhile [ $i –le 20 ]douserdel us$ii=$[$i+1]done4.cd /i=1while [ $i –le 20 ]domkdir –m 754 user$ii=$[$i+1]done5①#! /bin/shfor i in 1 2 3 4 5 6 7 8 9dofor j in 1 2 3 4 5 6 7 8 9doif ( test $j -le $i ) thenecho -ne `expr $i …X‟ $j`=$(expr $i \* $j) "\t"fidoneecho –ne “\n”done②for I in `seq 1 9`dofor j in `seq 1 $i`doecho –n “ $i*$j=$(expr $i \* $j) ”doneecho –e “\n”done6.①建立普通文件job120 15 * * * rm –r /ti/30 16 * * 3 tar –czvf backup.tar.gz /kk55 17 * * * umount /dev/hdc②生成crontab文件crontab job1检验方法:/var/spool/cron查看有没有job1 7.①生成普通文件job2mkdir –p /root/testcp –r /root/hello.c /root/test/②使用at命令at –f job2 now+10minutes。

Linux编程_Shell脚本练习题

Linux编程_Shell脚本练习题

Linux编程_Shell脚本练习题1,编写shell脚本,计算1~100的和。

#! /bin/bashsum=0for i in `seq1100`;dosum=$[$i+$sum]doneecho $sum2,编写shell脚本,输⼊⼀个数字n并计算1~n的和。

要求:如果输⼊的数字⼩于1,则重新输⼊,直到输⼊正确的数字为⽌。

#! /bin/bashread -p "input number:" nsum=0;for((i=0;i<=$n;i++))dosum=`expr $sum + $i`doneecho $sum3,编写shell脚本,批量建⽴⽤户user_00、user_er_99。

要求:所有⽤户同属于users组。

#! /bin/bashgroupadd usersfor i in `seq -w09uesradd -g users user_0$i4done4,编写shell脚本,批量添加⽤户 jsj01-jsj09、jsj10-jsj99。

#! /bin/bashfor((i=1;i<20;i++));doif(i<10);thenjsj="jsj0$i";elsejsj="jsj$i";fiuseradd $jsjdone5,编写shell脚本,要求实现如下功能:当执⾏⼀个程序的时候,这个程序会让使⽤者选择boy或者girl;如果使⽤者输⼊B或者b时,就显⽰:He is a boy;如果使⽤者输⼊G 或者g时,就显⽰:He is a girl;如果是除了B/b/G/g以外的其他字符,就显⽰:I don’t know。

#! /bin/bashecho -n your choice:read choicecase $choice ing)echo"She is a girl.";;G)echo"She is a girl.";;b)echo"He is a boy.";;B)echo"He is a boy.";;*)echo"I don't know.";;esac6,编写shell脚本,实现两个变量之间的加减乘除运算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上机实习题:
1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev
目录下。

a
#!/bin/bash
directory=/dev
for file in /bin/a2p
do
if [ -f $file ]
then
cp $file $directory/$file.bak
Fi
done
2.编写一个 shell 脚本,完成功能: 1)显示文字“Waiting for a while….”
2)长格式显示当前目录下面的文件和目录,并输出重定向到
/home/file.txt 文件 3)定义一个变量,名为 s,初始值“Hello” 4)使该变量输出重定向到/home/string.txt 文件 m
#!/bin/bash
echo "waiting for a while… "
ls -l.>/home/file.txt
s=hello
echo $s > /home/string.txt
3.编写一个 shell 脚本,它把第二个位置参数及其以后的各个参数指定的文
件复制到第一个位置参数指定的目录中。

b
#!/bin/bash
dir=$1
shift
while [$1]
do
file=$1
cp $1 $dir
shift
done
ls $dir
4.编写一个 shell 脚本,利用 for 循环将当前目录下的.c 文件移动到指定
的目录,并按文件大小显示出移动后指定的目录的内容。

d
#!/bin/bash
for file in *.c
{
mv /$file/bin/a
}
ls -lS /bin/a
5.利用数组形式存放 10 个城市的名字,然后利用 for 循环把它们打印出
来。

c
#!/bin/bash
city=(jinan,qingdao,rizhao,weifang,beijing,shanghai,shenzhen,guangzhou,chongqi ng,nanjing)
for i in ${name[*]}
do
echo $i
done
6.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30
个用户,用户名的形式为stdxx,其中xx从01到30。

f
!/bin/bash
groupadd class1
for ((i=1;i<=30;i++))
do
if [ $i -lt 10 ];then
username="std0"$i
else
username="std"$i
fi
useradd -G class1 $username
done
7.编写shell程序,实现自动删除50个账号的功能。

账号名为stud1至stud50。

#!/bin/bash
i=1
while [$i-lt10];do
if [$i-ne10];then
uesrdel stud0${i}
else
usedel stud${i}
fi
i='expr $i+1'
done
8.请写出下列程序在命令行执行#./task3 100 Fran USA Eng China
运行后的结果(程序名为task3)。

#!/bin/bash
echo “received $# params.”
echo “program is:$0”
echo “Arg1 is:$1”
shift
shift
echo “Arg2 is:$1”
echo “Arg3 is:$3”
9.设计一个菜单驱动程序。

如下:
Use one of the following options:
P: To display current directory
S: To display the name of running file
D: To display today’s date and present time
L: To see the listing of files in your present working directory W: To see who is logged in
Q: To quit this program
Enter your option and hit :
菜单程序将根据用户输入的选择项给出相应信息。

要求对用户的输入忽略大小写,对于无效选项的输入给出相应提示。

要求使用case语句实现以上功能,输入响应的字母后应该执行响应的命令完成每项功能,如输入P,就执行pwd命令。

#! /bin/sh
# mymenu.sh
echo "use one of the following options:"
echo "D:To display today's date and present time"
echo "L:To see the listing of files in youy present working directory"
echo "W:To see who is logged in"
echo "Q:To quit the program"
read option
case "$option" in
D) date;;
L) ls;;
W) who;;
Q) exit 0;;
*) echo "invalid option:try running the program again" exit 1;;
esac
exit 0
~。

相关文档
最新文档