UNIX常用命令

UNIX常用命令

 

以下只说明各常用指令的基本用法, 若需详细说明, 请用 man 去读详细的 manual.

 

1.关於档案/目录处理的命令

 

ls——列目录

    这是最基本的档案指令。 ls 的意义为 "list",也就是将某一个目录或是

某一个档案的内容显示出来。

格式:ls -1ACFLRabcdfgilmnopqrstux -W[sv] [files]

     例:

    #ls                   (不跟任何参数以简单格式列出当前目录中所有档案)

    #ls bin               (简单格式列出名为bin的文件或目录下的所有档案) 

    #ls /u/ilasII_GB/lib  (全路径,列出lib目录下的所有档案)

ls 的常用参数如下:

-a : 在 UNIX 中若一个目录或档案名字的第一个字元为 "." , 则使用 ls

将不会显示出这个档案的名字,我们称此类档案为隐藏档。如 .profile、.tcshrc等

如果我们要察看这类档案,则必须在其后加上参数 -a 。

-l : 这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,如档案存取权,档案拥有者( owner ),档案归属组,档案大小,档案最後更新时间,甚而 symbolic link 的档案是 link 那一个档等等。显示结果如下所示:

drwxrwxrwx  30 root     bin         1024 May 23 10:38 u

drwxrwxrwx   2 root     sys          512 Jul 28  1999 uacn

drwxrwxrwx   5 root     sys          512 Jul 27  1999 udk

lrwxrwxrwx   1 root     sys           11 Jul 27  1999 unix -> /stand/unix

drwxrwxrwx  35 root     auth        1024 Apr  3 13:45 usr                 

在开始的10个字符上系统给出文件的用户权限。该序列分成四个域。第一个字符为类型域,第2、3、4个字符为用户主域,第5、6、7个字符为同组用户域,第8、9、10个字符为其它用户域,域中字符的含义如下:

l         在类型域中:

d   表示此文件是一个目录

-           表示此文件是一个普通文件

b  表示此文件是一个特殊的块设备I/O文件

c  表示此文件是一个特殊的字符设备I/O文件

l  表示此文件是一个连接文件。在其文件名称后紧跟与它连接的文件路径及名称。如:

         unix -> /stand/unix

l         在“用户主”、“同组用户”、“其它用户”域中:

r  表示有读权限。含义是可以拷贝或显示该文件或目录中的内容。

w  表示有写权限。含义是可以改变或修改该文件。

x  表示有执行权限。含义是可以执行该文件或用cd命令进入该目录,在该目录中建 

    立文件或子目录等。

-           表示无权限。

 

chmod——变更档案模式( change mode )

   这个指令是用来更改档案的存取模式( access mode )。在 UNIX 一个档案上有可读(r)可写(w)可执行(x)三种模式,分别针对该档案的所有者( onwer )、同组者( group member )( 你可以 ls -lg来观看某一档案的所属的 group ),以及其他人( other )。一个档案如果改成可执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者有进入该目录之权利。chmod 就是用来变更一些档案的模式。

格式:chmod [ -fR ] mode filename ...

主要参数的意义如下:

-f(Force): chmod 不会理会失败的动作。

-R(Recurive): 会将所有子树下的所有子目录及档案改为你所要改成的模式。

Mode:指改变模式。包括三个方面:

A.为哪些用户改变

u——用户本身

g——同组用户

o——其他用户

B.如何改变

+——增加权限

-——去掉权限

C.什么权限

r——读权限

   w——写权限

   x——执行权限

例:

#chmod g0+w file1

修改前file1的权限为:-rwxr--r--

修改后file1的权限为:-rwxrw-rw-

    也可以用一个三位八进位数字来表示对某些对象的存取权。

例:

#chmod 666 *    (所有用户都可读、写)

#chmod 777 *   (所有用户都可读、写、执行)

 

cat——串联显示命令

例:#cat file1     (将文件file1的内容在屏幕上不停地显示出来)

Cat命令还可以用来建立文件,如:

#cat>newfile

this is a text

Ctrl+D

    即建立newfile文件,内容为:this is a text

#cat file1 file2 >file3  (将file1,file2两个文件接起来生成文件file3)

#cat f1 f2>>f3           (将f1,f2两文件接在f3文件的尾)

 

more——分屏显示文件内容

    more 可以将所观察的档案根据分屏显示出来,并根据使用者的要求换页或卷行。

    如果使用者要在某一个档案中搜寻一个特定的字串,则按 / 然後跟著打所要搜寻的单字即可进行搜寻。

如果你在使用中觉得已经看到了所要看的部份,可以按'q'离开 more 的使用。

在使用中按'v' 亦可以使用编辑器来编辑所观看的档案。

格式: more filename

 

cd——改变当前目录

       格式:cd dirname

例:

#cd                   (到用户的“家”目录)

#cd /usr              (将目前目录转移到/usr目录,也即进入/usr)

#cd ..                (返回上一级目录)

#cd ../..             (返回上一级目录的上一级目录)      

 

cp——拷贝

    这个指令的意义是复制("COPY") , 也就是将一个或多个档案复制成另

一个档案或者是将其复制到另一个目录去。

格式 cp [-fip] source_file target_file            (拷贝文件)

       cp [-r|-R][-fip] source_file... target_file  (拷贝目录)

常用参数如下:

-i : 此参数是当已有档名为 f2 的档案时,若迳自使用 cp 将会将原来 f2的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者的回答是y(yes)才执行复制的动作。

-r : 此参数是用来做递回复制用,可将一整颗子树都复制到另一个目录中。

 

cp 的用法例举如下:

#cp f1 f2             (将名为 f1 的档案复制一份名为 f2 的档案)

#cp f1 f2 f3 ... dir  (将档案 f1 f2 f3 ... 复制一份放到目录 dir 里面)

#cp -r dir1 dir2        ( 将 dir1 的全部内容全部复制到 dir2 里面)

 

mv——移动或改名

    mv 的意义为 move , 主要是将一档案改名或移至另一个目录。

格式:  mv [-fi] source_file... target_file

主要参数:

-i : -i 的含义与 cp 的相同,均是 interactive询问之意。

-f: 强迫( force )执行 。所有其他的参数遇到 -f 均失效。

例:

#mv f1 f2               (将名为 f1 的档案变更成名为 f2 的档案)

#mv dir1 dir2           ( 将名为 dir1 的目录变更成名为 dir2 的目录)

#mv f1 f2 f3 ... dir    (将档案 f1 f2 f3 ... 都移至目录 dir 里面)

 

rm——删除

    rm 的意义是 remove ,也就是用来删除一个档案。在 UNIX 中一个被删除的档案除非是系统恰好有做备份,否则是无法像 DOS 里面一样还能够恢复。所以在做 rm 动作的时候使用者应该要特别小心。

格式:   rm [-fiRr] file...

主要参数:

-f : 将会使得系统在删除时,不提出任何警告讯息。

-i : 在除去档案之前均会询问是否真要除去。

-r : 递归式的删除。

注意:

不要随便使用 rm -rf , 否则有一天你会"欲哭无泪"......

例:

rm f1           (删除名为f1的档案)

rm -r dir1      (删除名为dir1的目录及其下的所有档案)

rm -i sendmarc1 (删除名为sendmarc1的文件前先提示,待回答(Y/N)?)如下:

remove sendmarc1 ? y

 

mkdir——创建目录

    mkdir 是一个让使用者建立一个目录的指令。你可以在一个目录底下使用

midir 建立一个子目录。

格式:mkdir dirname1 [ dirname2 ... ]

例:

#cd /u/ilasII_GB      (将当前路径置换为/u/ilasII_GB)

# mkdir ilasbak       (在/u/ilasII_GB目录下创建一个名为ilasbak的子目录)

 

rmdir——删除目录

    rmdir 是用来将一个"空的"目录删除。如果一个目录下面没有任何档案,你就可以用 rmdir 指令将其除去。

格式:

rmdir dirname1 [ dirname2 .... ]

如果一个目录底下有其他的档案, rmdir 将无法将这个目录删除,除非使用 rm 指令的 -r 选项。

例 :

   rmdir ilasbak      (删除名为ilasbak的空目录)

 

pwd——显示当前路径

例如:

#pwd

/u/ilasII_GB/database     (显示当前路径为:/u/ilasII/database)

 

2.关于进程处理的命令:

 

ps——显示目前你的 process 或系统 processes 的状况

格式:

ps [-aAdefl] [-G groups] [-o format] [-p pids] [-t termlist] [-u users] [-U users] [-g pgrplist]  

常用参数:

-a 列出所有用户的 process 状况。

-u 显示 user - oriented 的 process 状况 。

-x 显示包括没有 terminal 控制的 process 状况 。

-w 使用较宽的显示模式来显示 process 状况 。

例:

#ps -ae         (显示所有进程的进程号及状态)

#ps -u ilasnt1  (显示用户ilasnt1的进程状态)

  PID     TTY        TIME CMD

 1194   ttyp0    00:00:00 sh

#ps -t tty1a    (显示设备tty1a上的进程)

如上所示:我们可以经由 ps 取得目前 processes 的状况,如 PID(进程号) , TTY(设备名)、TIME(时间)、CMD(程序名) 等。

 

kill——杀进程

    kill 指令的用途是送一个信号给某一个进程。因为大部份送的都是用来杀掉进程,因此称为 kill 。

格式:

kill [ -SIGNAL ] pid ...

kill -l

SIGNAL :为一个讯号的数字,从 0 到 31 ,其中 9 是 SIGKILL ,也就是一般用来杀掉一些无法正常终止进程的讯号。

你也可以用 kill -l 来察看可代替 signal 号码的数目字。

 

3.用户操作指令

 

Who——查询目前有那些人在线

    例:

#who

ilasnt1    ttyp0        May 24 10:23

root       ttyp3        May 24 11:27

root       ttyp4        May 24 09:39  

 

w——查询目前有那些人在线上,同时显示出那些人目前的工作

例:

#w

 12:17pm  up 3:59,  3 users,  load average: 2.03, 2.02, 2.00

User     Tty       Login@   Idle   JCPU   PCPU  What

ilasnt1  ttyp0    10:23am   1:54      1      -  -sh

root     ttyp3    11:27am      2      1      -  w

root     ttyp4     9:39am     38      1      -  -sh

          

chgrp——改变组的属性

格式:

chgrp [-R] group file...  

例:

#chgrp library file1 file2…    (将file1、file2…等的用户组改为library)

 

chown——改变文件或目录的所有者

格式:

chown [-R] owner[:group] file...  

例:

#chown ilasnt1 ilasII_GB         (将ilasII_GB的用户主改为ilasnt1)

 

passwd——更改用户口令

格式:

passwd  用户名     (后面不跟用户名,为修改root的口令)

 

4.网路指令

 UNIX 提供网路的连接,使得你可以在各个不同的机器上做一些特殊的事情。有些工作可以利用 UNIX 的网路指令,在你的位子上连到各个不同的机器上工作。如此一来,即使你在寝室,也能轻易的连至系上或计中来工作,不用像以前的人必须泡在冷冰冰的机房面。

这些网路的指令如下所述:

 

telnet——仿真终端程序

    telnet 是一个提供 user 经由网路连到 remote host。

格式:

telnet [ hostname | ip-address ] [ port ]

其中:

    hostname:为一个像 ccsun1 或是 ccsun1.cc.nctu.edu.cn 的 name address;

    ip-address:则为一个由四个小於 255 的数字组成的IP地址,如 140.113.17.173 、210.26.147.1等。

    Port:为一些特殊的程式所提供给外界的沟通点。如对方没要求,则不需要此项。

   例:

   #telnet ccsun1

   #telnet 140.113.17.173

 

ftp——文件传输协议

    ftp 的意义是 File Transfer Program ,是一个很常应用在网路档案传输的

程序。

   格式:

ftp [ hostname | ip-address ]

其中 hostname | ip-address 的意义同telnet 。

    在进入 ftp 之後,如果与 remote host 连接上了,它将会询问你用户名

与密码,如果输入对了就可以开始进行档案传输。

ftp中常用命令:

ascii:将传输模式设为 ascii 模式。通常用於传送文字档。

binary:将传输模式设为 binary 模式,通常用於传送执行档,压缩档与影像档等。

cd remote-directory:将 remote host(远方)上的工作目录改变。

lcd [ directory ]:更改 local host (本地)的工作目录。

ls [ remote-directory ] [ local-file ]:列出 remote host 上的档案。

get remote-file [ local-file ]:取得远方的档案。

mget remote-files :可使用通用字元一次取得多个档案。

put local-file [ remote-file]: 将 local host 的档案送到 remote host。

mput local-files :可使用通用字元一次将多个档案放到 remote host 上。

help [ command ]: 线上辅助指令。

mkdir directory-name :在 remote host 造一个目录。

prompt 更改交谈模式,若为 on 则在 mput 与 mget 时每作一个档案之传

输时均会询问。

quit/bye 离开ftp .

 

5.其他指令

 

vi——编辑命令

    任何用户最常做的事要数创建和编辑文件,包括文档、报告和文字,vi(Visual Editor)是一个有效而相对简单的全荧幕编辑,使用vi,只要记著少量基本指令,就可以开始起步,再学习其他更复杂的指令,而系统管理员则使用vi管理和维护系统。

vi是包含在SCO System V作业系统中的全荧幕编辑,其实,vi不独存在於SCO UNIX内,而是UNIX内相当普及的文件编辑。开启文件无论是开启新档或修改旧文件,都可以使用vi。

格式:

    #vi filename

    如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在创建新文件。如果文件早已存在,vi则会显示文件的首廿四行,用户可再用游标(cursor)移动文件。

    这是执行Vi后的屏幕样式:

   

   

   上面是一个经vi开启的模拟文件,一行开始处的波折号(~)表示文件的结尾。 vi使用了两种状态,一是指令态(Command Mode),另一是插入态(Insert Mode)。当vi处於指令态时,打入的内容会视作指令来解释;另一方面,当vi处於插入态时,就可以打入正文(text)给文件。

    大多数vi指令是单字符,由插入态改变为指令态,按〈Esc〉键;而由命令态转为插入态,则可以使用下面的插入令,直接打入,无需再按〈Return〉键。

l         插入

    i  在游标处插入正文

    I  在一行开始处插入正文

    a  在游标後追加正文

    A  在行尾追加正文

    o(小写欧)    在游标下面新开一行

    O(大写欧)  在游标上面新开一行

    要记著一点,在插入态处,不能打入指令,必需先按〈Esc〉键,返回指令态。假若户用不知身处何态,也可以按〈Esc〉键,不管处於何态,都会返回指令态。

l         存盘及退出

    在修改文件时,如何存档及退出指定文件都非常重要。在vi内,行使存档或退出的指令时,要先按冒号(:),改变为指令态,用户就可以看见在荧幕左下方,出现冒号(:),显示vi已经改为指令态,可以进行存档或退出等工作。

    下面就是一些这方面常用的指令。

     :q!  放弃任何改动而退出vi,也就是强行退出

     :w   存档

     :wq  存档并退出vi

     :x   与wq的工作一样

     :zz  与wq的工作一样删除正文

l         删除

     删除或修改正文都是利用插入态,故此,下面所提及的指令只需在插入态内,直接选入指令即行。

     x    删除游标处字符(Character)

     nx   删除游标处後n个字符

     nX   删除游标处前n个字符

     ndw  删除游标处下n个单词(word)

      dd       删除整行

      d$或D   删除由游标至该行最末

      u        恢复前一次所做的删除

l         修改正文

      当使用vi修改正文,加减字符时,就会采用另一组在插入态操作的指令。

            — r char由char代替游标处的字符

            —Rtext〈Esc〉由text代替游标处的字符

            —cwtext〈Esc〉由text取代游标处的单词

            —Ctext〈Esc〉由text取代游标处至该行结尾处

            —cc使整行空白,但保留游标位置,让你开始打入

            —如删除指令一样,在指令前打入的数,表示执行该指令多少次。

l正文模式检索

     要检索文件,必需在指令态下进行。所谓「模式」,就是一个特定字符串,其中可含空格符。

    /str〈Return〉   向前搜寻str直至文件结尾处

    ?str〈Return〉    往後搜寻str直至文件开首处

    n     同一方向上重复检索

    N     相反方向上重复检索

    vi缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。其他如果要在 vi执行期间,转到shell执行,使用惊叹号(!)执行系指令,例如在vi期间,列出当前目录内容,可以打入:!If

     另一方面,用户可以在主目录中创建.exrc环境文件,用set打入选项,每次调用vi时,就会读入.exrc中的指令与设置。下面是.exrc环境文件的实例:

            set wrapmarging=8

            set showmode

            set autoindent

            set number

 

备份命令:tar(c)

    tar 是对非特权用户最易用和最可靠的实用程序(utility),从归档介质上保留和恢复文件,亦能从多文件归档中抽取单个文件。

    tar 归档使用文件和目录的相对或绝对路径名。

打入 tar,即会显示所有变量选项;

如:

 tar -{txruc}[0-9vfbkelmnopwAFLTP] [tapefile] [blocksize] [tapesize] files...

        Key     Device            Block   Size(K)    Tape

        0       /dev/rfd048ds9    18      360        No

        1       /dev/rfd148ds9    18      360        No

        2       /dev/rfd096ds15   10      1200       No

        3       /dev/rfd196ds15   10      1200       No

        4       /dev/rfd0135ds9   18      720        No

        5       /dev/rfd1135ds9   18      720        No

        6       /dev/rfd0135ds18  18      1440       No

        7       /dev/rfd1135ds18  18      1440       No

        8       /dev/rStp0        20      0          Yes

        9       /dev/rctmini      20      0          Yes

        10      /dev/rdsk/fp03d   18      720        No

        11      /dev/rdsk/fp03h   18      1440       No

        12      /dev/rdsk/fp03v21 10      20330      No 

其中:                   

cv”是创建归档;

cv#”用於来自 /etc/default/tar 的设备号 #;

rv”追加已有归档;

uv”更新在已有归档上的文件;

tv”显示归档内容表;

xv”从归档中抽取文件;

f”从指定文件中读入或写出;

L”使 tar跟随符号连接继续追查下去,默认情况下则会忽略符号连接。

例:

1)要归档指定文件,而复盖盘上的已有数据,指令如下:

         $cd pub

         $tar cv8 ascii greek   (8为磁带机)

         volume end at 1199k, block factor=5k

         seek=0k a ascii 3k

         seek=3k a greek 1k

    (2)要列出 tar 归纳的内容:

         $tar tv8

         rwxrwxrwx201/50    1731 Apr 11 00:58 1997 web50/WEB/srchbib.htm

         rwxrwxrwx201/50    1002 Apr 11 00:58 1997 web50/WEB/readinfo.htm

         rwxrwxrwx201/50    1070 Apr 11 00:58 1997 web50/WEB/stflag.gif

         rwxrwxrwx201/50      45 Mar 22 01:27 1997 web50/WEB/cgi-bin/ILASPROF

         rwxr-xr-x201/50  136799 Apr 10 04:10 1998 web50/WEB/cgi-bin/openhold

   

     注意:创建 tar 归档,使用相对路径名,否则,恢复另一系统就会盖写其他系统的文件。如:

         #tar cv8 /etc/motd

         #cd /tmp

         #tar xv8

         x /etc/motd, 943 bytes,2k

 

Df——显示硬盘空间使用情况

磁盘空间以块为单位进行分配,典型的块是512字节。

例:

#df -v

Mount Dir  Filesystem              blocks      used      free   %used

/          /dev/root              2123740    990450   1133290    47%

/stand     /dev/boot               100000     19796     80204    20%

/u         /dev/u                15000000  12529568   2470432    84%

 

Du——检测一个目录和(递归地)所有它的子目录中的文件占用的磁盘空间,用块大小标识。

例:

#du

#du -s   只显示整个目录占用的空间

 

Find——从指定路径开始查找带有规定特征的文件

例:

#find / -name ilas.ini   (从根目录开始递归地寻找出名为ilas.ini的文件,并将它所在目录显示在屏幕上)

 

Date——显示系统日期

例:

#date

Thu May 24 14:31:49 CST 2001 

 

Format——软盘格式化

例:

#format /dev/rfd096ds15    (格式化5寸高密软盘(A驱动器)

 

Haltsys——紧急关机

格式:#haltsys 回车 (此时未执行关闭数据库等,最好用Shutdown)

 

Shutdown——多用户情况下关机

格式:

#shutdown -g0 -y -i0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值