$ 符是Bourne Shell(/usr/old/bin/sh),korn Shell(/usr/bin/ksh),和POSIX
Shell(/usr/bin/sh)的标准提示符,%符通常表示这是C
Shell(/usr/bin/csh)。如果你用的是POSIX shell,你会看到一个$提示符。而#提示符一般是为系统管理员保留的。当你以系统管理员的身份登录时,会出现这个符号。这也为你的特殊身份提供一个有用的提示功能:因为作为系统管理员,你能更改(或删除)系统中的任何数据。
在你看到shell提示符($)后,你就可以键入命令。一个正确的命令名通常是在命令行的第一项。许多的命令还有命令选项,选项的作用是为了扩展命令功能,而参数通常是一些文本,一个文件名,或者是目录名等命令可以操作的东西。选项通常以短横线(-)开始。
空字符的作用是分割命令,选项,参数,空字符被定义为一个或多个空格符(space),或TAB键,例如:命令echo
Hi和echoHi是有很大的差别的,计算机会将第一个理解为命令echo 和一个命令的参数
(Hi),而第二个会被认为是一个名为echoHi的命令,而此命令可能不是一个有效的命令,
每个命令都是以回车符结束,回车符会将命令送往计算机执行。在上图中,回车符会被系统识别,而其他的字符不会产生作用。
终端的输入输出支持预先键入字符,预先键入的意思是在你键入一个命令后在提示符返回前立即键入另一个命令,你键入的命令会先被缓存,并在当前命令执行完成之后执行。
注意:UNIX的命令是对大小写敏感的,大多数的命令和参数都是小写的
字符。因而,echo hi 是一个合法的命令而ECHO hi不能被系统识别。
注意:你可以在一个命令行中同时键入两个命令,方法是用分号(;)分割两个命令,如:
$ ls;pwd
2.5 第二提示符
Bourne ,Korn,和POSIX shells
都支持多命令行。如果shell要求更多的输入来完成一个命令,在回车前,就会出现第二提示符(>)。
一些命令要求有一个结束命令,一些字符要求有结束字符,例如一个开始的 if 要求
fi来结束,开始的括号要求一个结束的括号,一个开始的引号要求一个结束的引号。
如果你键入一个错误的命令,就像上图中描述的一样,SHELL会显示第二提示符。通常同时按ctrl
+c会中止当前正在运行的程序,然后返回到SHELL提示符下,你可以通过 stty -a 命令来自行定义你的中止键
2.6 帮助手册
联机手册对查找命令用法非常有用,但是它不是作为教材而设计的,它对学习如何使用UNIX操作系统的帮助也不大。有经验的UNIX系统用户使用帮助来查找命令的细节和用法。就像上图中表示的那样,帮助手册被分为几个部分。
以下是每一节的简短的说明:
第一节:用户命令
????这一节描述直接被用户或是shell脚本使用的程序。任何系统中的用户都可以使用这个帮助。
第1M节:系统维护
????这一节描述系统管理员用来维护系统的命令。只有root用户才能使用。
第二节:系统调用
????这一节描述与UNIX系统内核接口的函数,包括C语言的接口。
第三节:函数与函数库?
????这一节阐述了系统提供的与直接系统调用不同的一些二进制格式的函数。这些函数通常通过C程序来存取,例如:输入输出处理和数学计算的函数。
第四节:文件格式
????这一节定义用户配置文件的组成,文档,和不同文件类型的格式(例如a.out)
第五节:多方面的主题
????这一节包括不同的信息,例如头文件的描述,字符集,宏包。和其它的主题。
第七节:特殊的设备文件
????这一节讨论特殊的设备文件的特性,这些文件提供uniz系统与系统I/O设备(例如磁盘,磁带机,打印机)之间的链接。
第九节: 字典
????这一节定义了被选择的贯穿整个帮助手册中的术语。
在每一个章节里,命令以字母的顺序列出,用户可以通过检索手册的索引来找到 一个命令。
2.7 手册页中的内容
了解帮助页的格式是非常重要的。在整个UNIX系统的文档中,参考以cmd(n)的格式给出,其中cmd是命令名,而n
代表八个帮助章节的其中一个,因而,date(1)代表在帮助手册第一节中关于date命令的内容,在每一个章节里,命令是以字母的顺序列出的,这是由维护帮助手册的方式造成的,页的编号没有意义,每一个命令都是从第一页开始的。
每一个帮助页(一些命令有多个帮助页)有几个主要的标题。帮助页也不总是有标题。
以下是每个标题的列表和其内容的描述;
※名字 包括命令名和简短的描述,章节中的这个文本被用来产生索引。
※大纲 定义了如何引用一个命令。黑体字的条目表示必须在终端上正确输入的部分。方括 ??
号中的是任选项,规则类型的条款会被你所选择的合适的文本所代替,省略号(.....)被用来显示先前重复的参数。如果对摘要的意思有疑问,你可以去阅读DESCRIPTION项。
※描述 包括每个命令和选项的功能的详细描述。
※额外的影响 提供不同口语的编程信息,这对于国际化的支持非常有用。
※网络特性 基于网络特征的功能。
※返回值 描述程序调用完成后的返回值。
※诊断信息 解释命令可能出现的错误信息
※错误 列出错误的条件合相应的错误信息或是返回值。
※范例 提供命令使用的范例。
※警告 指出潜在的陷阱。
※相关性 指出与不同硬件平台相关的UNIX系统操作的变化。
※作者 命令的开发人员。
※文件 命令使用的任何特殊的文件。
※SEE ALSO 指明帮助手册中的其他页,或是其他包含附加信息的文档。
※BUGS 讨论已知的漏洞和缺陷和所支持的修正
※标准一致性 描述每一个条目支持的标准。
2.8 联机手册
有另外一种方法从帮助手册中检索信息。
在许多UNIX 系统中,手册通常是在线的。在线帮助手册通过 man 命令来存取。
语法是:
man -k keyword
或者
man [12345791m] command
其中
man -k keyword 列出所有的命令,在命令描述中有字符串 keyword。
man [1234579m] command 显示指明帮助章节的命令的帮助页。
man command 显示命令的默认的帮助条目。也许一个命令的条目,在不止一个的帮助页中。
以上的所有的命令要求系统管理员已经正确地安装了在线帮助。在以上的例子中,
man passwd 会显出改变密码的命令。man 4 passwd会显示passwd 文件的格式。
在指定命令的帮助条目的第一页已经出现在屏幕上。你可以键入以下的键:
return 显示下一行
space 显示下一页
Q或q 退出 man 命令并且回到提示符下:
有时,在你读取在线手册时会看到一下的信息:
reformatting retry .wait..............
这个信息的意思是指定命令的帮助手册页需要解压缩,因为对当前用户来说是第一次使用。这条信息在用户下一次检索这个手册时不会再出现。
多个帮助手册页
一些命令有多个帮助条目。你可以用 whereis 命令来显示帮助的章节。例如:
$ whereis passwd
passwd :/sbin/passwd /usr/bin/passwd /usr/share/man/man.1.z/passwd.1
/usr/share/man/man4.Z/passwd.4
$whereis nothere
nothere:
这说明在章节1和4中有一个关于passwd命令的帮助条目,没有关于nothere 的帮助手册。
2.9 一些初级命令
我们将学习一些基本的命令,这些命令中的大多数除本书讲到选项以外的还有更多的选项,如果你想要查看其他的选项,可以使用联机手册。
id 命令
为了让你存取文件和执行程序,UNIX必须要知道你的用户和组的id号,这种由计算机维护的数字的id号,对应哪些为用户方便而使用文字名称,当你登录时,你的用户身份会被初始化。在你已经登录后,你也可以更改你的用户和组。id
命令的作用就是显示你当前的用户和组的定义。
计算机将所有的用户的信息存储在文件 /etc/passwd中,组的信息存储在/etc/group中。
组
组让一组用户可以共享地存取文件。由系统管理员定义组中的用户,每一个用户都能存在于不同的组中。组通常由机构中已经定义的工作组组成。例如,一个机构可能由生产,管理,帐务组组成。这些组的用户结构可能定义为一下的结构:
*号指明登录时的组的定义
chris 是所有的三个组的成员。
mike 是两个组的成员。
在这个机构内,chris能够使用与生产,管理,帐务三个部门有关的文件,mike能够存取与生产,帐务部门有关的文件。其他的用户只能存取他们登录组中的文件。
who 命令
who命令会报告有哪些用户已经登录系统,每一个用户连接的终端和登录时间的信息。who am i
报告本用户的用户名和端口信息,whoami
命令报告系统与本地终端的关联的用户名。用户是否有权执行一个命令,依靠的是用户的身份,一个用户能够更改他或她的身份标识来存取其它的命令或程序。
date 命令
date 命令被用来报告系统的当前日期和时间。date可以加上参数来重新格式化
输出的格式。
通常date命令不带任何选项和参数使用。
只有系统管理员有权限修改系统时间和日期。
passwd 命令
在许多的系统中,系统管理员控制着用户的密码。然而,在UNIX系统中,系统管理员能允许用户直接控制他们自己的密码,passwd命令让用户改变他们的口令,语法如下:
passwd
输入这个命令后,系统会要求输入你当前的密码,(老密码)。这是为了避免在你登录了系统后,离开你的终端时间内有人更改你的密码。然后系统会要求你输入新密码,并要求重输入一次以确认你的新密码,这样做是为了避免你打字的错误。你的新旧密码必须至少有三个字符不同。
在你输入密码时,新旧密码字符不会出现在屏幕上。
密码限制
你的密码至少有六个字符,前六个字符中至少要有两个是字母,前六个字符中至少有一个不是字母。
系统管理员可以不遵守这些条件,所以如果系统管理员给你的帐号分配一个密码,这个密码可能不符合这些规则。
echo命令
echo命令使你可以显示命令行参数的,这个意思是,一个如下的命令:
echo hello
导致输出:helllo
这个命令可能看上去十分平常,但是这个命令让我们可以佷方便地在shell程序中显示用户信息和检查shell变量的值。在shell编程中,echo命令用的很普遍。
clear 命令
clear命令清除终端屏幕上的字符。这个命令仅仅清除当前的屏幕,所以,用户有可能向上翻屏来查看以前的屏幕信息,想要清除所有的屏幕信息,按HOME
键,将光标至到home,然后键入clear 命令。
write 命令
你可以用write 命令向当前登录到同一个系统的用户的终端发送信息。当你使用write时,write
会让你输入信息,每一次你敲回车,信息就会被传送到接收者的终端上,接收者可以向你回写信息,你可以通过你的终端进行交互的对话。当你完成键入信息后,敲入ctrl+d.就可以结束你的对话。
注意:除非你禁用这项功能,否则,在任何时候,别人都可以发送信息到你的终端。,如果这时你正在使用一个工具,如man,mail,或是一个编辑器的时候,一个用户给你发生一个信息,这行信息会出现在你的屏幕上,这会造成你的混乱。
如果你想要发送信息给一个用户,而这个用户当前没有登录系统,你会得到如下提示:
user is not logged on(用户没有登录系统),其中user表示你试图发送信息的人的用户名
mesg 命令
你可以通过mesg命令来禁止其他用户发送信息到你的终端上。如果你给一个已经禁止接收其他用户发送信息的用户发送信息,你会接到Permission
Denied 错误(没有许可)。
mesg n 拒绝其他人write 到你的终端。
mesg y 允许其他人write 到你的终端。
mesg 报告是允许或是不允许其他人写到你的终端。
即使你的终端是禁止写入的,系统管理员一样能发送信息到你的终端。
news 命令
系统中的所有用户都感兴趣的信息可以通过news命令广播出去。这个命令通常是系统管理员对系统中所有用户进行通告的时候,例如在系统关闭,备份时,或是在新的硬件生效时使用。
你可以键入news命令来阅读新闻。如果命令后没有选项,只有那些你还没有阅读过的信息会显示。
news命令的选项有:
-a 读取所有的新闻,不管是否已经被读取过。
-n 只显示未读过的新闻的标题
每一个存取新闻的用户在他的HOME目录下都有一个.news_time文件。每一个UNIX系统中的文件都有一个时间标志,时间标志记录有上一次文件被修改的时间。.news_time上的时间标志会被更新,以匹配你最后读取得新闻信息的时间。如果一条新的新闻加入,news命令知道这条新闻还没有被阅读,因为你的news_time文件的时间标志比新的新闻的时间标志早。
阅读(636) | 评论(0) | 转发(0) |