Unix/命令/摘要指南
这是我对有用的 Linux 简写、目录、文件和命令的总结。我使用自己的注释来回忆那些不容易找到的可用选项和参数。当我记不起经常使用的命令的语法时,我经常调用这个文件(但没有经常使用到能记住语法!)。我还会对不同类型程序的相对实用性进行评论。
本文档仍在开发中。
其中一些特定于 bash shell。我没有对其他 shell 进行足够的实验来了解哪些是所有 shell 共有的。另请参阅 SSC (2000) 的“Bash 参考卡”,可在网上获取。
- / - 根目录
- ./ - 当前目录
- ./command_name - 当当前目录不在路径上时,在当前目录中运行命令
- ../ - 父目录
- ~- 主目录
- $ - 以普通用户身份登录时的典型提示
- # - 以 root 或超级用户身份登录时的典型提示
- ![string] - 重复以 [string] 开头的命令
- !?[string] - 重复以 [string] 结尾的命令
- !?[string] - 重复包含 [string] 的命令
- ![number] - 重复指定的命令 x 次
- !-[number] - 重复指定的命令 x 个命令之前
- !! - 重复上一个命令
- ^[string]^[string2]^ - 重复上一个命令,将 [string2] 替换为 [string](等同于 !!:s/string1/string2/)
- & - 在后台模式下运行程序
- [Tab][Tab]- 打印所有可用命令的列表。这只是自动完成的一个例子,对第一个字母没有限制。
- x[Tab][Tab] - 打印所有可用命令的列表,这些命令的开头是“x”
- [Alt][Ctrl][F1]- 从 X 切换到第一个虚拟文本控制台。
- [Alt][Ctrl][Fn]- 从 X 切换到第 n 个虚拟文本控制台。
- [Alt][Ctrl][F7]- 切换到第一个 GUI 控制台(如果正在运行),假设有 6 个虚拟文本控制台。如果图形控制台冻结,则可以切换到非图形控制台,终止导致问题的进程,然后使用此快捷键切换回图形控制台。
- [ArrowUp]- 在命令历史记录中滚动(在 bash 中)
- [Shift][PageUp]- 向上滚动终端输出。这在登录提示符处也有效,因此您可以滚动浏览引导消息。
- [Shift][PageDown]- 向下滚动终端输出
- [Ctrl][Alt][+]- 切换到下一个 X 服务器分辨率(如果服务器设置为多个分辨率)
- [Ctrl][Alt][-]- 更改为上一个 X 服务器分辨率
- [Ctrl][Alt][BkSpc]- 终止当前 X 服务器。在无法正常退出时使用。
- [Ctrl][Alt][Del]- 关闭系统并重新启动
- [Ctrl]a- 将光标移动到行首
- [Ctrl]c- 终止当前进程
- [Ctrl]d- 从当前终端注销
- [Ctrl]e- 将光标移动到行尾
- [Ctrl]l- 清屏
- [Ctrl]n- 历史记录中的下一个(与向下箭头相同)
- [Ctrl]p- 历史记录中的上一个(与向上箭头相同)
- [Ctrl]q- 恢复传输到当前终端。如果终端停止响应,则应尝试此操作。
- [Ctrl]s- 停止传输到当前终端
- [Ctrl]u- 清除从光标到行首的内容
- [Ctrl]y- 当进程请求输入时将其发送到后台。(延迟后台)
- [Ctrl]z- 将当前进程发送到后台
- reset - 将终端恢复到其默认设置
- [Leftmousebutton]- 按住左键并拖动以突出显示文本。释放按钮将区域复制到 X 下的文本缓冲区中,以及(如果安装了 gpm)在控制台模式下。
- [Middlemousebutton]- 从文本缓冲区复制文本并将其插入光标位置。对于双按钮鼠标,请同时单击两个按钮。必须启用三按钮模拟,在 gpm 或 XF86Config 下启用。
这些是在启动时运行的程序或进程。有些会保留在内存中以在需要时执行各种任务(守护进程)。大多数在 /etc/rc.d/init.d 目录中的脚本启动和停止(见上文)。此目录的确切内容将取决于从特定发行版安装了哪些包。例如,安装 Apache 包将导致一个 httpd 脚本被放置到 /etc/rc.d/init.d 中。
大多数都有手册页。Red Hat 程序 tksysv(ntsysv 是非图形版本)允许 root 自动配置哪些在启动时自动启动。linuxconf 程序也做同样的事情,虽然我没有尝试过。实用程序 chkconfig 也用于查询和配置不同运行级别的运行时服务。Thewww.mandrakeuser.org网站有一个关于常见服务/守护进程的页面,特别是那些包含在 Mandrake 发行版最近版本中的页面。
关于守护进程和服务的良好信息来源是 CTDP (2000a) 文档的“Linux 设备、守护进程、服务”章节。
- amd - 运行自动挂载守护进程,用于远程文件系统挂载,例如 nfs
- anacron - 在启动时检查延迟的“cron”任务(见下文)并执行它们。如果您有计划的 cron 作业,但没有始终运行机器,则非常有用。
- apmd - 高级电源管理 BIOS 守护进程。用于支持 apm 的机器,尤其是笔记本电脑。监控电池状态,如果电量过低,可以关闭系统。
- arpwatch - 监视使用 ARP 协议解析的以太网 IP 地址配对。
- atd - 运行由“at”排队的作业
- autofs - 控制自动挂载守护进程的操作,用于按需挂载和卸载设备
- bootparamd - 允许计算机使用 BOOTP 网络协议从 Linux 机器启动。一个服务器进程,为无盘客户端提供启动所需的信息
- crond - 自动任务调度程序。管理定期但不频繁执行的任务,例如轮换日志文件、清理 /tmp 目录等。
- cups - 通用 Unix 打印系统下的打印服务守护进程,替代 lpd
- dhcpd - 实现动态主机配置协议 (DHCP) 和互联网引导协议 (BOOTP)。用于将 IP 地址租赁给远程机器。
- drakfont - Mandrake 中的字体服务器
- fetchmail - 守护进程,用于定期从邮件服务器获取邮件
- ftpd - ftp 服务器守护进程
- gated - 路由守护进程,处理多个路由协议并替换路由和 egpup
- gpm - 用于在 Linux 控制台上运行的应用程序的有用鼠标服务器。
- httpd - Apache Web 服务器超文本传输协议守护进程
- identd - identd 服务器提供一种方法来确定特定 TCP 连接用户的身份。给定一个 TCP 端口号对,它返回一个字符串,该字符串标识服务器系统上该连接的所有者。
- inetd - 监听网络连接上的服务请求,尤其是*拨号*服务。此守护进程可以自动加载和卸载其他守护进程(ftpd、telnetd 等),从而节省系统资源。在最新版本的 Red Hat(撰写本文时为 7.0)中,它已被 xinetd 取代。下面列出了 inetd 控制的服务的部分列表。在许多发行版中,inetd 将执行 /etc/inetd.conf 文件中的脚本。
- innd - Usenet 新闻服务器守护进程
- ipchains - 用于数据包转发的守护进程。用于配置网关/防火墙。
- isdn 提供 ISDN 网络接口服务
- isdn4linux - 适用于 ISDN 卡用户
- kerneld - 自动加载和卸载内核模块
- keytable - 从 /etc/sysconfig/keyboard 加载适当的键盘映射
- kheader -
- kudzu - 在引导期间检测和配置新的或已更改的硬件
- linuxconf - linuxconf 系统配置工具所需的“启动挂钩”
- lpd - 行式打印机和打印机后台处理程序守护进程
- mcserv - Midnight Commander 网络文件系统的服务器程序。它为运行 Midnight 文件系统的客户端(目前仅限 Midnight Commander 文件管理器)提供对主机文件系统的访问权限。如果程序以 root 身份运行,程序将尝试获取一个保留端口,否则它将使用 9876 作为端口。如果系统正在运行端口映射器,则该端口将注册到端口映射器,因此客户端将自动连接到正确的端口。如果系统没有端口映射器,则应使用 -p 选项手动指定端口(见下文)。
- mysql - 数据库服务器守护进程
- named - 提供 DNS 服务
- netfs - 网络文件系统安装器。用于在引导时安装 nfs、smb 和 ncp 共享。
- network - 通过调用 /etc/sysconfig/network-scripts 中的脚本,在引导时激活所有网络接口
- nfsd - 用于在远程系统请求时导出 nfs 共享
- nfslock - 启动和停止 nfs 文件锁定服务
- numlock - 在 init 运行级别更改时锁定 numlock 键
- pcmcia - 笔记本电脑中 pcmcia 卡的通用服务
- portmap - 用于远程过程调用
- postfix - 邮件传输代理,它是 sendmail 的替代品。现在是 Mandrake 桌面安装的默认邮件传输代理。
- postgresql - 数据库服务器守护进程
- random - 随机数生成守护进程,与安全和加密相关
- routed - 管理路由表
- rstatd - 内核统计服务器。允许网络上的用户获取任何连接机器的性能统计信息。
- rusersd - 提供服务,允许用户通过网络相互查找
- rwalld - 允许用户使用 rwall 在远程终端上写入消息
- rwhod - 服务器,维护 rwho(1) 和 ruptime(1) 程序使用的数据库。它的操作取决于在网络上广播消息的能力。
- sendmail - 邮件传输代理。这是 Red Hat 附带的代理。其他代理,如 smtpd,未包含在内。
- smb - 用于运行 SAMBA
- snmpd - 提供简单网络管理协议支持
- sound - 用于管理声音的守护进程
- squid - 网页代理服务器守护进程
- syslogd - 管理系统日志文件
- smtpd - 简单邮件传输协议,旨在用于交换电子邮件。支持 SMTP 的守护进程有很多,包括 sendmail、smtpd、rsmtpd、qmail、zmail 等。
- tcpd - 来自 tcp_wrappers 包。拦截通常由 inetd 处理的请求,并通过 hosts.allow 和 hosts.deny 文件对其进行过滤,这些文件可以根据服务类型、请求来源、目标等限制对服务的访问。请求被拦截是因为对特定服务的调用在 /etc/inetd.conf 中被替换为对 tcpd 的调用。
- telnetd - telnet 服务器守护进程
- usb - 用于通用串行总线上的设备的守护进程
- xfs - X 字体服务器
- xinetd - inetd 的更现代的替代品。它显然允许使用类似于 tcpd 与 inetd 结合使用的访问过滤器。xinetd 在 Red Hat 7.0 中取代 inetd 作为默认网络服务守护进程。
- xntpd - 网络时间协议守护进程。提供了一种通过网络同步时间的方法。
- webmin - webmin 基于 Web 的系统管理程序的守护进程。
- ypbind - NIS 绑定程序。如果计算机是网络信息服务域的一部分,则需要它。
我所知道的所有 Linux 发行版都附带 sendmail,除了 Mandrake,它从 7.1 版本开始使用 Postfix 作为其默认 MTA。有很多竞争程序可供使用。即使是最简单的程序似乎也不容易配置。
- Exim -
- Fetchmail - 似乎是为数不多的几种方法之一(Pine 也能做到这一点),可以自动从 POP 或 IMAP 服务器下载邮件并将其传递给本地邮件处理代理。在 /.fetchmailrc 中使用以下行
- poll pop.uqam.ca proto pop3 user USERNAME pass PASSWORD
使用以下方法将 fetchmail 加载为守护进程,该守护进程将定期下载邮件
- fetchmail -d 6000
间隔以秒为单位指定。Fetchmail 将轮询 /.fetchmailrc 中列出的所有 pop 服务器。
- Getmail - 旨在替代 Fetchmail。
- MMDF -
- Postfix - 邮件传输代理,可能是 sendmail 的替代品。Mandrake 7.1 及更高版本使用它作为其默认 MTA。
- Qmail - sendmail 的“现代”替代品。据说它比 sendmail 更安全。由于它没有 GPL 许可证,因此它不是我所知道的任何 Linux 发行版的默认 MTA。
- Sendmail - 我认为它拥有最复杂和最晦涩的配置文件 /etc/sendmail.cf。大多数 Linux 个人用户将使用通过 ISP 连接到互联网的机器,或者使用具有集中邮件处理和网络访问权限的网络(如大学网络)。我必须更改 sendmail.cf 中的以下几行才能使用 emacs 发送邮件。
- DMuqam.ca#伪装域名
- DNambler.steven#伪装用户名
- DSnobel.si.uqam.ca#通过 nobel 服务器中继所有邮件
问题来自这样一个事实,即作为本地网络上的用户,我没有自己的域名。我希望返回邮件被路由到 UQAM 的邮件服务器,并且我希望服务器为我处理我所有的邮件,即使是发往其他 UQAM 用户的邮件。如果我使用用户的规范化用户名向 UQAM 用户发送邮件,网络将不知道他们是谁或在哪里。我设法通过编写 sendmail.mc 文件并使用 m4 宏解释器对其进行处理来获得一个有效的配置,遵循“地址重写”小型 HOWTO。我现在有了可以运行的东西,但每次系统启动时,它都会神秘地抱怨“危险的写入权限”。
- Smail - 似乎在较小的系统上很受欢迎。看来,在它发展历史中的某个时候,Red Hat 附带了 smail,但现在已被 sendmail 取代。
- Zmailer - 显然是为拥有大量用户的邮件服务器而设计的。
- Acmemail - 基于 Web 的邮件代理。允许您使用任何浏览器访问您的邮件。这涉及在服务器端设置一个 Perl CGI 脚本。
- Archimedes - XFmail 的后继程序(见下文)
- Arrow -
- Balsa - 默认的 Gnome 邮件程序
- Blitzmail -
- Elm -
- Emumail - 基于 Web 的邮件代理。允许您使用任何浏览器检查您的 POP 邮件帐户。制作此邮件代理的公司网站可用于检查 Unix 系统上的邮件,而无需在服务器端设置任何 CGI 脚本。
- Evolution - 为在 Gnome 下使用而设计的邮件阅读器和联系人管理器/日历
- Exmh - Mh 的图形前端
- Kmail - KDE 附带的邮件阅读程序
- M - 代表“Mahogany”。看起来类似于 XFmail(见下文)。我无法从描述中确定它是否独立运行,还是与 sendmail 和 procmail 结合运行。
- Mh -
- Mumail -
- Mutt - 基于文本的邮件程序,高度可配置。
- Nmh - 邮件处理系统。该系统包含大量二进制命令,这些命令保存在 /usr/bin 中。有关详细信息,请参阅 nmh 手册页。Red Hat 5.1 和 5.2 附带 exmh 和 xmh,它们是 nmh 的图形前端。exmh 前端是一个单独的软件包,而 xmh 归 XFree86 所有。
- Pine - 基于文本的邮件和新闻实用程序。其功能现在包括
- MIME 支持
- 能够阅读和发布网络新闻
- 维护邮件收件人的地址簿
- 在消息撰写过程中进行拼写检查
- 在 X 窗口系统上使用 xterm 时支持鼠标
- 高度可配置的环境
Pine 可用于从一个或多个 POP3 邮件服务器下载邮件。请参阅“一周一贴”(http://tipoftheweek.darkelf.net)中 1999 年 2 月的第四周。首先,设置多个配置文件(pine -p localmail、pine -p popserver 1、pine -p popserver 2 等)。然后,要配置 Pine 使用 POP3 服务器,请使用“设置配置”命令。在 inbox-path 中设置类似于以下内容
- {pop.server.com/pop3/user=myid}INBOX
当 Pine 重新启动时,它应该会要求您输入密码,连接到远程服务器,并像访问本地邮件一样使用它。文章中没有明确说明是否可以选择将下载的邮件副本保留在服务器上。
- Sylpheed -
- XCmail -
- XFmail - 这个看起来很有希望。它是一个基于 GUI 的邮件工具,似乎提供了 Netscape 邮件模块的大多数功能。它无需使用 sendmail 和 procmail 即可运行,这是一个主要优势。
- cooledit - 一款功能强大的 GUI 文本编辑器
- emacs - 功能强大的文本编辑器,包含用于阅读和发送邮件以及新闻组帖子的模块,以及一个浏览器模块。对于编辑 TEX 和 LATEX 文件,AucTEX 附加包非常有用,并使 emacs 成为使用 LATEX 的最佳编辑器。
- jed - 具有非常好的 emacs 模拟功能(它甚至可以像 emacs 一样阅读邮件!)。它对 TeX 文件进行简单的语法高亮显示,包括提供括号的位置。它似乎非常可配置,并且比 emacs 占用更少的磁盘空间,尽管比 joe 和 muemacs 多。它在控制台模式下运行良好,并且仍然可以为菜单栏和语法高亮显示使用颜色。程序 xjed(某些版本附带)在被调用时会启动它自己的 X 终端。
- joe - “Joe's Own Editor”,一款相当强大的编辑器,具有紧凑的二进制文件和模拟 Wordstar、Emacs、Pico 和其他一些编辑器的功能。
- jove - “Joe's Own Version of Emacs”。我尝试过几次,在命令语法中出现一些小错误时导致程序崩溃。
- microemacs (JASSPA) - muemacs 的衍生版。相当强大且可配置,同时不会占用太多磁盘空间或内存。
- muemacs - 一款相当强大的 emacs 克隆版,其二进制文件实际上比 Joe 编辑器的小。
- nedit - 一款基于 X 窗口的文本编辑器。在我见过的所有 Linux 文本编辑器中,它的命令最接近 Windows 文本编辑器,用于光标移动、高亮显示、标记文本等。它对 LATEX 和 HTML 都有非常好的语法高亮显示。
- pico - 简单的文本编辑器。它通常与 Pine 邮件用户代理捆绑在一起。
- vi - 大多数 Linux 发行版都包含它。如果您不习惯语法,可能会难以理解。
- vim - vi 的改进版本
- xedit - 许多 Linux 发行版中包含的简单文本编辑器
- dfm - 桌面文件管理器。允许用户将程序图标放在桌面上。
- gmc - Gnome Midnight Commander。Gnome 版的 Midnight Commander。包含图形界面,允许用户将图标放在桌面上。
- mc - Midnight Commander 文件管理器。在控制台模式和 xterm 中运行。
- scilab - 一种免费的矩阵编程语言。可能是 GAUSS 和/或 MATLAB 的良好替代品。
- Rosetta Stone For *Nix - 可配置的 *nix 和 MAC 系统等效程序列表。
计算机技术文档项目 (CTDP) (2000a), ``Linux 工作原理'', http://www.comptechdoc.org/os/linux/howlinuxworks/
计算机技术文档项目 (CTDP) (2000b), ``Linux 文件和命令参考'', http://www.comptechdoc.org/os/linux/commands/
Klimas, Piotr 等人。 (1999), ``Linux 新手管理员指南'', http://linux-newbie.sunsite.dk/
Siever, Ellen,Stephen Spainhour,Jessica P. Hekman 和 Stephen Figgins (2000), Linux 概览. 第三版,O'Reilly
Sobell, Mark G. (1998), Linux 实用指南. Addison-Wesley
Welsh, Matt,Matthias Kalle Dalheimer 和 Lar Kaufman (1999), 运行 Linux. 第三版,O'Reilly and Associates