?? 8.htm
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0063)http://qref.sourceforge.net/Debian/reference/ch-tips.zh-cn.html -->
<HTML><HEAD><TITLE>Debian 參考手冊(cè) - Debian技巧</TITLE>
<META http-equiv=content-type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.3790.118" name=GENERATOR></HEAD>
<BODY><A name=ch-tips></A>
<HR>
[ <A
href="http://qref.sourceforge.net/Debian/reference/ch-kernel.zh-cn.html">上一頁(yè)</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/reference.zh-cn.html#contents">目錄</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-preface.zh-cn.html">1</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-system.zh-cn.html">2</A> ]
[ <A
href="http://qref.sourceforge.net/Debian/reference/ch-install.zh-cn.html">3</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-tutorial.zh-cn.html">4</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-woody.zh-cn.html">5</A> ]
[ <A
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html">6</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-kernel.zh-cn.html">7</A> ]
[ 8 ] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-tune.zh-cn.html">9</A> ] [
<A
href="http://qref.sourceforge.net/Debian/reference/ch-gateway.zh-cn.html">10</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-edit.zh-cn.html">11</A> ]
[ <A
href="http://qref.sourceforge.net/Debian/reference/ch-vcs.zh-cn.html">12</A> ] [
<A
href="http://qref.sourceforge.net/Debian/reference/ch-program.zh-cn.html">13</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-gnupg.zh-cn.html">14</A> ]
[ <A
href="http://qref.sourceforge.net/Debian/reference/ch-support.zh-cn.html">15</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ap-appendix.zh-cn.html">A</A>
] [ <A
href="http://qref.sourceforge.net/Debian/reference/ch-tune.zh-cn.html">下一頁(yè)</A> ]
<HR>
<H1>Debian 參考手冊(cè) <BR>第 8 章 - Debian技巧 </H1>
<HR>
<A name=s-booting></A>
<H2>8.1 啟動(dòng)系統(tǒng)</H2>
<P>參閱LDP <CODE><A
href="http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html">BootPrompt-HOWTO</A></CODE>獲得有關(guān)系統(tǒng)提示的詳細(xì)信息。
<HR>
<A name=s-crackroot></A>
<H3>8.1.1 “我忘了root密碼!”(1)</H3>
<P>只要能訪問(wèn)控制臺(tái)鍵盤(pán),不需要root密碼就可以啟動(dòng)系統(tǒng)登錄到root帳號(hào)。(假設(shè)BIOS或<CODE>lilo</CODE>之類(lèi)的啟動(dòng)引導(dǎo)器在啟動(dòng)時(shí)不需要密碼。)
<P>整個(gè)過(guò)程不需要另外的啟動(dòng)盤(pán)或?qū)IOS設(shè)置進(jìn)行修改。在此,“Linux”僅是一個(gè)標(biāo)簽,它代表啟動(dòng)Debian默認(rèn)安裝的Linux內(nèi)核。
<P>在<CODE>lilo</CODE>啟動(dòng)屏幕中,一但出現(xiàn)<SAMP>boot:</SAMP>(對(duì)某些系統(tǒng)而言,必須按下shift鍵以阻止自動(dòng)啟動(dòng)),就輸入:
<PRE> boot: Linux init=/bin/sh
</PRE>
<P>它會(huì)指示系統(tǒng)啟動(dòng)內(nèi)核后運(yùn)行<CODE>/bin/sh</CODE>而不是<CODE>init</CODE>。現(xiàn)在你已獲得root特權(quán)和root
shell。由于當(dāng)前<CODE>/</CODE>是以只讀方式掛載,而其它的硬盤(pán)分區(qū)均未掛載,故你必須完成下列步驟才能獲得一個(gè)有適當(dāng)功能的系統(tǒng)。 <PRE> init-2.03# mount -n -o remount,rw /
init-2.03# mount -avt nonfs,noproc,nosmbfs
init-2.03# cd /etc
init-2.03# vi passwd
init-2.03# vi shadow
</PRE>
<P>(如果在<CODE>/etc/passwd</CODE>文件中所有用戶(hù)的第二個(gè)域的數(shù)據(jù)為“x”,就表明系統(tǒng)使用了影子密碼,必須編輯<CODE>/etc/shadow</CODE>。)要?jiǎng)h除root密碼,請(qǐng)編輯密碼文件中第二個(gè)數(shù)據(jù)域,將它設(shè)置為空白。重啟系統(tǒng)不用密碼就能登錄到root。當(dāng)系統(tǒng)啟動(dòng)進(jìn)入runlevel
1時(shí),Debian(至少是Potato以后的版本)需要密碼,一些較老的版本則不需要。
<P>在<CODE>/bin</CODE>下裝一個(gè)小編輯器是個(gè)好習(xí)慣,因?yàn)橛袝r(shí)<CODE>/usr</CODE>是無(wú)法訪問(wèn)的(參閱<A
href="http://qref.sourceforge.net/Debian/reference/ch-edit.zh-cn.html#s-bin-editor">應(yīng)急的編輯器,
第 11.2 節(jié)</A>)。
<P>如果安裝<CODE>sash</CODE>軟件包,當(dāng)系統(tǒng)無(wú)法啟動(dòng)時(shí),還可執(zhí)行: <PRE> boot: Linux init=/bin/sash
</PRE>
<P>當(dāng)<CODE>/bin/sh</CODE>不可用時(shí),<CODE>sash</CODE>可作為<CODE>sh</CODE>的交互式替代品,它是靜態(tài)鏈接,內(nèi)建了許多標(biāo)準(zhǔn)工具(在系統(tǒng)提示符下輸入“help”可獲得參考列表)。
<HR>
<A name=s-crackroot2></A>
<H3>8.1.2 “我忘了root密碼!”(2)</H3>
<P>從急救盤(pán)啟動(dòng)系統(tǒng)。假設(shè)<CODE><VAR>/dev/hda3</VAR></CODE>是原始root分區(qū),可用下面的方法編輯密碼文件,與上述方法一樣容易。
<PRE> # mkdir <VAR>fixit</VAR>
# mount <VAR>/dev/hda3</VAR> <VAR>fixit</VAR>
# cd <VAR>fixit</VAR>/etc
# vi shadow
# vi passwd
</PRE>
<P>與上面的方法相比,該方法的好處在于不需要知道<CODE>lilo</CODE>密碼(如果有的話(huà))。但如果系統(tǒng)沒(méi)有預(yù)先設(shè)置為從軟盤(pán)或CD啟動(dòng),就需要訪問(wèn)BIOS的權(quán)限。
<HR>
<A name=s-dead-lilo></A>
<H3>8.1.3 無(wú)法啟動(dòng)系統(tǒng)</H3>
<P>沒(méi)在安裝過(guò)程中制作啟動(dòng)盤(pán)?沒(méi)關(guān)系。如果<CODE>lilo</CODE>損壞了,從Debian安裝套件中拿出啟動(dòng)盤(pán),用它來(lái)啟動(dòng)系統(tǒng)。假設(shè)你的root分區(qū)在<CODE><VAR>/dev/hda12</VAR></CODE>,你想進(jìn)入runlevel
3,在啟動(dòng)提示符后輸入: <PRE> boot: rescue root=<VAR>/dev/hda12</VAR> 3
</PRE>
<P>接下來(lái),系統(tǒng)使用軟盤(pán)上的內(nèi)核啟動(dòng),你可登錄到一個(gè)幾乎擁有全部功能的系統(tǒng)了。(可能有少量特性或模塊不可用。)
<P>如果系統(tǒng)崩潰,亦可參閱<A
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html#s-un-bootable">為無(wú)法啟動(dòng)的系統(tǒng)安裝軟件包,
第 6.3.6 節(jié)</A>。
<P>如果想做張自定義啟動(dòng)盤(pán),參閱急救盤(pán)中的<CODE>readme.txt</CODE>文檔。
<HR>
<A name=s-no-x-start></A>
<H3>8.1.4 “我不想直接啟動(dòng)到X!”</H3>
<P>玩<SAMP>unstable/sid</SAMP>很有趣,但在啟動(dòng)進(jìn)程中執(zhí)行不穩(wěn)定的<CODE>xdm</CODE>、<CODE>gdm</CODE>、<CODE>kdm</CODE>和<CODE>wdm</CODE>會(huì)讓你焦頭爛額。
<P>首先,在啟動(dòng)提示符后輸入如下指令獲得root shell: <PRE> boot: <VAR>Linux</VAR> vga=normal s
</PRE>
<P>其中,<VAR>Linux</VAR>代表你要啟動(dòng)的內(nèi)核鏡像,“vga=normal”告訴lilo在普通VGA屏幕下運(yùn)行,“s”(或“S”)是傳給<CODE>init</CODE>的參數(shù),告訴它進(jìn)入單用戶(hù)模式。在提示符后輸入root密碼。
<P>有多種方法禁用X啟動(dòng)deaemons:
<UL>
<LI>run <SAMP>update-rc.d <VAR>?</VAR>dm stop 99 1 2 3 4 5 6</SAMP> </LI></UL>
<UL>
<LI>insert "exit 0" at the start of all
<CODE>/etc/init.d/<VAR>?</VAR>dm</CODE> files. </LI></UL>
<UL>
<LI>rename all <CODE>/etc/rc<VAR>2</VAR>.d/S99<VAR>?</VAR>dm</CODE> files to
<CODE>/etc/rc2.d/K99<VAR>?</VAR>dm</CODE>. </LI></UL>
<UL>
<LI>remove all <CODE>/etc/rc<VAR>2</VAR>.d/S99<VAR>?</VAR>dm</CODE> files.
</LI></UL>
<UL>
<LI>run <SAMP>:>/etc/X11/default-display-manager</SAMP> </LI></UL>
<P>其中,<CODE>rc<VAR>2</VAR>.d</CODE>必須與<CODE>/etc/inittab</CODE>中指定的runlevel一致。<CODE><VAR>?</VAR>dm</CODE>表示所有的<CODE>xdm</CODE>、<CODE>gdm</CODE>、<CODE>kdm</CODE>和<CODE>wdm</CODE>。
<P>在Debian下只有第一種方法“最正確”。最后一種方法比較簡(jiǎn)單但只適用于Debian,而且還需要使用<CODE>dpkg-reconfigure</CODE>重新設(shè)置一次。其它方法都是通用的中止daemons的方法。
<P>你仍可在任何控制臺(tái)shell中輸入<CODE>startx</CODE>啟動(dòng)X。
<HR>
<A name=s-bootprompt></A>
<H3>8.1.5 其它用于啟動(dòng)提示符的技巧</H3>
<P>使用<CODE>lilo</CODE>啟動(dòng)提示符,可指定系統(tǒng)啟動(dòng)到特定的runlevel和配置。詳情參閱<CODE><A
href="http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html">BootPrompt-HOWTO</A></CODE>
(LDP)。
<P>如果希望系統(tǒng)啟動(dòng)到runlevel 4,可以<CODE>lilo</CODE>啟動(dòng)提示符后輸入: <PRE> boot: Linux 4
</PRE>
<P>如果希望系統(tǒng)啟動(dòng)到正常功能的單用戶(hù)模式,而且你知道root密碼,可在<CODE>lilo</CODE>啟動(dòng)提示符后輸入下列任一參數(shù)。 <PRE> boot: Linux S
boot: Linux 1
boot: Linux -s
</PRE>
<P>如果希望系統(tǒng)以少于實(shí)際內(nèi)存數(shù)的內(nèi)存啟動(dòng)(也就是說(shuō)機(jī)器有64MB內(nèi)存,只分配48MB給系統(tǒng)使用),在<CODE>lilo</CODE>啟動(dòng)提示符后輸入: <PRE> boot: Linux mem=48M
</PRE>
<P>注意,不要指定大于實(shí)際內(nèi)存數(shù)的內(nèi)存,否則內(nèi)核會(huì)崩潰。如果你有多于64MB的內(nèi)存,如128MB,應(yīng)在系統(tǒng)啟動(dòng)時(shí)執(zhí)行<SAMP>mem=128M</SAMP>或在<CODE>/etc/lilo.conf</CODE>中添加類(lèi)似的命令行,否則舊內(nèi)核或使用舊BIOS的主板將無(wú)法使用大于64MB的內(nèi)存。
<HR>
<A name=s-bootgrub></A>
<H3>8.1.6 如何設(shè)置啟動(dòng)參數(shù)(GRUB)</H3>
<P>GRUB是Hurd項(xiàng)目開(kāi)發(fā)的新型啟動(dòng)管理器,比Lilo更靈活,不過(guò)啟動(dòng)參數(shù)也與之稍有不同。 <PRE> grub> find /vmlinuz
grub> root (hd0,0)
grub> kernel /vmlinuz root=/dev/hda1
grub> initrd /initrd
grub> boot
</PRE>
<P>請(qǐng)注意Hurd中的設(shè)備名: <PRE> HURD/GRUB Linux MSDOS/Windows
(fd0) /dev/fd0 A:
(hd0,1) /dev/hda1 C: (usually)
(hd0,4) /dev/hda4 F: (usually)
(hd1,4) /dev/hdb4 ?
</PRE>
<P>詳情參閱<CODE>/usr/share/doc/grub/README.Debian</CODE>和<CODE>/usr/share/doc/grub-doc/html/</CODE>。
<HR>
<A name=s8.2></A>
<H2>8.2 活動(dòng)記錄</H2>
<HR>
<A name=s-script></A>
<H3>8.2.1 記錄shell活動(dòng)</H3>
<P>比起普通的個(gè)人電腦環(huán)境,Unix環(huán)境的系統(tǒng)管理包含了更多細(xì)致的任務(wù)。必須掌握所有基本的配置方法以便進(jìn)行系統(tǒng)故障恢復(fù)。基于X的GUI配置工具看上去又好又方便,但不適用于緊急狀況。
<P>記錄shell活動(dòng)是個(gè)好習(xí)慣,特別是root用戶(hù)。
<P>Emacs:使用<SAMP>M-x shell</SAMP>在緩沖區(qū)中開(kāi)始記錄,使用<SAMP>C-x C-w</SAMP>將緩沖區(qū)中的記錄寫(xiě)入文件。
<P>Shell:使用<CODE>screen</CODE>命令和“^A H”,參閱<A
href="http://qref.sourceforge.net/Debian/reference/ch-tips.zh-cn.html#s-screen">用<CODE>screen</CODE>來(lái)定制控制臺(tái),
第 8.6.26 節(jié)</A>或<CODE>script</CODE>命令: <PRE> $ script
Script started, file is typescript
... do whatever ...
Control-D
$ col -bx <typescript >savefile
$ vi savefile
</PRE>
<P>還可使用下面的方法: <PRE> $ bash -i 2>&1 | tee typescript
</PRE>
<HR>
<A name=s8.2.2></A>
<H3>8.2.2 記錄X活動(dòng)</H3>
<P>如果需要X應(yīng)用程序的活動(dòng)記錄圖,包括xterm屏顯,可使用<CODE>gimp</CODE>(GUI)。它可以對(duì)每個(gè)窗口或整個(gè)屏幕進(jìn)行拍照。還可以使用<CODE>xwd</CODE>(<CODE>xbase-clients</CODE>)、<CODE>import</CODE>(<CODE>imagemagick</CODE>)或<CODE>scrot</CODE>(<CODE>scrot</CODE>)。
<HR>
<A name=s-archiving></A>
<H2>8.3 拷貝及創(chuàng)建子目錄</H2>
<HR>
<A name=s8.3.1></A>
<H3>8.3.1 拷貝整個(gè)子目錄的基本命令</H3>
<P>如果想重新整理文件組織結(jié)構(gòu),可使用下面的方法移動(dòng)文件及文件鏈接: <PRE> 標(biāo)準(zhǔn)方法:
# cp -a /source/directory /dest/directory # requires GNU cp
# (cd /source/directory && tar cf - . ) | \
(cd /dest/directory && tar xvfp - )
如果包含硬鏈接,則需要更嚴(yán)謹(jǐn)?shù)姆椒ǎ? # cd /path/to/old/directory
# find . -depth -print0 | afio -p -xv -0a /mount/point/of/new/directory
如果是遠(yuǎn)程操作:
# (cd /source/directory && tar cf - . ) | \
ssh user@host.dom (cd /dest/directory && tar xvfp - )
如果沒(méi)有鏈接文件:
# scp -pr user1@host1.dom:/source/directory \
user2@host2.dom:/dest/directory
</PRE>
<P>其中,<CODE>scp</CODE> <==> <CODE>rcp</CODE>,<CODE>ssh</CODE> <==>
<P>下面的有關(guān)拷貝整個(gè)子目錄的信息由Manoj Srivastava
<srivasta@debian.org>發(fā)表于debian-user@lists.debian.org。
<HR>
<A name=s8.3.2></A>
<H3>8.3.2 <CODE>cp</CODE></H3>
<P>傳統(tǒng)上,<CODE>cp</CODE>并不能真正完成這個(gè)任務(wù),因?yàn)樗葲](méi)對(duì)符號(hào)鏈接進(jìn)行區(qū)別對(duì)待,又不能保存硬鏈接。另一件需要注意的事就是稀疏文件(有洞的文件)。
<P>GNU
<CODE>cp</CODE>克服了這缺陷,然而對(duì)于非GNU系統(tǒng),<CODE>cp</CODE>仍存在問(wèn)題。而且使用<CODE>cp</CODE>無(wú)法生成小巧輕便的文檔包。
<PRE> % cp -a . newdir
</PRE>
<HR>
<A name=s8.3.3></A>
<H3>8.3.3 <CODE>tar</CODE></H3>
<P>Tar克服了<CODE>cp</CODE>在處理符號(hào)鏈接時(shí)出現(xiàn)的問(wèn)題,然而,<CODE>cpio</CODE>可以處理特殊文件,傳統(tǒng)的<CODE>tar</CODE>卻不行。
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -