一些基础的 Linux 问题
一些基础的 Linux 问题
最近更新日期:2005/05/23
--------------------------------------------------------------------------------
一些基础的 Linux 问题与讨论:
注意:如果您有更好的试题,或者是有相关的资料要提供给 VBird 的话,我也会尽快的将他写到网页中的!感谢感谢!! ^_^ ..
一、什么是 Linux 呢?!
试说明 Unix 与 Linux 的历史?
简单说明 GNU General Public License (GPL)的精神:
什么是 Linux Distribution?
市面上众多的 Linux 版本当中,有何异同?
Linu Kernel 的功能:
试说明 Linux Kernel 与使用者之间的相关性?
试说明什么是 GUI
Linux 的优点:
Linux 是多人多工的环境,请问何谓多工(Multitask)与多人(Multiuser):
二、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)
若以 X-Window 为预设的登入方式,那请问如何进入 Virtual console 呢?
如何修改进入 Linux 时候的 run-level ?又 run-level 0, 1, 3, 5 各代表什么意思?
XFree86 在 X-Window 中的角色为何?
XFree86 的主要设定档在哪裡?
KDE 预设提供多少个 Virtual desktops ?
四、线上求助 ( Help )
在 Linux 系统中,安装的套件 (RPM安装) 预设的文件资料放在那个目录底下?
查看 Linux 系统的线上求助可以使用什么指令?
使用 man 来查询线上求助的时候,若要查询类似参数档(如/etc/passwd)需如何?
使用 man 查询 command 的所有相关指令时,需要下什么参数?
man page 的 man path 变数,记录在那个档案中呢?!
五、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、磁碟挂载与虚拟记忆体问题
我要如何查看 Linux 系统当中所有已经挂载的硬碟容量与 inodes ?
我要如何查看目前所在目录的所有档案佔用的硬碟空间,此外,如何仅输出结果?
如果磁区 /dev/hda3 有问题,偏偏他是被挂载上的,请问我要如何修理此一磁区?
承上题,那么有问题的档案将被移动到那个目录下?
试说明新增一个 partition 在 /dev/hdb 当中,且为 hdb5时,并挂载上 /disk2 ,需要哪些步骤?
如何新增加 64MB 的虚拟记忆体 swap ?
如果要设定一个新挂载上的磁区,令他可以在开机的时候被挂载上,应该编辑哪一个档案?
简易说明 quota 的设置流程?
七、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 这个指令时,可以显示什么讯息资料?
可以控制使用者使用主机资源的预设档案在哪裡?
基本的压缩指令有哪些?
九、开机程序
试说明开机流程:
开机时后的载入讯息可以看哪裡?
改变 run-level 或关机的指令
改变登入 Linux 时候预设的 run-level 要改那个档案?
十、程序与资源管理
如何查看目前的程序?
如何查看目前的记忆体使用状况?
目前的工作如何丢到背景中?
如何取得目前背景中的工作,且将他拉回前景中?
如何设定一个程序在开始执行时候的优先值?
什么指令可以修改一个正在执行的程式之 nice 值?
在例行性命令中,使用的两支 demane 是什么?
使用 crontab 这个『指令』的时候,如何可以查看目前的工作与删除目前的工作?
常用的 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
在设定变数中,主要的规则为何?
变数与变数内容以等号来连结;
等号两边不能直接接空白字元;
变数名称只能是英文字母与数字,但是数字不能是开头字元;
若有空白字元可以使用双引号『 " 』或单引号『 ‘ 』来将变数内容结合起来,但须要特别留意,双引号内可以保有变数,但是单引号则仅为一般字元;
必要时需要以跳脱字元『 \ 』来将特殊符号(如 Enter, $, \, 空白字元, ‘ 等)变成一般符号;
若该变数为扩增变数内容时,则需以双引号及 $变数名称如:『 "$PATH":/home』继续累加内容;
若该变数需要在其他子程序执行,则需要以 export 来使变数可以动作,如『export PATH』;
通常大写字元为系统预设变数,自行设定变数可以使用小写字元,方便判断(纯粹依照使用者兴趣与嗜好);
取消变数的方法为:『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
试说明一个使用者登入系统的流程?
登入:使用 /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
在 /etc/shadow 当中的日期设定中,其数字代表的意义为何?
由 1970 年开始计算,故 1970 年 一月一日为 1 ,2002 年 1 月 1 日为11689
如何变更使用者的一些属性?
usermod, chfn, chsh, passwd
如何视察一个使用者 username 所拥有的群组呢?
groups username
试说明如何手动增加一个使用者 username 与群组 groupname?
先看看 /etc/skel 当中,预设要给 user 的家目录内容;
新增 group : groupadd groupname
新增 user :useradd -m -g groupname username
给予密码: passwd username
试说明 /etc/passwd 这个档案的内容与格式:
帐号; 密码; UID; GID; 说明的内容; 家目录; SHELL
使用 id 这个指令时,可以显示什么讯息资料?
UID, GID 跟 GROUP
可以控制使用者使用主机资源的预设档案在哪裡?
/etc/security/limits.conf
基本的压缩指令有哪些?
tar, gzip, compress
--------------------------------------------------------------------------------
九、开机程序
试说明开机流程:
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 等待使用者登入!
开机时后的载入讯息可以看哪裡?
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结束的意思!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。