Linux复习

Linux复习
Linux复习

第六章

8、将$CATALINA_HOME/bin目录添加到PA TH环境变量中。

export PATH=$CATALINA_HOME/bin:$PATH

11、编写脚本打印*、^、?、+、&、`、$等符号的语句,使用转义符和单引号两种方法实现

#!/bin/bash

echo '* ^ ? + & ` $'

echo \* \^ \? \+ \& \` \$

12、将例6-33命令中的双引号去掉,运行该命令,观察出现的结果,并分析其原因

第七章

1、首先使用一个正确的shell命令,用变量$?测试其推出状态,然后使用一个错误的shell 命令,用变量$?测试其推出状态。

正确的命令退出状态为0,错误的命令非。

2、初始化两个变量值,然后利用整数比较运算符比较这两个变量的大小,并用echo变量测试退出状态。

[ 5 > 4 ] echo 测试状态为1 [ 5 < 4 ] 测试状态为0

3、初始化一个字符串,然后测试文件是否为空;然后在初始化一个字符串,比较这两个字符串是否相等。

Str1=””

Test “$str1”

Echo $? 结果为1 当字符串为空的时候,结果为1,否则为0

Str1=”as” str2=”as”

[ “$str1” = “$str2” ]

Echo $? 相等为0 否则为1

4、创建一个文件或目录,然后测试其是文件还是目录,如果创建的是文件,则测试该文件是否可读。可执行,并测试其退出状态。

Test -d 文件名是目录则是结果0 否则为1

Test -x 文件名可执行文件结果0 否则为1

Test -r 文件名可读文件结果为0 否则为1

Test -w 文件名可写文件结果0 否则为1

5、上机运行7.2.5节中关于逻辑非、逻辑与和逻辑或的例子,体会一下逻辑与和逻辑或的区别。

[ 5 -gt 4 ] 5大于4结果为0 [ ! 5 -lt 4 ] 结果为1

[ 5 -gt 4 -a ! 5 -lt 4 ] 5大于4,且!(5小于4)结果为0 否则为1

[ 5 -gt 4 -a 5 -lt 4 ] 5大于4,且5小于4结果为1 否则为0

[ 5 -gt 4 -o ! 5 -lt 4 ] 同假则为1,否则0

6、初始化一个字符串,然后通过简单的if结果测试该字符串是否为空,如果为空,则用echo 命令输出“what you input is null ”;如果不为空,则用echo命令输出“what you input is not null !”,同时分析一下两种测试字符串为空的命令的区别与联系。

Str=”a”

If ( test “$str” )

Then

Echo “what you input is not null”

Else

Echo “what you input is null”

Fi

7、在习题6的基础上,如果字符串为空,使用exit命令设置退出状态,然后在脚本执行的过程中使用echo命令测试程序中设置的退出状态是否为预先设置的退出状态。

str=""

if ( test "$str" ) 字符串为空则为假,假就是1

then

echo "what you input is null"

else

echo "asdsf"

exit

echo "ewhat"

Fi

8、创建一个目录,然后用if/else测试文件是否创建成功,如果创建成功,使用echo命令返回“The directory is created Successfully!”;如果不成功,则使用echo命令返回“The directory is not created Successfully”。

if ( `mkdir work2`)

then

echo "The directory is created Successfully!"

else

echo "The directory is not created Successfully"

fi

9、设置一个0 ~ 6的数字,然后通过if/else嵌套测试输入的数字,最后显示其对应的星期数:

如果输入的数字为0,则用echo命令返回“Sunday”;

如果输入的数字为1,则用echo命令返回“Monday”;

如果输入的数字为2,则用echo命令返回“Tuesday”;

如果输入的数字为3,则用echo命令返回“Wednesday”;

如果输入的数字为4,则用echo命令返回“Thursday”;

如果输入的数字为5,则用echo命令返回“Friday”;

如果输入的数字为6,则用echo命令返回“Saturday”;

#!/bin/bash

echo "Please Input a week(0 ~ 6)"

read week

if [ "$week" -eq 0 ]

then

echo "Sunday"

else

if [ "$week" -eq 1 ]

then

echo "Monday"

else

if [ "$week" -eq 2 ]

then

echo "Tuesday"

else

if [ "$week" -eq 3 ]

then

echo "Wednesday"

else

if [ "$week" -eq 4 ]

then

echo "Thursday"

else

if [ "$week" -eq 5 ]

then

echo "Friday"

else

if [ "$week" -eq 6 ]

then

echo "Saturday"

fi

fi

fi

fi

fi

fi

fi

10、使用if/elif/else结构改写习题9

#!/bin/bash

echo "Please Input a week(0 ~ 6)"

read week

if [ "$week" -eq 0 ]

then

echo "Sunday"

elif [ "$week" -eq 1 ]

then

echo "Monday"

elif [ "$week" -eq 2 ]

then

echo "Tuesday"

elif [ "$week" -eq 3 ]

then

echo "Wednesday"

elif [ "$week" -eq 4 ]

then

echo "Thursday"

elif [ "$week" -eq 5 ]

then

echo "Friday"

elif [ "$week" -eq 6 ]

then

echo "Saturday"

else

echo "not in(0 ~ 6)"

Fi

11、使用case结构改写习题9,并比较if/else嵌套结构、if/elif/else结构和case结构的区别与联系。

#!/bin/bash

echo "Please Input a week(0 ~ 6)"

read week

case "$week" in

0)

echo "Sunday";;

1)

echo "Monday";;

2)

echo "Tuesday";;

3)

echo "Wednesday";;

4)

echo "Thursday";;

5)

echo "Friday";;

6)

echo "Saturday";;

*)

echo "not in(0 ~ 6)"

Esac

12、使用let命令计算12*5/5与12/5*5的值,然后查看一下结果是否相同,如果不相同,是说明结果不相同的原因。

Let “z=12*5/5” echo $z 结果为12

Let “z=12/5*5” echo $z 结果为10

运算顺序不同,都是从左到右,且12/5结果为整数2,所以结果为10

第八章

1、使用for循环计算100以内所有偶数的和,然后用while循环和until循环来实现这个计算,比较哪种结构更简单。

Sum=0

For var in {1..100}

Do

Let “sum+=var”

Done

Sum=0

I=0

Until [[ “$i” -gt 100 ]]

Do

Let “sum+=i”

Let “i++”

Done

2、使用while循环或者until循环实现从命令行读入字符串,直到输入的字符串为句号为止。

read var

while [[ "$var" -ne "1" ]]

do

read var

Done

read var

until [[ "$var" -eq "1" ]]

do

read var

done

6、找出100以内所有能被3整除的,每行显示8个数,然后换行显示。

i=0

for var in {1..100}

do

var1=0

let "var1=$var % 3"

if [ "$var1" = 0 ]

then

let "i++"

let "var1=$i % 8"

if [ "$var1" = 0 ]

then

echo "$var "

else

echo -n "$var "

fi

fi

Done

7、打印由如下“*”组成的图案:

*

* * *

* * * * *

for (( i=0;i<30;i++ ))

do

for (( j=30;j>i;j--))

do

echo -n " "

done

for (( j=0;j<2*i-1;j++ ))

do

echo -n "*"

done

echo ""

done

8、如果一个整数各位数字之和可以被9整除,那么该整数就可被9整除,编写一个脚本提示用户输入一个整数,然后输出该整数,并告之该整数是否可被9整除。

9、编写一个脚本,该脚本提示用户输入一些整数,然后通过程序控制分别计算出这些整数中奇数之和,并将其输出。

#!/bin/bash

read var

sum1=0

sum2=0

while [ "$var" -ne 0 ]

do

var1=0

let "var1=$var%2"

if [ $var1 = 0 ]

then

let "sum1=$sum1+var"

else

let "sum2=$sum2+var"

fi

read var

done

echo "jishu:$sum1"

echo "oushu:$sum2"

第九章

5、定义变量String=”Rolling lessons learned from Hadoop into an open source Hadoop successor”,分别实现以下操作:

(1)打印String的长度;

(2)给出Hadoop在String中的索引;

(3)将第一个Hadoop替换为MapReduce;

(4)将所有的Hadoop替换为MapReduce

String=”Rolling lessons learned from Hadoop into an open source Hadoop successor”

Expr length $string

Expr index “$string” Hadoop

Echo ${string/Hadoop/MapReduce}

Echo ${string//Hadoop/MapReduce}

7、执行下面的脚本,比较result1和result的值,体会typeset命令的作用

没区别

8、定义var1=911、var2=1101,使用三种方法实现var1*var2操作。

Declare var1=911

Declare var2=1101

Let “var1=$var1*$var2”

Echo “$var1”

10、执行下面的脚本,验证间接变量引用方法。

#!/Bin/bash

T=cell

Var=9999

Cell=$var

Tempvar=\$$t 改为evel tempvar=\$$t

Echo “Direct refer t:$t”

Echo “tempvar=$tempvar”

Echo “indirect refer t:${!t}”

第10章

1、首先分析下列命令的作用,然后执行它们,验证你的分析

1)who | grep …glo?

匹配含有glo的用户名

2)who | grep …^glo?

匹配以glo开头的用户名

3)sed …/^$/d? text>text.out

将text内的非空的行覆盖到text.out

4) sed …s/\([Ll]Linux\)/\l(TM)/g? text > text.out

将text内容覆盖到text.out文件

5)date | cut -c12-16

输出当前的时间

6)date | cut -c5-11,25- | sed 's/\([0-9]\{1,2\}\)/\l,/'

输出当前日期Jun , 2014

2、设系统中有两个日志文件:log1和log2,请实现将log1的全部和log2的最后5行写入一个新的文件biglog。(提示:tail -n filename可以将filename的最后n行输出到标准输出)Log1>biglog

Tail -5 log2>>biglog

6、利用until循环实现与10.2.4节re

《中文Linux应用编程界面(API)规范》

《中文Linux应用编程界面(API)规范》 编制说明 一、任务来源 根据国家863计划信息技术领域,软件重大专项,中文Linux和办公软件相关标准与规范课题研究开发任务的规定,和根据国家质检总局和信息产业部2003年放国家标准和行业标准制、修订计划安排,制订《中文Linux应用编程界面(API)规范》。该项目由中软网络技术股份有限公司负责起草,项目计划代号为 二、工作过程 在国家任务下达后,中软网络技术股份有限公司就组织了工作组,在前期工作的基础上,收集与翻译了国际上有关Linux的主要标准的最新版本LSB 1.3(目前的最新版本为 LSB 2.0)和OpenI13N 1.3。总结了多年来在Linux开发工作和标准制订工作的经验。在“非典”肆虐期间,编写了制订《中文Linux应用编程界面(API)规范》的计划和大纲。 在“四所”的组织下成立了“中文Linux标准”工作组。在工作组的统一安排下,确定了编写工作的计划与大纲。于2003年9月初,编写了《中文Linux 应用编程界面(API)规范》初稿,提交工作组讨论。工作组前后经过了近10次讨论,几经修改,先后提交了三次修改稿,才形成了《征求意见稿》。《征求意见稿》通过在网上和有关单位广泛征求意见,收集了许多很好的意见。工作组又组织了有FSG和OpenI18N有关人员和国内的Linux厂商、专家及有关人员参加的“Linux标准研讨会”。 2004年4月信息产业部成立Linux标准工作组,组织更大范围的企业参与标准的制定工作。在此基础上工作组对“意见汇众”进行了深入的整理、分析和讨论,确定了修改意见。根据这些意见,经过修改,我们提交了《中文Linux 应用编程界面(API)规范》的《送审稿》。 2006年在发展基金及国家十五项目的支持下,中国电子技术标准化研究所组织国内主要Linux操作系统发布商,对标准的符合性测试展开研究,并根据测试研究的结果对标准做中描述不够严谨的地方做出相应调整。 三、主要说明 1、标准的目的

常用linux命令(面试常用)

date显示系统日期 cd.. 返回上级目录 pwd 显示当前路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a显示隐藏文件 ls -lh 显示权限 tree 显示文件和目录由根目录开始的树形结构 shutdown -h now 关闭系统 mkdir dir1 创建目录 rm -f file1 删除文件 rmdir 删除目录 cp 复制文件 find /-name file1 从/开始进入根文件系统搜索文件和目录 groupadd group_name 创建一个新用户组 groupdel group_name 删除一个用户组 useradd user1 创建一个新用户 userdel -r user1 删除一个用户 passwd 修改口令 passwd user1 修改一个用户的口令 gunzip file1.gz 解压一个file1.gz的文件 gzip file1 压缩文件 cat file1 从第一个字节开始查看文件 grep Aug /log/massages 在 massage文件中查找关键字Aug grep ^Aug /log/massages 在 massage文件中查找以Aug开头的词汇df 查看磁盘空间占用情况,使用权是所有用户 free 查看内存的使用情况 quota 显示磁盘使用情况和限制情况,使用权是超级用户 lp 打印文件 ifconfig 查看和更改网络接口的地址和参数 ping检测主机网络接口状态,使用权限是所有用户 Telnet 远程登录 ftp 文件传输 more一页一页显示档案内容 who 查看目前谁在线 finger 查看关于系统用户的信息 clear 清除屏幕

《Linux系统应用与开发教程》所有课后习题和答案

《Linux系统应用与开发教程》所有课后习题和答案 第1章Linux概述 (1) 第2章shell及常用命令 (4) 第3章vi编辑器的使用 (7) 第4章X Window系统的使用 (9) 第5章Linux系统的常用软件 (11) 第6章硬件管理 (11) 第7章网络基本配置 (12) 第8章常用网络服务的配置和使用 (15) 第9章系统管理与监控 (19) 第10章Linux系统的安全管理 (21) 第11章shell程序设计 (24) 第12章gcc的使用与开发 (26) 第13章gtk+图形界面程序设计 (27) 第14章Qt图形界面程序设计 (28) 第15章集成开发环境KDevelop的使用 (31) 第1章 Linux概述 1.什么是Linux? Linux是一套免费使用和自由传播的类UNIX操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86系列和RISC处理器。这个系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。 2.Linux有哪些特性? (1)开放性 (2)多用户 (3)多任务 (4)良好的用户界面 (5)设备独立性 (6)丰富的网络功能

(7)可靠的系统安全 (8)良好的可移植性 3.Linux与Windows操作系统的主要区别是什么? (1)从发展的背景看,Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows等,都是自成体系,无对应的相依托的操作系统 (2)从使用费用上看,Linux是一种开放、免费的操作系统,Windows是封闭的系统,需要有偿使用。 (3)Linux上丰富的应用软件也是自由的,而在Windows下,几乎所有的软件都有独立的版权,需要购买使用,即使某些软件可以免费使用,也一般不提供其源代码,更不用说由用户修改扩充其功能了。 (4)Windows对硬件配置要求高,而Linux在低端PC系统上仍然可以流畅运行4.Linux与Unix的共同点与不同点是什么? 共同点:由于Linux是从Unix发展来到,它遵循Unix开放标准,基本支持同样的软件、程序设计环境和网络特性,可以说Linux是UNIX的PC版本,Linux在PC机上提供了相当于UNIX工作站的性能。 与商用Unix的不同点有:1)Linux是免费软件,用户可以从网上下载,而商用的UNIX除了软件本身的价格外,用户还需支付文档、售后服务费用;2)Linux拥有GNU软件支持,Linux能够运行GNU计划的大量免费软件,这些软件包括应用程序开发、文字处理、游戏等方面的内容;3)Linux的开发是开放的,任何志愿者都可以对开发过程做出贡献;而商用UNIX则是由专门的软件公司进行开发的。 与自由Unix的不同点: 1)在组织方式上,FreeBSD由它的核心团队(core team)的领导,他们负责原始程序的开发与维护。有core team的优点是原始程序会有一致性,会有组织的被更新,但是整个系统的活力操纵在core team手中,缺乏活力。Linux没有核心团队,在Linus的主导下来自世界各地的爱好者都可以发布自己的patch,缺点是源代码杂乱无章且可能会相互冲突。 2)在发展方向上,FreeBSD的核心团队将主要精力投入在UNIX自身的风格和特点上。Lin ux通常会首先加入商品化系统上的各种东西,比如新的硬件驱动、samba等。因此,从易用和可用上讲,Linux更容易上手和使用。 3)在系统核心功能上二者区别不大,但在Linux系统上,几乎可是找到任何需要的功能 4)在系统的性能上,据专家分析,FreeBSD在网络性能、软件移植性和系统规范化上略胜一畴,而在硬件支持、磁盘IO操作等方面Linux略强一些。 5.什么是GNU软件,什么是GPL和LGPL? GUN项目主要由自由软件基金资助的一个项目,目标是开发一个自由的、UNIX类型的操作系统,称为GNU系统。GNU是―GNU’s Not UNIX‖的首字母的递归缩写,目前使用Linux内

LINUX练习题及参考答案

一、单选 1 . 存放用户帐号的文件是(C)。 A. shadow B. group C. passwd D. gshadow 2 . 下面哪个系统目录中包含Linux使用的外部设备(B)。 A./bin B. /dev C. /boot D. /home 00 3 . Linux系统的联机帮助命令是(D)。 A. tar B. cd C. mkdir D. man 4 . 如何删除一个非空子目录/tmp (B )。 A. del /tmp/* B. rm -rf /tmp C. rm -Ra /tmp/* D. rm –rf /tmp/* 5. 更改一个文件权限的命令是(C)。 A. change B. attrib C. chmod D. at 6. 如果执行命令#chmod 746 file.txt,那么该文件的权限是(A)。 A. rwxr--rw- B. rw-r--r— C. --xr--rwx D. rwxr--r— 7. 如果您想列出当前目录以及子目录下所有扩展名为―.txt‖的文件,那么您可以使用的命令是(A )。 A. ls *.txt B. find –name ―.txt‖ C. ls –d .txt D. find . ―.txt‖ 8 . 怎样显示当前目录(A)。 A. pwd B. cd C. who D. ls 9 . 欲把当前目录下的file1.txt 复制为file2.txt,正确的命令是(D)。 A. copy file1.txt file2.txt B. cp file1.txt | file2.txt C. cat file2.txt file1.txt D. cat file1.txt > file2.txt 10.为了达到使文件的所有者有读(r)和写(w)的许可,而其他用户只能进行只读访问,在设置文件的许可值时,应当设为:( B )。 A. 566 B. 644 C. 655 D. 744 11.为了将当前目录下的压缩归档文件myftp.tar.gz解压缩,我们可以使用:( A )。 A. tar -xvzf myftp.tar.gz B. tar -xvz myftp.tar.gz C. tar -vzf myftp.tar.gz D. tar -xvf myftp.tar.gz 12.用来保存用户名、个人目录等资料的文件是(B )。 A. /etc/shadow B. /etc/passwd C. /etc/inittab D. /etc/group 13.一个文件的权限是-rw-rw-r--,这个文件所有者的权限是( C )。 A. read-only B. write C. read-write 14.绝大多数Linux分区使用的文件系统类型是( D )。 A. vfat B. nfs C. swap D. ext2 15.在Linux系统中,硬件设备大部分是安装在( B )目录下的。 A. /mnt B. /dev C. /proc D. /swap 16.比较重要的系统配置资料,一般来说大部分位于( A )目录下。 A. /etc B. /boot C. /home D. /usr 17.要改变文件的拥有权,使用命令( B )。 A. chgrp B. chown C. chsh D. chmod 18.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是(D )。 A -m B –d C -f D –p 19.局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是(B )。

linux常用命令

新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容易掌握。 由于操作和使用环境的陌生,如果要完全熟悉Linux的应用我们首先要解决的问题就是对Linux常用命令的熟练掌握。本章我们就来介绍Linux的常用基本命令。 Linux常用命令 1.Linux命令基础 Linux区分大小写。在命令行(shell)中,可以使用TAB键来自动补全命令。即可以输入命令的前几个字母,然后按TAB键,系统自动补全命令,若不止一个,则显示出所有和输入字母相匹配的命令。 按TAB键时,如果系统只找到一个和输入相匹配的目录或文件,则自动补全;若没有匹配的内容或有多个相匹配的名字,系统将发出警鸣声,再按一下TAB键将列出所有相匹配的内容(如果有的话)以供用户选择。 首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中―系统管理员‖拥有最高权限。 在启动Linux后屏幕出现如下界面显示:Red Hat Linux release 9 (Shrike) Kernel 2.4.20.8 on an i686

login: 输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个―#‖提示符时,表明你登录成功! 屏幕显示Linux提示符:[root@localhost root]#_ 这里需要说明的是―Red Hat Linux release 9 (Shrike)‖表示当前使用的操作系统的名称及版本。―2.4.20.8‖表示Linux操作系统的核心版本编号。―i686‖表示该台电脑使用的CPU的等级。 下面我们来介绍常用基本命令 一,注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]#logout

linux复习

实验1排序: /*sort.h*/ #include int bubbleSort(int [],int len); int selectSort(int [],int len); /*sort.c*/ #include "sort.h" int bubbleSort(int a[],int len){ int i=0,j,z=0,m; for(i;ia[j]) { m=a[i]; a[i]=a[j]; a[j]=m; } } } printf("new a[]={"); for(z;z

printf("new a[]={"); for(z;z #include #include #include #include #include #define BUFSIZE 1024 #define SRC "/home/linux/src/llx.c" #define DST "/home/linux/dst" #define OFFSET 10240 int main(int argc,char*argv[]) { int fd1,fd2; int len; char buffer[BUFSIZE]={0}; if((fd1=open(SRC,O_RDONL Y))<=0) { perror("Can't open source file"); exit(-1); }

Linux基础及应用习题解析

1、Linux是所谓的“Free Software”,这个“Free”的含义是什么?() A、Linux不需要付费 B、Linux发行商不能向用户收费 C、Linux可自由修改和发布 D、只有Linux的作者才能向用户收费 2、Linux系统各组成部分中哪一项是基础?() A、内核 B、X Window C、Shell D、GONME 3、Linux内核管理系统不包括的子系统是哪个?()还包括设备管理系统 A、进程管理系统 B、内存管理系统 C、文件管理系统 D、硬件管理系统 4、下面关于Shell的说法,不正确的是哪个?() A、操作系统的外壳 B、用户与Linux内核之间的接口 C、一种和C类似的高级程序设计语言 D、一个命令语言解释器 5、以下哪种Shell类型在Linux环境下不能使用?() A、B Shell B、K Shell C、R Shell D、Bash 6、安装Linux至少需要几个分区?() A、2 B、3l C、4 D、5 7、RHEL Server 5系统启动时默认由以下哪个系统引导程序实施系统加载?() A、GRUB B、LILOl C、KDE D、GNOME 8、/dev/hda5 在Linux中表示什么?() A、IDE0接口上从盘 B、IDE0接口上主盘的逻辑分区 C、IDE0接口上主盘的第五个分区 D、IDE0接口上从盘的扩展分区 9、系统引导的过程一般包括如下几步:(1)MBR中的引导装载程序启动;(2)用户登录;(3)Linux内核运行;(4)BIOS自检。以下哪个顺序是正确的?()A、(4) (2) (3) (1) B、(4) (1) (3) (2) C、(2) (4) (3) (1) D、(1) (4) (3) (2) 10、KDE中要调整桌面墙纸及字体需要打开哪个组件?() A、文件管理器 B、我的电脑 C、控制中心 D、屏幕保护程序 11、Linux有几个虚拟终端?() A 、5 B、6 C、7 D、8 12、输入命令的时候,选项和参数之间可以用什么符号隔开?() A、% B、! C、空格 D、~ 13、pwd命令的功能是什么?() A、设置用户的口令 B、显示用户的口令 C、显示当前目录的绝对路径 D、查看当前目录的文件 14、输入“cd”命令并按【Enter】键后,将有什么结果?() A、从当前目录切换到根目录 B、屏幕显示当前目录 C、从当前目录切换到用户主目录 D、从当前目录切换为上一级目录

LINUX常用数据结构

/* * List definitions. */ #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } #define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } /* * List functions. */ #define LIST_INIT(head) { \ (head)->lh_first = NULL; \ } #define LIST_INSERT_AFTER(listelm, elm, field) { \ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ (listelm)->field.le_next->field.le_prev = \ &(elm)->field.le_next; \ (listelm)->field.le_next = (elm); \ (elm)->field.le_prev = &(listelm)->field.le_next; \ } #define LIST_INSERT_HEAD(head, elm, field) { \ if (((elm)->field.le_next = (head)->lh_first) != NULL) \

Linux系统应用与开发教程第二版刘海燕等主编

习题和答案 第1 章Linux 概述..................................................................................................................... 第2 章shell 及常用命令......................................................................................................... 第3 章vi 编辑器的使用........................................................................................................... 第4 章X Window 系统的使用.................................................................................................. 第5 章Linux 系统的常用软件................................................................................................ 第6 章硬件管理........................................................................................................................ 第7 章网络基本配置 .............................................................................................................. 第8 章常用网络服务的配置和使用..................................................................................... 第9 章系统管理与监控.......................................................................................................... 第10 章Linux 系统的安全管理.............................................................................................. 第11 章shell 程序设计........................................................................................................... 第12 章gcc 的使用与开发....................................................................................................... 第13 章gtk+图形界面程序设计............................................................................................. 第14 章Qt 图形界面程序设计................................................................................................ 第15 章集成开发环境KDevelop 的使用............................................................................... 第 1 章Linux 概述 1.什么是Linux? Linux 是一套免费使用和自由传播的类UNIX 操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86 系列和RISC 处理器。这个系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX 兼容产品。 2.Linux 有哪些特性? (1)开放性 (2)多用户 (3)多任务 (4)良好的用户界面 (5)设备独立性 (6)丰富的网络功能 (7)可靠的系统安全 (8)良好的可移植性 3.Linux 与Windows 操作系统的主要区别是什么? (1)从发展的背景看,Linux 是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows 等,都是自成体系,无对应的相依托的操作系统 (2)从使用费用上看,Linux 是一种开放、免费的操作系统,Windows 是封闭的系统,需要有偿使用。 (3)Linux 上丰富的应用软件也是自由的,而在Windows 下,几乎所有的软件都有独立的版权,需要购买使用,即使某些软件可以免费使用,也一般不提供其源代码,更不用说由用户修改扩充其功能了。 (4)Windows 对硬件配置要求高,而Linux 在低端PC 系统上仍然可以流畅运行4.Linux 与Unix 的共同点与不同点是什么? 共同点:由于Linux 是从Unix 发展来到,它遵循Unix 开放标准,基本支持同样的软

LINUX复习(带答案)

Turbolinux用户基础B 一、选择题(共128 题) (B)1.哪一个命令能用来创建命令的简写或别名 A.awk B.alias C.echo D.alien (D)2.登陆系统后首先进入下列哪一个目录 A./home B.root的主目录 C./root D.用户自己的主目录 (A)3.系统的配置文件在______目录下 A./etc B./home C./usr D./dev (D)4.哪一个命令能用来查找在文件TESTFILE中只包含四个字符的行A.grep''TESTFILE B.grep'....'TESTFILE C.grep'^$'TESTFILE D.grep'^....$'TESTFILE (B)5.当Linux内核执行硬件的检测和激活交换分区后,运行下列哪一个程序A./sbin/reboot B./sbin/init C./sbin/startup D./bin/sh (B)6.用”rm-i”,系统会提示什么来让你确认 A.命令行的每个选项 B.是否真的删除 C.是否有写的权限 D.文件的位置 (A)7.用下面哪个命令可以不用退出vi编辑器来切换文件 A.:eforeditcommand B.mapcommand C.exportcommand

D.setcommand (B)8.除非特别指定,cp假定要拷贝的文件在下面哪个目录下A.home目录 B.当前目录 C.root目录 D.用户目录 (B)9.Linux的创始人是芬兰Helsinki大学的学生,他是谁A.AndrewTanenbaum B.LinusTorvalds C.BillGates D.RichardStallman (A)10.下面哪个命令是全屏文本编辑器 A.vi B.ed C.pr D.cw (C)11.Linux的命令用下面哪个选择来解释 A.核心 B.用户接口 C.shell D.应用管理器 (A)12.在一行内运行多个命令需要用什么字符隔开 A.; B.$ C.* D.@ (D)13.在vi编辑器里,命令”dd”用来删除当前 A.字 B.字符 C.变量 D.行 (B)14.Turbolinux下主要用哪个shell A.tcsh B.bash C.ash D.csh

linux系统及编程基础课后答案

第1章习题答案 1. 什么是Linux? 答:Linux是一款优秀的操作系统,支持多用户、多进程、多线程,实时性好,功能强大且稳定。同时,它又具有良好的兼容性和可移植性,被广泛应用于各种计算机平台上。作为Internet的产物,Linux操作系统由全世界的许多计算机爱好者共同合作开发,是一个自由的操作系统。 2. Linux的主要特点是什么? 答:Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在以下几个方面: 开放性 多用户 多任务 出色的稳定性能 良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用界面。 设备独立性:设备独立性是指操作系统把所有外部设备统一当作文件来看,只要安装它们的驱动程序,任何用户都可以像使用文件那样操作并使用这些设备,而不必知道它们的具体存在形式。 丰富的网络功能:完善的内置网络是Linux的一大特点,Linux在通信和网络 功能方面优于其他操作系统。其他操作系统不包含如此紧密的内核结合在一起的联接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

可靠的安全性 良好的可移植性:可移植性是指将操作系统从一个平台转移到另一个平台,使它仍然能按其自身的方式运行的能力。 3. Linux的主要组成包括什么? 答:Linux主要组成为: Linux内核(Kernel):内核(Kernel)是系统的心脏,是运行程序和管理硬件设备的内核程序,决定着系统的性能和稳定性,实现操作系统的基本功能。 Linux的Shell:Shell是系统的用户界面,提供用户与内核进行交互操作的一种接口。Shell是一个命令解释器,它解释由用户输入的命令并且把他们送到内核执行。Shell编程语言具有普通编程语言的很多特点,用这种编程语言编写shell程序与其他应用程序具有同样的效果。 Linux 文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法。通常是按照目录层次的方式进行组织,用户能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限、文件的共享程度。 Linux 实用程序(utilities)和应用程序(Applications):标准的Linux系统都有一套成为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。 4. Linux与Windows的主要区别是什么? 答:主要区别: (1)Linux的应用目标是网络 Linux的设计定位于网络操作系统。虽然现在已经实现Linux操作系统的图形界面,但仍然没有舍弃文本命令行。由于纯文本可以非常好地跨越网络进行工作,所以Linux

最新Linux复习大汇总

第一章概述 1、什么是POSIX标准,为什么现代造作系统的设计必须遵循POSIX标准? 答:POSIX表示可移植操作系统接口(Portable Operating System Interface)。 POSIX是在Unix标准化过程中出现的产物。 POSIX 1003.1标准定义了一个最小的Unix操作系统接口。 任何操作系统只有符合这一标准,才有可能运行Unix程序。 2、什么是GNU?Linux与GNU有什么关系? 答:GNU是GNU Is Not Unix的递归缩写,是自由软件基金会的一个项目。 GNU项目产品包括emacs编辑器、著名的GNU C和Gcc编译器等,这些软件叫做GNU 软件。 GNU软件和派生工作均适用GNU通用公共许可证,即GPL(General Public License)。 Linux的开发使用了众多的GUN工具。 3、Linux系统由哪些部分组成?Linux内核处于什么位置? 答:(1)符合POSIX标准的操作系统内核、Shell和外围工具。(2)C语言编译器和其他开发工具及函数库。(3)X Window窗口系统。(4)各种应用软件,包括字处理软件、图象处理软件等。 Linux内核是所有Linux 发布版本的核心。 第二章内存寻址 1、在80x86的寄存器中,哪些寄存器供一般用户使用?哪些寄存器只能被操作系统使用?答:通用寄存器EAX,EBX,ECX,EDX,EBP(基址指针),ESP(堆栈指针),ESI(扩展源指针),EDI(扩展目的指针),还有EFLAGS(标志寄存器). 专供操作系统使用的寄存器:IDTR中断描述符寄存器,GDTR全局描述符表寄存器,LDTR 局部描述符表寄存器,TaskRegisters任务寄存器,DebugRegister调试寄存器,ControlRegister 控制寄存器,Model-SpecificRegisters模型专用寄存器。 3、请用C语言描述段描述符表。 答:#include #include #define BASE_H 0xff00 #define BASE_M 0x00ff #define BASE_L 0xffff #define LIMIT_H 0x000f

怎样执行在Linux上运行应用程序

如何执行在Linux上运行的应用程序 关键字:Linux 先决条件 要充分理解本文,必须具备Windows 环境下桌面应用程序的工作经验,我认为读者对如何使用Linux 桌面有一个基本的了解。使用一个运行的Linux 计算来机探讨本文的概念和示例是很有帮助的。 概述 有时候第一次在Linux 上运行一个应用程序需要一点额外工作。有些应用程序,比如服务器服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志(x)。 运行用户空间应用程序 Linux 在内核空间或用户空间运行进程。用户空间是操作系统的区域,应用程序通常在此运行。简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。 默认情况下,只有root 用户有权访问内核空间。root 用户是Linux 中的超级用户,相当于Windows 中的管理员帐户。在root 用户帐户下运行应用程序可能会引起安全风险,是不可取的。 很多服务器服务需要root 权限启动服务。然而,服务启动后,root 帐户通常会将其移至服务帐户。严格地说,Linux 中的服务帐户才是标准的用户帐户。主要区别是服务帐户仅用于运行一个服务,而不是为任何实际登录的用户准备的。 设置权限 您可以使用chmod 命令在一个文件中设置执行权限。在Linux 中,umask 设置通常用来防止下载的文件被执行,也有充分的理由相信,因为它有助于维护Linux 计算机的安全性。 大多数Linux 发行版具有一个值为022 的umask 设置,这意味着,默认情况下一个新文件权限设置为644.权限的数字表示形式采用读(4)、写(2)、执行(1) 的格式。因此,默认权限为644 的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。 例如,为每个人赋予一个文件的执行权限,使用chmod a+x 命令。a 表示所有人,加号(+) 表示添加,而x 表示执行。同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。 如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。 更具体地说,您可以在一个可执行文件中设置访问控制列表(ACL) 权限,赋予特定用户或组权限来运行该应用程序。使用setfacl 实用工具设置ACL 权限。 对于这些需要以root 用户启动进程的应用程序,比如服务器服务,您有几个选择。总结了允许用户执行需要root 权限的服务器服务的各种选项。 选项描述 作为root 用户不推荐用于服务器服务。当用户已经知道root 密码而且应用程序泄露不是首要关注问题时,可用于应用程序。 SetUID 由于安全问题,不推荐使用。SetUID 允许标准用户以另一个用户方式,比如root 用户,执行一个文件。 sudo 很常用,并且被认为是一个很好的实践。sudo 授予一个用户或组成员权限以执行可能额外需要root 权限的文件。该用户不需要知道root 密码。 带有文件权限的标准用户帐户在一个文件上为用户所有者、组所有者或其他人(所有人)

《Linux操作系统及应用技术》习题参考答案

第4章习题 1.进入和退出vi 编辑器的方法有哪些? 参考答案: a.进入vi编辑器的方法:在系统提示符下,输入命令vi 和想要编 辑(建立)的文件名,便可进入vi。 a)退出vi编辑器的方法:“:wq”的功能是把编辑缓冲区的内容写到指定的 文件中,以退出编辑器,回到shell 状态下。 b)其操作过程是,先输入冒号(:),再输入命令wq,然后按Enter 键。以 下命令的操作方式均与其相同。 c)“:ZZ”的功能是仅当对所编辑的内容做过修改时,才将缓冲区的内容写 到指定文件上。 d)“:x”的功能与“:ZZ”相同。 e)“:q!”的功能是强行退出vi。感叹号(!)告诉vi,无条件退出,不把 缓冲区中的内容写到文件中。 2.vi 编辑器的工作方式有哪些?相互间如何转换? 参考答案:vi 编辑器有三种工作方式,即命令方式、输入方式及ex 转义方式。 当输入命令vi 后,进入vi 编辑器时,就处于vi 的命令方式。 通过输入vi 的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r)即可以从命令方式进入到输入方式。 为使用ex 转义方式,可输入一个冒号(:)。 3.建立一个文本文件,将光标移至第5 行。分别用c、C 和cc 命令进行修改。

参考答案:略。 4.在vi 编辑器之下,将光标上、下、左、右移动的方式有哪些? 参考答案:在键盘的右下方有 4 个表示方向的方向键,利用它们可以在输入方式下移动光标。每按一次“上”、“下”方向键,光标即相应地移动一行;每按一次“左”、“右”方向键,光标即在当前行上相应地移动一个字符位置。当光标位于行首(或行尾)时,又按下“左” 方向键(或“右”方向键),系统会发出“嘟嘟”声,并且返回到命令方式。 5.vi 编辑器中复制一行文字并粘贴到另一位置用什么命令? 参考答案:复制命令yy 或Y,然后用命令:p或shift+h。 6. 进入vi 编辑器时,如果希望进入后,光标位于文件中的第9 行上,应该输入什么命令? 参考答案:按8次j命令; 7.不管文件中的某一行被编辑了多少次,总能把它恢复成被编辑之前的样子,应使用什么命令? 参考答案:U 8.要将编辑文件中的所有的字符串s1 全部用字符串s2 替换,包括在一行多次出现的字符串,应使用的命令格式是什么? 参考答案:R 9.使用vi 编辑器在目录里创建一个文本文件,然后输入一篇英文文章,并练习使用各种编辑命令。 参考答案:略

Linux操作系统期末复习题(含答案)

Linux 期末复习题(一) 一、选择题 (每小题2分,共50分) 2.在Ubuntu Linux中,系统默认的(A)用户对整个系统拥有完全的控制权。 A. root B. guest C. administrator D.supervistor. 3. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B ) A. NID B. PID C. UID D. CID 4. 下面哪个命令是用来定义shell的全局变量( D ) A. exportfs B. alias C. exports D. export 5. 哪个目录存放用户密码信息( B ) A. /boot B. /etc C. /var D. /dev 6. 默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。 A. /usr B. /home C. /root D. /etc 7. . 当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。 A. /home B. /bin C. /etc D. /dev 8. 如果要列出一个目录下的所有文件需要使用命令行( C )。 A. ls –l B. ls C. ls –a(所有) D. ls –d 9. 哪个命令可以将普通用户转换成超级用户(D ) A. super B. passwd C. tar D. su 10. 除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D ) A. 用户目录 B. home目录 C. root目录 D. 当前目录 11. 在vi编辑器里,命令"dd"用来删除当前的( A ) A. 行 B. 变量 C. 字 D. 字符 14. 按下(A )键能终止当前运行的命令 A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D 17. 用"rm -i",系统会提示什么来让你确认( B ) A. 命令行的每个选项 B. 是否真的删除 C. 是否有写的权限 D. 文件的位置 18. 以下哪个命令可以终止一个用户的所有进程( D ) A. skillall B. skill C. kill D. killall 19.在Ubuntu Linux中,一般用(D )命令来查看网络接口的状态 A. ping B. ipconfig C. winipcfg D ifconfig 20. vi中哪条命令是不保存强制退出( C )(第五章) A. :wq B. :wq! C. :q! D. :quit 22.在下列分区中,Linux默认的分区是(B ) A. FAT32 B. EXT3 C FAT .D NTFS 24.如果用户想对某一命令详细的了解,可用(C) A. ls B. help (内部) C. man(列举的信息多) D dir 二、填空题 (每空1分,共10分) 26. 在Linux系统中,以_文件的_方式访问设备。 29. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限644,该文件属性是目录。 30. 静态路由设定后,若网络拓扑结构发生变化,需由__系统管理员___修改路由的设置。 33. 编写的Shell程序运行前必须赋予该脚本文件__执行___权限。

相关文档
最新文档