intro(1) - Linux man page
名称
intro - 用户命令介绍描述
所有命令在终止时都会产生一个状态值。这个值可以被测试(例如,在大多数 shell 中,变量 $? 包含最后一个执行命令的状态)以查看命令是否成功完成。零退出状态通常用于指示成功,而非零状态表示命令执行不成功。(退出状态的详细信息可以在 wait(2) 中找到。)非零退出状态的范围在 1 到 255 之间,有些命令使用不同的非零状态值来指示命令失败的原因。
说明
Linux 是 UNIX 的一种变体,作为一种近似,UNIX 下的所有用户命令在 Linux(以及 FreeBSD 和许多其他类 UNIX 系统)下工作方式完全相同。在 Linux 下,有 GUI(图形用户界面),你可以点击和拖动,并希望完成工作而无需先阅读大量文档。传统的 UNIX 环境是一个 CLI(命令行界面),你输入命令来告诉计算机做什么。这更快更强大,但需要找出这些命令是什么。以下是一个最基本的入门指南。
登录
为了开始工作,你可能首先需要登录,即提供你的用户名和密码。另请参阅 login(1)。程序 login 现在会为你启动一个 shell(命令解释器)。如果是图形登录,你会得到一个带有菜单或图标的屏幕,鼠标点击会启动一个 shell 在窗口中。另请参阅 xterm(1)。Shell
人们向 shell(命令解释器)输入命令。它不是内置的,而只是一个程序,你可以更改你的 shell。每个人都有自己最喜欢的 shell。标准的 shell 称为 sh。另请参阅 ash(1)、bash(1)、csh(1)、zsh(1)、chsh(1)。一个会话可能如下所示
knuth login: aebPassword: ********% dateTue Aug 6 23:50:44 CEST 2002
% cal August 2002
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
% lsbin tel
% ls -ltotal 2
drwxrwxr-x 2 aeb 1024 Aug 6 23:51 bin
-rw-rw-r-- 1 aeb 37 Aug 6 23:52 tel
% cat telmaja 0501-1136285
peter 0136-7399214
% cp tel tel2% ls -ltotal 3
drwxr-xr-x 2 aeb 1024 Aug 6 23:51 bin
-rw-r--r-- 1 aeb 37 Aug 6 23:52 tel
-rw-r--r-- 1 aeb 37 Aug 6 23:53 tel2
% mv tel tel1% ls -ltotal 3
drwxr-xr-x 2 aeb 1024 Aug 6 23:51 bin
-rw-r--r-- 1 aeb 37 Aug 6 23:52 tel1
-rw-r--r-- 1 aeb 37 Aug 6 23:53 tel2
% diff tel1 tel2% rm tel1% grep maja tel2maja 0501-1136285
%这里输入 Control-D 结束了会话。这里的 % 是命令提示符——这是 shell 表示它准备好接收下一个命令的方式。提示符可以以多种方式自定义,并且可以包含诸如用户名、机器名、当前目录、时间等内容。赋值 PS1="What next, master? " 将如指示的那样更改提示符。我们看到有命令 date(给出日期和时间)和 cal(给出日历)。
命令 ls 列出当前目录的内容——它告诉你有什么文件。使用 -l 选项,它会给出长列表,其中包含文件的所有者、大小、日期以及人们对读取和/或更改文件的权限。例如,这里的 "tel" 文件为 37 字节,所有者为 aeb,所有者可以读取和写入它,其他人只能读取它。所有者和权限可以通过命令 chown 和 chmod 更改。
命令 cat 将显示文件的内容。(名称来自“concatenate and print”:所有作为参数给出的文件都会连接起来并发送到“标准输出”,这里是终端屏幕。)
命令 cp(来自“copy”)将复制一个文件。另一方面,命令 mv(来自“move”)只是重命名它。
命令 diff 列出两个文件之间的差异。这里没有输出,因为没有差异。
命令 rm(来自“remove”)删除文件,请小心!它就消失了。没有回收站之类的东西。删除意味着丢失。
命令 grep(来自“g/re/p”)在单个或多个文件中查找字符串的出现。这里找到了 Maja 的电话号码。
路径名和当前目录
文件存在于一个大型树状结构中,即文件层次结构。每个文件都有一个 路径名,描述了从树的根(称为 /)到该文件的路径。例如,这样一个完整的路径名可能是 /home/aeb/tel。始终使用完整的路径名会不方便,并且当前目录中的文件名可以通过仅给出最后一个组件来缩写。这就是为什么当当前目录为 "/home/aeb" 时,"/home/aeb/tel" 可以缩写为 "tel"。命令 pwd 打印当前目录。
命令 cd 更改当前目录。尝试 "cd /" 和 "pwd" 和 "cd" 和 "pwd"。
目录
命令 mkdir 创建一个新目录。命令 rmdir 删除一个空目录,否则会报错。
命令 find(具有相当复杂的语法)将查找具有给定名称或其他属性的文件。例如,"find . -name tel" 将从当前目录(称为 ".")开始查找名为 "tel" 的文件。而 "find / -name tel" 将执行相同的操作,但从树的根开始。在多千兆磁盘上进行的大规模搜索将耗费时间,最好使用 locate(1)。
磁盘和文件系统
命令 mount 将在某些磁盘(或软盘、CDROM 等)上找到的文件系统附加到大型文件系统层次结构。而 umount 再次将其分离。命令 df 会告诉你磁盘还有多少空间可用。进程
在 UNIX 系统上,许多用户和系统进程同时运行。你正在与之交互的进程在 前台 运行,其他进程在 后台 运行。命令 ps 会显示哪些进程处于活动状态以及这些进程的编号。命令 kill 允许你删除它们。不带选项,这是一个友好的请求:请离开。而 "kill -9" 后跟进程编号是立即杀死。前台进程通常可以通过键入 Control-C 来杀死。获取信息
有成千上万个命令,每个命令都有许多选项。传统上,命令在 man pages(像这个一样)中记录,因此命令 "man kill" 将记录命令 "kill" 的用法(而 "man man" 记录命令 "man")。程序 man 通过一些 pager(通常是 less)发送文本。按空格键获取下一页,按 q 退出。在文档中,通常通过给出名称和章节号来引用 man pages,如 man(1)。Man pages 简洁明了,允许你快速找到一些遗忘的细节。对于新手来说,带有更多示例和说明的入门文本很有用。
许多 GNU/FSF 软件都带有 info 文件。输入 "info info" 以获取有关程序 "info" 的使用的介绍。
特殊主题通常在 HOWTO 中讨论。查看 /usr/share/doc/howto/en,如果在那里找到 HTML 文件,请使用浏览器。