UNIX 作业系统操作简介

来源:互联网 发布:微信数据可以存储sd卡 编辑:程序博客网 时间:2024/04/30 11:31

UNIX 作业系统操作简介

    UNIX 是个多人多工作业系统。另外,UNIX 有很多种,如 AT&T UNIX (SVR4)

  SunOS 4.1.3HP-UX R8AIX V3 XENIXLinux 等等,国内学校工作站以使用

  SunOS 为主流,各系统大同小异,以下介绍其基本指令的操作。

 第一节  命令格式

        命令 [选项] [处理对象]

        :  ls -la mydir

  命令一般是小写字串,注意大小写有别。

  选项通常以减号(-)再加上一个或数个字元表示,用来选择一个命令的不同操作

  同一行可下数个命令,命令间应以分号隔开。

  命令之後加上 & 可使该命令背景执行。

     一般在 shell 下执行程式,我们必须等刚下过的指令执行结束後,才能继

        续下指令,这就是前景执行,如果程式执行时间太长,不想等待它,可将该

        程式放至背景执行,此时就可继续做别的事了。

  □ UNIX 命令列有不少保留字,如 "/", "&", "|", ">", "<", "(", ")", "/",

     "!", "$", "*", "'" 等,这些字元均有特殊解译,如果命名或参数要用到保留

     字,请在保留字之前加上反斜线 "/",例如 /! 代表 ! // 代表 /

  线上求助指令 -- man   可在线上用来查询各种命令用法(manual page)的指令

     man ls     查询 ls 这个指令的用法

         man man    查询 man 指令的用法

     以下大部份指令仅列简要说明,详细用法可用 man 查询。为节省篇幅,举例不

     多,读者需时常上机使用才能真正熟悉指令的用法。

 

 

 第二节  档案及目录指令

 

 

  DOS 相似,UNIX 采用阶层式目录管理结构,由根目录( / )开始一层层将子

     目录建下去,各阶层目录以 / 隔开。

  □ home directory使用者 login 时,工作目录的位置,是由系统管理者所设定

  □ "~" 符号代表自己的 home directory,例如 ~/myfile 是指自己 home 目录下

     myfile 这个档案;~b82000/bin/qkmj 代表 b82000 home 目录下, bin

     录内 qkmj 档案。

  档名有区分大小写,长度可达 256 字元 (随系统而异),且不限点号(.)的数目

  隐藏档档名或目录名以 . 开头即为隐藏档。

  □ .   表示目前所在目录

     ..  表示上一层目录

  □ UNIX 的万用字元有三种,'*' '?' 用法和 DOS 相同,另可用 [....]

     代表区间内的任一字元,如 test[0-5] 即代表 test0, test1, ...,test5

     的集合。

  以下是 ls -l 指令输出的例子,分别介绍各栏位的意义

      total 63

      drwx------  4 b1503045     1536 Feb 13 16:37 Mail

      drwx------  2 b1503045      512 Jan  9 16:26 News

      drwx------  2 b1503045      512 Feb  7 00:46 bin

      drwx------  2 b1503045     1024 Nov  1 16:43 c

 

      -rw-------  1 b1503045     3051 Feb  7 01:49 dial-up

      -rw-r-----  1 b1503045    37106 Feb 13 02:00 wwwfaq1

      drwx------  2 b1503045      512 Aug 11  1994 doc

      lrwxrwxrwx  1 b1503045       11 Sep  5 20:36 docs -> /remote/doc

      drwxr-xr-x  2 b1503045      512 Feb  7 00:43 pub

     ━━━━━━   ━━━━━ ━━━━

                                                      

        档案形式

         -  一般档案。

         d  目录。

         l  符号链结档,(symbolic link file)用 ln -s 命令造成的,上例中

            cd docs cd /remote/doc 的效果是一样的。

         c  字元式周边设备,以一个字元一个字元方式传输,如终端机。

         b  区块式周边设备,能一次大量传输,如磁盘机。

         s  socket 档。

        档案存取权限共九个字元,每三个分为一组,共三组 rwx 的组合。

        前三个 rwx 是档案拥有人的权限,中间三个是所属群体(group)的权限,

        最後三个是其他人的使用权限。rwx 代表的意义如下

            对档案而言  对目录而言

         r  可读此档    可得知目录内有哪些档案

         w  可修改此档  可在此目录内建档及杀档

         x  可执行此档  可进入此目录内

         -  无此使用权  无此使用权

        所谓的所属群体(group),在台大计中 ccsun 工作站,同系学生定为

           同一 group;在系计中 cctwin 工作站,同年级学生定为同一 group

        以上例而言,wwwfaq1 这个档案自己可以读写,同一 group 的人只能读

           ,其他人对此档完全没有存取权。

        自己的档案,可用 chmod 指令改变其存取权,有两种使用方法,如下

              八进位法  -- chmod <八进位数> <档案>

              此方法如同在画体育选课志愿卡,共三个八进位数字,r=4w=2

              x=1-=0。例如 -rwxr-xr-x 755rw-r----- 640。如上例,

              若下 chmod 644 dial-up 即可将 dial-up 这个档的存取权从 600

              变成 644,亦即让其他人均可读此档案。

              其实最前面还有一个八进位数,但很少用到,其意义如下

                4000  程式执行时,设定使用者识别码(SUID)位元为 on

                2000  程式执行时,设定使用者所属团体识别码(SGID)位元为 on

                1000  sticky bit on,程式执行後会常驻记忆体。

              符号法  -- chmod <who op 存取权> [<who op 存取权> ...] <档案>

              <who>   u (user)  档案拥有者

                      g (group) 所属 group

                      o (other) 其他使用者

                      a (all)   包括 u, g, o

              <op>    + 加上存取权

                      - 除去存取权

                      = 重新设定存取权

              <存取权> r, w, x, s, t (常用前三者)

              例如,chmod u-w wwwfaq1 让自己不能更改 wwwfaq1 这个档案,

              chmod a+x a+r bin 允许所有人进入 bin 目录并可查看有哪些档案。

        档案连结(link)次数。

        档案拥有者。超级使用者(系统管理员)为 root

        档案大小,单位为 byte

        档案内容最近一次更新时间。

     档案名称。

  指令简介

     ls      列出目录内档案名称(如 DOS dir/w

        ls -l   除了列出档名外,并列出档案属性及拥有者、档案大小及建立时间

                等资讯

        ls -a   列出所有档案,包括隐藏档

        ls -R   递回地列出所有档案(子目录内所有档案亦列出)

        ls -F   依档案格式分类

                可执行档档名後加'*',目录名称後加上'/'link档档名加上'@'

     pwd     查询目前所在之目录名称

     cd      更换目前工作目录位置

                若只打 cd 不加目录名,则回到自己的 home directory

                回到上一层目录,必须打 cd .. cd .. 中间要有空白

     cat     查看文字档内容

     more    以一页一页方式显示一个文字档

                当最後一行出现 --more(16%)-- ,表示你已看了 16% 的文章。此

                时可用 more 内的指令

                space   往下卷动一页

                Enter   往下卷动一行,若先键入数字再按Enter可下卷指定的行数

                q Q  停止输出,回到系统提示符号

                h       显示可用指令及其功能

     cp <原始档> <复制档>    就是 copy 啦!

     mv <原始档> <目的档>    若原始档和目的档在同一目录下,可更改档名,

                                若加上路径名,可在目录间搬移档案

     rm      删除档案,若加上 -i 会徵求确认後删除

        rm -r <目录名>  删除该目录及该目录之下的所有档案

        rm -rf  同上,但不会先徵求确认

                UNIX没有undelete,杀档前请确定你的大脑很清醒

     mkdir   建立子目录

     rmdir   删除子目录,目录内须无档案

     chmod   设定档案或目录的存取权限

     lpr     将档案放进 printer queue 中等候列表

     lpq     显示 printer queue 的内容

     lp      列印资料

 

     lpstat  查询列印状态与印表机相关资讯

     pr      文字档之格式化输出

  进阶指令

     grep    於档案中寻找特定字串

                grep fopen *.c 可印出所有 *.c 档案中,有 fopen 字串的

                    那一行。

     tail    印出档案最後 10 行内容

        tail -200   印出档案最後 200 行内容

     which   查询某个执行档是放在那个路径之下

     od      以八进位察看档案内容

     ln      连接(link)档案

        ln -s   symbolic link

     wc      计算档案的行数、字数及字元数

     touch   更改档案修改或被存取时间

     diff    档案比较

     find    档案搜寻

     df      显示可使用之档案储存空间及档案数目

     du      计算磁盘机使用情形

     umask   建档时,取消部份存取权

     tee     stdin 输出到 stdout 并复制一份於档案中

 

 

 第三节  通信指令

 

 

  指令简介

     rusers  查看有哪些人上机

     ku      rusers 更好用,并提供 finger, talk, write, mail 等功能。

     mesg y  接受其他使用者讯息(系统预设值)

        mesg n  拒绝其他使用者讯息

     talk    线上一对一交谈系统,对方必须在线上才能使用,可让同一主机或

                使用相同网路协定的不同主机的使用者交谈,若要使用中文请用

                ctalk

                例如,若你使用台大计中工作站,发现你的朋友 b2503000 正在

                  使用 ccsun22 这台机器,可下 talk b2503000@ccsun22 这个指

                  令,接著等待回音,若对方愿意和你聊天,则萤幕画面将会分为

                  上下两部份,上半部份为自己输入的讯息,下半部份则是对方的

                  应答。

                按下 Ctrl-C 可结束对话

                b2503000 要和你聊天时,会出现如下画面

                  Message from Talk_Daemon at 11:21

                  talk:  connection requested by b2503000@ccsun22

                  talk:  respond with talk b2503000@ccsun22

                  若想回答请输入 talk b2503000@ccsun22 再按 Enter 即可

                此时若萤幕内容混乱,在某些软体中可按 Ctrl-L 重绘萤幕文字

                  ,若你正在编辑文件,该文件也不会受影响,仍可继续编辑。

                若你不想和他 talk ,可用 mesg n 命令拒绝。

                若远方机器与本地机器相容,亦可使用此命令和远方机器使用者

                  聊天,例如talk u8234567@ccsun19.cc.nctu.edu.tw

                  即可和交大 ccsun19 上的 u8234567 聊天

     finger  可查询本地机器或远方机器使用者简要资料

                finger b1503045@cc.ntu.edu.tw

     mail    读取及传送电子邮件

                以下指令可利用 mail 传送文字档

                mail user < filename

     write   送讯息给其他在系统中的使用者,也可视为功能较差的 talk 程式

                ,记得按 Ctrl-D 结束

     rlogin,rsh,telnet   远端登录(login)

  进阶指令

     vacation    自动回应来信

 

 

 第四节  系统资讯

 

 

  指令简介

     quota -v    察看自己可用磁盘空间大小(单位KB)及档案个数

     date    现在的日期、时间

     who     查询目前和你使用同一机器的有哪些人及login时间地点

     w       查询目前上机者详细状况

     whoami  察看自己帐号名称

     groups [帐号名] 查看某人的 group

     yppasswd    更改密码

     ypchsh  更改自己的 login shell

     ypchfn  更改自己的全名(full name,不是帐号名)

     cal     印出月历或年历

     tty     显示目前所用终端机名称

     history 查看自己下过的指令

  进阶指令

     nslookup    Name Server 查询 hostname IP

 

 

 第五节  处理程序(Process)的控制

 

 

  指令简介

     ps      显示 process 的状态(process status

                PID  ProcessID,一个正在执行的程式在系统中的唯一编号

 

                Owner process 的拥有者

     kill    停止处理程序,通常先用 ps 命令查得 Process ID,再杀之

        kill -9 立即停止一个 process

        kill -9 -1  杀掉系统内所有属於自己的 process

        若在工作站上无法离线时,可先 login 另一台工作站,然後再 rsh

           到原来当掉的工作站,下 kill -9 -1 指令即可正常退出。

     jobs    列出现在正在执行的工作

     fg      将中止的 job 回到前景继续执行

     bg      背景执行

  进阶指令

     at      在指定时间执行命令

     batch   依序执行多个命令

     crontab 要求系统定期执行特定命令

     nice    调整 process 的优先权

     nohup   使 process logout 後继续执行

 

 

 第六节  其他命令

 

 

  指令简介

     cc      C Compiler

     compress    将档案压缩成 *.Z 格式

     uncompress  *.Z 格式的压缩档解压

     alias   替命令取别名

                alias  dir  'ls -al'

                以後打 dir 就等同於下 ls -al 命令

     set     查看或设定 shell 变数

        这里介绍几个重要的变数

              home你的 home directory.

              path DOS path 变数功能一样,系统会顺著 path 中的目录

                    去找可执行档。

              term终端机形态,常用 vt100vt102ansi

        ○ set <变数名>=<设定值> 就可以设定变数的值,$<变数名> 代表此变数

           的值。例如set term=vt100 ; set path=($home/bin $path)

           另外须注意 path 的第一个目录最好不要设为 . ,这是系统安全的考量

     setenv  查看或设定环境变数

     echo    回应讯息到标准输出

     sort    资料排序

     su      权限转换为指定使用者

     banner  放大特定字串

     calendar    重要事项提醒

     spell   拼字检查

      sleep   暂停一段时间不使用 CPU(通常用在 Shell Script

     test    测试档案型态或检查字串、数值大小(通常用在 Shell Script

     wait    等待 process 执行结束(通常用在 Shell Script

 

 

 第七节  终端机常用控制键

 

 

  □ Ctrl-C     中断程式的执行。

     Ctrl-Z     暂停程式的执行,稍後可下 fg bg 指令继续,若未下 fg

                bg 指令继续执行,该 process 仍会留在系统内。

     Ctrl-S Pause     萤幕暂停输出

     Ctrl-Q     萤幕恢复输出

     Ctrl-D     EOT (End of Transmission)

  有时候按了键盘,萤幕却没任何反应,看起来好像当机,可能就是不小心按了

     Ctrl-S 键,此时按 Ctrl-Q 就可恢复正常。

  若你输入中文时,萤幕却出现乱码,请先於 UNIX 提示符号下打 stty pass8

     系统就不会过滤字元的 bit7(the most significant bit)

  若你进编辑器或者其他的全萤幕程式,出现萤幕文字上卷的问题时,请先於

     UNIX 提示符号下打 stty rows 24 resize 就可恢复正常。

 

 

 第八节  管道(pipe)及输出入重导(redirection

 

 

  □ UNIX 把输出入设备亦视为档案,这些设备可能是键盘,萤幕,印表机,也可以

     是磁盘档,以下是 UNIX 的标准输出入设备

     标准输入(stdin

        平时为键盘,可用 < 转向。

        mail b82000 < myfile 可将 myfile 档案寄给 b82000

     标准输出(stdout

        平时为萤幕,可用 > 转向,用 >> 可将结果附加(append)在档案尾端。

        finger b81045 > myfile 可将查询结果写在 myfile 档案上。

     标准错误输出(stderr

        平时为萤幕,如 stdout 被转向,仍可在萤幕看到错误讯息。 stderr 可用

        >& 转向,用 >>& 将错误讯息附加在档案尾端。

  管道管道的符号是 "|",用来连接两个命令。"|" 左边指令的输出作为 "|"

     右边指令的输入。例ls -l .. | more 可将上一层目录内容以一页一页方式

     输出;who | grep b.503 | sort | more 可将目前上线的电机系学生名单经过

     排序後分页输出。

 

 

 第九节  Shell Shell Script 简介

 

 

  □ DOS COMMAND.COM 就是一种 shell,负责解译你所下的指令并执行它。同样

     的,UNIX 上也有这样的东东,它是在你成功 login 以後由系统自动启动的。

     UNIX 上有不少种 shellsh, csh, ksh, tcsh, bash 等皆是,一般都是用csh

     login shell 可用 ypchsh 命令改变,但你必须先知道你要换的新壳子在那

     个目录下。tcsh 有类似 DOSKEY 的功能,值得推 

  □ DOS 中有所谓的批次档,用以方便处理一些例行工作。UNIX 也有批次处理,它

     就叫做 Shell Script,而且比 DOS 的批次档强很多,写法几乎是一个高阶语

     言。Shell Script 是个文字档,但其地位和其它的命令或可执行档是完全相同

     的,只要用 chmod 指令将 Shell Script 存取权设为可执行即可。欲知 Shell

     Script 写法及其相关细节,请参阅 manual page UNIX 相关书籍。

  □ $home 目录下的 .login 档就是一个典型的 Shell Script,类似 DOS

     autoexec.bat

 

 

 第十节  X Window 视窗系统简介

 

 

  若你在工作站主机 login,可打 startx openwin 指令进入 X Window 系统

     ,进入 XWindow 後按滑鼠左键或右键不放,可看到系统选单,选择你要执行的

     程式,选 Exit 就可离开 XWindow 系统。进入 X Window 後可启动 cxterm

     有中文视窗。

  □ X Window 系统大而繁杂,但操作上不难,欲深入  解其功能可参阅 X Window

     的标准本 <The X Window System, Volume 3: X Window System User's Guide

     for X11R5> 。网路上也有免费的 X Window 入门指南中文本,可进各大gopher

     站查阅或抓取。