Unix 入门

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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

首先,我们一起看看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:口令字检查

文章可以转载,必须以链接形式标明出处。

本文转自 张冲andy 博客园博客,原文链接:  http://www.cnblogs.com/andy6/p/5689116.html  ,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
Ubuntu Unix Linux
Unix/Linux操作系统的最强入门科普(经典)
Unix/Linux操作系统的最强入门科普(经典)
429 0
|
7月前
|
缓存 网络协议 Unix
Linux(UNIX)五种网络I/O模型与IO多路复用
Linux(UNIX)五种网络I/O模型与IO多路复用
172 0
|
7月前
|
Unix Shell Linux
在Unix/Linux操作系统中,Shell脚本广泛用于自动化任务
在Unix/Linux操作系统中,Shell脚本广泛用于自动化任务
71 2
|
2月前
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。
|
4月前
|
Unix Linux 程序员
Unix:Linux的“逗趣祖师爷”与它的不凡传承
在科技长河中,Unix犹如一颗恒星,既是历史见证者也是未来的启发者。1969年,因程序员肯·汤普森想在他的PDP-7上玩“Space Travel”游戏,意外创造了Unix,以简洁优雅的代码改变了操作系统的世界。进入90年代,林纳斯·托瓦兹受Unix启发,开发了开源免费的Linux,像是Unix调皮的孙子,不仅继承其精髓还增添了开放共享的精神。Unix与Linux之间的传承,就像是智者与追蝶孩童的故事,充满了岁月的智慧与新生的活力,提醒我们科技传奇往往源于不起眼的小事。下次使用Linux时,不妨会心一笑吧!
54 0
|
4月前
|
开发框架 Unix Linux
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
51 0
|
7月前
|
Unix Shell Linux
在Linux和类Unix系统中,Shell提供了多种命令用于用户和权限管理
在Linux和类Unix系统中,Shell提供了多种命令用于用户和权限管理
77 4
|
Unix 大数据 Linux
【Linux is not Unix】Linux前言
【Linux is not Unix】Linux前言
|
7月前
|
Oracle Ubuntu Unix
Unix与Linux区别
Unix: Unix是一个操作系统家族的名称,最早由贝尔实验室(Bell Labs)的肖像电机公司(AT&T)开发。最早的Unix版本是在1969年创建的。 Linux: Linux是由芬兰计算机科学家Linus Torvalds在1991年创建的。它是作为一个免费、开放源代码的Unix克隆而开始的。
118 1