在网页上闲逛,看到了这个《Linux 起步12道问题》,觉得挺好的,尤其是对我这样的初学者。给大家分享一下
1、 GNU/GPL/LGPL是为了保证Linux源码开放性的三项措施,请分别解释出这三项措施的含义和作用?请说明linux版本2.0.36每一部分的代表的含义及它是属于稳定版本还是开发版本?
答案:
1)、GNU是GNU Is Not UNIX的递归缩写,旨在消除对计算机软件拷贝、分发、修改的限制
GPL:General Public License,通用公共许可证。它要求软件以源代码的形式发布,并规定,任何用户都能够以源代码的形式将软件复制或发布给别的用户;它提醒每个用户,对于该软件不提供任何形式的担保;如果用户的软件使用了受GPL保护的任何软件的一部分,那么,该软件就继承了GPL软件;GPL并不排斥对自由软件进行商业性质的包装和发行
LGPL:Libraray General Public License,程序库通用公共许可证。允许在使用者自己的应用程序中使用程序库,并获得程序库的源代码。
2)、Linux的版本分为主版本号、次版本号和末版本号。主版本号代表较大改动,次版本号表示功能性的改动,末版本号表示BUG的改动。次版本号为奇数是开发版本,偶数是稳定版本。2.0.36是稳定版本。
出题说明:考察学员对开放源码的理解程度和Linux版本的含义。
2、 在Linux9.0的安装过程中,当系统引导起来,在boot:提示符下输入Linux askmethod命令选择安装方式,一共有哪几种安装方式?选择其中一种安装方式,并选择安装新的Linux系统后,有几种安装类型可以选择,它们都用于哪种环境?若手工进行磁盘分区,至少要分哪几分区,每个分区的功能、大小和文件类型都应该是什么?在安装完成的文件系统中,下面几个目录(/bin, /etc, /dev, /home, /root)都存放了什么文件?
答案:
1)、有五种安装方式,分别是:本地CDROM,硬盘驱动器,NFS,FTP,HTTP
2)、有四种安装类型可供选择:
个人桌面:创建一种带有图形化环境的系统,适于Linux新手。
工作站:安装一个图形化桌面环境和X窗口系统,以及软件开发工具。
服务器:只安装基本Linux运行环境,不安装图形界面,其他常用应用服务软件。
定制:最大的灵活性,可以选择系统引导程序和想要的软件包等等。
3)、手工建立分区,至少以下三种:
/boot 包含操作系统的内核以及引导文件 128MB etx3
/swap 支持虚拟内存 物理内存的2倍,小于2GB swap
/ 其他都可以放在这个分区 1.7---5.0GB etx3
4)、/bin 存放可执行文件,大多是系统中常用的命令。Ls,su等
/dev 都是特殊文件,Linux把所有的外设都看成是一个文件。如/dev/fd0就代表软盘驱动器。
/etc 存放系统的配置文件,一般与系统关系十分密切的培植文件都在这里。如inittab、lilo.conf等
/home 是系统缺省普通用户的主目录的根目录,如:/home/[userid]
/root 超级用户root的缺省主目录,一般拥护是没有对这个目录的写权限的。
出题说明:考察学员对安装过程、文件系统、文件类型、目录结构、磁盘分区的掌握情况。
3、 请说出vi编辑器的三种模式以及他们之间的相互转换。请写出下面操作的步骤:用vi命令同时打开两个文件file1和file2,水平分割放置;在file1文件中查找包含test字符的行;copy 有test字符的一行到file2的末尾;保存退出。
答案:
1)、 Vi工作有三种模式:命令模式、文本输入模式和末行模式。用Vi打开一个文件后,处于命令模式。利用文本插入命令,如i,a,o等可以进入输入模式,用 [Esc]键可以从输入模式退回命令模式。在命令模式中按“:”键可以进入到末行模式,当执行完命令或按[Esc]键可以回到命令模式。
2)、命令如下:
vi –o file1 file2 #水平分割打开两个文件
/test #在file1文件中查找test字符串,可以在命令模式或末行模式执行
光标移动到test行,用V命令选中该行
用yy命令复制该行到缓冲区
用ctrl-w ctrl-w 命令进行窗口切换,切到file2文件中
光标定位到文件末尾,用p命令进行粘贴
:wq #保存退出
出题说明:考察学员对vi编辑器的使用和命令的掌握情况。
4、在Linux中创建testgroup用户组,指定其GID为600。创建一个用户testuser,使该帐户的默认shell是cshell,并给他加入到testgroup中,另外指定该用户在2010年12月31日过期,最后设置testuser的密码。请写出以上操作的具体命令,如果要检查用户、密码和组的配置情况,需要查看那些文件?
答案:
1)、groupadd –g 600 testgroup
2)、useradd –e 12/31/2010 –g testgroup –s /bin/csh testuser
passwd testuser
3)、查看用户用/tec/passwd 文件
查看用户密码用/etc/shadow文件
查看组信息用/etc/group文件
出题说明:考察学员对用户和组管理命令的掌握情况。
5、在Linux9.0中Shell提供变量来设置环境参数和保存shell信息。变量根据不同的作用可以分为哪四种?变量设置时可以根据不同的条件给变量赋不同的值,请说明如下公式:变量=${参数变量:=woed}表示的意思并举例说明。请说出如下变量代表的意义:$#, $! , $0 ?
答案:
1)、四种变量分别为:本地变量、环境变量、位置参数变量和预定义变量。
2)、变量=${参数变量:=woed}表示如果设置了参数变量,则用参数变量的值置换变量的值,否则把变量设置成word,然后再用word替换参数的值。如 B=${C:=word}中,如果设置了C=good, word=bad时,则B=good; 如果C没有设置,word=bad,则B=bad,同时把B也设成bad。
3)、$# 表示传递到脚本的参数的数量
$! 表示后台运行的最后一个进程号
$0 表示当前执行的进程名
出题说明:考察学员对用户和组管理命令的掌握情况。
6、 在Linux系统中有重定向和管道的功能,他们都能把前面的输出作为后面的输入,他们的区别是什么?请说出如下两个命令的意思:
wc </etc/passwd >output.wc 2>error.wc
ls –al ,/ | wc > ls.wc
答案:
1)、重定向是把前面运行命令的结果输入到后面的文件中;而管道功能是把前面命令运行的结果作为后面命令的输入。主要区别在于>后是一个文件名,而 | 后是一个命令。
2)wc </etc/passwd >output.wc 2>error.wc 表示把/etc/passwd文件作为wc的输入,统计出passwd文件的行数、单词数和字符数,并输出到文件output.wc中,错误记录输出到 error.wc中。
3)、ls –al ./ | wc > ls.wc表示把./目录下的文件列出来,由wc统计出行数、单词数和字符数,并记录到文件ls.wc中。
出题说明:考察学员对用户和组管理命令的掌握情况。
7、 在Red Hat Linux 的应用程序的安装中可以分为哪两种安装方式?它们的特点各是什么?请写出用RPM包管理程序安装、查询、卸载、升级和校验时的命令?编译安装时的安装步骤是什么?
答案:
1)、在Red Hat Linux 的应用程序的安装中可以分为RPM包管理程序安装和应用程序源代码安装两种方式。RPM包管理系统提供了方便的生成软件包、安装、查询、卸载、校验软件包的操作手段;而源代码的编译安装能够提供灵活的系统定制功能,可以使应用程序更加贴近用户要求的形式建立。
2)、安装:rpm –ivh file
其中:i 表示安装, v 表示显示附加信息, h表示显示进度
查询:rpm –q file
卸载:rpm –e fiel
升级:rpm –U file
校验:rpm –V file
3)、在源代码安装中,一般在发布的软件中都会有configure和makefile.in两个文件,通过执行./configure 命令可以生成makefile的文件,在用make 和 make install两条命令即可安装完成应用程序。
出题说明:考察学员对应用程序的安装的掌握情况。
8、 在Red Hat Linux 中程序函数库可以分为哪几种类型? 它们的调用方法各是什么?请说出nm和ldd两个命令的作用? 库函数存放在什么位置,通过什么方法可以添加库函数?
答案:
1)、在Red Hat Linux中函数库可以分为3种类型:静态函数库、共享函数库和动态加载函数库。
静态函数库在应用程序编译时就把函数的执行代码加入到应用程序中。
共享函数库中的函数当一个可执行程序启动时被加载。
动态加载函数库可以在程序运行的任何阶段加载函数。
2)、使用nm和ldd命令可以获得关于库函数的信息。
nm命令可以列出一个函数库文件中的符号表,它对静态的库函数和共享的库函数都能起作用。
ldd命令可以列出一个程序正常运行所需要的共享库。
3)、库函数缺省存放在/lib和/usr/lib中,以及动态库配置文件/etc/ld.so.conf内所列的目录中。
如果库函数没有在这些目录下,可以在/etc/ld.so.conf中加入所须目录,后运行ldconfig命令,使之生效。或设置环境变量LD_LIBRARY_PATH或LD_PRELOAD加入库函数所存放的目录。
出题说明:考察学员对函数库的基本概念和管理的掌握情况。
9、 请写出在linux系统中查看CPU的信息,PCI的信息和内核模块信息的命令?内核定制的几种方式和命令分别是什么?在内核与模块的编译与安装的命令和顺序是什么?
答案:
1)、查看CPU的信息: more /proc/cpuinfo
查看PCI设备的信息: lspci
查看内核模块的信息:more /proc/modules
2)、内核定制有四种方式:
文本交互问答方式: make config
文本窗口交互问答方式:make menuconfig
图形窗口交互方式: make xconfig
使用现有配置文件: make oldconfig
3)、编译安装内核文件命令:make dep, make bzImage, make install
编译安装内核模块的命令:make modules, make modules_install
安装的顺序:make dep-----make bzImage----make modules----make modules_install---make install
出题说明:考察学员对内核编译的的掌握情况。
10、 请简述Red Hat Linux 9的启动过程? Red Hat Linux 中系统的运行级别有几个,它们分别代表的意思是什么?查看系统启动级别的命令和查看服务在各级别的运行状态的命令分别是什么?
答案:
1)、Linux的启动过程要以下几个阶段:
1、POST后读取硬盘MBR中的启动引导程序。
2、启动引导程序负责引导硬盘中的操作系统。(如用lilo,或grub程序引导操作系统。)
3、Linux内核程序负责操作系统启动前期的工作,并进一步加载系统的INIT进程。
4、INIT进程是Linux系统运行的第一个进程,该进程将根据其配置文件执行相应的启动程序,并进入指定的系统运行级别。(配置文件在/etc/inittab中,如rc.sysinit, rc 0 6, 等)
5、在不同运行级别中,根据系统的设置将启动相应的服务程序。(如/etc/init.d中的服务,xinit服务等。)
6、在启动过程的最后,将运行控制台程序,提示并允许用户输入帐户和密码进行登录。(rc.local 来进行维护本机的启动命令)
2)、Linux系统的运行级别从 0-6 共7个。
0 停机
1 单用户模式
2 多用户模式,不能使用NFS
3 完全多用户模式,缺省状态
4 未分配使用
5 图形登录的多用户模式
6 重新启动
3)、runlevel 显示系统运行模式
chkconfig –list 用于查看系统中服务在各级别的启动状态。
出题说明:考察学员对Linux启动过程和运行级别的了解。
11、 在Linux 9中,cron用来周期性的进行任务调度,请列出cron任务的格式,如果要月运行一次,怎么设置?请说出cron建立的两种方式,以及它们的命令?请区别出以下几个目录中文件的作用:/etc/init.d/crond , /etc/crontab, /etc/cron.*相关目录, /var/spool/cron/用户名 ?
答案:
1)、cron的格式为
minute hour day month dayofweek command
* * * * *
入果要一月运行一次的话,格式是:
N(0-59) N(0-23) N(1-31) * * command
也可以举例说明。
2)、法一:用crontab命令逐行进行输入,按“ctrl+d”退出。
法二:用crontab –e 命令,用编辑器对文件进行编辑。
可用crontab –l 显示cron信息
3)、/etc/init.d/crond 文件是cron 的服务程序运行脚本;
/etc/crontab是Linux系统维护所需的任务,一般不需要人为修改;
/etc/下的 cron.daily, cron.hourly, cron.monthly, cron.weekly的目录,存放相应的系统执行任务;
/var/spool/cron/用户名 是保存此用户的cron任务的文件。
出题说明:考察学员对cron格式,编辑方法及相关概念。
12、 请写出建立磁盘配额的步骤和命令?请写出tar命令的几个用法:对文件目录进行归档、对文件和目录进行压缩备份、列出tar归档文件中的目录列表、查看压缩归档文件中的目录列表、恢复tar备份文件、恢复压缩tar备份文件?
答案:
1)、1步,修改/etc/fstab文件
2步,重新挂载文件系统。
3步,创建配额文件,可以用quotacheck –cmug \ 命令实现
4步,配置配额,用equota 命令实现,在编辑环境中修改。
2)、对文件目录进行归档
tar cf files.tar files
对文件和目录进行压缩备份
tar czf files.tar.gz files
列出tar归档文件中的目录列表
tar tf files.tar
查看压缩归档文件中的目录列表
tar tzf files.tar.tz
恢复tar备份文件
tar xf files.tar
恢复压缩tar备份文件
tar xzf files.tar.gz
出题说明:考察学员对磁盘配额命令和步骤的掌握,对归档命令tar的使用。
但是里面好像有几个错误:
1、【问题一】中:并没有所谓的linux的版本,应该是linux的核心的版本。
2、【问题二】中:所谓的linux9.0应该是redhat linux9.0。不能单说linux的版本。
而且这里的题目好像是Redhatlinux认证的题目。有些linux的发行版的有一些是不一样的,比如启动过程。
不过题目是挺好的,只是有几个小问题而已,值得一看!
分享到:
相关推荐
【嵌入式Linux起步】是面向初学者的指导资料,旨在帮助读者理解并掌握嵌入式Linux系统的基础知识。嵌入式系统广泛存在于日常生活和各个行业中,如MP3播放器、PDA、手机、DVD机、机顶盒、车载GPS等。嵌入式系统是一种...
本资料“嵌入式Linux起步”旨在为初学者提供一个全面且深入的入门指南,帮助你快速进入嵌入式Linux的世界。 在学习嵌入式Linux时,首先需要理解的是它与桌面或服务器版Linux的区别。嵌入式Linux的核心在于它的轻量...
简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全...
在这个过程中,不断探索和解决实际问题,你的技术水平会不断提高。在软ii.com这样的平台上,你可以找到相关的资源、教程和社区支持,进一步加速学习进程。 总之,嵌入式Linux是一个广阔的领域,涉及到硬件、软件和...
本文将详细探讨在Windows上学习Linux的起步安装过程,以及通过虚拟机安装Linux的步骤,旨在为初学者提供一个系统的学习指南。 Linux操作系统是基于Unix的自由和开放源代码的操作系统。Linux的诞生,源自芬兰...
Linux内核学习是一个深入探讨...以上便是Linux内核学习起步的基础知识点,它为理解和掌握Linux内核打下了一个扎实的基础。通过这些步骤,初学者可以逐步深入学习Linux内核,进而在操作系统层面进行更深入的研究和开发。
本资源“嵌入式Linux起步”旨在为初学者提供一条清晰的学习路径,帮助他们掌握这一领域的基本概念和技术。 首先,理解嵌入式系统是关键。嵌入式系统是指在特定应用中集成计算能力的设备,它们往往对性能、功耗和...
Linux编程起步是一个重要的主题,尤其是对于那些希望深入操作系统底层或者从事跨平台开发的程序员来说。本书《Wrox Beginning Linux Programming》第四版,由资深技术专家撰写,为初学者提供了全面的Linux编程指南。...
在深入探讨Linux实践的第二章“起步”时,我们首先会了解系统启动的过程,这是所有操作系统的生命周期的起点。系统启动涉及多个阶段,从硬件自检(BIOS或UEFI)到加载引导程序,再到内核初始化和用户空间程序的执行...
嵌入式Linux的历史与最佳起步实践,这本书是由Linux基金会出版的白皮书,作者是Henry Kingman。在本书中,Kingman从历史的角度提供了嵌入式Linux的背景信息,并为想要或者计划将Linux嵌入到设备中的读者提供了丰富的...
Linux内核学习材料,如果你是新手,这个对你绝对有帮助,如果你是老鸟,这个可以作为你的记忆体。
3. 文件 `_6_.ppt` 作为中间章节,可能涵盖了基础的命令行操作、Shell脚本编写,以及对Linux目录结构的理解,这些都是学习Linux的起步阶段必须掌握的基础技能。 4. 文件 `_9_.ppt` 可能涉及到了系统服务和调度,这...
《Beginning Linux Programming, 4th Edition》(《Linux编程起步》第四版)是由Neil Matthew和Richard Stones编写,由Wiley Publishing公司出版的一本针对Linux程序设计的教材。该书详细介绍了Linux环境下的多种...
《零点起步——ARM嵌入式Linux应用开发入门》是一本专为初学者设计的教程,旨在引导读者从零开始掌握ARM架构下的嵌入式Linux系统应用开发技能。该书的源代码包含了一系列实践项目和示例,帮助读者在实际操作中加深对...
周立功先生的《嵌入式Linux开发教程-上册》主要面向希望掌握Linux操作系统基础和嵌入式Linux开发技能的读者...同时,本书也为嵌入式开发工程师提供了一个宝贵的资源,帮助他们在嵌入式Linux开发中快速起步并深入研究。
同时,不断练习编写和调试代码,解决实际问题,是提升技能的关键。 最后,别忘了在开发过程中保持良好的编程习惯,比如合理的错误处理、资源管理,以及遵循编码规范,这将有助于提高代码质量和可维护性。