第一周 系统状态查看工具;文本文件处理
《第一周单元测验》(一)
1、下面哪些部件不是一台物理上的字符终端必须具备的?
A、以太网网卡
B、磁盘存储器
C、串行通信口
D、显示器
E、键盘
2、C语言编写的应用程序,通过printf打印一个换行符\n,但在终端上执行的是回车加换行\r\n,把换行符替换为回车换行是由下面哪个软件模块完成的?
A、Linux内核中的行律模块
B、终端上的接收程序进行加工
C、Linux的串口驱动程序
D、应用程序中的C语言函数库
E、C语言实现printf功能的动态链接库
3、Linux超级用户的用户名为:
A、root
B、administrator
C、admin
D、supervisor
4、了解系统当前的时间是几点几分,使用下列哪个命令?
A、date
B、time
C、ntptime
D、cal
E、calender
5、下面哪个命令可以获得某进程占用的逻辑内存大小?
A、top
B、ps
C、vmstat
D、free
E、uptime
6、下面哪个命令可以了解目前系统CPU的空闲情况?
A、uptime
B、vmstat
C、top
D、who
E、free
F、ps
7、终端仅仅是Linux主机的一个外部设备,不分担存储和计算工作。
8、传统的终端与Linux主机之间传输的是字节流。
9、终端转义序列的意义在于终端收到某一特定字符序列后执行一些约定好的控制功能,而不是把这些字符显示在显示器上。
10、在终端按下Ctrl-C按键一般会导致一个死循环程序中止运行,这是因为按下Ctrl-C之后终端并不向Linux输送字符,而是通过RS232接口的一条特殊信号线通知Linux主机,将进程终止。
11、系统在创建用户的时,可以指定这个用户登录成功后执行哪个命令,一般是shell,也可以是程序员自己开发的软件,甚至shutdown。
12、Linux命令不区分字母的大小写,一般习惯用小写字母。
13、直接执行bc命令,后面不带任何选项,除法计算时保留小数点后20个有效数字。
14、Linux中超级用户的权限很大,可以读取普通用户的口令值。
15、ps列出的进程启动时间STIME和占用CPU的时间TIME,一般来说TIME值等于当前时间减STIME得数。
16、Linux把物理终端,或者虚拟终端,都处理成设备文件。只要写这个设备文件,就会把数据发送到终端的显示屏幕上。
17、ps命令显示进程占用内存的大小SZ,这表示该进程占用了多少物理内存。
18、free命令报告处于free状态的内存非常低,这意味着系统内存配置不足。
《第一周单元测验》(二)
1、使用more命令逐屏显示文本文件时,使得显示内容上滚一行而不是滚动一屏,应按下哪个键?
A、回车
B、空格
C、向下的箭头键
D、Esc键
E、Ctrl-L
2、使用less命令逐屏显示文本文件时,使得显示内容上滚一行而不是滚动一屏,应按下哪个键?
A、回车
B、向下的箭头键
C、Esc键
D、空格键
E、Ctrl-L
3、Linux中用来实现计数功能,比如:统计系统有多少个登录用户,实现计数功能的命令是:
A、wc -l
B、uniq -c
C、sort -n
D、count
E、cnt -s
4、Linux使用|符号连接两个命令使用管道机制,设计管道机制的目的是:
A、将前一个命令的输出作为下个命令的输入,提供更灵活的功能
B、为了使得一个命令可以处理多个文件中的数据
C、为了多个数据文件的处理并行进行
D、强制多个数据文件的处理按照串行方式逐个处理
5、uniq命令可以通过它的选项,选择打印所有只出现一次的行,或者打印出现不只一次的行,或者两种都选。但无论哪种情况,重复出现的行最多只能打印一次。
6、一个应用程序的C语言源程序通过printf语句在标准输出输出信息,运行时只要使用输出重定向机制,不需要修改原先的程序加入文件操作的代码,就可以把输出结果存入指定名字的文件。
7、less命令时more命令的一个简化版本,精简后功能比more弱,但更节约内存和CPU
8、od命令可以实现用16进制方式逐字节打印一个文件内容的功能,但要求文件的每个字节必须是可打印字符。
9、tail命令的-f选项可以让tail命令持续运行下去,持续地将它操作的文本文件新增的数据显示出来。如果这个文本文件被其他进程随时间推移断断续续追加几行,tail也会断断续续地输出这些新增的内容。
10、可以为tee命令提供一个文件名abc.log,例如:xyz | tee abc.log 那么,通过管道的方式可以把前面xyz命令的输出结果在当前终端上显示的同时也存入磁盘文件abc.log,可供事后查阅。如果以某用户正在使用的终端的设备文件名(如/dev/pts/2)代替文件名abc.log,那么,这个xyz命令执行时的输出就会同时在两个终端上实时显示。就算是把前面的xyz命令换成vi也是完全可能的,也就是说完全可能在第二个终端上实时看到第一个终端上的编辑画面。
11、信息由一个个字节组成,tr命令处理这些信息时,可以将256种字节值中的255种取值“翻译”为另一个字节值,唯有字节值为0时无法转译,因为一个字节的8个比特全为零被用作字符串结尾。
12、不带任何选项的uniq命令消除数据中重复的行。一旦某一行出现过,uniq会记录下来,以后无论这一行在以后什么地方再次出现,输出时都会被忽略,保证数据的唯一行。
13、信息由一个个字节组成,tr命令处理这些信息时,可以将256种字节值中的任何一种取值“翻译”为另一个字节值,并且不限于可打印字符之间的转译,比如把换行符替换为斜线。
第三周 文件比较;vi;文件通配符
《第三周单元测验》
1、vi处于文本输入状态时,按下下列哪个按键可以返回命令状态?
A、Esc
B、^
C、$
D、%
E、.
F、/
2、vi处于命令状态时,按下下列哪组按键可以把正在编辑的内容保存到磁盘上?
A、ZZ
B、:wq回车
C、:w回车
D、Ctrl-S
E、zz
F、Ctrl-G
G、Ctrl-Z
3、Linux终端按下Ctrl-S按键后,导致终端被锁死,必须按下下列哪个键才能恢复?
A、Ctrl-Q
B、F5
C、Insert
D、Alt-S
E、Ctrl-Z
F、Ctrl-D
G、Ctrl-C
H、End
I、Home
4、在windows中*.*可以匹配所有文件,但在Linux有的文件名与*.*不匹配,下列哪个不匹配? abc Makefile .profile comp.exe sort.c find.obj readme.text admin-ver3.1.2sp.tar
A、abc
B、Makefile
C、.bash_profile
D、comp.exe
E、sort.c
F、output.obj
G、readme.text
H、admin-2.1.4sp.tar
5、md5sum计算出位于两台不同计算机上的两文件的校验和是相同的,我们就认为两个文件的内容是完全相同的,无论这两个文件有多大。两计算机之间仅交换16字节的校验和就可以完成文件内容的比较。
6、diff命令可以求出两个文件中的差异,无论文件是而二进制的数据文件,还是文本文件。
7、diff命令的输出有normal和unified等格式选择,无论哪种格式,都能表达出从一个文本文件迁移到另外一个文本文件需要增加,修改和删除哪些文本行。
8、diff命令的默认输出格式为normal格式,输出格式与流行的版本管理软件git相同。
9、Linux与Windows系统文本文件的存储格式完全一样。
10、中文UTF-8编码是常见编码形式GBK编码的一个超集,是对GBK编码的扩展,完全兼容GBK。
11、Linux文件名由若干字符构成,某些有特殊用途的字符,如:*|():等,不允许用做文件名。
第四周 文件管理和目录管理
《第四周单元测验》
1、ls –l未能列出下面哪个文件属性?
A、文件类型
B、文件主
C、文件占用多少存储空间
D、文件最后一次修改时间
2、查找子目录src下所有后缀为.txt的文件执行dos2unix命令,把文件从Dos格式转换为Linux格式,正确的命令是
A、find src \*.txt –exec dos2unix {} \;
B、find src “*.txt” –exec dos2unix {} \;
C、find src \*.txt –exec dos2unix {}\;
D、find src “*.txt” –exec dos2unix { } \;
E、find src \*.txt –exec dos2unix {};
F、find src “*.txt” –exec dos2unix { }\;
G、find src *.txt –exec dos2unix { } ;
3、ls与ls *的输出结果是一样的,都是列出当前目录下所有文件和子目录。
4、命令cp src/*.[ch]可以把src目录下的C语言源程序文件拷贝到当前目录。
5、rm命令的-f选项是force:“强制删除”,可能会将只读文件强制删除不给出任何提示。
6、rm命令的–r选项是递归(resursion)的意思,rm -rf *命令能把当前目录下的所有文件都删除。
7、pwd和cd都是shell的内部命令,而且不可能设计成外部命令。
8、cp命令的-r选项可以实现增量拷贝,也就是说,如果目的端文件存在并且最后一次修改时间晚于或者等于源端文件,那么这次拷贝动作被忽略,否则,就执行拷贝动作。
9、使用find命令的-exec选项启用一个命令处理符合条件的文件,比find结合xargs的方式,花费更多的CPU时间。
10、tar命令输出文件的后缀必须符合规定,为.tar,.tar.gz, .tgz, .tar.bz2等,否则无法解包。
第五周· Linux命令风格;文件系统
《第五周单元测验》
1、与windows中“格式化磁盘”功能相对应的Linux命令是
A、mkfs
B、mount
C、dd
D、fdisk
E、format
2、在Linux文件系统中,文件名也存放在磁盘上,存放于磁盘的下述哪个区域
A、引导块
B、管理块
C、节点区
D、文件存储区
3、传统Linux的i节点中不包括下面哪个时间?
A、诞生(birth)时间btime
B、修改(modify)时间mtime
C、C改变(change)时间ctime
D、访问(access)时间atime
4、一个命令可以从命令行参数中获取处理选项,也可以从环境变量中获取,这些选择是命令设计者做出的,操作系统没有强行限制。
5、命令ln只允许对普通文件建立硬链接,不允许对目录建立硬链接,所以,所有目录的link数均为1
6、Linux不允许对目录执行硬链接以构成更加灵活的网状目录组织方案,是因为文件系统的存储结构的局限性导致了这种现象的发生,目录组织被迫只能局限为树状层次结构。
7、所有符号链接可以实现的功能,都可以通过硬连接实现。
8、符号链接的内容可以是“绝对路径”也可以是“相对路径”,相对路径指的是相对于符号链接文件所处位置,而不是相对于进程的当前工作目录。
9、无论采用符号链接还是硬链接,都可以实现将只存储一份的数据文件同时加入到两个或两个以上不同目录中。
10、系统调用的返回值为0,表示系统调用失败,非0表示成功。系统调用失败时可以通过全局变量errno获取失败原因
第六周 文件和目录的权限;Shell的基本机制
《第六周单元测验》
1、修改已有文件的权限使用的命令是
A、chmod
B、chown
C、umask
D、chgrp
2、进程新创建的文件的权限受下列哪个系统调用的影响?
A、umask
B、chmod
C、chown
D、stat
3、在交互式bash的命令提示符下输入!v并按下回车,其功能是:
A、引用别名机制,执行别名v定义的功能
B、引用历史机制,重复执行最近输入的以v开头的命令
C、引用历史机制,重复执行最近命令中含有v字符的命令
D、在别名表中取消别名v的定义
4、bash的重定向符<<
A、指定一个定界符,脚本文件中两个定界符之间的信息作为命令的标准输入
B、读取前一命令刚刚读过的文件的剩余部分作为命令的标准输入
C、将重定向符后面的单词作为这个命令的标准输入
D、将重定向后面的单词作为一个文件名,将这个文件的全部内容作为命令的标准输入
5、在Linux中用户可以把他的某个文件设置为他本人不可以读、写、执行,但是与他同组的人可以读、可以执行,即使他是该组的成员之一也无法读取文件。
6、Linux中如果文本文件具有可执行属性,那么运行时需要启动一个程序逐行解释执行文本文件(脚本)中的文本行。选择哪个程序解释脚本中的文本行,可以自包含在脚本程序中,而不是仅仅依靠文件名后缀选择解释程序。
7、对于目录来说,x权限没有意义。所以,一个目录有无x权限,不影响对目录的访问。
8、一个文件如果具有只读权限,也就是权限为r--r--r--,那么,不允许任何人修改这一文件的内容,也就意味着文件不可以被删除。
9、命令执行时在终端上显示的信息有些属于标准输出stdout,有些属于标准错误输出stderr。显示信息到底属于stdout还是stderr,这取决于命令提供者如何设计的程序,与操作员无关。
10、命令./myap 2>&1 | more可以把stderr合并到stdout并且每显示满一屏后暂停显示,等待操作员按键;类似的,命令./myap 2>&1 >myap.log可以把stderr合并到stdout,终端上不会再显示信息,本来在终端上显示的信息全部存入文件myap.log中。
第七周 替换、元字符和转义
《第七周单元测验》
1、bash通过“替换”提供灵活性,下述哪个不属于基本bash替换
A、正则表达式替换
B、变量替换
C、文件名生成
D、命令替换
E、别名替换
F、历史替换
2、下列哪个字符不属于bash的元字符
A、#
B、/
C、%
D、<
E、&
F、\
G、$
H、"
I、,
3、下列哪个字符不属于bash的元字符
A、@
B、{
C、:
D、.
E、>
F、|
G、*
H、;
4、bash中的变量跟C语言中的变量不同,变量赋值和使用之前不需要变量类型定义,变量存储的内容只是字符串,字符串长度不定。
5、bash变量有环境变量和局部变量两种类型,环境变量与全局变量一样,在其生命期内,某个进程对环境变量的修改结果其他进程可见。
6、无论是C语言编写的源程序经编译链接得到的可执行文件还是bash脚本,都能访问环境变量得到其取值,而环境变量的创建与赋值可以一直推迟到相关的可执行程序运行之前由操作员完成。
7、环境变量PATH的值有特别的含义,一般不会把当前目录.或者上一级目录..作为PATH的分量,主要是出于多用户环境下的安全考虑。
8、bash脚本程序的后缀必须是.sh,否则即使把文件权限设置为“可执行”,也无法正常运行。
9、单引号与双引号的区别在于,双引号括起来的这部分文字中取消了所有元字符的特殊含义只维持其字面值,而单引号与双引号类似,但保留了少数几个元字符维持其特殊含义,以便于保持灵活的替换。
10、echo \*和echo '*'以及echo "*"三个命令的执行结果是一样的,echo命令根本无法区别操作员输入的是这三个命令中的哪一个。
第八周 shell流程控制:条件、循环与函数
《第八周单元测试》
1、将下列bash代码改写为功能等价的代码,正确的是: if test -w errfile then cat errfile >> $LOGFILE rm errfile fi
A、[ -w errfile ] && { cat errfile >> $LOGFILE;rm errfile;}
B、if test -w errfile then cat errfile >> $LOGFILE rm errfile fi
C、if [ -w errfile ] { cat errfile >> $LOGFILE rm errfile }
D、if test -w errfile; then { cat errfile >> $LOGFILE; rm errfile;}
2、下述命令的输出结果是什么? expr `pwd` : '^/\([^/]*\).*$'
A、获取当前工作目录的路径名的第一个分量
B、获取当前工作目录的路径名的最后一个分量
C、获取当前工作目录的路径名字符串的长度
D、输出结果为空字符串
3、每隔3秒钟一次列出文件data.txt的大小,不正确的程序为:
A、while sleep 3;do ls -l data.txt;done
B、while true; do sleep 3; ls -l data.txt; done
C、while true do ls -l data.txt sleep 3 done
D、while true do sleep 3 ls -l data.txt done
4、bash输入下列一行回车后导致当前bash终止运行,下面哪个说法是正确的? a() { a;};a
A、系统资源发生了死锁
B、将左花括号与a之间的空格删掉,bash就不会异常中止
C、缺少递归出口,导致函数的无穷递归,最终耗尽了CPU资源,bash异常中止
D、这段程序语法错误,导致bash异常中止
5、如何在bash中增加注释文字?
A、以#领头,直到行尾的文字都视为注释
B、以//领头,直到行尾的文字都视为注释
C、以;领头,直到行尾的文字都视为注释
D、以/*和*/包裹的内容都视为注释
6、C语言程序中子程序main的返回值是一个整数,这个返回值无法被当前进程的代码引用,但是可以被父进程利用。父进程用来判断子进程退出的状态。在bash中,将子进程main函数的返回值用于判断命令执行成功与否的条件判断,main函数返回非0为成功,返回0为失败。
7、bash支持复合条件,也就是条件的“与”以及“或”,分别用符号&&和||连接两个命令。
8、bash中可以使用花括号{}或圆括号()将若干个命令组合为一个复合命令,两者的区别在于花括号方式会在新的子shell中顺序执行这一组命令中的各个命令,圆括号方式是在当前shell进程中执行。
9、bash的内部命令eval可以把程序运行期间实时生成的数据当成程序来运行。
10、由于for是bash的内部命令,就如同C语言中的保留关键字一样,系统不可以设计一个名字为for的可执行文件。因为即使有名为for的可执行文件,也无法将其投入运行,操作员在交互式bash输入的一行的第一个单词是for,就会被bash解释为for循环控制。