六、档案与目录管理
• 请问底下的目录与主要放置什么数据?
o
/etc/
:几乎系统的所有设定档案均在此,尤其 passwd, shadow
o
/etc/rc.d/init.d
:系统开机的时候加载服务的 scripts 的摆放地点
o
/boot
:开机设定档,也是预设摆放核心 vmlinuz 的地方
o
/usr/bin, /bin
:一般执行档摆放的地方
o
/usr/sbin, /sbin
:系统管理员常用指令集
o
/dev
:摆放所有系统装置档案的目录
o
/var/log
:摆放系统登录档案的地方
• 『旧的』 Unix 系统与 Linux 系统的『文件名』最多可以容许几个字符? 14, 255
• 什么是绝对路径与相对路径,要由 /usr/share/doc 进入到 /usr/share/man 由相对路径与绝对路径的写法各为何?
o
绝对路径绝对由 / 开始写起,相对路径则非由 / 写起;
o
cd /usr/share/man ; cd ../man
• 在非为根目录的任何一个目录中,下达 ls
�C
al
时,均会有『.』及『..』这两个目录,请问分别代表什么?
o
.
:代表本目录
o
..
:代表上层目录
• 显示、变换目录的时候,使用什么指令? ls, pwd 为显示; 变换目录用 cd
• 新增目录、移除目录移动目录与拷贝目录有什么指令可用?
o
新增: mkdir 目录,
o
移除: rmdir 目录(但是该目录内必须要已经清空了), rm
�C
rf
目录,
o
移动: mv directory1 directory2
o
拷贝: cp
�C
r directory1 directory2
• 如何查看一个档案的『内容』(不要使用 vi 的情况下) cat, tac, more, less, head, tail, nl, od(查看二进制制)
• 什么是 hard link 与 soft link 的档案?有何不同?
o
Hard Links
:在做成 hard link 档案时,系统会占用掉一个 inode ,由连结档案可发现其 link 字段多使用了一个 inode ,当源文件被删除的时候,该源文件的内容将继续保留在其它的 Hard Links 档案中;但所有 Link 占用的硬
盘总量仅占一个档案的容量大小!(但 Hard link 不能连结不同 filesystem 的档案)
o
Soft Links
:类似快捷方式,当原始档被删除,soft link 档案将找不到原始档了!
• 如何在 root 的家目录下建立一个 /bin 的连结快捷方式 ln
�C
s /bin /root/bin
• 若有一个连结档为 testing 连结到 test1.sh ,请问 copy testing 到 /tmp 底下,『cp testing /tmp』则 /tmp/testing 这个档案会是:(1) 连结档,连结到 test1.sh ;(2) 一般档案,为内容与 test1.sh 相同? 答案为 (2)
• 当一个档案属性为
�C
rwxrwxrwt
则表示这个档案的意义为? 任何人皆可读取、可写入,但是不可删除该档案(或目录),除了 root 与档案或目录拥有者有权可以删除。
• 我需要将一个档案的属性改为
�C
rwxr-xr--
请问该如何下达指令? chmod 754 filename, chmod u=rwx,g=rx,o=r filename
• 在 /usr/bin/passwd 这个档案的属性为
�C
r-s--x--x
请问代表什么意思(s) 那个 s 代表为 SUID ,当使用者使用这个档案进行工作的时候,将会具有该档案拥有者的权限!
• 如何改出
�C
rwxr-sr-x
与
�C
rwxr-xr-t
这个属性? chmod 2755 filename, chmod 1755 filename
• 如何查看一个档案的类型 (type) 例如纯文字文件、执行文件与 setuid 档案等? file filename
• 若一个使用者的 umask 为 033 ,请问他建立一个新的目录与档案时的预设属性为?
o
目录:744 ? -rwx-r--r--
o
档案: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
�C
k, df
�C
i,
• 我要如何查看目前所在目录的所有档案占用的硬盘空间,此外,如何仅输出结果? du -k, du
�C
i, du -s
• 如果扇区 /dev/hda3 有问题,偏偏他是被挂载上的,请问我要如何修理此一扇区? umount /dev/hda3 fsck /dev/hda3
• 承上题,那么有问题的档案将被移动到那个目录下? lost+found
• 试说明新增一个 partition 在 /dev/hdb 当中,且为 hdb5时,并挂载上 /disk2 ,需要哪些步骤?
o
fdisk /dev/hdb
按 n 新增,按 e 新增 extended ,再按 n 新增 logical
o
mke2fs
�C
b 2048 /dev/hdb5
o
mkdir /disk2
o
mount
�C
t ext2 /dev/hdb5 /disk2
• 如何新增加 64MB 的虚拟内存 swap ?
o
dd if=/dev/zero of=/tmp/swap bs=4k count=16384
o
mkswap /tmp/swap
o
swapon /tmp/swap
• 如果要设定一个新挂载上的扇区,令他可以在开机的时候被挂载上,应该编辑哪一个档案?
o
先 /etc/fstab
o
再 mount
�C
a
• 简易说明 quota 的设置流程?
o
编辑 /etc/fstab, 加入 usrquota and/or grpquota
o
reboot
o
quotacheck
�C
avug (
会产生 aquota.user(group))
o
quotaon
�C
aug
o
edquota
�C
u username
o
edquota
�C
g groupname
o
repquota
�C
vu /dev/hd[a-d][1-16]
七、BASH SHELL
• 简单说明 bash shell 的功能特征:
o
命令记忆功能 ~/.bash_history
o
命令别名功能 alias
o
shell scripts
功能
o
命令与文件名称补全功能 <tab>
o
工作控制功能 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
�C
d
“
“
�C
f 1 | wc -l
• 如何设定一个变量名称为 name ,使其显示为『 VBird
’
s testing variable.
』?
o
name=VBird\
’
s\ testing\ variable.
o
name=
”
VBird
’
s testing variables.
”
o
echo $name
• 请问 bash shell 的环境变量与自己的个人变量可以登入便设定的档案?
o
Open Linux
: /etc/profile, /etc/config.d/shells/bashrc, ~/.profile, ~/.bashrc,
o
Red Hat
: /etc/profile, ~/.bash_profile, ~/.bashrc,
• 如何查询曾经操作过的指令?如何执行第 26 个操作过的指令?上一个操作过的指令?
o
history
o
!26
o
!!
• 如何设定命令别名?使 lm 与 ls
�C
al|more
功能相同 alias lm=
’
ls
�C
al|more
’
• 如何将 /bin 的所有信息输出到 /home/testing.dat 这个档案? ls
�C
al /bin 1> /home/testing.dat
• 在上一题中,若还要输出到屏幕上,要如何是好? ls
�C
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
�C
d
”
“
�C
f1 | sort | uniq
• 万用字符当中, *, ?, [] 各代表什么意思?
o
*
代表 0 到无限多个字符;
o
?
代表一个任意字符;
o
[]
代表一个字符,这个字符在某一个限制范围内。
七.1、SHELL SCRIPTS
• 什么是 shell scripts ? scripts 有何功用?
o
简单的说, scripts 就是一个内部含有多个或复杂的 command 的纯文本文件;
o
scripts
可以进行 program 的功能,但速度上较 C 慢了点!
• 要撰写可以经由键盘输入的 scripts 时,常使用到的指令? read variable
• 在 shell script 当中,在控制式中, && 与 || 代表什么意思? 分别代表『和(同时成立)』及『或(仅其一成立就成立)』的意思!
• 在使用循环的时候,常使用到的控制式为哪三个? for, while, until
• 执行 scripts 的方法有哪两种?
o
使用 sh script 或
o
以 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 代表什么?
o
$0
代表 scripts 的�n名;
o
$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 使用者的账号、密码与群组的名称档案放在哪里?
o
/etc/passwd
o
/etc/shadow
o
/etc/group
• 建立新使用者的预设家目录内容在那个目录中? /etc/skel
• 建立一个新使用者时,其使用到的相关档案有哪些?
o
/etc/default/useradd,
o
/etc/login.defs,
o
/etc/skel/
o
/etc/passwd,
o
/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
�C
n [number] [command]
• 什么指令可以修改一个正在执行的程序之 nice 值? top, renice
• 在例行性命令中,使用的两支 demane 是什么? atd, crond
• 使用 crontab 这个『指令』的时候,如何可以查看目前的工作与删除目前的工作?编辑: crontab
�C
e,
查看: crontab
�C
l,
删除: crontab
�C
r
• 常用的 kill 指令之 signal 当中, 1, 9, 15 代表什么?
o
1
重新读取一次 config file
o
9
强制删除此一执行程序
o
15 terminal
结束的意思!