ChinaUnix.net
 >> ChinaUnix.net > SCO

UNIX 作业系统操作简介

作者:lonelykiller     发表时间:2002/03/01 05:09pm

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

SunOS 4.1.3、HP-UX R8、AIX V3、 XENIX、Linux 等等,国内学校工作站以使用

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=4,w=2,
             x=1,-=0。例如 -rwxr-xr-x 为 755,rw-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∶终端机形态,常用 vt100、vt102、ansi。
       ○ 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 上有不少种 shell,sh, 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
    站查阅或抓取。


此文章相关评论:
该文章有1个相关评论如下:(点这儿可以发表评论)
sdccf 发表于: 2002/03/03 10:05pm
详细、实用!
 
 

Copyright © ChinaUnix.net  *  转载请注明出处及作者