📄 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 + -