Linux 基础学习篇 - 其他老旧文档

鸟哥的 Linux 基础学习 - 其他老旧文档

一些 Linux 系统的基础问题

最近更新时间: 2005/05/23

这里都是比较老旧的文档数据,大概只有 GNU 的 GPL 可以稍微查看一下!其他都是用来备份而已! 尽量前往鸟站首页查找最新数据较佳!

一些基础的 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 的支持度!可以参考一下如下的网页:

  • 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)
  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  来自于 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。
  • 简单说明 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--
    • 文件:644 ? -rw-r--r--
  • 若我需要更改一个文件的拥有者与群组,该用什么指令?

  • chown, chgrp
  • 如何将一个文件的修改日期改成目前的时间?

  • touch filename
  • 如何搜索一个文件?

  • which (仅用于指令搜索), whereis, locate, find
  • 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/28:首次将所有的问题独立出来喔!
2005/05/23:接到网友来信指正, init 0 为『关机』,并非之前写的『重新开机』喔!!

2002/06/29 以来统计人数
其他链接
环境工程模式篇
鸟园讨论区
鸟哥旧站

今日 人数统计
昨日 人数统计
本月 人数统计
上月 人数统计