?? 4.htm
字號:
<SAMP>M-</SAMP>); 例如<SAMP>Esc</SAMP> + <SAMP>c</SAMP>等價于<SAMP>Alt-c</SAMP>
</LI></UL>
<HR>
<A name=s-mcedit></A>
<H3>4.3.5 編輯器</H3>
<P>內置編輯器的剪切-粘貼方式很有意思。按<SAMP>F3</SAMP>在起始處做標記,再次按<SAMP>F3</SAMP>在終止處做標記,這時中間的選中部分會高亮顯示。然后你可以移動光標到某處按下<SAMP>F6</SAMP>,被選中部分就會移到該處。如果你按下的是<SAMP>F5</SAMP>,選中部分就會拷貝到該處。<SAMP>F2</SAMP>用來存盤,<SAMP>F10</SAMP>退出,所有方向鍵的作為和它們的名字一樣直觀。
<P>該編輯器可直接打開某個文件: <PRE> $ mc -e filename_to_edit
$ mcedit filename_to_edit
</PRE>
<P>雖然它不是多窗口編輯器,但你可利用Linux多控制臺的特性達到相同的效果。要在窗口間進行拷貝操作,可使用<SAMP>Alt-F<VAR>n</VAR></SAMP>切換虛擬控制臺,然后使用“File->Insert
file”或“File->Copy to file”將一個文件中的內容拷貝到另一個文件。
<P>可指定任何外部編輯器作為內置編輯器。
<P>許多程序使用環境變量<SAMP>EDITOR</SAMP>或<SAMP>VISUAL</SAMP>來決定使用哪個編輯器。如果你用不慣vim,可在<CODE>~/.bashrc</CODE>中加上幾行來指定新的<SAMP>mcedit</SAMP>:
<PRE> ...
export EDITOR=mcedit
export VISUAL=mcedit
...
</PRE>
<P>我強烈推薦將它們設定為<SAMP>vim</SAMP>。在Linux/Unix世界里就該使用vi(m)命令。
<HR>
<A name=s4.3.6></A>
<H3>4.3.6 閱讀器</H3>
<P>非常精巧的閱讀器。它是在文檔中搜索單詞的利器。在<CODE>/usr/share/doc</CODE>目錄下我總是用它,面對大量的Linux資料用它瀏覽是最快的方法。閱讀器可以直接找開文件:
<PRE> $ mc -v filename_to_view
</PRE>
<P>(注意,有些不規范的軟件包仍將它們的文檔放在<CODE>/usr/doc</CODE>目錄下。)
<HR>
<A name=s4.3.7></A>
<H3>4.3.7 自動啟動特性</H3>
<P>在文件上按<SAMP>Enter</SAMP>,會激活相關的程序操作該文件。這是MC的一個極方便的特點。 <PRE> executable: 執行命令
man, html file: 將文件內容傳入閱讀器程序
tar, gz, rpm file: 象瀏覽子目錄一要瀏覽它的內容
</PRE>
<P>為了使這些文件特性生效,不要將可閱讀文件設成可執行文件。可在MC文件菜單中改變文件屬性或使用<CODE>chmod</CODE>命令。
<HR>
<A name=s4.3.8></A>
<H3>4.3.8 FTP虛擬文件系統</H3>
<P>MC可通過FTP訪問文件。按<SAMP>F9</SAMP>轉到菜單欄,輸入<SAMP>p</SAMP>激活FTP虛擬文件系統。按<SAMP>username:passwd@hostname.domainname</SAMP>格式輸入URL,遠程文件目錄就會以本地目錄的方式顯示出來。
<HR>
<A name=s-file-system></A>
<H2>4.4 GNU/Linux文件系統基礎知識</H2>
<P>在GNU/Linux系統中每個文件和目錄都與其擁有者(主人)和擁有組相關聯。所有的文件信息都保存在一個稱為<STRONG>inode</STRONG>的數據結構中。
<HR>
<A name=s-file-perm></A>
<H3>4.4.1 文件和目錄的訪問權限</H3>
<P>文件和目錄的訪問權限對如下3類用戶進行了分別定義:
<UL>
<LI>文件<STRONG>擁有者</STRONG>(u),
<LI>文件擁有者所在<STRONG>用戶組</STRONG>中的其它成員(g),和
<LI>所有<STRONG>其它</STRONG>用戶(o)。 </LI></UL>
<P>每個文件均擁有下列三種權限:
<UL>
<LI><STRONG>read</STRONG> (r): 查看文件內容
<LI><STRONG>write</STRONG> (w): 修改文件
<LI><STRONG>execute</STRONG> (x): 如同命令一樣執行文件 </LI></UL>
<P>每個目錄均擁有下列三種權限:
<UL>
<LI><STRONG>read</STRONG> (r): 列出目錄內容
<LI><STRONG>write</STRONG> (w): 在目錄中增刪文件
<LI><STRONG>execute</STRONG> (x): 訪問目錄中的文件 </LI></UL>
<P>在此,對目錄的<STRONG>execute</STRONG>權限,不僅意味著允許查看目錄下文件的內容,還允許獲文件的其它信息如文件大小、修改時間。
<P><CODE>ls</CODE>可用來獲取目錄和文件的這些信息。參閱<CODE>ls(1)</CODE>。使用<CODE>ls</CODE>的<SAMP>-l</SAMP>選項,就會按如下順序顯示下列信息:
<UL>
<LI><STRONG>文件類型</STRONG>(第1個字符)
<UL>
<LI>-: 普通文件
<LI>d: 目錄
<LI>l: 符號鏈接
<LI>c: 字符型設備節點
<LI>b: 塊設備節點 </LI></UL>
<LI>文件訪問<STRONG>權限</STRONG>(接下來的9個字符,每3個一組依次代表user、group和other)。
<LI>文件的<STRONG>硬鏈接數</STRONG> 。
<LI>文件擁有<STRONG>user</STRONG>的用戶名。
<LI>文件所屬<STRONG>group</STRONG>的用戶組名。
<LI>文件的字符數<STRONG>size</STRONG> (bytes)。
<LI>文件的<STRONG>date and time</STRONG> (mtime)。
<LI>文件的<STRONG>name</STRONG>。 </LI></UL>
<P>在root賬號下可使用<CODE>chown</CODE>改變文件的擁有者,參閱<CODE>chown(1)</CODE>。要改變文件的所屬組,可以文件擁有者或root的身份運行<CODE>chgrp</CODE>,參閱<CODE>chgrp(1)</CODE>。要改變目錄的訪問權限,可以文件擁有者或root的身份運行<CODE>chmod</CODE>,參閱<CODE>chmod(1)</CODE>。
<P>例如,可以root帳號下創建一個目錄樹,并使其擁有者為<VAR>foo</VAR>,所屬組為<VAR>bar</VAR>: <PRE> # cd /some/location/
# chown -R <VAR>foo</VAR>:<VAR>bar</VAR> .
# chmod -R ug+rwX,o=rX .
</PRE>
<P>下面是3個更特殊的權限:
<UL>
<LI><STRONG>set user ID</STRONG> (s 或 S 而非 user's x),
<LI><STRONG>set group ID</STRONG> (s 或 S 而非 group's x), and
<LI><STRONG>sticky bit</STRONG> (t 或 T 而非 other's x). </LI></UL>
<P>在此,如果未設置輸出時屏蔽執行權限標識位,則<CODE>ls -l</CODE>的輸出中這些標識位將使用大寫字母。
<P>為可執行文件設置<STRONG>set user
ID</STRONG>位將允許用戶以該文件擁有者的ID來執行該文件(例如以<STRONG>root</STRONG>身份)。同樣,為可執行文件設置<STRONG>set
group
ID</STRONG>將允許用戶以該文件所屬組的ID來執行該文件(例如以<STRONG>root</STRONG>身份)。這將引起安全風險所以使用這些特性時要格外小心。
<P>為目錄設置<STRONG>set group
ID</STRONG>,則該目錄會使用BSD-like文件創建方案,即目錄中所有新創建的文件均屬于該目錄所屬的<STRONG>group</STRONG>。
<P>為目錄設置<STRONG>sticky
bit</STRONG>可防止非文件擁有者移動目錄中的文件。為確保全局可寫目錄如<CODE>/tmp</CODE>或組可寫目錄中的文件內容不被修改,不僅要關閉文件的<STRONG>寫</STRONG>權限,還應設置目錄的<STRONG>sticky
bit</STRONG>,否則,任何對該目錄有寫權限的用戶均可以將該文件移動到別處,然后在原地創建一個同名文件。
<P>這兒有一些有關文件權限的有趣例子。 <PRE> $ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
crw-rw---- 1 root dip 108, 0 Jan 18 13:32 /dev/ppp
-rw-r--r-- 1 root root 1051 Jan 26 08:29 /etc/passwd
-rw-r----- 1 root shadow 746 Jan 26 08:29 /etc/shadow
-rwsr-xr-- 1 root dip 234504 Nov 24 03:58 /usr/sbin/pppd
$ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
drwxrwxrwt 4 root root 4096 Feb 9 16:35 /tmp
drwxrwsr-x 10 root staff 4096 Jan 18 13:31 /usr/local
drwxrwsr-x 3 root src 4096 Jan 19 08:36 /usr/src
drwxrwsr-x 2 root mail 4096 Feb 2 22:19 /var/mail
drwxrwxrwt 3 root root 4096 Jan 25 02:48 /var/tmp
</PRE>
<HR>
<A name=s-timestamp></A>
<H3>4.4.2 時間戳</H3>
<P>GNU/Linux的文件有3種類型的時間戳:
<UL>
<LI><STRONG>mtime</STRONG>: 修改時間 (<SAMP>ls -l</SAMP>),
<LI><STRONG>ctime</STRONG>: 狀態改變時間 (<SAMP>ls -lc</SAMP>),以及
<LI><STRONG>atime</STRONG>: 最近訪問時間 (<SAMP>ls -lu</SAMP>). </LI></UL>
<P>注意<STRONG>ctime</STRONG>并非文件創建時間。
<UL>
<LI>覆蓋一個文件會改變所有三類時間<STRONG>mtime</STRONG>、<STRONG>ctime</STRONG>和<STRONG>atime</STRONG>所有三類時間。
<LI>改變文件的訪問權限或擁有者會改變文件的<STRONG>ctime</STRONG>和<STRONG>atime</STRONG>。
<LI>讀文件會改變文件的<STRONG>atime</STRONG>。 </LI></UL>
<P>注意,在GNU/Linux系統中,即便是簡單的讀文件通常會引起文件的寫操作,從而更新<STRONG>inode</STRONG>上的<STRONG>atime</STRONG>信息。使用<SAMP>noatime</SAMP>選項來掛載文件系統,可使用系統忽略該操作,從而加速文件的訪問和讀取。參閱<CODE>mount(8)</CODE>。
<HR>
<A name=s-links></A>
<H3>4.4.3 鏈接</H3>
<P>在2種方法將文件<VAR>foo</VAR>關聯到不同的文件名<VAR>bar</VAR>。
<UL>
<LI><STRONG>hardlink</STRONG>(硬鏈接)相當于現存文件的另一個名字。(<SAMP>ln <VAR>foo</VAR>
<VAR>bar</VAR></SAMP>),
<LI><STRONG>symlink</STRONG>(符號鏈接)指向一個不同的文件。(<SAMP>ln -s <VAR>foo</VAR>
<VAR>bar</VAR></SAMP>)。 </LI></UL>
<P>下面的例子顯示了鏈接數的改變和使用<CODE>rm</CODE>命令時產生的微妙差異。 <PRE> $ echo "Original Content" > <VAR>foo</VAR>
$ ls -l <VAR>foo</VAR>
-rw-r--r-- 1 osamu osamu 4 Feb 9 22:26 <VAR>foo</VAR>
$ ln <VAR>foo</VAR> <VAR>bar</VAR> # hardlink
$ ln -s <VAR>foo</VAR> <VAR>baz</VAR> # symlink
$ ls -l <VAR>foo</VAR> <VAR>bar</VAR> <VAR>baz</VAR>
-rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 <VAR>bar</VAR>
lrwxrwxrwx 1 osamu osamu 3 Feb 9 22:28 <VAR>baz</VAR> -> <VAR>foo</VAR>
-rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 <VAR>foo</VAR>
$ rm <VAR>foo</VAR>
$ echo "New Content" > <VAR>foo</VAR>
$ cat <VAR>bar</VAR>
Original Content
$ cat <VAR>baz</VAR>
New Content
</PRE>
<P>上例中所有的符號鏈接均擁有訪問權限“rwxrwxrwx”,它們的訪問權限均由它們所指向的文件來定義。
<P><CODE>.</CODE>鏈接到它所屬的目錄,因此任何新目錄的鏈接數都從2開始計算。<CODE>..</CODE>鏈接到父目錄,因些目錄鏈接數會隨新的子目錄數的增長而增長。
<HR>
<A name=s4.5></A>
<H2>4.5 進一步學習</H2>
<P>許多Unix入門級參考書出自在O'Reilly,在計算機的各個領域,想買到優秀的指導書,O'Reilly不會讓你失望。LDP的文檔<CODE><A
href="http://www.tldp.org/HOWTO/Tips-HOWTO.html">Tips-HOWTO</A></CODE>是另一個極好的資源。更多資源參閱<A
href="http://qref.sourceforge.net/Debian/reference/ch-support.zh-cn.html">Debian技術支持,
第 15 章</A>。
<HR>
[ <A
href="http://qref.sourceforge.net/Debian/reference/ch-install.zh-cn.html">上一頁</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>
] [ 4 ] [ <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> ]
[ <A
href="http://qref.sourceforge.net/Debian/reference/ch-tips.zh-cn.html">8</A> ] [
<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-woody.zh-cn.html">下一頁</A>
]
<HR>
<P>Debian 參考手冊
<ADDRESS>CVS, 星期三 四月 28 19:36:38 UTC 2004<BR><BR>Osamu Aoki <CODE><A
href="mailto:osamu@debian.org">osamu@debian.org</A></CODE><BR>Translator: Hao
"Lyoo" Liu <CODE><A
href="mailto:iamlyoo@163.net">iamlyoo@163.net</A></CODE><BR><A
href="http://qref.sourceforge.net/Debian/reference/ap-appendix.zh-cn.html#s-authors">作者,
第 A.1 節</A><BR><BR></ADDRESS>
<HR>
</BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -