Unix 入门

说明:转自以为大神的笔记。

首先,我们一起看看UNIX的目录,因为清楚了目录,才能对UNIX的框架有个大概的印象!当然这里讲的是系统正常运转所必须的,并且一定不能删除或者修改。  
/ 是系统的根目录; 
/bin目录中包括最常用的UNIX命令;   
/dev目录包括控制访问外部设备的特殊设备文件;   
/etc目录中包括各种各样的系统程序和数据文件;   
/lib目录里包括C语言以及其他语言程序的运行库文件;   
/mnt目录是一个空目录,是为安装可移动的文件系统保留的;   
/opt目录中包括在所谓的“软件存储目标”;   
/shlib目录中包括系统使用的共享库;   
/usr目录中有几个子目录,(/usr/include目录包括编译C语言程序的头文件;/usr/lib目录包括各种UNIX命令使用的更多的库和数据文件;/usr/spool目录包括各种各样的目录,用于存储那些将被打印、邮寄、或通过网络传递的文件;/usr/tmp目录包括更多的临时文件;/usr/adm目录包括与系统管理或记帐相联系的数据文件;特别地,/usr/adm/messages和/usr/adm/syslog文件包括系统错误消息的记录。) 
/stand目录是引导文件系统的安装点,引导文件系统包括安装程序(boot),核心(unix),以及相关的boot文件; 
/tcb目录包括所有作为TCB一部分的文件; 
/tmp目录UNIX系统程序产生的临时文件; 
/var目录包括指定某一单独客户或服务器的非共享SSO文件。  


一、目录管理 
1、创建目录:mkdir directory_name 
比如:在/usr/目录下新建子目录apple 
#mkdir /usr/apple 或者 
#cd /usr 
#mkdir apple  

注:mkdir是make directory的缩写  

2、列目录内容: 
ls  纵向显示 
lc  横向显示 
ls –l(或简化为l)显示每个文件的详细信息,包括存取模式、链接数、属主、文件大小、上次修改时间等) 
ls –a列出所有文件包括隐含文件(在unix要想使某个文件隐藏起来,只要在文件名前加个“.”就可以了。) 
ls –F(或lf) 标出文件类型,在目录文件名标记“/”,在可执行文件后标记“*”号,在符号链接后标记“@”。 
比如:列出/apple下的文件 
#ls /apple 
或者: 
#cd  /apple 
#ls 
ls –L或是l命令将显示: 
total 20 
-rwxrw-r-- 1 apple fruit 1181 Mar 14 2002  dir1 
式的内容。 
其中,第一行total指明的是总块数。 
-rwxrw-r-- apple fruit 1181 Mar 14 2002  dir1这一行中,第一个-,代表是一个普通文件,如果是d(directory)表示是目录文件,如果是l 表示是符号链接(link),b表示是块(block)设备文件,c表示是字符(character)设备文件。 
rwxrw-r--中每三个字母为一组,英文名叫triplet,分别指明文件主(user)、同组用户(group)和其他用户(other)的访问权限。 
r表示可读(read)、w表示可写(weite)、x表示可执行(excute)  

如果一屏显示不下,可能用管道加more或 pg分屏阅读: 
# ls |more 
# ls |pg  

注:ls是list的缩写。  

3、目录的重命名:mv oldname newname (可以是目录名或路径名) 比如:将目录 /usr/apple改为/usr/pear 
#mv /usr/apple /usr/pear 
或者: 
#cd /usr   
#mv apple pear  

注:mv是move的缩写  

4、删除目录:rmdir directory (directory为空),dirctory里有内容时:rm –r directory 
比如:删除目录/apple(内容为空) 
# rmdir /apple  

注:rmdir是remove directory的缩写  

5、比较目录:dircmp directory1 directory2  


二、漫游文件系统    

1、要想知道你在文件系统中的位置可用pwd 命令。比如, #  pwd 
屏幕上将显示: 
/usr 
表明你现在正在/usr目录下工作。  

注:pwd是print word directory的缩写,在unix中,print一般是在在屏幕上显示的意思,而不是打印。  

2、改变目录:cd directory 比如:你的当前目录为:/apple 要切换的/usr/pear(当然这个目录要存在), 
#cd /usr/pear 
然后再用pwd命令查看当前工作目录 
pwd 
/usr/pear  

注:cd是change directory的缩写  

三、管理文件   
1、查看文件内容:cat filename  比如:目录/apple下有一个文件love,内容为“I love you all my heart! ” 
#cat /apple/love 
或者: 
#cd /apple 
#cat love   
注:也可cat –v filename(不知道文件属于何类型), 
cat filename |pg(分屏阅读)。   
由于cat命令原本是用于文件联结的,因此,它只适用于查看不足一屏(一般为24行)的文件。如果文件超过了一屏,就需要用more命令。 
比如: 
more file1 
按空格键显示下一屏,按回车键显示下一行。  

注:cat是concatenate 的缩写 
more据台湾一位教授的解释,就是“再看一页再看一页”的意思。在Linux里有一个less命令,也是分屏显示的,但是能前后翻页。  

cat主要作用是文件的联接,比如,把file1 file2连接起来,成为file3 
cat file1 file2 >;file3 
其中的 >; 称为改向输出符,如果是把file1连接到file2有末尾,则: 
cat file1 >;>; file2  

cat命令除了显示和连接文件以外,还有一个常用的功能,就是建立非常小的文本文件,语法格式为: cat >; filename 
例如:编辑一个小的shell小程序dl,用来打印一个文件agent008,  

cat  >; dl 
lp agent008 
然后按<ctrl>;+d结束。  


查看文件的头部:head filename 
查看文件的尾部: tail filename   
2、复制文件:cp filename copyname(filename前面可以加路径)或者: 
cp filename …  pathname 
比如:将目录/apple下的文件love复制到目录/pear 下 
#cp /apple/love  /pear 假如多个文件: 
#cp /apple/love1 love2 love3  /pear  

注:cp由copy缩写而成。  

3、文件的移动和重命名: 
文件的移动:mv sourse_file target_directory 
比如,将/apple目录下的文件love移动到目录/pear下, 
# mv /apple/love /pear 

文件的重命名: 
在unix里,文件的重命名就是把文件从原文件名(old_filename)下移动到新文件名(new_filename)下: 
# mv old_filename new_filename 
比如:将目录/apple下的文件love改名为happy,   
# mv /apple/love /apple/happy 
或者: 
# cd /apple 
# mv love happy    

注:mv由move缩写而来  

4、删除文件:rm filename(一定要小心使用呀,unix由于早期只是专业人员使用,提倡严谨的工作作风,所以在执行命令时往往不要求确认,如果执行成功,就给出结果,执行不成功,才给出出错信息,所以,对你不熟悉的命令千万不要像windows一样去试,因为指令一旦发出,unix就会不折不扣地执行,没有像windows那样“悔棋”的机会。) 
为了防止误删除文件,良好的习惯是加上-i选取项。 
比如,rm -i file1 
系统会要求你确认是不是真的要删除,待你确认后再删除。  

注:rm由remove缩写而来  

5、在文件中查找指定的字符串:grep options text filenames 
这个命令好比用word打开一篇文件后,查找某一字符串。不同的是,在unix中,用grep命令,不用打开文件。比如, 
# grep root /etc/passwd 
就可以显示出root用户的有关信息。 
再比如,加上管道,可以一次查出某一终端的所有进程号。 
# ps –e|grep tty03 
就可以查出终端tty03的所有进程号。当然,查出进程号的目的一般是为了kill它们。那么怎么一次实现呢?这就需要用到awk命令了。 
比如,要kill tty03的所有进程,可以用命令 
# kill –9 ‵ps –e|grep tty03|awk ‘{print $1}’‵ 
注意,ps前面和最后的的那个符号,是倒引号,在数字“1”的左边。  

查找文件: find path_list expression 
其中,path_list是查找的目录列表,可以是一个目录,也可以是多个目录。如果是多个目录之间,要以空格符分开。如果从当前目录开始查找,可以用“.”号表示,如果是从根目录开始查找,就要使用“/”来表示。 
expression项(表达式)是查找条件,用户利用它可以设定是按文件的名字、日期或是其他条件来查找。我经常用的是名字。 
比如:在/usr下,查找一个名为ttytab的文件 
# find /usr –name ttytab –print 
其中的-name指明是用名字查找,-print是告诉系统,找到ttytab文件后在屏幕上显示它在什么位置。不过在sco openserver中可以省略-print。 
在windows98中,我们可以用“查找”一次性删除所有临时文件。在unix里,我们也可以用find一次删除符合某些条件的文件,比如,在/usr目录及其子目录中,删除所有以txt为扩展名的文件。 
find /usr –name *.txt –exec rm {}\; 
-exec command_name {}\; 找出与条件匹配的文件后,执行command_name所指定的命令。注意,这条命令的结尾必须有{}\;  


四、文件和目录的存取控制   
1、改变文件的权限: 
chmod  who [+-=] operator_ permission filename 
who包括u g o,分别代表用户(user)、同组用户(group)和其他用户(other) 
+ 增加权限 
-减少权限 
=增加等号后面的权限,同时减去原来的权限 
operator_ permission包括r(read)、w(weite)、x(excute)。 
比如:chmod u+x filename 
给文件主以执行权 
这有一种方式:chmod mode filename 
其中mode为nnn模式,n是0-7之间的数,4表示可读,2表示可写,1表示可执行。nnn中第一个n是用户的权限,第二个n是同组用户的权限,第三个n是其他用户的权限。如果如赋予可读可写两个权限,则用6(4+2而来),而如果要赋予可读可写可执行全部权限就用7表示。 
例如:chmod 777 file1 
就是把file1让所有用户可读可写可执行。 
而chmod 740 file1则是的权限设置为文件的主人自己可读可写可执行,同组用户只读,其他用户连看都不行了。0表示没有任何权限。 

chmod由change mode缩写而来  

2、改变文件属主:chown new_owner [:group_name] filename 
例如:改变文件file1主人为apple 
$ chown apple file1 
要注意的是,除非你是root,否则,给了别人的文件你自己可就要不回来了。假如你是pear,在你运行了chown apple file1后,你就把文件给了apple。如果你再运行chown pear  file1。系统就会告诉你没有这个权限。要想把给人家的文件再要回来,只有求助于root用户。 
如果还要改变文件的所属组,apple用户要把文件file1送给fruit组的apple用户,可以使用命令: 
chown apple:fruit file1  

注:chown由change owner缩写而来  

改变文件的属组也可以用chgrp命令 
3、查看你所在的组:id 
4、改变当前用户组:sg 
5、改变文件所在的用户组:chgrp new_group filename 
比如:chgrp fruit file1  

注:chgrp:由change group缩写而来  

6、在命令行中获得帮助man [section] keywork 比如: 
man C kill  

注:man由manual(手册)缩写而来  

五、磁盘的使用   
1、软盘的格式化:format [设备名] 
比如:格式化1.44M软盘: 
#format /dev/rfd0135ds18 
r表示是原始(raw)设备,fd表示是软驱,0表示第一个软驱,135表示135个磁道,ds表示双面磁盘,18表示18个扇区。 
unix中,format命令只能格式化软盘,不能格式化硬盘。 
另外,如果在/etc/default/format文件中,DEVICE定义的是缺省的设备名,一般都是DEVICE=/dev/rfd0135ds18,所以你可以只键入format就可完成对软盘的格式化。  

2、软盘的复制:diskcp  [optition] [-135ds18] 
optition有多个选项,但现在的PC一般只有一个软驱,所以常用的就剩下一个-f(format)了,-135ds18代表我们常用的1.44M软盘。 
比如: 
$ diskcp –f –135ds18 
复制时先对目标盘格式化,然后再复制。  

3、用软盘备份文件:比如将硬盘目录下/apple的文件love存储到空软盘上,你可以: 
#cd /apple 
#tar cv6 love 
c 表示在创建(create)一个新文件,并且覆盖已有的同名文件。如果不想覆盖。命令为: 
#tar uv6 love 
v 显示每个被处理的文件名。 
6表示是软驱。数字和设备的对应关系,在/etc/default/tar文件中定义,可用more /etc/default/tar命令或是不带任何参数的tar命令查看,也可用vi修改。  

4、列出软盘中文件的名字:#tar tv6  

5、将软盘中文件恢复到硬盘:#tar xv6 
x表示抽取(extract)  

六、增加用户和切换用户 
1、增加用户:#scoadmin account 
里面可有好多东东哟!你可以添加用户,添加组,删除用户和组,当然也可以修改,呵呵,可以打开看一下的!比如:添加一个用户apple,你可以: 
#scoadmin account →user→Add New User 
出现增加用户的界面:  

Login:apple 
User ID:200 
Comment: 
Password:<*>;Set password now <>;Set password later 
Login shell:sh          [Change Login Shell…] 
Networked via:          [Change Distribution…] 
Home Directory:/usr/apple 
Login Group:group       [Change Group Membership…] 
       [OK]    [Cancel]   [Help]  

输入有关信息后,将光标移动到OK处,按回车键。 
注释: 
Login:处输入用户名 
User ID:用户ID,一般用系统推荐值即可。小于200的为系统用户,0超级用户使用。 
Comment:对用户的注释说明,可以不输。 
Password: Set password now,现在就设置口令。 
         Set password later以后再设置口令 
Login shell:sh用户的注册shell,系统缺省的是sh,即标准 shell,如果要更改,把光标移到Change Login Shell…]处回车,选择别的shell,如csh ksh……。 
Networked via:   一般不用设置。 
Home Directory:用户的家目录(一般都是译成主目录,不过我觉得译成家更形象些。一般系统会自动在/usr目录下,为新用户建立一个“/usr/用户名”的家目录,比如本例是/usr/apple 
Login Group:添入用户所属的组名,系统缺省的是group。  

   

2、切换用户:su 
windowsXP一大卖点就是新增加了切换用户(switch user)功能。其实,unix早就有了这项功能,而且比windows XP要方便得多。 
比如:你是用户pear,现在要切换成用户apple 
$ su apple   
当然你得知道apple的口令。但是root用户运行su变成其他用户,是不需要口令的。 
如果没有指定用户名,缺省是切换到root用户,如 
$ su 
password: 
在你输入root口令后,系统提示符就会变#,而不是$了。 
但是你会发现,你的工作目录和环境并没有改变,也就是su的结果和直接用apple或是root用户的帐号注册还是不一样的。那么怎样如同注册一样呢,只要在su后面加上一个短横就可了。 
比如:$ su – apple 
就和在login:后面键入apple一样获得了apple用户的环境。注意,“-”前后各有一个空格。  

七、设置或者改变用户口令:passwd  

直接键入passwd可修改自己的口令,一般用户只能修改自己的口令,而root用户不仅可以修改自己的口令,还可以修改其他用户的口令。 
#passwd username 
比如,root用户要修改apple用户的口令,可运行: 
# passwd apple 
Setting password for user:apple 
last successful password change for apple:Tue Dec 30 08:34 2001 
Choose passeord 
You can choose whether you pick a password 
or have the system create one for you.  

1.pick a password 
2.Pronounceable password will be generate for you 
注:第一种方式是自己创建新口令,第二种方式是由系统为你创建一个可以发音的口令,我们一般选第一种方式。 
Enter choose (default is 1):1 
Please enter new password (at least 3 characters): 
new password: 
Re-enter password: 
输入口令时,屏幕上并不显示。这是出于安全和保密的考虑。  

   

八、系统的关闭与重启:  

在UNIX里非法关机,是非常非常不好的事情,切记切记! 
#shutdown –y –g0 
这是最安全的关机方式。-y选项是告诉系统,凡是询问都回答y, -g0则指定等待时间为0分钟。如果不指定,缺省的是1分钟。当然你要有关机的权限,才能执行这个命令的。  

#haltsys 
这是紧急关机方式,只能在系统维护模式下由超级用户root才能执行。  

#reboot 
重启系统,假如你添加了新的硬件或者修改了一些配置文件,记得一定要运行这个命令,不然不会生效的。也是只能在系统维护模式下由超级用户root才能执行。  


login:halt 
用关机用户关机 
我们每天的关机都是在login:后面直接输入一个用户名比如halt或是haltsysy就能关机。那么这种关机方式是如何实现的呢?有多种方法:这里只介绍一种: 
第一步:建立一个用户,名字呢我们就用halt吧 
第二步:在/usr/halt目录下建立一个shell script,起名为halt.sh,内容为“shutdown -y –g0”,名字 
第三步:chmod u+x halt.sh 
第四步:vi /etc/passwd,把halt用户的uid改成0,注册shell改成halt.sh.  


九、系统管理: 
系统管理的命令,一般都是由root用户执行的,一般用户可能执行不了,除非你得到了root用户的授权。 
1、查询系统时间:data   
2、修改系统时间:asktime [YYMMDD] 
YY:年 
MM:月 
DD:日 
hh:时 
mm:分 
都用两位数表示。比如把系统时间改为2002年6月17日16时45分。 
# asktime  

3、查询谁在系统中:who 
也可以简化为w  

4、谁在做什么:whodo显示用户正在进行的工作。    

5、终端名的获取:tty [-l] [-s]显示当前正在使用的终端的设备文件及其路径名。    

6、进程状态的了解:ps [options] 你可以知道进程活动的信息哟!什么是进程,还记得吗?UNIX里,可是很重要的东东哟! 
常用的选项有: 
-e 显示每个进程的信息(everything) 
-f 显示进程的完整信息。(full) 
-t ttynum 显示ttynum指定的终端的进程 
-u username 显示usename指定的用名的进程信息 
-l 以长格(long)形式显示进程信息,总共14列,其中每列标题的含义如下: 
F:(flag):用八进制表示的进程的有关标记,00表示进程已结束,01表示是系统进程,20表示进程被装主内存中。 
S:(state)表示进程的状态,B和W表示正处于等待状态,I表示空闲,O表示正在运行,K表示已装入队列可运行进程,S(sleep)表示处于睡眠状态,R(ready)表示处于就绪状态 ,T表示被跟踪,X表示等待更多的内存。 
UID :(user ID)进程属主的用户标识 
PID :(process ID)进程号,(kill命令用的就是这个号) 
PPID (parent process ID) 父进程号 
C :CPU的占用率 
STIME:进程被提交的时刻 
PRI:进程的优先级(priorty) 
NI:进程的nice值 
ADDR:进程的内存地址(address) 
SZ:进程的内存映像的大小(size),以块表示 
WCHAN:睡眠进程地址。对于运行的进程是空的 
TTY:进程所属的终端号。如果是?号,则是系统进程 
TIME:进行已执行的累计时间 
CMD:调用该进程的命令名 
比如,查看tty03的进程信息 
$ ps -t tty03 
查看系统中所有进程的信息 
# ps -e 
或 
#ps -ef 
杀死进程:假如进程占用了过多的处理时间,是系统变慢,或者它陷入一个死循环,不能结束。呵呵,kill它!为了杀死进程,你可以试试键入:<Ctrl>;<Del>;或者<BREAK>;或者<Ctrl>;D或者<Del>;,或者命令:kill pid或者kill -9 pid    

7、统计磁盘使用空间:du显示指定文件所使用的磁盘块数和全部文件占用的总块数。 
8、统计磁盘自由空间:df显示指定文件系统中的自由空间块数和自由I节点数。 
如# df 
/ (dev/root):962630 blocks 61557 I-nodes 
加上-v选项可显示文件系统的总块数、已用块数、空闲块数和已用的百分比。如:  

# df -v /dev/root 
Mount DIR    filesystem   blocks   used   free  %used 
/dev/root    /dev/root    1030176  57546  962630 6%  

在SCO UNIX中,还有一个dfspace命令,可以用M为单位显示磁盘的使用情况。比如: 
# dfspace 
/     :disk space :469.96MB  of 503.01MB available (93.43%) 
Total Disk Space: 469.96MB  of 503.01MB available (93.43%) 
说明你的硬盘总共大小是503.01MB,已使用469.96MB,百分比是93.43%.  

9、文件类型的确定:file  filename  

10、在管道线上建立“三通”:tee [options] [files] 
tee由“T”而来,(tee与T的英语音标都是[ti:],)而T则“三通管”的像形,即取前一条命令的的输出作为输入,然后将其传送给下一条命令,同时,形成一个文件。比如: 
ls -l /bin|tee file1 |wc 
将ls命令的结果既保存在文件file1中,又交给wc去统计。 
ls -l /etc|tee -a file1|wc 
把ls命令的结果追加到文件夹file1的尾端,同时交给wc去统计。  


十、访问DOS磁盘信息    

1、DOS磁盘目录的显示(你有的时候可能要在UNIX里显示DOS磁盘上的内容哟!) 
# dosdir dir (dir为设备符、文件名。)比如:查看软盘A的内容 
# dosdir /dev/fd0 
或者# dosdir /dev/fd0: 
也可以用UNIX格式显示 
# dosls dev/fd0  

2、DOS磁盘文件内容的显示: 
# doscat filename 比如:你查看软盘A中的文件config.sys, 
#doscat /dev/fd0:config.sys 
注意:/dev/fd0:config.sys不能是/dev/fd0/config.sys,因为/ dev目录下是设备文件,如果写成/dev/fd0/config.sys,config.sys就成了设备文件了,而这个设备文件是不存在的,因此,系统就会给出出错信息 
。 
3、DOS磁盘目录的建立和删除: 
dosmkdir directory(建立) 
dosrmdir directory(删除) 
例如: 
dosmkdir /dev/fd0:apple 
dosrmdir /dev/fd0:apple  

4、DOS磁盘的格式化: 
dosformat [-fqv] drive 
比如:你要格式化1.44MB软盘 
#dosformat /dev/fd0135ds18 
其中,注意format的设备名是rfd0135ds18,表示是原始(raw)设备名,而 dosforamt的设备名是/dev/fd0135ds18,fd前面没有字母“r”。  

5、DOS磁盘上文件的删除: 
dosrm /dev/fd0:file1 file2…    

6、DOS和UNIX之间的文件复制: 
doscp [-r][-m]file1 file2 
或者: 
doscp file… directory   
-r 复制时不进行换行符的转换 
-m复制时进行换行符的转换(unix和dos的换行符是不同的)  

例如: 
doscp -m apple /dev/fd0 
把文件apple用dos格式复制到A盘,复制时进行换行符的转换 
doscp -r apple /dev/fd0:fruit 
把文件apple用dos格式复制到A盘的fruit目录下,复制时不进行换行符的转换。 
你一定觉得总是把A盘写成/dev/fd0很麻烦了吧?能不能把/dev/fd0写成A:呢?能,一定能。用vi打开/etc/default/msdos文件,把其中的“A=/dev/install”改成“A=/dev/fd0”就可以了。 
如:dosdir a: 
dosdir A:(盘符也和dos一样,可以大小写不分) 
不过要提醒的是,在指定dos目录的路径时,不能使用dos的分隔符“\”,只能使用unix的分隔符“/”。 
还有一点要注意,在这几个命令中,对dos文件的存取不能使用通配符,但对unix的文件可以使用通配符。 
比如: 
$ doscp /usr/apple/* A: 
但不能使用 
doscp A:*.*  /usr/apple  


十一、编辑文件: 
1、启动vi: 
#vi filename 
假如该文件存在,vi就会将其读入,否则就会创建它。记得新建目录的命令吗?对了,用mkdir directory,那么新建一个文件呢?对了,聪明!你可以用vi filename创建了。当然了,建立的是文本文件。 
2、输入正文:记住了,输入正文之前,可一定要在命令模式下发出一个输入正文的命令!呵呵,别急嘛!我会告诉你输入正文的命令的。在输入过程中,你输入的任何字符都被视作输入的内容,怎么办呢?猜猜看,你可以按〈Esc〉键返回命令模式。 
哦,对了,差点忘了告诉你,输入正文,叫插入模式。 
a 从光标右侧开始添加正文; 
A 从行尾处开始添加正文; 
i从光标左侧开始添加正文; 
I从行首处开始添加正文;o 从当前行之后打开新的一行; 
O从当前行之前打开新的一行; 
3、保存文件并退出:别忘了,一定要在命令模式下才能保存退出哟!你按<Esc>;,直到终端会叫了,那一定是命令模式的。有好多方法保存,但是一定要加一个冒号“:”。比如: 
“:w”是保存但不退出; 
“:q”是退出但不保存; 
“:wq”是保存并退出vi。 
我常用的是:“:x!”是保存并强行退出;“:q!”是不保存强行退出。 
4、在文件中移动光标。现在的PC键盘,大多可以用四个箭头键来移动光标,但是,unix诞生时,可能还没有这种PC键盘,所以它用的是h j k l四个键。用熟了,这四个键还挺方便的。 
h 向左移动一个字符; 
i向右移动一个字符; 
k向上移动一个字符; 
j向下移动一个字符;  

5、删除和恢复文件:删除光标所在的字符用x;删除光标所在行用dd。 
撤销前一次操作,用u或者U。 
6、编辑时遇到的特殊情况:屏幕不可读时,按<Ctrl>;+L或者<Ctrl>;+R使屏幕刷新;如果还是不能阅读,那可能是你的终端设置不对,或者编辑了非正文文件,别忘了键入:q!不保存退出。 
举个例子吧!在/apple目录下编辑文件love, 
#vi /apple/love, 
假如原来的文件内容为: 
you are my kind of girl,you have a beautiful personality,and looks neat and fresh!   
it was love at first sight,but I don’t have the heart to tell you, so I make a pass at you.   
I’ve been dying to see you when leave xianghe,and I love you with all my heart!   
I’m too deeply involved!   
God bless you,god bless me too!    

OK!比如:你要在I’m too deeply involved!插入don’t you give me the cold shoulder.那么你应该将光标移到involved!后,然后按i 你就可以插入了;假如你要删除so I make a pass at you.你可以将光标移到要删除的字符上,按x 将其删除; 
假如你要将but I don’t have the heart to tell you,的逗号改为感叹号,你可以插入感叹号,并将逗号删除,呵呵,废话,是吗?假如你要删除God bless you,god bless me too!整行,你可以在命令状态下按dd; 
假如你要在 I’ve been dying to see you when leave Nanping,and I love you with all my heart! 
后面加一行,并插入love you more than I can say!你可以将光标移动到I’ve been  dying to see you when leave Nanping,and I love you with all my heart!上,(移动光标还记得吗?对了,h、j、k、l 。)然后在命令模式下,按o ,在按i 后  插入love you more than I can say!改完了吗?保存用“:x!”,不保存“:q!”。 
你爱怎么改就怎么改吧!但一定不要将它改的面目全非了哟!   
you are my kind of girl,you have a beautiful personality,and looks neat and fresh!   
It was love at first sight,but I don’t have the heart to tell you, so I make a pass at you!   
I’ve been dying to see you when leave Nanping,and I love you with all my heart!   
love you more than I can say!I’m too deeply involved!   
don’t you give me the cold shoulder.I wish apple and pear are going steady!   
God bless you,god bless me too!   
(你是我喜欢的那种女孩,你有永恒的魅力,你看起来优雅清新!对你一见钟情,但我没有勇气告诉你,所以我深情的看着你(送秋波)!离开南平,我一直很想你,我全心全意爱你!爱你在心口难开,我已经陷的太深。别再对我冷淡,我衷心祝愿apple和pear正式成为情侣!上帝保佑你,上帝保佑我!)   
vi还有好多东东,但常用的就是这些。欲知详情,看书吧!    


十二、打印文件  

1、打印文件lp 
lp命令来源于“line printer“,其意为行式打印机,这是过去的名称。现在它可用于各种类型的打印机。  

lp [选项] [文件名] 
它的选项有好几个,我没有使用到过,不敢瞎说,举个简单例子吧 
比如,打印文件apple  

lp apple  

如果系统中不只有一台打印机,需要指定用哪台打印机的话,可以使用-d选项,指定目标(destination)打印机 
比如,在epson打印机上打印文件apple 
lp -d epson apple  

在lp命令中,可以使用文件通配符。  

2、取消打印作业 
有时候,由于误操作,需要取消打印作业,应该怎么办呢?  

取消打印队列的命令是cancel [打印队列号]  

比如,当你成功执行了lp apple后, 
系统会给出一条提示信息:  

request id is epson-921  

epson-921就是打印队列号,如果你又不想打印了,可以用以下命令取消这个打印作业。  

cancel epson-921  

如果要取消某台打印机上的所有作业,可以使用命令: 
cancel [打印机名]  


可是,由于目前我们所用的打印命令都是上级行编好的shell程序,你可能见不到打印id号的提示信息,那如何取消打印队列呢?,这就用到了lpstat命令,它可以帮助我们查到打印信息。  

lpstat ,是lp stauts的缩写,其意为打印状态,语法格式为:  

lpstat [选项]  

选项有多个,我一般就用-t 选项,显示所有信息  

比如:lpstat -t  


以上只是对sco unix的入门介绍,而且没有介绍它的网络命令(因为一则我并不精通网络,二则我觉得unix的ftp 、telnet命令和win2000并没有什么不一样,因此,要学习ftp telnet在win2000上练习就可以了)。要想深入掌握unis,还是需要好好看一看专门的教程。 
附录:unix系统下各文件的作用  

/etc/auth:安全数据库文件 
/etc/auth/subsystems:带保护的子系统授权数据库 
/etc/auth/system:整个系统范围内的授权数据 
/etc/conf:系统配置的主目录 
/etc/conf/bin:与unix核心有关的命令 
/etc/conf/cf.d:包含了用于连接unix核心所需的配置文件和主要的系统配置命令。 
/etc/conf/init.d:系统串口状态描述文件 
/etc/conf/mfsys.d:unix系统上几个文件系统描述信息文件 
/etc/conf/node.d:设备节点描述文件 
/etc/conf/pack.d:核心的目标模块 
/etc/conf/pack.d/Sdsk:SCSI硬盘驱动程序 
/etc/conf/pack.d/Srom:SCSI CD-ROM驱动程序 
/etc/conf/pack.d/Stp:SCSI磁带接口卡驱动程序 
/etc/conf/pack.d/ad:ADAPTEC 154X SCSI接口卡驱动程序 
/etc/conf/pack.d/aio:异步硬盘I/O驱动程序 
/etc/conf/pack.d/astmf:增强型VGA显示接口卡 
/etc/conf/pack.d/aud:系统审计程序 
/etc/conf/pack.d/busmouse:总线形鼠标驱动程序 
/etc/conf/pack.d/cdb:MC146818驱动程序(CMOS时钟) 
/etc/conf/pack.d/cdt:CD-ROM/TAPE驱动程序 
/etc/conf/pack.d/cga:IBM彩色图形接口板驱动程序 
/etc/conf/pack.d/ciha:386/486CBUS SCSI硬盘控制卡驱动程序 
/etc/conf/pack.d/clone:(安装X sight所需)clone模块 
/etc/conf/pack.d/cn:主控台驱动程序 
/etc/conf/pack.d/cpqs:Compaq SCSI磁带接口卡驱动程序 
/etc/conf/pack.d/cpyrt:版权设备驱动程序 
/etc/conf/pack.d/cr_uni: Corollary显示接口卡驱动程序 
/etc/conf/pack.d/ct:Wangtec盒式带驱动程序 
/etc/conf/pack.d/da:VGA、EGA、CGA设备驱动程序 
/etc/conf/pack.d//dda:merge和vp/ix直接设备访问驱动程序 
/etc/conf/pack.d/dk:硬盘定位(Layout)支持驱动程序 
/etc/conf/pack.d/dma:DMA通道驱动程序 
/etc/conf/pack.d/dos:DOS设备驱动程序 
/etc/conf/pack.d/dpt:DPT硬盘控制器驱动程序 
/etc/conf/pack.d/du:RFS驱动程序 
/etc/conf/pack.d/ecc:内存错误校验程序模块 
/etc/conf/pack.d/ega:增强型图形接口板驱动程序 
/etc/conf/pack.d/eiad:ADAPTEC174X SCSI接口卡驱动程序 
/etc/conf/pack.d/eisarom:EISAROM驱动程序 
/etc/conf/pack.d/err;错误信息模块 
/etc/conf/pack.d/esc:OLIVETTI ESC-1硬盘接口板驱动模块 
/etc/conf/pack.d/esdi:微通道结构机器上的ESDI硬盘控制器驱动程序 
/etc/conf/pack.d/ev:事件驱动程序 
/etc/conf/pack.d/evld:事件线规程驱动程序 
/etc/conf/pack.d/fd:软盘驱动程序 
/etc/conf/pack.d/fdha:FUTURE DOMAIN磁带主接口卡驱动程序 
/etc/conf/pack.d/first:MPX(多处理器)核心挂接模块 
/etc/conf/pack.d/fl5:软盘驱动程序 
/etc/conf/pack.d/fp:浮点运算器驱动程序 
/etc/conf/pack.d/ft:软盘磁带驱动程序 
/etc/conf/pack.d/hd:ROOT硬盘驱动程序 
/etc/conf/pack.d/hf:IBM HARD FILE接口卡驱动程序 
/etc/conf/pack.d/hs:ISO-9660文件系统设备驱动程序 
/etc/conf/pack.d/ida:IDA硬盘驱动程序 
/etc/conf/pack.d/ida0:COMPAQ IDA硬盘控制器驱动程序 
/etc/conf/pack.d/ida1: 
/etc/conf/pack.d/ipc:进程间通讯模块 
/etc/conf/pack.d/ir:IRWIN磁带驱动程序 
/etc/conf/pack.d/itimer:间隔定时器驱动程序 
/etc/conf/pack.d/kbmouse:键盘鼠标驱动程序 
/etc/conf/pack.d/kernel:核心的目标模块 
/etc/conf/pack.d//kprf: 
/etc/conf/pack.d//ldterm:流伪TTY设备线规程规模 
/etc/conf/pack.d/log:系统信息日志程序 
/etc/conf/pack.d/mc:IRWIN MINI磁带驱动程序 
/etc/conf/pack.d/merge:merge模块 
/etc/conf/pack.d/mm:内存驱动模块 
/etc/conf/pack.d/mono:单色图形接口卡驱动程序 
/etc/conf/pack.d/msg:消息驱动程序 
/etc/conf/pack.d/mskdb:核心调试程序 
/etc/conf/pack.d/nfc:XNET驱动模块 
/etc/conf/pack.d/nmi:不可屏蔽的中断处理程序 
/etc/conf/pack.d/omti:OMTI硬盘驱动程序 
/etc/conf/pack.d/pa:并行打印机驱动程序 
/etc/conf/pack.d/pic:8259可编程中断控制器驱动程序 
/etc/conf/pack.d/pit:8254可编程中断定时器驱动程序 
/etc/conf/pack.d/prf:FROFILE驱动程序 
/etc/conf/pack.d/ptem:at&t流伪TTY设备驱动程序 
/etc/conf/pack.d/ptm:at&t流伪TTY设备驱动程序(主) 
/etc/conf/pack.d/pts:at&t流伪TTY设备驱动程序(从) 
/etc/conf/pack.d/ram:RAM盘驱动程序 
/etc/conf/pack.d/rtc:实时时钟驱动模块 
/etc/conf/pack.d/s5:S5文件系统驱动模块 
/etc/conf/pack.d/s52k:S52K文件系统驱动模块 
/etc/conf/pack.d/scodb:核心调试程序 
/etc/conf/pack.d/sec:C2安全级驱动模块 
/etc/conf/pack.d/sem:AT&T信号灯驱动模块 
/etc/conf/pack.d/shm:AT&T共享内存驱动程序 
/etc/conf/pack.d/sio:串行I/O驱动程序 
/etc/conf/pack.d/sleeper:定时的睡眠/唤醒驱动程序 
/etc/conf/pack.d/sp:(安装XSIGHT所需)流管道模块 
/etc/conf/pack.d/spad:ADAPTEC 152X SCSI主接口驱动程序 
/etc/conf/pack.d/spm:(安装XSIGHT所需)伪鼠标 
/etc/conf/pack.d/spt:(安装XSIGHT所需)非流伪TTY驱动程序 
/etc/conf/pack.d/ss:SUN RIVER STUB模块 
/etc/conf/pack.d/str:流驱动模块接口 
/etc/conf/pack.d/string:字符串设备驱动程序 
/etc/conf/pack.d/sumo:STORAGE PLUS SCSI-AT硬盘控制卡驱动程序 
/etc/conf/pack.d/sxt:SHELL分层驱动程序 
/etc/conf/pack.d/sy:/DEV/TTY主控制台目标模块 
/etc/conf/pack.d/timod:TLI交换操作模块 
/etc/conf/pack.d/tirdwr:TLI读/写模块 
/etc/conf/pack.d/tmcha:FUTURE DOMAIN TMC-8X0 SCSI接口卡驱动程序 
/etc/conf/pack.d//vga:VGA图形接口板驱动程序 
/etc/conf/pack.d/vpld:VP/IX线规程模块 
/etc/conf/pack.d/vpt:VP/IX的TTY驱动程序 
/etc/conf/pack.d/vx:虚拟8086驱动程序 
/etc/conf/pack.d/wd:WD硬盘控制器驱动程序 
/etc/conf/pack.d/wd0:WD第一号硬盘控制器驱动程序 
/etc/conf/pack.d/wd1:WD第二号硬盘控制器驱动程序 
/etc/conf/pack.d/wdex:WD 7000 EX SCSI主接口卡驱动程序 
/etc/conf/pack.d/wdha:WD 7000 SCSI主接口卡驱动程序 
/etc/conf/pack.d/weitek:WEITEK协处理器驱动程序 
/etc/conf/pack.d/xsd:XENIX共享数据库驱动程序 
/etc/conf/pack.d/xsem:XENIX信号灯驱动程序 
/etc/conf/pack.d/xt:BLIT包协议驱动程序 
/etc/conf/pack.d/xx:XENIX文件系统驱动程序 
/etc/copyrights:版权信息 
/etc/default:整个系统默认信息文件 
/etc/fscmd.d:unix系统所支持的文件系统子目录 
/etc/fscmd.d/AFS:用于AFS类型文件系统的维护命令 
/etc/fscmd.d/DOS:用于DOS类型文件系统的维护命令 
/etc/fscmd.d/EAFS:用于EAFS类型文件系统的维护命令 
/etc/fscmd.d/HS:决定文件系统类型的命令 
/etc/fscmd.d/S51K:用于S51K类型文件系统的维护命令 
/etc/fscmd.d/S52K:用于S52K类型文件系统的维护命令 
/etc/fscmd.d/S52K:用于XENIX类型文件系统的维护命令 
/etc/idrc.d:空目录 
/etc/log:系统的日志文件目录 
/etc/perms:unix及其集成产品的名称、版本号等 
/etc/perms/bundle:unix集成产品清单 
/etc/ps:ps命令所使用的数据文件 
/etc/rc.d/0:系统初始化 
/etc/rc.d/1:启动系统的守护进程 
/etc/rc.d/2:系统引导后,安装文件系统 
/etc/rc.d/3:恢复文件系统 
/etc/rc.d/4:清除/tmp下的临时文件 
/etc/rc.d/5:硬件下载 
/etc/rc.d/6:核心软件初始化 
/etc/rc.d/7:启动另一批守护进程 
/etc/rc.d/8:执行用户定义的命令 
/etc/rc.d/9:引导日志 
/etc/rc0.d:与系统启动相关的shell正文程序 
/etc/rc2.d:与系统启动相关的shell正文程序 
/etc/rc3.d:空目录 
/etc/shutdown.d:空目录 
./install:空目录 
./lost+found:系统维护目录 
./mnt:安装文件系统目录 
./opt:存放系统可选的软件 
./shlib:unix共享库的代码目录 
./tcb:受托系统文件目录 
./tcb/audittmp:审计数据临时目录 
/tcb/audittmp/audit1:审计数据采集目录 
/tcb/audittmp/audit2:审计数据采集目录 
/tcb/bin:与受托系统相关的一组命令 
/tcb/files;与系统安全相关的数据文件 
/tcb/files/audit:审计子系统工作文件 
/tcb/files/auditrparms;审计子系统工作文件 
/tcb/files/auth;用户鉴别信息文件 
/tcb/files/subsys:子系统目录 
/tcb/lib:受托系统的一组可执行程序 
/tcb/lib/auth_scripts:修改口令字,删除用户组, 
增加伪终端等一组shell正文程序 
/tcb/lib/relax:安全级子目录 
/tcb/lib/relax/high:高安全级的shell正文程序 
/tcb/lib/relax/improved;改进安全级的shell正文程序 
/tcb/lib/relax/low:低安全级的shell正文程序 
tcb/lib/relax/traditional:传统安全级的shell正文程序 
/usr/include/sys/ci:多处理器使用的头文件 
/usr/include/sys/fs:文件系统有关的头文件 
/usr/ingres:ingres数据库目录 
/usr/lbin:安装应用软件的工具 
/usr/lib/console:主控台显示所使用的字模 
/usr/spool/mmdf:mmdf邮件系统工作目录 
/usr/spool/mail:邮件工作目录 
/usr/spool/lp/model:各种型号打印机接口程序 
/usr/spool/lp:打印机工作目录 
/usr/spool/lp/fifos:命名的管道 
/usr/spool/lp/logs:打印命令日志 
/usr/spool/cron:时钟守护进程工作目录; 
/usr/mmdf:mmdf邮件系统主目录 
/usr/mmdf/bin:mmdf邮件系统命令 
/usr/mmdf/chans:mmdf所使用的通道 
/usr/mmdf/log:mmdf日志 
/usr/mmdf/table:mmdf所使用的各种文件 
/usr/lib/uucp:uucp所使用的命令和拨号程序 
/usr/lib/vidconf:视频配置目录 
/usr/lib/vidi:屏幕显示所使用的字模 
/usr/man:unix在线手册目录 
/usr/man/cat.ADM:压缩形式的系统管理命令在线手册 
/usr/lib/terminfo/w:Wyse终端 
/usr/lib/terminfo/v:DEC终端 
/usr/lib/terminfo/t:TEKTRONTX终端 
/usr/lib/terminfo/h:Hazetine.HP等终端 
/usr/lib/terminfo/i:IBM终端 
/usr/lib/terminfo/n:NCR等终端 
/usr/lib/terminfo/q: Qume,Qvt终端 
/usr/lib/terminfo/b:AT&T 等终端 
/usr/lib/terminfo/c:HUMAN designed system终端 
/usr/lib/terminfo/d: DEC,LEAR Siegler 终端 
/usr/lib/terminfo/e: Miscellaneous, Beehive终端 
/usr/lib/terminfo/f: Fortune 终端 
/usr/lib/terminfo/g: Ann ArBOR终端 
/usr/lib/terminfo/8:智能系统公司终端 
/usr/lib/terminfo/9:TELEVIDEO终端 
/usr/lib/terminfo/B:AT&T终端 
/usr/lib/terminfo/a:ANN ARBOR,AT&T,ANST Generic等 
/usr/lib/terminfo/1:DATAMEDIA,GENERAL终端 
/usr/lib/terminfo/2:HP系列终端 
/usr/lib/terminfo/3:IBM,TELERAY等终端 
/usr/lib/terminfo/4:ANN ARBOR,AT&T等终端 
/usr/lib/terminfo/5:AT&T系列终端 
/usr/lib/terminfo/6:AT&T终端 
/usr/lib/terminfo/7:AT&T终端 
/usr/lib/terminfo:终端,打印机性能数据库 
/usr/lib/sco/pcap:打印机的初始描述文件 
/usr/lib/mouse:鼠标功能的定义 
/usr/lib/mkusr/uucp:创建uucp用户所需要运行的正文程序 
/usr/lib/mkusr/sh:创建使用sh的用户时所需要运行的正文程序 
/usr/lib/mkusr/scosh:创建使用scosh的用户时所需要运行的正文程序 
/usr/lib/mkusr/rsh:创建使用rsh的用户时所需要运行的正文程序 
/usr/lib/mkusr/rksh:创建使用rksh的用户时所需要运行的正文程序 
/usr/lib/mkusr/lib:由mkusr,init使用的shell函数库 
/usr/lib/mkusr/ksh:创建使用ksh的用户时所需要运行的正文程序 
/usr/lib/mkusr/csh:创建使用csh的用户时所需要运行的正文程序 
/usr/lib/mkdev:设备和文件系统配置目录 
/usr/lib/mkdev/perms:软盘,硬盘,打印机,串口有关信息 
/usr/lib/lang:系统所支持的多种语言 
/usr/lib/lang.src:多种语言的字符集源文件 
/usr/lib/mail:邮件系统的部分命令 
/usr/lib/mapchan:键盘变换文件 
/usr/lib/keyboard:键盘数据文件 
/usr/lib/keyboard/string.d:字符串与功能键对照表 
/usr/lib/event:鼠标设备文件及配置信息 
/usr/lib/goodpw:对口令字的描述 
/usr/lib/goodpw/checks:口令字检查

posted on 2016-07-20 17:25  张冲andy  阅读(3694)  评论(0编辑  收藏  举报

导航