一些 Linux 系统的基础问题
这里都是比较老旧的文档数据,大概只有 GNU 的 GPL 可以稍微查看一下!其他都是用来备份而已! 尽量前往鸟站首页查找最新数据较佳!
注意:如果您有更好的试题,或者是有相关的数据要提供给 VBird 的话,我也会尽快的将他写到网页中的!感谢感谢!! ^_^ ..
一、什么是 Linux 呢?!
二、Linux 的安装与认识 Linux 支持的硬件
- 一般而言, Linux 需要的配备并不需要太高档,但 Open Linux Server 3.1.1 需要?
- 什么是 IDE 界面,一般而言,普通 PC 允许几个 IDE 界面与设备?
- IDE2 的 master 之第一个 logical 磁盘中,其设备代号(文件名称)为何?
- 在硬盘分割 (Partition)时,最多有几个 primary + extended ?
- 若在分割的时候,在 IDE1 的 slave 硬盘中,分割『六个有用』的磁区(具有 filesystem 的),此外,有两个 primary 的磁区!请问六个磁区的代号?
- 一般而言安装 Linux 至少要有哪两个 partition 呢?
- 一般而言,在 RAM 为 64MB 或 128 MB 的系统中, swap 要开多大?
- 光驱与软驱的代号(设备文件名称)?
- 网络卡(Network Interface Card, NIC)的代号?
- 缺省的 Linux 文件格式为何?又,目前常用的 Journalling 文件格式为何?
- 安装 Linux 的主要流程?
- 什么是 GMT 时间?台北时间差几个钟头?
- Tap, SCSI 硬盘, RAID, printer 的设备代号?
其他注意事项:
- 要玩 X-window 时,至少需要具有 4-8 MB 的 VGA RAM 才好!
- 第一次使用与安装 Linux 时,请尽量的安装『所有套件!』
- 若具有安装与使用经验之后,则安装的时候,仅选择您所预计需要开放的服务之套件即可!
- 特别留意硬件对于 Linux distribution 的支持度!可以参考一下如下的网页:
http://www.linux.org.tw/hardware/index.php3- 制作 Install 之软碟开机片:
将可开机光盘放入 Windows 系统下,并运行光驱中的文件(假设光盘代号为 E:)E:\col\tools\rawrite\rawrite2
Enter disk image source filename: E:\col\launch\floppy\install.144
Enter target disketie derive: A:- 制作软碟开机片的一般方法:
mkbootdisk --device /dev/fd0 `uname -r`
三、简易 KDE 的使用( X-Window)
四、在线求助 ( Help )
五、vi 的使用
- 在 linux 底下最常使用的文书编辑器为 vi ,请问如何进入编辑模式?
- 如何由编辑模式跳回一般模式?
- 若上下左右键无法使用时,请问如何在一般模式移动光标?
- 若 [pagedown] [ pageup] 在一般模式无法使用时,如何往前或往后翻一页?
- 如何到本文件的最后一行、第一行;本行的第一个字符、最后一个字符?
- 如何删除一行、n行;如何删除一个字符?
- 如何拷贝一行、n行并加以粘贴?
- 如何搜索 string 这个字符串?
- 如何取代 word1 成为 word2,而若需要用户确认机制,又该如何?
- 如何读取一个文件 filename 进来目前这个文件?
- 如何另存新档成为 newfilename?
- 如何存盘、离开、存盘后离开、强制存盘后离开?
- 如何设置与取消行号?
六、文件与目录管理
- 请问底下的目录与主要放置什么数据?
- 『旧的』 Unix 系统与 Linux 系统的『文件名』最多可以容许几个字符?
- 什么是绝对路径与相对路径,要由 /usr/share/doc 进入到 /usr/share/man 由相对路径与绝对路径的写法各为何?
- 在非为根目录的任何一个目录中,下达 ls –al 时,均会有『.』及『..』这两个目录,请问分别代表什么?
- 显示、变换目录的时候,使用什么指令?
- 添加目录、移除目录移动目录与拷贝目录有什么指令可用?
- 如何查看一个文件的『内容』(不要使用 vi 的情况下)
- 什么是 hard link 与 soft link 的文件?有何不同?
- 如何在 root 的家目录下创建一个 /bin 的链接捷径
- 若有一个链接档为 testing 链接到 test1.sh ,请问 copy testing 到 /tmp 底下,『cp testing /tmp』则 /tmp/testing 这个文件会是:(1) 链接档,链接到 test1.sh ;(2) 一般文件,为内容与 test1.sh 相同?
- 当一个文件属性为 –rwxrwxrwt 则表示这个文件的意义为?
- 我需要将一个文件的属性改为 –rwxr-xr-- 请问该如何下达指令?
- 在 /usr/bin/passwd 这个文件的属性为 –r-s--x--x 请问代表什么意思(s)
- 如何改出 –rwxr-sr-x 与 –rwxr-xr-t这个属性?
- 如何查看一个文件的类型 (type) 例如纯文本档、运行档与 setuid 文件等?
- 若一个用户的 umask 为 033 ,请问他创建一个新的目录与文件时的缺省属性为?
- 若我需要更改一个文件的拥有者与群组,该用什么指令?
- 如何将一个文件的修改日期改成目前的时间?
- 如何搜索一个文件?
- Linux 缺省的文件系统为何?此外,常用的 Journalling 文件格式有哪些?
- less 跟 more 有什么不同?
- 在比较两个文件的异同时,常使用的是 diff 与 cmp ,请教两者有何不同?
六.1、磁盘挂载与虚拟内存问题
七、BASH SHELL
- 简单说明 bash shell 的功能特征:
- 在设置变量中,主要的规则为何?
- 显示环境变量与所有变量的指令为何?
- 在环境变量当中,『用户家目录、主机名称』的变量名称为:
- 如何让一个变量可以持续到下一个进程 (PID) 去?
- 在变量的设置当中,双引号与单引号有何不同?
- Command1 `command2` 这个指令代表什么意思?
- 在命令重导向当中, > 与 >> 有什么不同?
- 若要将错误的输出导向『不见了』的设备,该如何是好?
- 在管线指令中,我要将 last 输出的结果显示 root 的『登录次数』, 如何做?
- 如何设置一个变量名称为 name ,使其显示为『 VBird’s testing variable. 』?
- 请问 bash shell 的环境变量与自己的个人变量可以登录便设置的文件?
- 如何查找曾经操作过的指令?如何运行第 26 个操作过的指令?上一个操作过的指令?
- 如何设置命令别名?使 lm 与 ls –al|more 功能相同
- 如何将 /bin 的所有信息输出到 /home/testing.dat 这个文件?
- 在上一题中,若还要输出到屏幕上,要如何是好?
- 运行 find ,并将正确的结果输出到 right 而错误结果输出到 error 当中?
- 如何在指令列模式中将 /root/.bashrc 的数据加在 /home/col/.bashrc 当中?
- 不要显示运行的结果要如何是好?
- 列出这个月曾经登录主机的用户信息即可,不需要重复?
- 通配符当中, *, ?, [] 各代表什么意思?
七.1、SHELL SCRIPTS
- 什么是 shell scripts ? scripts 有何功用?
- 要撰写可以经由键盘输入的 scripts 时,常使用到的指令?
- 在 shell script 当中,在控制式中, && 与 || 代表什么意思?
- 在使用循环的时候,常使用到的控制式为哪三个?
- 运行 scripts 的方法有哪两种?
- 如何声明一个变量成为整数型态?
- 为何在 shell script 前面都要声明 shell 呢?
- 在判断式中,如何判断一个文件名是否存在?
- 在运行一个 scripts 时,在 scripts 内的变量, $0, $1 代表什么?
- 若要写一个既定的 parameter (如 start ),用哪一个判断式较简单?
- 如何印出目前系统中的所有帐号,并加以排序且输出到 /tmp/account 中?
- 如何在不运行 scripts 的情况中 debug ?
八、基本帐号管理
- 如何添加一个用户 username,且该用户没有家目录?
- Linux 用户的帐号、密码与群组的名称文件放在哪里?
- 创建新用户的缺省家目录内容在那个目录中?
- 创建一个新用户时,其使用到的相关文件有哪些?
- root 的 UID 与 GID 各为何?
- 如何让一个用户不能登录主机,但是可以收信?
- 试说明一个用户登录系统的流程?
- 在 /etc/shadow 当中的日期设置中,其数字代表的意义为何?
- 如何变更用户的一些属性?
- 如何视察一个用户 username 所拥有的群组呢?
- 试说明如何手动增加一个用户 username 与群组 groupname?
- 试说明 /etc/passwd 这个文件的内容与格式:
- 使用 id 这个指令时,可以显示什么消息数据?
- 可以控制用户使用主机资源的缺省文件在哪里?
- 基本的压缩指令有哪些?
九、开机进程 十、进程与资源管理
请注意:这些解答是 VBird 自己查书或者是实际操作所得到的答案,如果您发现这些答案是『错误的』请赶快跟 VBird 联系,好让我将数据赶快的订正!感谢大家的热情支持啰!
一、什么是 Linux 呢?!
- 试说明 Unix 与 Linux 的历史?
- Multics 系统:由Bell(贝尔实验室)、MIT(麻省理工学院)与GE(美国通用电器)合作开发的一个系统;
- 1969:K. Thompson 替 DEC 公司写了一个简单的 file system 系统,此为 Unix 的前身,但是 Unix 一词尚未出现
- 1973:由 Bell 的 D. Richie 以 C 语言改写了 Thompson 的小系统,全部以 ASCII 文件进行改写,方便于应用!此时为第一次出现 Unix 这个操作系统的名词,不过,由于 Unix 乃针对不同的硬件而设置,因此仅出现在大型的 Server 上面看到!经过数年后,有底下几种版本:
1. System V 来自于 AT&T 公司;
2. BSD 来自于柏克莱大学 (UC Berkeley);
3. AIX 来自于 IBM 公司- 1979:Richard Stallman 倡导 Open source 精神;
- 1984:GNU 与 Free Software Foundation (FSF)由 R. Stallman 倡导;
- 1986:Xfree86 出现在 Unix 上面,且在 1994 年集成于 Linux 中!
- 1991:芬兰大学生 Linus Torvalds在网络上首次公告 0.02 版的 Linux Kernel ,称为 hobby。
- 什么是 Linux Distribution?
基本上 Linux 是在 1991 年由芬兰大学生 Linus Torvalds 写的一个内核操作系统,最早仅只是内核而已,后来由于此一内核不但可以适合于主流 PC 的 x86 架构,并且稳定,因此有相当多的团队加入研究开发,后来某些公司将一些套件加入此一内核中,变成为完整的『安装光盘』,亦即是 Linux Distribution 了!所以才会有这么多的 Linux 版本,各版本之间没有所谓的谁优谁劣,而是个有其优缺点!看你适合哪一款,就用那一款吧!
开发商针对 Linux Kernel 进行开发,并加入适合该 Kernel 的套件(如 ftp, apache, mail 等等),及配合开发商本身的支持软件,而制作出来的可安装光盘即可称为 distribution。
- 市面上众多的 Linux 版本当中,有何异同?
唯一相同的地方在于 Linux 的『Kernel』,目前 ( 2002/06/29 ) Kernel 发展至 2.4.xx 版本,至于不同点则是 Linux 开发商自行加入或者是研发的软件。
- Linu Kernel 的功能:
简单的说,任何跟系统硬件资源有关的都是 Linux Kernel 管辖的范围,所以编辑内核的时候,将内核编的越小越好!
- System call interface
- Process control
- Memory management
- File System management
- Device drivers
- 试说明什么是 GUI
GUI 为 Graphical User Interface 的简写,即为用户图形界面,目前我们在 Linux 上面的 GUI 一般称为 X-Window ,而其内核为 Xfree86 这个 X-Server !请注意,这个 Xfree86 最大的功能即是在控制『显卡、硬件周边』等跟 Window 有关的界面,所以 X-Window 无法启动时,通常是 Xfree86 这个 X-Window 的内核驱动程序设置不完全有关!
- Linux 的优点:
最大的优点来自于其良好的资源分配!所以具有:
- 良好的多人多任务环境,资源分配平均;
- 除了免费之外,在线更新速度快,调试与安全性均较佳;
- 为 Open source 的授权,故而具有 open source 的所有优缺点;
- 网络功能强大。
- Linux 是多人多任务的环境,请问何谓多任务(Multitask)与多人(Multiuser):
- Multitask 指的是多任务环境,在 Linux 系统下, CPU 与其他例如网络资源可以同时进行多项工作, Linux 最大的特色之一即在于其多任务时,资源分配较为平均!
- Multiuser 指的是 Linux 允许多人同时连上主机之外,每个用户皆有其各人的使用环境,并且可以同时使用系统的资源!
二、Linux 的安装与认识 Linux 支持的硬件
- 什么是 IDE 界面,一般而言,普通 PC 允许几个 IDE 界面与设备?
- IDE 为用来传输硬盘数据的一个汇流界面;
- 共有 IDE1, IDE2 ,分别有 master 与 slave 所以共四个 IDE 设备支持!
- 在硬盘分割 (Partition)时,最多有几个 primary + extended ?
Primary + Extended 共四个,其中 Extended 通常只有一个! ( 更详细的硬盘与 MBR 可以参考 这里 这篇讨论 )
- 若在分割的时候,在 IDE1 的 slave 硬盘中,分割『六个有用』的磁区(具有 filesystem 的),此外,有两个 primary 的磁区!请问六个磁区的代号?
- /dev/hdb1(primary)
- /dev/hdb2(primary)
- /dev/hdb3(extended)
- /dev/hda5(logical 底下皆为 logical)
- /dev/hda6
- /dev/hda7
- /dev/hda8
请注意,5-8 这四个 logical 相加的总和为 3!
- 安装 Linux 的主要流程?
- BIOS(决定由 cdrom 或 floppy 开机,并加载PC硬件信息)
- 加载 install kernel loader :
- 收集硬件信息
- Hard Disk 之 Partition
- Formation
- Softpackage 的选择
- 开始安装!
- Tap, SCSI 硬盘, RAID, printer 的设备代号?
- Tap : /dev/ht0 (IDE), /dev/st0 (SCSI);
- SCSI H.D.: /dev/sd[a-p],
- RAID : /dev/md[0-15];
- printer : /dev/lp[0-2]
三、简易 KDE 的使用( X-Window)
- 若以 X-Window 为缺省的登录方式,那请问如何进入 Virtual console 呢?
可以按下 [Ctrl] + [Alt] + [F1] ~ [F6] 进入 Virtual console ( 共六个 );
而按下 [Ctrl] + [Alt] + [F8] 可回到 X-Window 的 desktop 中!
- 如何修改进入 Linux 时候的 run-level ?又 run-level 0, 1, 3, 5 各代表什么意思?
- 修改 /etc/inittab 里头的设置即可;
- 0:关机(如 init 0 );
1:单人维护模式,没有网络功能;
3:纯文本接口登录,多人多任务环境;
5:X-Window 登录模式,多人多任务模式。
- XFree86 在 X-Window 中的角色为何?
基本角色是控制显示相关硬件的内核角色,也可以说程序 X-Window 的 Server ,此外, KDE 这个 Window management 则是 X-Window 的 Client 呦!因此, XFree86 若死掉了,那么 KDE 就无法被启动!
四、在线求助 ( Help )
- 使用 man 来查找在线求助的时候,若要查找类似参数档(如/etc/passwd)需如何?
man 5 passwd 或是例如 syslog.conf 则: man 5 syslog.conf 那个 5 即是大部分的 config 文件的查找。
五、vi 的使用
- 在 linux 底下最常使用的文书编辑器为 vi ,请问如何进入编辑模式?
- 在一般模式底下输入: i, I, a, A 为在本行当中输入新字符;(出现 –Insert- )
- 在一般模式当中输入: o, O 为在一个新的一行输入新字符;
- 在一般模式当中输入: r, R 为取代字符!(左下角出现 –Replace-)
六、文件与目录管理
- 请问底下的目录与主要放置什么数据?
- /etc/:几乎系统的所有设置文件均在此,尤其 passwd, shadow
- /etc/rc.d/init.d:系统开机的时候加载服务的 scripts 的摆放地点
- /boot:开机设置档,也是缺省摆放内核 vmlinuz 的地方
- /usr/bin, /bin:一般运行档摆放的地方
- /usr/sbin, /sbin:系统管理员常用指令集
- /dev:摆放所有系统设备文件的目录
- /var/log:摆放系统注册表案的地方
- 什么是绝对路径与相对路径,要由 /usr/share/doc 进入到 /usr/share/man 由相对路径与绝对路径的写法各为何?
- 绝对路径绝对由 / 开始写起,相对路径则非由 / 写起;
- cd /usr/share/man ; cd ../man
- 添加目录、移除目录移动目录与拷贝目录有什么指令可用?
- 添加: mkdir 目录,
- 移除: rmdir 目录(但是该目录内必须要已经清空了), rm –rf 目录,
- 移动: mv directory1 directory2
- 拷贝: cp –r directory1 directory2
- 什么是 hard link 与 soft link 的文件?有何不同?
- Hard Links:在做成 hard link 文件时,系统会占用掉一个 inode ,由链接文件可发现其 link 字段多使用了一个 inode ,当源文件案被删除的时候,该源文件案的内容将继续保留在其他的 Hard Links 文件中;但所有 Link 占用的硬盘总量仅占一个文件的容量大小!(但 Hard link 不能链接不同 filesystem 的文件)
- Soft Links:类似捷径,当源文件被删除,soft link 文件将找不到源文件了!
- 若有一个链接档为 testing 链接到 test1.sh ,请问 copy testing 到 /tmp 底下,『cp testing /tmp』则 /tmp/testing 这个文件会是:(1) 链接档,链接到 test1.sh ;(2) 一般文件,为内容与 test1.sh 相同?
答案为 (2)
六.1、磁盘挂载与虚拟内存问题
- 试说明添加一个 partition 在 /dev/hdb 当中,且为 hdb5时,并挂载上 /disk2 ,需要哪些步骤?
- fdisk /dev/hdb 按 n 添加,按 e 添加 extended ,再按 n 添加 logical
- mke2fs –b 2048 /dev/hdb5
- mkdir /disk2
- mount –t ext2 /dev/hdb5 /disk2
- 如何添加加 64MB 的虚拟内存 swap ?
- dd if=/dev/zero of=/tmp/swap bs=4k count=16384
- mkswap /tmp/swap
- swapon /tmp/swap
- 简易说明 quota 的设置流程?
- 编辑 /etc/fstab, 加入 usrquota and/or grpquota
- reboot
- quotacheck –avug (会产生 aquota.user(group))
- quotaon –aug
- edquota –u username
- edquota –g groupname
- repquota –vu /dev/hd[a-d][1-16]
七、BASH SHELL
- 简单说明 bash shell 的功能特征:
- 命令记忆功能 ~/.bash_history
- 命令别名功能 alias
- shell scripts 功能
- 命令与文件名称补全功能 <tab>
- 工作控制功能 jobs
- 在设置变量中,主要的规则为何?
- 变量与变量内容以等号来链接;
- 等号两边不能直接接空白字符;
- 变量名称只能是英文本母与数字,但是数字不能是开头字符;
- 若有空白字符可以使用双引号『 " 』或单引号『 ' 』来将变量内容结合起来,但须要特别留意,双引号内可以保有变量,但是单引号则仅为一般字符;
- 必要时需要以转义字符『 \ 』来将特殊符号(如 Enter, $, \, 空白字符, ' 等)变成一般符号;
- 若该变量为扩增变量内容时,则需以双引号及 $变量名称如:『 "$PATH":/home』继续累加内容;
- 若该变量需要在其他子进程运行,则需要以 export 来使变量可以动作,如『export PATH』;
- 通常大写字符为系统缺省变量,自行设置变量可以使用小写字符,方便判断(纯粹依照用户兴趣与嗜好);
- 取消变量的方法为:『unset 变量名称』
- Command1 `command2` 这个指令代表什么意思?
在这一行当中, command2 会先运行,而输出的结果会给 command1 当作参数。
cd /lib/modules/`uname -r`/kernel 是最常使用的一例
- 如何设置一个变量名称为 name ,使其显示为『 VBird’s testing variable. 』?
- name=VBird\’s\ testing\ variable.
- name=”VBird’s testing variables.”
- echo $name
- 请问 bash shell 的环境变量与自己的个人变量可以登录便设置的文件?
- Open Linux:
/etc/profile, /etc/config.d/shells/bashrc, ~/.profile, ~/.bashrc,- Red Hat :
/etc/profile, ~/.bash_profile, ~/.bashrc,
七.1、SHELL SCRIPTS
- 什么是 shell scripts ? scripts 有何功用?
- 简单的说, scripts 就是一个内部含有多个或复杂的 command 的纯文本文件;
- scripts 可以进行 program 的功能,但速度上较 C 慢了点!
- 为何在 shell script 前面都要声明 shell 呢?
声明 shell 方能让 script 了解该内容需要以何种 shell 来运行!目前 Linux 通常声明 /bin/bash 这个 shell ,然而若在非 shell 环境中,又没有声明 shell 类型时,可能会造成 script 无法运行的情况。
- 在运行一个 scripts 时,在 scripts 内的变量, $0, $1 代表什么?
- $0 代表 scripts 的文件名;
- $1 代表第一个 parameter,例如 /etc/rc.d/init.d/xinetd start 那个 start 的变量即为 $1
八、基本帐号管理
- 试说明一个用户登录系统的流程?
- 登录:使用 /bin/login 程序,并输入 ID 与 passwd ;
- 确认密码:搜索 /etc/passwd, /etc/shadow 确认密码!并取得用户的相关消息。
- 查核 pam 登录模块:这个需要视主机的设置而定!
- 取得并运行 shell :由 /etc/passwd 取得 shell 之后,并运行 shell ,以 bash 为例,将读入: /ete/profile ? ~/.bash_profile ( 或 .bash_login 或 .profile ) ? ~/.bashrc ? 注销的时候运行 ~/.bash_logout
- 试说明如何手动增加一个用户 username 与群组 groupname?
- 先看看 /etc/skel 当中,缺省要给 user 的家目录内容;
- 添加 group : groupadd groupname
- 添加 user :useradd -m -g groupname username
- 给予密码: passwd username
九、开机进程
- 试说明开机流程:
- BIOS
- MBR ( boot loader )
- Loader ( lilo or grub, stage 1 and stage 2 )
- Kernel loader ( /boot/vmlinuz )
- init process ( 读取 /etc/inittab 取得 run-level )
- 开始运行 /etc/rc.d 内的 scripts
- 运行 /etc/modules.conf 内部的额外 kernel 模块
- 运行 /etc/rc.d/rc[1-6].d 的这些 run-level 内的 scripts !
- 运行 /bin/login 等待用户登录!
十、进程与资源管理