鸟哥的 Linux ADSL 私房菜


一些基础的 Linux 问题
最近更新日期:2002/06/28

一些基础的 Linux 问题与讨论:
注意:如果您有更好的试题,或者是有相关的数据要提供给 VBird 的话,我也会尽快的将他写到网页中的!感谢感谢!! ^_^ ..
一、什么是 Linux 呢?!
  1. 试说明 Unix 与 Linux 的历史?
  2. 简单说明 GNU General Public License (GPL)的精神:
  3. 什么是 Linux Distribution?
  4. 市面上众多的 Linux 版本当中,有何异同?
  5. Linu Kernel 的功能:
  6. 试说明 Linux Kernel 与使用者之间的相关性?
  7. 试说明什么是 GUI
  8. Linux 的优点:
  9. Linux 是多人多任务的环境,请问何谓多任务(Multitask)与多人(Multiuser):
 二、Linux 的安装与认识 Linux 支持的硬件
  1. 一般而言, Linux 需要的配备并不需要太高档,但 Open Linux Server 3.1.1 需要?
  2. 什么是 IDE 界面,一般而言,普通 PC 允许几个 IDE 界面与装置?
  3. IDE2 的 master 之第一个 logical 磁盘中,其装置代号(文件名称)为何?
  4. 在硬盘分割 (Partition)时,最多有几个 primary + extended ?
  5. 若在分割的时候,在 IDE1 的 slave 硬盘中,分割『六个有用』的扇区(具有 filesystem 的),此外,有两个 primary 的扇区!请问六个扇区的代号?
  6. 一般而言安装 Linux 至少要有哪两个 partition 呢?
  7. 一般而言,在 RAM 为 64MB 或 128 MB 的系统中, swap 要开多大?
  8. 光驱与软盘机的代号(装置文件名称)?
  9. 网络卡(Network Interface Card, NIC)的代号?
  10. 预设的 Linux 档案格式为何?又,目前常用的 Journalling 档案格式为何?
  11. 安装 Linux 的主要流程?
  12. 什么是 GMT 时间?台北时间差几个钟头?
  13. Tap, SCSI 硬盘, RAID, printer 的装置代号?
其它注意事项:
  • 要玩 X-window 时,至少需要具有 4-8 MB 的 VGA RAM 才好!
  • 第一次使用与安装 Linux 时,请尽量的安装『所有套件!』
  • 若具有安装与使用经验之后,则安装的时候,仅选择您所预计需要开放的服务之套件即可!
  • 特别留意硬件对于 Linux distribution 的支持度!可以参考一下如下的网页:
    [url]http://www.linux.org.tw/hardware/index.php3[/url]
  • 制作 Install 之软盘开机片:
    将可开机光盘放入 Windows 系统下,并执行光驱中的档案(假设光盘代号为 E:)
      E:\col\tools\rawrite\rawrite2
      Enter disk p_w_picpath source filename: E:\col\launch\floppy\install.144
      Enter target disketie derive: A:
  • 制作软盘开机片的一般方法:
    mkbootdisk --device /dev/fd0 `uname -r`
三、简易 KDE 的使用( X-Window)
  1. 若以 X-Window 为预设的登入方式,那请问如何进入 Virtual console 呢?
  2. 如何修改进入 Linux 时候的 run-level ?又 run-level 0, 1, 3, 5 各代表什么意思?
  3. XFree86 在 X-Window 中的角色为何?
  4. XFree86 的主要设定档在哪里?
  5. KDE 预设提供多少个 Virtual desktops ?
 四、在线求助 ( Help )
  1. 在 Linux 系统中,安装的套件 (RPM安装) 预设的文件数据放在那个目录底下?
  2. 查看 Linux 系统的在线求助可以使用什么指令?
  3. 使用 man 来查询在线求助的时候,若要查询类似参数档(如/etc/passwd)需如何?
  4. 使用 man 查询 command 的所有相关指令时,需要下什么参数?
  5. man page 的 man path 变量,记录在那个档案中呢?!
五、vi 的使用
  1. 在 linux 底下最常使用的文书编辑器为 vi ,请问如何进入编辑模式?
  2. 如何由编辑模式跳回一般模式?
  3. 若上下左右键无法使用时,请问如何在一般模式移动光标?
  4. 若 [pagedown] [ pageup] 在一般模式无法使用时,如何往前或往后翻一页?
  5. 如何到本档案的最后一行、第一行;本行的第一个字符、最后一个字符?
  6. 如何删除一行、n行;如何删除一个字符?
  7. 如何复制一行、n行并加以贴上?
  8. 如何搜寻 string 这个字符串?
  9. 如何取代 word1 成为 word2,而若需要使用者确认机制,又该如何?
  10. 如何读取一个档案 filename 进来目前这个档案?
  11. 如何另存新档成为 newfilename?
  12. 如何存档、离开、存档后离开、强制存档后离开?
  13. 如何设定与取消行号?
六、档案与目录管理
  1. 请问底下的目录与主要放置什么数据?
  2. 『旧的』 Unix 系统与 Linux 系统的『文件名』最多可以容许几个字符?
  3. 什么是绝对路径与相对路径,要由 /usr/share/doc 进入到 /usr/share/man 由相对路径与绝对路径的写法各为何?
  4. 在非为根目录的任何一个目录中,下达 ls –al 时,均会有『.』及『..』这两个目录,请问分别代表什么?
  5. 显示、变换目录的时候,使用什么指令?
  6. 新增目录、移除目录移动目录与拷贝目录有什么指令可用?
  7. 如何查看一个档案的『内容』(不要使用 vi 的情况下)
  8. 什么是 hard link 与 soft link 的档案?有何不同?
  9. 如何在 root 的家目录下建立一个 /bin 的连结快捷方式
  10. 若有一个连结档为 testing 连结到 test1.sh ,请问 copy testing 到 /tmp 底下,『cp testing /tmp』则 /tmp/testing 这个档案会是:(1) 连结档,连结到 test1.sh ;(2) 一般档案,为内容与 test1.sh 相同?
  11. 当一个档案属性为 –rwxrwxrwt 则表示这个档案的意义为?
  12. 我需要将一个档案的属性改为 –rwxr-xr-- 请问该如何下达指令?
  13. 在 /usr/bin/passwd 这个档案的属性为 –r-s--x--x 请问代表什么意思(s)
  14. 如何改出 –rwxr-sr-x 与 –rwxr-xr-t这个属性?
  15. 如何查看一个档案的类型 (type) 例如纯文字文件、执行文件与 setuid 档案等?
  16. 若一个使用者的 umask 为 033 ,请问他建立一个新的目录与档案时的预设属性为?
  17. 若我需要更改一个档案的拥有者与群组,该用什么指令?
  18. 如何将一个档案的修改日期改成目前的时间?
  19. 如何搜寻一个档案?
  20. Linux 预设的档案系统为何?此外,常用的 Journalling 档案格式有哪些?
  21. less 跟 more 有什么不同?
  22. 在比较两个档案的异同时,常使用的是 diff 与 cmp ,请教两者有何不同?
 六.1、磁盘挂载与虚拟内存问题
  1. 我要如何查看 Linux 系统当中所有已经挂载的硬盘容量与 inodes ?
  2. 我要如何查看目前所在目录的所有档案占用的硬盘空间,此外,如何仅输出结果?
  3. 如果扇区 /dev/hda3 有问题,偏偏他是被挂载上的,请问我要如何修理此一扇区?
  4. 承上题,那么有问题的档案将被移动到那个目录下?
  5. 试说明新增一个 partition 在 /dev/hdb 当中,且为 hdb5时,并挂载上 /disk2 ,需要哪些步骤?
  6. 如何新增加 64MB 的虚拟内存 swap ?
  7. 如果要设定一个新挂载上的扇区,令他可以在开机的时候被挂载上,应该编辑哪一个档案?
  8. 简易说明 quota 的设置流程?
 七、BASH SHELL
  1. 简单说明 bash shell 的功能特征:
  2. 在设定变量中,主要的规则为何?
  3. 显示环境变量与所有变量的指令为何?
  4. 在环境变量当中,『使用者家目录、主机名称』的变量名称为:
  5. 如何让一个变量可以持续到下一个程序 (PID) 去?
  6. 在变量的设定当中,双引号与单引号有何不同?
  7. Command1 `command2` 这个指令代表什么意思?
  8. 在命令重导向当中, > 与 >> 有什么不同?
  9. 若要将错误的输出导向『不见了』的装置,该如何是好?
  10. 在管线指令中,我要将 last 输出的结果显示 root 的『登入次数』, 如何做?
  11. 如何设定一个变量名称为 name ,使其显示为『 VBird’s testing variable. 』?
  12. 请问 bash shell 的环境变量与自己的个人变量可以登入便设定的档案?
  13. 如何查询曾经操作过的指令?如何执行第 26 个操作过的指令?上一个操作过的指令?
  14. 如何设定命令别名?使 lm 与 ls –al|more 功能相同
  15. 如何将 /bin 的所有信息输出到 /home/testing.dat 这个档案?
  16. 在上一题中,若还要输出到屏幕上,要如何是好?
  17. 执行 find ,并将正确的结果输出到 right 而错误结果输出到 error 当中?
  18. 如何在指令列模式中将 /root/.bashrc 的资料加在 /home/col/.bashrc 当中?
  19. 不要显示执行的结果要如何是好?
  20. 列出这个月曾经登入主机的使用者信息即可,不需要重复?
  21. 万用字符当中, *, ?, [] 各代表什么意思?
 七.1、SHELL SCRIPTS
  1. 什么是 shell scripts ? scripts 有何功用?
  2. 要撰写可以经由键盘输入的 scripts 时,常使用到的指令?
  3. 在 shell script 当中,在控制式中, && 与 || 代表什么意思?
  4. 在使用循环的时候,常使用到的控制式为哪三个?
  5. 执行 scripts 的方法有哪两种?
  6. 如何宣告一个变量成为整数型态?
  7. 为何在 shell script 前面都要宣告 shell 呢?
  8. 在判断式中,如何判断一个档名是否存在?
  9. 在执行一个 scripts 时,在 scripts 内的变量, $0, $1 代表什么?
  10. 若要写一个既定的 parameter (如 start ),用哪一个判断式较简单?
  11. 如何印出目前系统中的所有账号,并加以排序且输出到 /tmp/account 中?
  12. 如何在不执行 scripts 的情况中 debug ?
 八、基本账号管理
  1. 如何新增一个使用者 username,且该使用者没有家目录?
  2. Linux 使用者的账号、密码与群组的名称档案放在哪里?
  3. 建立新使用者的预设家目录内容在那个目录中?
  4. 建立一个新使用者时,其使用到的相关档案有哪些?
  5. root 的 UID 与 GID 各为何?
  6. 如何让一个使用者不能登入主机,但是可以收信?
  7. 试说明一个使用者登入系统的流程?
  8. 在 /etc/shadow 当中的日期设定中,其数字代表的意义为何?
  9. 如何变更使用者的一些属性?
  10. 如何视察一个使用者 username 所拥有的群组呢?
  11. 试说明如何手动增加一个使用者 username 与群组 groupname?
  12. 试说明 /etc/passwd 这个档案的内容与格式:
  13. 使用 id 这个指令时,可以显示什么讯息数据?
  14. 可以控制使用者使用主机资源的预设档案在哪里?
  15. 基本的压缩指令有哪些?
 九、开机程序
  1. 试说明开机流程:
  2. 开机时后的加载讯息可以看哪里?
  3. 改变 run-level 或关机的指令
  4. 改变登入 Linux 时候预设的 run-level 要改那个档案?
 十、程序与资源管理
  1. 如何查看目前的程序?
  2. 如何查看目前的内存使用状况?
  3. 目前的工作如何丢到背景中?
  4. 如何取得目前背景中的工作,且将他拉回前景中?
  5. 如何设定一个程序在开始执行时候的优先值?
  6. 什么指令可以修改一个正在执行的程序之 nice 值?
  7. 在例行性命令中,使用的两支 demane 是什么?
  8. 使用 crontab 这个『指令』的时候,如何可以查看目前的工作与删除目前的工作?
  9. 常用的 kill 指令之 signal 当中, 1, 9, 15 代表什么?

来看看解答啰
请注意:这些解答是 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  来自于 ATT 公司;
        2. BSD  来自于加州理工学院;
        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。
  • 简单说明 GNU General Public License (GPL)的精神:
    • GPL 的授权之软件,乃为自由软件(Freeware),任何人皆可拥有他;
    • 开发 GPL 的团体(或商业企业)可以经由该软件的服务来取得服务的费用;
    • 经过 GPL 授权的软件,其属于 Open source 的情况,所以应该公布其原始码;
    • 任何人皆可修改经由 GPL 授权过的软件,使符合自己的需求;
    • 经过修改过后 Open source 应该回馈给 Linux 社群。
      (PS. Open source 最大的优点为多人维护, debugs 的速度较快,程序亦较为安全,但是缺点则是缺乏『专人』维护!)
  • 什么是 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 的功能:
    • System call interface
    • Process control
    • Memory management
    • File System management
    • Device drivers
    简单的说,任何跟系统硬件资源有关的都是 Linux Kernel 管辖的范围,所以编辑核心的时候,将核心编的越小越好!
  • 试说明 Linux Kernel 与使用者之间的相关性?
    硬件<=>Kernel (Modules Loader)<=>Shell ( Terminal or GUI )<=>Users
  • 试说明什么是 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 支持的硬件
  • 一般而言, Linux 需要的配备并不需要太高档,但 Open Linux Server 3.1.1 需要?
    • CPU 需要在 PII, PIII, P4 或 K7, K8 以上等级;
    • RAM 至少需要 64 MB,
    • 硬盘至少 550 MB,全部安装则需要 1.7GB
  • 什么是 IDE 界面,一般而言,普通 PC 允许几个 IDE 界面与装置?
    • IDE 为用来传输硬盘数据的一个汇流界面;
    • 共有 IDE1, IDE2 ,分别有 master 与 slave 所以共四个 IDE 装置支持!
  • IDE2 的 master 之第一个 logical 磁盘中,其装置代号(文件名称)为何?
    /dev/hdc5
  • 在硬盘分割 (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 至少要有哪两个 partition 呢?
    • 根目录 / (root)
    • 虚拟内存 Swap
  • 一般而言,在 RAM 为 64MB 或 128 MB 的系统中, swap 要开多大?
    约两倍的 RAM ,亦即为 128 MB 或 256 MB ,可获得较佳效能!
  • 光驱与软盘机的代号(装置文件名称)?
    • /dev/cdrom
    • /dev/fd0
  • 网络卡(Network Interface Card, NIC)的代号?
    • /dev/eth0
  • 预设的 Linux 档案格式为何?又,目前常用的 Journalling 档案格式为何?
    • Ext2
    • Ext3, Reseifs
  • 安装 Linux 的主要流程?
    • BIOS(决定由 cdrom 或 floppy 开机,并加载PC硬件信息)
    • 载入 install kernel loader :
    • 收集硬件信息
    • Hard Disk 之 Partition
    • Formation
    • Softpackage 的选择
    • 开始安装!
  • 什么是 GMT 时间?台北时间差几个钟头?
    GMT 时间指的是格林威治时间,为标准的时间,而台北时间较 GMT 快了 8 小时!
  • 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 就无法被启动!
  • XFree86 的主要设定档在哪里?
    就是在 /etc/X11/XF86Config-4 这个档案!
  • KDE 预设提供多少个 Virtual desktops ?
    预设是提供四个,就是在进入 KDE 之后,最下方的 bar 上面有 1,2,3,4 那个字样的那个咚咚!

四、在线求助 ( Help )
  • 在 Linux 系统中,安装的套件 (RPM安装) 预设的文件数据放在那个目录底下?
    /usr/share/doc
  • 查看 Linux 系统的在线求助可以使用什么指令?
    man command
    info command
  • 使用 man 来查询在线求助的时候,若要查询类似参数档(如/etc/passwd)需如何?
    man 5 passwd 或是例如 syslog.conf 则: man 5 syslog.conf 那个 5 即是大部分的 config 档案的查询。
  • 使用 man 查询 command 的所有相关指令时,需要下什么参数?
    man –k command 例如 man –k passwd
  • man page 的 man path 变量,记录在那个档案中呢?!
    /etc/man.conf

五、vi 的使用
  • 在 linux 底下最常使用的文书编辑器为 vi ,请问如何进入编辑模式?
    • 在一般模式底下输入: i, I, a, A 为在本行当中输入新字符;(出现 –Insert- )
    • 在一般模式当中输入: o, O 为在一个新的一行输入新字符;
    • 在一般模式当中输入: r, R 为取代字符!(左下角出现 –Replace-)
  • 如何由编辑模式跳回一般模式?
    [Esc]
  • 若上下左右键无法使用时,请问如何在一般模式移动光标?
    h, j, k, l
  • 若 [pagedown] [ pageup] 在一般模式无法使用时,如何往前或往后翻一页?
    [Ctrl] + [f]
    [Ctrl] + [b]
  • 如何到本档案的最后一行、第一行;本行的第一个字符、最后一个字符?
    G, 1G, 0, $
  • 如何删除一行、n行;如何删除一个字符?
    dd, ndd, x 或 X (dG 及 d1G 分别表示删除到页首及页尾)
  • 如何复制一行、n行并加以贴上?
    yy, nyy, p 或 P
  • 如何搜寻 string 这个字符串?
    • ?string (往前搜寻)
    • /string (往后搜寻)
  • 如何取代 word1 成为 word2,而若需要使用者确认机制,又该如何?
    • :1,$s/word1/word2/g 或
    • :1,$s/word1/word2/gc (需要使用者确认)
  • 如何读取一个档案 filename 进来目前这个档案?
    :r filename
  • 如何另存新档成为 newfilename?
    :w newfilename
  • 如何存档、离开、存档后离开、强制存档后离开?
    :w; :q: :wq; :wq!
  • 如何设定与取消行号?
    :set nu
    :set nonu

六、档案与目录管理
  • 请问底下的目录与主要放置什么数据?
    • /etc/:几乎系统的所有设定档案均在此,尤其 passwd, shadow
    • /etc/rc.d/init.d:系统开机的时候加载服务的 scripts 的摆放地点
    • /boot:开机设定档,也是预设摆放核心 vmlinuz 的地方
    • /usr/bin, /bin:一般执行档摆放的地方
    • /usr/sbin, /sbin:系统管理员常用指令集
    • /dev:摆放所有系统装置档案的目录
    • /var/log:摆放系统登录档案的地方
  • 『旧的』 Unix 系统与 Linux 系统的『文件名』最多可以容许几个字符?
    14, 255
  • 什么是绝对路径与相对路径,要由 /usr/share/doc 进入到 /usr/share/man 由相对路径与绝对路径的写法各为何?
    • 绝对路径绝对由 / 开始写起,相对路径则非由 / 写起;
    • cd /usr/share/man ; cd ../man
  • 在非为根目录的任何一个目录中,下达 ls –al 时,均会有『.』及『..』这两个目录,请问分别代表什么?
    • .  :代表本目录
    • .. :代表上层目录
  • 显示、变换目录的时候,使用什么指令?
    ls, pwd 为显示; 变换目录用 cd
  • 新增目录、移除目录移动目录与拷贝目录有什么指令可用?
    • 新增: mkdir 目录,
    • 移除: rmdir 目录(但是该目录内必须要已经清空了), rm –rf 目录,
    • 移动: mv directory1 directory2
    • 拷贝: cp –r directory1 directory2
  • 如何查看一个档案的『内容』(不要使用 vi 的情况下)
    cat, tac, more, less, head, tail, nl, od(查看二进制制)
  • 什么是 hard link 与 soft link 的档案?有何不同?
    • Hard Links:在做成 hard link 档案时,系统会占用掉一个 inode ,由连结档案可发现其 link 字段多使用了一个 inode ,当源文件被删除的时候,该源文件的内容将继续保留在其它的 Hard Links 档案中;但所有 Link 占用的硬盘总量仅占一个档案的容量大小!(但 Hard link 不能连结不同 filesystem 的档案)
    • Soft Links:类似快捷方式,当原始档被删除,soft link 档案将找不到原始档了!
  • 如何在 root 的家目录下建立一个 /bin 的连结快捷方式
    ln –s /bin /root/bin
  • 若有一个连结档为 testing 连结到 test1.sh ,请问 copy testing 到 /tmp 底下,『cp testing /tmp』则 /tmp/testing 这个档案会是:(1) 连结档,连结到 test1.sh ;(2) 一般档案,为内容与 test1.sh 相同?
    答案为 (2)
  • 当一个档案属性为 –rwxrwxrwt 则表示这个档案的意义为?
    任何人皆可读取、可写入,但是不可删除该档案(或目录),除了 root 与档案或目录拥有者有权可以删除。
  • 我需要将一个档案的属性改为 –rwxr-xr-- 请问该如何下达指令?
    chmod 754 filename, chmod u=rwx,g=rx,o=r filename
  • 在 /usr/bin/passwd 这个档案的属性为 –r-s--x--x 请问代表什么意思(s)
    那个 s 代表为 SUID ,当使用者使用这个档案进行工作的时候,将会具有该档案拥有者的权限!
  • 如何改出 –rwxr-sr-x 与 –rwxr-xr-t这个属性?
    chmod 2755 filename, chmod 1755 filename
  • 如何查看一个档案的类型 (type) 例如纯文字文件、执行文件与 setuid 档案等?
    file filename
  • 若一个使用者的 umask 为 033 ,请问他建立一个新的目录与档案时的预设属性为?
    • 目录:744 ? -rwx-r--r--
    • 档案:633 ? -rw--wx-wx
  • 若我需要更改一个档案的拥有者与群组,该用什么指令?
    chown, chgrp
  • 如何将一个档案的修改日期改成目前的时间?
    touch filename
  • 如何搜寻一个档案?
    which (仅用于指令搜寻), whereis, locate, fine
  • Linux 预设的档案系统为何?此外,常用的 Journalling 档案格式有哪些?
    Ext2, Journalling 有 ext3 及 Reiserfs 等
  • less 跟 more 有什么不同?
    less 可以翻页,但是 more 不行!
  • 在比较两个档案的异同时,常使用的是 diff 与 cmp ,请教两者有何不同?
    diff 为一行一行比较, cmp 为一个字符(character)一个字符比较

 六.1、磁盘挂载与虚拟内存问题
  • 我要如何查看 Linux 系统当中所有已经挂载的硬盘容量与 inodes ?
    df –k, df –i,
  • 我要如何查看目前所在目录的所有档案占用的硬盘空间,此外,如何仅输出结果?
    du -k, du –i, du -s
  • 如果扇区 /dev/hda3 有问题,偏偏他是被挂载上的,请问我要如何修理此一扇区?
    umount /dev/hda3
    fsck /dev/hda3
  • 承上题,那么有问题的档案将被移动到那个目录下?
    lost+found
  • 试说明新增一个 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
  • 如果要设定一个新挂载上的扇区,令他可以在开机的时候被挂载上,应该编辑哪一个档案?
    • 先 /etc/fstab
    • 再 mount –a
  • 简易说明 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
  • 在设定变量中,主要的规则为何?
    1. 变量与变量内容以等号来连结;
    2. 等号两边不能直接接空格符;
    3. 变量名称只能是英文字母与数字,但是数字不能是开头字符;
    4. 若有空格符可以使用双引号『 " 』或单引号『 ' 』来将变量内容结合起来,但须要特别留意,双引号内可以保有变量,但是单引号则仅为一般字符;
    5. 必要时需要以跳脱字符『 \ 』来将特殊符号(如 Enter, $, \, 空格符, ' 等)变成一般符号;
    6. 若该变量为扩增变量内容时,则需以双引号及 $变量名称如:『 "$PATH":/home』继续累加内容;
    7. 若该变量需要在其它子程序执行,则需要以 export 来使变量可以动作,如『export PATH』;
    8. 通常大写字符为系统预设变量,自行设定变量可以使用小写字符,方便判断(纯粹依照使用者兴趣与嗜好);
    9. 取消变量的方法为:『unset 变量名称』
  • 显示环境变量与所有变量的指令为何?
    env, set,
  • 在环境变量当中,『使用者家目录、主机名称』的变量名称为:
    HOME, HOSTNAME
  • 如何让一个变量可以持续到下一个程序 (PID) 去?
    export variable
  • 在变量的设定当中,双引号与单引号有何不同?
    双引号里面可以包含变量,单引号谨代表一般字符!
  • Command1 `command2` 这个指令代表什么意思?
    在这一行当中, command2 会先执行,而输出的结果会给 command1 当作参数。
    cd /lib/modules/`uname -r`/kernel 是最常使用的一例
  • 在命令重导向当中, > 与 >> 有什么不同?
    >  会将导向的 file 覆盖,
    >> 则是增加!
  • 若要将错误的输出导向『不见了』的装置,该如何是好?
    command 2> /dev/null
  • 在管线指令中,我要将 last 输出的结果显示 root 的『登入次数』, 如何做?
    last | grep root | cut –d “ “ –f 1 | wc -l
  • 如何设定一个变量名称为 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,
  • 如何查询曾经操作过的指令?如何执行第 26 个操作过的指令?上一个操作过的指令?
    • history
    • !26
    • !!
  • 如何设定命令别名?使 lm 与 ls –al|more 功能相同
    alias lm=’ls –al|more’
  • 如何将 /bin 的所有信息输出到 /home/testing.dat 这个档案?
    ls –al /bin 1> /home/testing.dat
  • 在上一题中,若还要输出到屏幕上,要如何是好?
    ls –al /bin | tee /home/testing.dat
  • 执行 find ,并将正确的结果输出到 right 而错误结果输出到 error 当中?
    find / -name test 1> right 2>error
  • 如何在指令列模式中将 /root/.bashrc 的资料加在 /home/col/.bashrc 当中?
    cat /root/.bashrc >> /home/col/.bashrc
  • 不要显示执行的结果要如何是好?
    command  > /dev/null 2>$1
  • 列出这个月曾经登入主机的使用者信息即可,不需要重复?
    last | cut –d” “ –f1 | sort | uniq
  • 万用字符当中, *, ?, [] 各代表什么意思?
    • * 代表 0 到无限多个字符;
    • ? 代表一个任意字符;
    • [] 代表一个字符,这个字符在某一个限制范围内。

 七.1、SHELL SCRIPTS
  • 什么是 shell scripts ? scripts 有何功用?
    • 简单的说, scripts 就是一个内部含有多个或复杂的 command 的纯文本文件;
    • scripts 可以进行 program 的功能,但速度上较 C 慢了点!
  • 要撰写可以经由键盘输入的 scripts 时,常使用到的指令?
    read  variable
  • 在 shell script 当中,在控制式中, && 与 || 代表什么意思?
    分别代表『和(同时成立)』及『或(仅其一成立就成立)』的意思!
  • 在使用循环的时候,常使用到的控制式为哪三个?
    for, while, until
  • 执行 scripts 的方法有哪两种?
    • 使用 sh script 或
    • 以 chmod 增加 scripts 的属性为可执行, chmod 777 script 并执行 scripts。
  • 如何宣告一个变量成为整数型态?
    declare  -i  variable
  • 为何在 shell script 前面都要宣告 shell 呢?
    宣告 shell 方能让 script 了解该内容需要以何种 shell 来执行!目前 Linux 通常宣告 /bin/bash 这个 shell ,然而若在非 shell 环境中,又没有宣告 shell 类型时,可能会造成 script 无法执行的情况。
  • 在判断式中,如何判断一个档名是否存在?
    if [ -e filename ] 若存在则回传值为真!
  • 在执行一个 scripts 时,在 scripts 内的变量, $0, $1 代表什么?
    • $0 代表 scripts 的檔名;
    • $1 代表第一个 parameter,例如 /etc/rc.d/init.d/xinetd start 那个 start 的变数即为 $1
  • 若要写一个既定的 parameter (如 start ),用哪一个判断式较简单?
    可以使用 case …. Esac 的语法较为简单。
  • 如何印出目前系统中的所有账号,并加以排序且输出到 /tmp/account 中?
    cut -d ‘:’ -f 1 /etc/passwd | sort > /tmp/account
  • 如何在不执行 scripts 的情况中 debug ?
    sh -n scripts

 八、基本账号管理
  • 如何新增一个使用者 username,且该使用者没有家目录?
    useradd -M username
  • Linux 使用者的账号、密码与群组的名称档案放在哪里?
    • /etc/passwd
    • /etc/shadow
    • /etc/group
  • 建立新使用者的预设家目录内容在那个目录中?
    /etc/skel
  • 建立一个新使用者时,其使用到的相关档案有哪些?
    • /etc/default/useradd,
    • /etc/login.defs,
    • /etc/skel/
    • /etc/passwd,
    • /etc/shadow
  • root 的 UID 与 GID 各为何?
    皆为 0
  • 如何让一个使用者不能登入主机,但是可以收信?
    将 /etc/passwd 最后一栏代表 shell 的名称改为 /bin/false
  • 试说明一个使用者登入系统的流程?
    1. 登入:使用 /bin/login 程序,并输入 ID 与 passwd ;
    2. 确认密码:搜寻 /etc/passwd, /etc/shadow 确认密码!并取得使用者的相关讯息。
    3. 查核 pam 登入模块:这个需要视主机的设定而定!
    4. 取得并执行 shell :由 /etc/passwd 取得 shell 之后,并执行 shell ,以 bash 为例,将读入: /ete/profile ? ~/.bash_profile ( 或 .bash_login 或 .profile ) ? ~/.bashrc ? 注销的时候执行 ~/.bash_logout
  • 在 /etc/shadow 当中的日期设定中,其数字代表的意义为何?
    由 1970 年开始计算,故 1970 年 一月一日为 1 ,2002 年 1 月 1 日为11689
  • 如何变更使用者的一些属性?
    usermod, chfn, chsh, passwd
  • 如何视察一个使用者 username 所拥有的群组呢?
    groups username
  • 试说明如何手动增加一个使用者 username 与群组 groupname?
    1. 先看看 /etc/skel 当中,预设要给 user 的家目录内容;
    2. 新增 group : groupadd groupname
    3. 新增 user :useradd -m -g groupname username
    4. 给予密码: passwd username
  • 试说明 /etc/passwd 这个档案的内容与格式:
    账号; 密码; UID; GID; 说明的内容; 家目录; SHELL
  • 使用 id 这个指令时,可以显示什么讯息数据?
    UID, GID 跟 GROUP
  • 可以控制使用者使用主机资源的预设档案在哪里?
    /etc/security/limits.conf
  • 基本的压缩指令有哪些?
    tar, gzip, compress

 九、开机程序
  • 试说明开机流程:
    1. BIOS
    2. MBR ( boot loader )
    3. Loader ( lilo or grub, stage 1 and stage 2 )
    4. Kernel loader ( /boot/vmlinuz )
    5. init process ( 读取 /etc/inittab 取得 run-level )
    6. 开始执行 /etc/rc.d 内的 scripts
    7. 执行 /etc/modules.conf 内部的额外 kernel 模块
    8. 执行 /etc/rc.d/rc[1-6].d 的这些 run-level 内的 scripts !
    9. 执行 /bin/login 等待使用者登入!
  • 开机时后的加载讯息可以看哪里?
    dmesg
    grep “kernel” /var/log/messages
  • 改变 run-level 或关机的指令
    shutdown,
    halt,
    reboot,
    init or telinit
  • 改变登入 Linux 时候预设的 run-level 要改那个档案?
    /etc/inittab

 十、程序与资源管理
  • 如何查看目前的程序?
    ps, top,
  • 如何查看目前的内存使用状况?
    free, top,
  • 目前的工作如何丢到背景中?
    [Ctrl] + z
  • 如何取得目前背景中的工作,且将他拉回前景中?
    jobs  及 fg %number
  • 如何设定一个程序在开始执行时候的优先值?
    nice –n [number] [command]
  • 什么指令可以修改一个正在执行的程序之 nice 值?
    top, renice
  • 在例行性命令中,使用的两支 demane 是什么?
    atd,
    crond
  • 使用 crontab 这个『指令』的时候,如何可以查看目前的工作与删除目前的工作?
    编辑: crontab –e,
    查看: crontab –l,
    删除: crontab –r
  • 常用的 kill 指令之 signal 当中, 1, 9, 15 代表什么?
    • 1  重新读取一次 config file
    • 9  强制删除此一执行程序
    • 15 terminal结束的意思!
2002/06/29 以来统计人数


Designed by VBird during 2001-2004.  Aerosol Lab.