• Unix命令大全


     一章 目录及文件操作 

    1.1 ls 
    [语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......] 
    [说明]: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列。 
      -R 递归地列出每个子目录的内容 
      -a 列出所有文件,包括第一个字符为“.”的隐藏文件 
      -d 若后面参数是目录,则只列出目录名而不列出目录内容,常与-l选项连用以显示目录状态。 
      -C 输出时多列显示 
      -x 横向按字符顺序排列 
      -m 输出按流式格式横向排列,文件名之间用逗号(,)分隔 
      -l 长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:文件存取模式 链接数 文件主 文件组 文件字节数 上次修改时间其中文件存取模式用10个字母表示,从左至右的意义如下: 
      第一个字母表示文件种类,可以是以下几种情况: 
        d 为目录文件 
        l 为链接 
        b 为块文件 
        c 为字符型文件 
        p 为命名管道(FIFO) 
        - 为普通文件 
      后面9个字母分别表示文件主、同组用户、其他用户对文件的权力,用r表示可读,w 表示可写,x 表示可执行。如果是设备文件,则在文件字节数处显示:主设备 从设备。 
      -n 与-l选项相同,只是文件主用数字(即UID)显示,文件组用数字 (即GID)表示 
      -o 与-l选项相同,只是不显示文件组 
      -g 与-l选项相同,只是不显示文件属主 
      -r 逆序排列 
      -t 按时间顺序排列而非按名字 
      -u 显示时间时使用上次访问时间而非上次修改时间 
      -c 显示时间时使用上次修改i节点时间而非上次修改时间 
      -p 若所列文件是目录文件,则在其后显示斜杠(/) 
      -F 在目录文件后加’/’,在可执行文件后加’*’ 
      -b 文件名中若有非打印字符,则用八进制显示该字符 
      -q 文件名中的不可打印字符用’?’表示 
      -i 显示节点号 
      -s 显示文件长度时使用块长度而非字节长度 
      -f 将后面的参数解释为目录并列出其中的每一项 
      -1 每行仅列一项 
      [例子]: 
      ls 列出当前目录下的文件 
      ls -al /bin 以长列表的形式列出目录 /bin 下的所有文件,包括隐藏文件 

    1.2 pwd 
    [语法]: pwd 
    [说明]: 本命令用于显示当前的工作目录 
    [例子]: 
      pwd 显示出当前的工作目录 

    1.3 cd 
    [语法]: cd [目录] 
    [说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME 作为其参数,$HOME 一般为注册时进入的路径。 
    [例子]: 
      cd 回到注册进入时的目录 
      cd /tmp 进入 /tmp 目录 
      cd ../ 进入上级目录 


    1.4 mkdir 
    [语法]: mkdir [-m 模式] [-p] 目录名 
    [说明]: 本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID 
    -m 按指定存取模式建立目录 
    -p 建立目录时建立其所有不存在的父目录 
    [例子]: 
      mkdir tmp 在当前目录下建立子目录 tmp 
      mkdir -m 777 /tmp/abc 用所有用户可读可写可执行的存取模式 
      建立目录 /tmp/aaa (存取模式参看命令 chmod) 
      mkdir -p /tmp/a/b/c 建立目录 /tmp/a/b/c ,若不存在目录 /tmp/a 
    及/tmp/a/b 则建立之 


    1.5 rmdir 
    [语法]: rmdir [-p] [-s] 目录名 
    [说明]: 本命令用于删除目录 
    -p 删除所有已经为空的父目录 
    -s 当使用-p 选项时,出现错误不提示 
    [例子]: 
      rmdir /tmp/abc 删除目录 /tmp/abc 
      rmdir -p /tmp/a/b/c 删除目录 /tmp/a/b/c ,若目录 /tmp/a /b及/tmp/a 空,则删除 


    1.6 cat 
    [语法]: cat [-u] [-s] [-v[-t] [-e]] 文件... 
    [说明]: 显示和连接一个或多个文件至标准输出 
      -u 无缓冲的输出(缺省为有缓冲输出) 
      -s 对不存在的文件不作提示 
      -v 显示出文件中的非打印字符,控制字符显示成^n ,n为八进制数字,其他非打印字符显示成M-x,x为该字符低7位的8进制数值 
      -t 在使用-v 选项时,将制表符(tab) 显示成 ^I,将换页符(formfeed)显示成 ^ L 
      -e 在使用-v 选项时,在每一行的行尾显示 $ 
    [例子]: 
      cat file 显示文件 
      cat -s -v -e file1 file2 file3 逐个显示文件 file1 file2 file3 


    1.7 head 
    [语法]: head [-n] [文件 ...] 
    [说明]: 将文件的头n 行显示输出,缺省值为 10 行,显示多个文件时,请按序列出文件名 
    [例子]: 
     head -9999 file1 file2 显示文件 file1 和 file2 的头 9999 行 


    1.8 more 
    [语法]: more [-cdflrsuw] [- 行数] [+ 行数] [+ / 模式 ] [ 文件 ... ] 
    [说明]: 将文件显示在终端上,每次一屏,在左下部显示 --more--,若是从文件读出而非从管道,则在后面显示百分比,表示已显示的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时可以使用more 命令中的子命令。 
      -c 显示文件之前先清屏 
      -d 当输错命令时显示错误信息而不是响铃(bell) 
      -f 不折叠显示长的行 
      -l 不将分页控制符(CTRL+D)当作页结束 
      -r 一般情况下,more 不显示控制符,本选项使more 显示控制符,例如,将 (CTRL+C) 显示成 ^ C 
      -s 将多个空行转换成一个空行显示 
      -u 禁止产生下划线序列 
      -w 一般情况下 more 显示完后立即推出,本选项在显示完后作提示,敲任意键后推出 
      -n 行数 指定每屏显示的行数 
       + 行号 从指定行号开始显示 
      +/ 模式 在文件中搜索指定模式,从模式出现行的上两行开始显示。文件未显示完时,可以使用more 命令中的子命令,命令中除了! 和 / 以外均不回显,也不用敲回车,当命令破坏 more 提示行时,可用退格键恢复提示行。在以下子命令操作中,i 表示数字,缺省值为 1。 
        i 空格  上滚一屏多 i 行 
        i 回车  上滚 i 行 
        i CTRL+D i 缺省时上滚 11 行,否则上滚 i 行 
        id    i 缺省时上滚 11 行,否则上滚 i 行 
        iz    i 缺省时上滚一屏,否则定义每屏为 i 行 
        is    跳过 i 行后显示一屏 
        if    跳过 i 屏后显示一屏 
        i CTRL+B 跳回 i 屏后显示一屏 
        b     跳回一屏后显示一屏 
        q 或 Q  退出 more 

      = 显示当前行号 
      v 从当前行开始编辑当前文件编辑器由环境变量$EDITOR定义 
      h 显示帮助信息 
      i /模式向前搜索,直至模式的第 i 次出现 , 从该行的上两行开始显示一屏 
        in 向前搜索,直至上一模式的第 i 次出现 , 从该行 的上两行开始显示一屏 
        单引号 回到上次搜索的出发点,若无搜索则回到开始位置 
        !   激活一个sh 去执行指定的命令 
        :i   跳到后面第 i 个文件,若不存在则跳到最后一个文件 
        :f   显示当前文件名和行号 
       :q 或:Q 推出 more 
       . (点) 重复上次命令 

    [ 例子]: 
      more -c +50 file 清屏后,从第50行开始显示文件 file 
      more -s -w file1 file2 file3 显示文件 file1 file2 file3 


    1.9 cp 
    [语法]: cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标 
    [说明]: 将文件1(文件2 ...)拷贝到目标上,目标不能与文件同名,若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。 
      -i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止 
      -p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表,但不拷贝UID 及 GID 
      -r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时目标必须为目录 
    [例子]: 
      cp file1 file2 将文件 file1 拷贝到文件 file2 
      cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下 
      cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp 


    1.10 mv 
    [语法]: mv [-f] [-i] 文件1 [文件2...] 目标 
    [说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名 
      - i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止 
      - f 覆盖前不作任何提示 
    [例子]: 
      mv file1 file2 将文件 file1 改名为 file2 
      mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下 


    1.11 rm 
    [语法]: rm [-f] [-i] 文件... 
    或 rm -r [-f] [-i] 目录名... [文件] 
    [说明]: 用来删除文件或目录 
     - f 删除文件时不作提示 
     - r 递归地删除目录及其所有子目录 
     - i 删除文件之前先作提示 
    [例子]: 
      rm file1 删除文件 file1 
      rm -i /tmp/* 删除目录 /tmp 下的所有文件 
      rm -r /mytmp 递归地删除目录 /mytmp 


    1.12 chmod 
    [语法]: chmod [-R] 模式 文件... 或 chmod [ugoa] {+|-|=} [rwxst] 文件... 
    [说明]: 改变文件的存取模式,存取模式可表示为数字或符号串,例如: 
    chmod nnnn file , n为0-7的数字,意义如下: 
      4000 运行时可改变UID 
      2000 运行时可改变GID 
      1000 置粘着位 
      0400 文件主可读 
      0200 文件主可写 
      0100 文件主可执行 
      0040 同组用户可读 
      0020 同组用户可写 
      0010 同组用户可执行 
      0004 其他用户可读 
      0002 其他用户可写 
      0001 其他用户可执行 
    nnnn 就是上列数字相加得到的,例如 chmod 0777 file 是指将文件 file 存取权限置为所有用户可读可写可执行。 
      -R 递归地改变所有子目录下所有文件的存取模式 
      u 文件主 
      g 同组用户 
      o 其他用户 
      a 所有用户 
      + 增加后列权限 
      - 取消后列权限 
      = 置成后列权限 
      r 可读 
      w 可写 
      x 可执行 
      s 运行时可置UID 
      t 运行时可置GID 
    [例子]: 
      chmod 0666 file1 file2 将文件 file1 及 file2 置为所有用户可读可写 
      chmod u+x file 对文件 file 增加文件主可执行权限 
      chmod o-rwx 对文件file 取消其他用户的所有权限 


    1.13 chown 
    [语法]: chown [-R] 文件主 文件... 
    [说明]: 文件的UID表示文件的文件主,文件主可用数字表示, 也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。 
    -R 递归地改变所有子目录下所有文件的存取模式 
    [例子]: 
      chown mary file 将文件 file 的文件主改为 mary 
      chown 150 file 将文件 file 的UID改为150 


    1.14 chgrp 
    [语法]: chgrp [-R] 文件组 文件... 
    [说明]: 文件的GID表示文件的文件组,文件组可用数字表示, 也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。 
      -R 递归地改变所有子目录下所有文件的存取模式 
    [例子]: 
      chgrp group file 将文件 file 的文件组改为 group 


    1.15 cmp 
    [语法]: cmp [-l] [-s] 文件1 文件2 
    [说明]: 比较两个文件,若文件1 为 "-" ,则使用标准输入, 两个文件相同则无提示,不同则显示出现第一个不同时的字符数和行号。 
      -l 显示每个不同处的字节数(10进制)和不同的字节(8进制) 
      -s 不作任何提示,只返回码 
    [例子]: 
      cmp file1 file2 比较文件 file1 和 file2 
      cmp -l file1 file2 比较文件file1 和 file2 的每处不同 

    1.16 diff 
    [语法]: diff [-be] 文件1 文件2 
    [说明]: 本命令比较两个文本文件,将不同的行列出来 
      -b 将一串空格或TAB转换成一个空格或TAB 
      -e 生成一个编辑角本,作为ex或ed的输入可将文件1转换成文件2 
    [例子]: 
      diff file1 file2 
      diff -b file1 file2 
      diff -e file1 file2 >;edscript 


    1.17 wc 
    [语法]: wc [-lwc] 文件... 
    [说明]: 统计文件的行、字、字符数,若无指定文件,则统计标准输入 
      -l 只统计行数 
      -w 只统计字数 
      -c 只统计字符数 
    [例子]: 
      wc -l file1 file2 统计文件file1和file2 的行数 


    1.18 split 
    [语法]: split [-n] [ 文件 [名字]] 
    [说明]: split 将指定大文件分解为若干个小文件,每个文件长度为n行(n 缺省时为1000),第一个小文件名为指定的名字后跟aa,直至zz,名字缺省值为x,若未指定大文件名,则使用标准输入 
    [例子]: 
       split -500 largefile little 
       将文件largefile 每500行写入一个文件,第一个文件名为littleaa 


    1.19 touch 

    [语法]: touch [-amc] [mmddhhmm[yy]] 文件... 
    [说明]: 将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。 
      -a 只改变访问时间 
      -m 只改变修改时间 
      -c 若文件不存在,不创建它且不作提示 
    mmddhhmm[yy] 两位表示 月日时分[年] 
    [例子]: 
      touch file 
      更新文件file的时间 
      touch 0701000097 HongKong 
      将文件HongKong的时间改为97年7月1日0时0分 


    1.20 file 
    [语法]: file [-f 文件名文件] 文件... 
    [说明]: file 对指定文件进行测试,尽量猜测出文件类型并显示出来 
      -f 文件名文件 文件名文件是一个包含了文件名的文本文件, -f 选项测试 
    文件名文件中所列出的文件 
    [例子]: 
      file * 显示当前目录下所有文件的类型 


    1.21 pack 
    [语法]: pack 文件... 
    [说明]: pack 将指定文件转储为压缩格式,文件名后加 ".z ", 文件存取模式,访问时间,修改时间等均不变 
    [例子]: 
      pack largefile 将largefile 压缩后转储为largefile.z 


    1.22 pcat 显示压缩文件 
    [语法]: pcat 文件... 
    [说明]: pcat 显示输出压缩文件 
    [例子]: 
      pcat largefile.z 显示压缩前的largefile 
      pcat largefile.z >; oldfile 显示压缩前的laregfile,并将其重定向到文件oldfile中 


    1.23 unpack 
    [语法]: unpack 文件... 
    [说明]: 将压缩后的文件解压后转储为压缩前的格式 
    [例子]: 
      unpack largefile.z 将压缩文件largefile.z解压后转储为largefile 


    1.24 find 
    [语法]: find 路径名... 表达式 
    [说明]: find 命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真,以下 n 代表一个十进制整数,+n 代表打印 n , -n 代表小于 n ,下面是合法表达式说明: 
      -name 模式 文件名与模式匹配则为真,( 为转意符) 
      -perm [-]八进制数 文件存取模式与八进制数相同则为真若有- 选项,则文件存取模式含有八进制数规定模式即为真 
      -size n[c] 文件块长度为 n 则真(一块为512字节),若有c 选项,则文件字节长度为 n 则真 
      -atime n 若文件的最近访问时间为 n 天前则为真。 
    find 命令将改变其访问的目录的访问时间 
      -mtime n 若文件的最近修改时间为 n 天前则为真 
      -ctime n 若文件状态为 n 天前改变则为真 
      -exec 命令 { }; 若命令返回值为0则真,{ }内为命令参数,此命令必须以 ; 为结束 
      -ok 命令 { }; 与 exec 相同,只是在命令执行前先提示,若回答 y 则执行命令 
      -print 显示输出使表达式为真的文件名 
      -newer 文件 若文件的访问时间比newer 指定的文件新则真 
      -depth 先下降到搜索目录的子目录,然后才至其自身 
      -mount 仅查找包含指定目录的文件系统 
      -local 文件在当前文件系统时为真 
      -type c 文件类型为 c 则真,c 取值可为 b(块文件) c (字符文件) d(目录) l (符号链接) p (命名管道) f (普通文件) 
      ( 表达式 ) 表达式为真则真 
      -links n 文件链接数为 n 时为真 
      -user 用户 当文件属于用户时为真,用户可用数字表示UID 
      -nouser 当文件不属于 /etc/passwd 中的一个用户时为真 
      -group 文件组 当文件属于文件组时为真,文件组可用数字表示GID 
      -nogroup 当文件不属于 /etc/group 中的一个组时为真 
      -fstype 类型 当文件所属文件系统类型为指定类型时真 
      -inum n 当文件 i 节点号为 n 时为真 
      -prune 当目录名与模式匹配时,不再搜索其子目录 
      可以用逻辑操作符将简单表达式连接成复杂表达式。逻辑操作符有 ! 表示非操作, -o 表示或操作,两个表达式并列则表示与操作 
    [例子]: 
      find / -name find* -print 
      从根目录开始搜索文件名如 find* 的文件并显示之 
      find ./ -exec sleep{1}; -print 
      每秒显示一个当前目录下的文件 
      find $HOME (-name a.out -o -name '*.o' ) -atime +7 -exec rm {} ; 
      从$HOME目录开始搜索,删除所有文件名为a.out 或 *.o 且访问时间在7天前的文件 


    1.25 grep 
    [语法]: grep [选项] 模式 [文件...] 
    [说明]: 在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(') 中,若指定文件为缺省,则使用标准输入,正规表达式可以是: 
      . 匹配任意一个字符 
      * 匹配0个或多个*前的字符 
      ^ 匹配行开头 
      $ 匹配行结尾 
      [] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,例如[a-z]表示字母a 至z 中的任意一个 
       转意字符 
    命令中的选项为: 
      -b 显示块号 
      -c 仅显示各指定文件中包含模式的总行数 
      -i 模式中字母不区分大小写 
      -h 不将包含模式的文件名显示在该行上 
      -l 仅显示包含模式的文件名 
      -n 显示模式所在行的行号 
      -s 指定文件若不存在或不可读,不提示错误信息 
      -v 显示所有不包含模式的行 
    [例子]: 
      grep 'good' * 在所有文件中搜索含有字符串 good 的行 

    1 登录工作站 1.1 透过 PC 登录工作站 1.2 登出步骤 1.3 更改帐号密码 1.4 在线帮助指令说明 1.5 进入远端电脑系统 1.6 远程调用工作站程序 2 文件或目录处理 2.1 列出文件或目录下之文件名称 2.2 目录之缩写: 2.3 改变工作目录位置 2.4 复制文件 2.5 移动或更改文件、目录名称 2.6 建立新目录 2.7 删除目录 2.8 删除文件 2.9 文件名的缩写符号 2.10 查看文件内容 2.11 查看目录所占磁盘容量 2.12 查看自己的 disk quota 使用状况 3 文件传输 3.1 拷贝文件或目录至远端工作站 3.2 自远端工作站,拷贝文件或目录 4 文件模式之设定 4.1 改变文件或目录之读、写、执行之允许权 4.2 检查自己所属之群组名称 4.3 改变文件或目录之群组拥有权 4.4 改变文件或目录之最后修改时间 4.5 文件之连结 4.6 文件之字串找寻 4.7 找寻文件或命令之路径 4.8 比较文件或目录之内容 4.9 文件打印输出 4.10 一般文件之打印 4.11 troff 文件之打印 5 打印机控制命令 5.1 检查打印机状态,及打印工作顺序编号和使用者名称 5.2 删除打印机内之打印工作 (使用者仅可删除自己的打印工作 ) 6 Job 之控制 6.1 查看系统之 process 6.2 结束或终止 process 6.3 在 background 执行 process 的方式 6.4 查看正在 background 中执行的 process 6.5 结束或终止在 background 中的 process 7 shell variable 7.1 查看 shell variable 之设定值 7.2 设定 shell variable 7.3 删除 shell variable 8 environment variable 8.1 查看 environment variable 之设定值 8.2 设定 environment variable 8.3 删除 environment variable 9 alias 9.1 查看所定义的命令之 alias 9.2 定义命令之 alias 9.3 删除所定义之 alias 10 history 10.1 设定命令记录表之长度 10.2 查看命令记录表之内容 10.3 使用命令记录表 10.4 显示前一个命令之内容 10.5 更改前一命令之内容并执行之 11 资料之压缩 11.1 压缩资料 12 pipe-line 之使用 13 I/O control 13.1 标准输入之控制 13.2 标准输出之控制 14 查看系统中的使用者 15 改变自己的 username 进入其他使用者的帐号,拥有其使用权利。 16 查看 username 17 查看目前本地所有工作站的使用者 18 与某工作站上的使用者交谈 19 检查远端电脑系统是否正常 20 电子邮件(E-mail)的使用简介 20.1 将文件当做 E-mail 的内容送出 20.2 传送 E-mail 给本地使用者 20.3 传送 E-mail 至 外地 20.4 检查所传送之 E-mail 是否送出,或滞留于本所之邮件伺服站中 20.5 读取信件 20.6 本文内容大纲 20.7 进入vi 20.8 离开vi 20.9 vi 的操作模式 20.10 输入模式 20.11 指令模式 20.12 视窗的移动 20.13 删除、复制及修改指令介绍 (此单元较少使用) 20.14 删除与修改 20.15 移动与复制 20.16 指令重复 20.17 取消前一动作(Undo) 20.18 搜寻 20.19 资料的连接 20.20 环境的设定 20.21 ex指令 20.22 恢复编辑时被中断的文件 20.23 编辑多个文件 登录工作站 透过 PC 登录工作站 执行格式:telnet hostname (在 dos 下执行) telnet ip-address Example: telnet doc telnet 140.122.77.120 注: 可利用指令 arp hostname 或 arp domain_name 查询 ip_address2 粗体文字=== 登录步骤 === login : _______ > 输入 username password : _______ > 输入密码 登出步骤 输入 logout 或 exit 或 % 或按[Ctrl-D] 更改帐号密码 passwd > 执行后将会出现下列信息 Changing NIS password for user on ice. Old password: ______ > 输入旧密码 New password: ______ > 输入新密码(最好6-8字,英文字母与数字混合) Retype new password: ______ > 再输入一次密码 在线帮助指令说明 执行格式: man command-name Example: % man ls 进入远端电脑系统 执行格式:rlogin hostname [-1 username] Example: fdfd %rlogin doc remote login 进入工作站 doc 中。 %rlogin doc -l user 使用 user 帐号进入工作站 doc 中。 执行格式:telnet hostname 或 telnet IP address Example: %telnet doc or %telnet 140.109.20.251 远程调用工作站程序 执行格式:setenv DISPLAY [本机IP]:0.0 Example: %setenv DISPLAY 10.52.9.120:0.0 文件或目录处理 列出文件或目录下之文件名称 执行格式: ls [-atFlgR] [name] ( name 可为文件名或目录名称。) Example : ls 列出目前目录下之文件名。 ls –a 列出包含以.起始的隐藏档所有文件名。 ls –t 依照文件最后修改时间之顺序,依序列出文件名。 ls –F 列出目前目录下之文件名及其类型。”/” 结尾表示为目录名称,“*” 结尾表示为执行档,”@” 结尾表示为 symblic link。 ls –l 列出目录下所有文件之许可权、拥有者、文件大小、修改时间及名称。 ls –lg 同上,并显示出文件之拥有者群组名称。 ls –R 显示出目录下,以及其所有子目录之文件名。( recursive listing ) ls -i 可以显示文件的索引号 目录之缩写: ~ 使用者 login 时的 working directory ( 起始目录 ) ~username 指定某位 user 的 working directory ( 起始目录 ) . 目前的工作目录 ( current working directory ) .. 目前目录的上一层目录 ( parent of working directory) 改变工作目录位置 执行格式:cd [name] :name 可为目录名称、路径或目录缩写。 Example: cd 改变目录位置,至使用者 login 时的 working directory (起始目录)。 cd dir1 改变目录位置,至 dir1 之目录位置下。 cd ~user 改变目录位置,至使用者的 working directory (起始目录)。 cd .. 改变目录位置,至目前目录的上层( 即 parent of working directory) cd ../user 改变目录位置,至相对路径 user 之目录位置下。 cd /../.. 改变目录位置,至绝对路径( Full path ) 之目录位置下。 复制文件 执行格式: cp [-r] source destination Example: cp file1 file2 将文件 file1 复制成 file2 cp file1 dir1 将文件 file1 复制到目录 dir1 下,文件名仍为 file1。 cp /tmp/file1 将目录 /tmp 下的文件 file1 复制到现行目录下,文件名仍为 file1。 cp /tmp/file1 file2 将目录 /tmp 下的文件 file1 复制到现行目录下,文件名为 file2 cp -r dir1 dir2 (recursive copy) 复制整个目录。若目录 dir2存在,则将目录 dir1,及其所有文件和子目录,复制到目录 dir2 下,新目录名称为 dir1。若目录 dir2 不存在,则将dir1,及其所有文件和子目录,复制为目录 dir2。 移动或更改文件、目录名称 执行格式: mv source destination Example: mv file1 file2 将文件 file1,更改文件名为 file2。 mv file1 dir1 将文件 file1,移到目录 dir1下,文件名仍为 file1。 mv dir1 dir2 若目录 dir2 存在,则将目录 dir1,及其所有文件和子目录,移到目录 dir2 下,新目录名称为 dir1。若目录 dir2 不存在,则将dir1,及其所有文件和子目录,更改为目录 dir2。 建立新目录 执行格式: mkdir directory-name Exmaple : mkdir dir1 建立一新目录 dir1。 tar tar最初用于建立磁带备份系统,目前广泛用于建立文件发布档案。 建立名称为tar的档案: tar cvf ye.tar *.txt 将当前目录的所有文件存档到ye.tar中; tar cvf ye.tar *.* 浏览档案内容: tar tvf ye.tar *.* 取出档案内容: tar xvf ye.tar *.* 删除目录 执行格式: rmdir directory-name 或 rm -r directory-name Example : rmdir dir1 删除目录 dir1,但 dir1 下必须没有文件存在,否则无法删除。 rm -r dir1 删除目录 dir1,及其下所有文件及子目录。 删除文件 执行格式: rm filename (filename 可为文件名,或文件名缩写符号。) Example : rm file1 删除文件名为 file1 之文件。 rm file? 删除文件名中有五个字符,前四个字符为file 之所有文件。 rm f* 删除文件名中,以 f 为字首之所有文件。 rm -rf file 删除名为file的文件夹及其里面的内容 文件名的缩写符号 ? 代表文件名称中之单一字符。 代表文件名称中之一字串。 查看文件内容 执行格式: cat filename Example : cat file1 以连续显示方式,查看文件名 file1 之内容。 执行格式: more filename 或 cat filename | more Example : more file1 以分页方式,查看文件名 file1 之内容。 cat file1 | more 同上。 查看目录所占磁盘容量 执行格式: du [-s] directory Example : du dir1 显示目录 dir1 的总容量及其次目录的容量(以 k byte 为容量)。 du -s dir1 显示目录 dir1 的总容量。 查看自己的 disk quota 使用状况 disk quota : 工作站磁盘空间的使用限额。 执行格式: quota -v Example : quota -v 将会显示下列信息 Filesystem usage quota limit timeleft files quota limit timelef. /home/ice/u01 9344 8192 12288 1.9 days 160 0 0 栏位解说: usage : 目前的磁盘用量。 quota : 你的磁盘使用额度。当你的 usage 超过 quota 时,虽然可以继续使用,但是必须七天之内降到 quota 以下,否则即使用量没有超 limit(最高限额),也无法再写入或复制任何文件。 limit : 最高使用额度。当你的 usage 达到 limit 时,无法再写入或复制任何文件。 文件传输 拷贝文件或目录至远端工作站 执行格式: rcp [-r] source hostname:destination source 可为文件名、目录名或路径,hostname 为工作站站名,destination 为路径名称. Example : rcp file1 doc:/home/user 将文件 file1,拷贝到工作站 doc 路径 /home/user 之目录下。 rcp -r dir1 doc:/home/user 将目录 dir1,拷贝到工作站 doc 路径/home/user 之目录下。 自远端工作站,拷贝文件或目录 执行格式: rcp [-r] hostname:source destination ( hostname 为工作站名,source 为路径名,destination 可为文件名、目录名或路径 )。 Example : rcp doc:/home/user/file1 file2 将工作站 doc 中,位于 /home/user 目录下之文件file1,拷贝到目前工作站之目录下,文件名改为file2。 rcp -r doc:. 将工作站 doc 中,位于 /home/user 目录下之目录 dir1,拷贝到目前工作站之目录下目录名称仍为 dir1。 文件模式之设定 改变文件或目录之读、写、执行之允许权 执行格式:chmod [-R] mode name ( name 可为文件名或目录名;mode可为 3 个 8 位元之数字,或利用ls -l 命令,列出文件或目录之读、写、执行允许权之文字缩写。) mode : rwx rwx rwx r:read w:write x:execute user group other 缩写 : (u) (g) (o) Example : %chmod 755 dir1 将目录dir1,设定成任何使用者,皆有读取及执行之权利,但只有拥有者可做修改。 %chmod 700 file1 将文件file1,设定只有拥有者可以读、写和执行。 %chmod o+x file2 将文件file2,增加拥有者可以执行之权利。 %chmod g+x file3 将文件file3,增加群组使用者可执行之权利。 %chmod o-r file4 将文件file4,除去其它使用者可读取之权利。 1`2`12`12`12`12`12`12`1权,改为使用者 user 所有。 检查自己所属之群组名称 执行格式:groups 改变文件或目录之群组拥有权 执行格式:chgrp [-R] groupname name ( name 可为文件名或目录名 ) Example : %chgrp vlsi file1 将文件 file1 之群组拥有权,改为 vlsi 群组。 %chgrp -R image dir1 将目录dir1,及其下所有文件和子目录,改为 image 群组。 改变文件或目录之最后修改时间 执行格式:touch name ( name 可为文件或目录名称。) 文件之连结 同一文件,可拥有一个以上之名称,可将文件做数个连结。 执行格式:ln oldname newname ( Hard link ) Example : ln file1 file2   将名称 file2,连结至文件 file1。 执行格式:ln -s oldname newname ( Symblick link ) Example : ln -s file3 file4 将名称 file4,连结至文件file3。 文件之字串找寻 执行格式:grep string file Example : grep abc file1 寻找文件file1中,列出字串 abc 所在之整行文字内容。 找寻文件或命令之路径 执行格式:whereis command ( 显示命令之路径。) 执行格式:which command ( 显示命令之路径,及使用者所定义之别名。) 执行格式:whatis command ( 显示命令功能之摘要。) 执行格式:find search-path -name filename -print( 搜寻指定路径下,某文件之路径 。) Example : %find / -name file1 -print ( 自根目录下,寻找文件名为 file1 之路径。. 比较文件或目录之内容 执行格式:diff [-r] name1 name2 ( name1 name2 可同时为文件名,或目录名称。) Example : %diff file1 file2 比较文件 file1 与 file2 内,各行之不同处。 %diff -r dir1 dir2 比较目录 dir1 与 dir2 内,各文件之不同处。 文件打印输出 使用者可用 .login 档中之 setenv PRINTER,来设定打印资料时的打印机名。 printername :sp1 或 sp2 Example : %setenv PRINTER sp2 设定自 sp2 打印资料。 一般文件之打印 执行格式:lpr [-Pprinter-name] filename %lpr file1 或 lpr -Psp2 file1 自sp2,打印文件 file1。 执行格式:enscript [-Pprinter-name] filename %enscript file3 或 enscript -Psp1 file3 自sp1, 打印文件 file3。 troff 文件之打印 执行格式:ptroff [-Pprinter-name] [-man][-ms] filename %ptroff -man /usr/local/man/man1/ptroff.1 以 troff 格式,自 Apple laser writer 打印 ptroff 命令之使用说明。 %ptroff -Psp2 -man /usr/man/man1/lpr1 以 troff 格式,自 sp2 打印 lpr 命令之使用说明。 打印机控制命令 检查打印机状态,及打印工作顺序编号和使用者名称 执行格式:lpq [-Pprinter -name] %lpq 或 lpq -Psp1 检查 sp1 打印机之状态。 删除打印机内之打印工作 (使用者仅可删除自己的打印工作 ) 执行格式:lprm [-Pprinter -name] username 或 job number %lprm user 或 lprm -Psp1 user 删除 sp1 中,使用者 user 的打印工作,此时使用者名称必须为 user。 %lprm -Psp2 456 删除 sp2 编号为 456 之打印工作。 Job 之控制 UNIX O.S.,可于 foregrourd 及 background 同时处理多个 process。 一般使用者执行命令时,皆是在 foreground 交谈式地执行 process,亦可将 process置于 background 中,以非交谈式来执行 process。 查看系统之 process 执行格式:ps [-aux] Example: %ps 或 ps –x (查看系统中,属于自己的 process。) %ps –au (查看系统中,所有使用者的 process。) %ps –aux (查看系统中,包含系统内部,及所有使用者的 process。) 结束或终止 process 执行格式:kill [-9] PID ( PID 为利用 ps 命令所查出之 process ID。) Example: %kill 456 或 kill -9 456 终止 process ID 为 456 之 process。 或者 执行格式:xkill(回车,鼠标箭头变为骷髅头标志,直接点击要终止的程序窗口。) Example: %xkill[回车] 在 background 执行 process 的方式 执行格式:command & (于 command 后面加入一 “&” 符号即可。) Example: %cc file1.c & 将编译 file1.c 文件之工作,置于 background 执行。 执行格式:按下 “Control Z” 键,暂停正在执行的 process。键入 “bg” 命令,将所暂停的 process,置入 background 中继续执行。 Example: %cc file2.c ^Z Stopped %bg 查看正在 background 中执行的 process 执行格式:jobs 结束或终止在 background 中的 process 执行格式:kill %n (n 为利用 “jobs” 命令,所查看出的 background job 编号) Example: %kill % 终止在 background 中的第一个 job。 %kill %2 终止在 background 中的第二个 job。 shell variable 查看 shell variable 之设定值 执行格式:set 查看所有 shell variable 之设定值。 %set 执行格式:echo $variable-name 显示指定的 shell variable 之设定值。 %echo $PRINTER0000 sp1 设定 shell variable 执行格式:set var value Example: %set termvt100 设定 shell variable “term” 为 VT100 终端机之型式。 删除 shell variable 执行格式:unset var Example: %unset PRINTER 删除 shell variable “PRINTER” 之设定值。 environment variable 查看 environment variable 之设定值 执行格式:setenv  查看所有 environment variable 之设定值。 Example: %setenv 执行格式:echo $NAME 显示指定的 environment variable “NAME” 之设定值。 Example: %echo $PRINTER 显示 environment variable “PRINTER” 打印机名称之设定值。 设定 environment variable 执行格式:setenv NAME word Example: %setenv PRINTER sp1 设定 environment variable “PRINTER” 打印机名称为 sp1。 删除 environment variable 执行格式:unsetenv NAME Example: %unsetenv PRINTER 删除 environment variable “PRINTER” 打印机名称之设定值。 alias 查看所定义的命令之 alias 执行格式: alias 查看自己目前定义之所有命令,及所对应之 alias 名称。 执行格式: alias name 查看指定之 alias 名称所定义之命令。 Example: %alias dir (查看别名 dir 所定义之命令) ls -atl 定义命令之 alias 执行格式: alias name ’command line’ Example: % alias dir= ’ls -l’ 将命令 “ls - l” 定义别名为 dir。 删除所定义之 alias 执行格式: unalias name Example: %unalias dir (删除别名为 dir 之定义。) %unalias * (删除所有别名之设定。) history 设定命令记录表之长度 执行格式: set history n Example: %set history 40 设定命令记录表之长度为 40 (可记载执行过之前面 40 个命令)。 查看命令记录表之内容 执行格式: history 使用命令记录表 执行格式: !! Example: %!! (重复执行前一个命令) 执行格式: !n ( n 为命令记录表之命令编号。) Example: %!5 ( 执行命令记录表中第五个命令。) 执行格式: !string ( 重复前面执行过以 string 为起始字符之命令。) Example: %!cat ( 重复前面执行过,以 cat 为起始字符之命令。) 显示前一个命令之内容 执行格式: !!:p 更改前一命令之内容并执行之 执行格式: ^oldstring ^newstring 将前一命令中 oldstring 的部份,改成 newstring,并执行之。 Example: %find . -name file1.c -print ^file1.c^core %find . -name core -print 注:文件 core 为执行程序或命令发生错误时,系统所产生的文件。作为侦错(debug)之,因其所占空间极大,通常将之删除。 资料之压缩 为了避免不常用的文件或资料,占用太大的磁盘空间,请使用者将之压缩。欲使用压缩过的文件或资料前,将之反压缩,即可还原成原来之资料型式。凡是经过压缩处理之文件,会在文件名后面附加 ” .Z ” 之字符,表示此为一压缩文件。 压缩资料 执行格式:compress filename 压缩文件 执行格式:compressdir directory-name 压缩目录 gzip gzip命令常用于压缩文件,执行格式: gzip filename 建立档案名称是ye的压缩档案: gzip ye.tar 解压缩命令: gzip -d filename.gz pipe-line 之使用 执行格式:command1 | command2 将 command1 执行结果,送到 command2 做为 command2 的输入。 Example: %ls -Rl | more 以分页方式,列出目前目录下所有文件,及子目录之名称。 %cat file1 | more 以分页方式,列出文件 file1 之内容。 I/O control 标准输入之控制 执行格式:command-line < file 将 file 做为 command-line 之输入。 Example: %mail -s "mail test" user@iis.sinica.edu.tw < file1 将文件 file1 当做信件之内容,Subject 名称为 mail test,送给收信人。 标准输出之控制 执行格式:command > filename 将 command 之执行结果,送至指定的 filename 中。 Example: %ls -l > list 将执行 “ls -l” 命令之结果,写入文件 list 中。 执行格式:command >! filename 同上,若 filename 之文件已经存在,则强迫 overwrite。 Example: %ls -lg >! list 将执行 “ls - lg” 命令之结果,强迫写入文件 list 中。 执行格式:command >& filename 将 command 执行时,屏幕上所产生的任何信息,写入指定的 filename 中。 Example: %cc file1.c >& error 将编译 file1.c 文件时,所产生之任何信息,写入文件 error 中。 执行格式:command >> filename 将 command 执行结果,附加(append)到指定的 filename 中。 Example: %ls - lag >> list 将执行 “ls - lag” 命令之结果,附加(append)到文件 list 中。 执行格式:command >>& filename 将 command 执行时,屏幕上所产生的任何信息,附加于指定的 filename中。 Example: %cc file2.c >>& error 将编译 file2.c 文件时,屏幕所产生之任何信息,附加于文件 error 中。 查看系统中的使用者 执行格式: who 或 finger 执行格式: w 执行格式: finger username or finger username@domainname 改变自己的 username 进入其他使用者的帐号,拥有其使用权利。 执行格式: su username Example: %su user 进入使用者 user 之帐号 password: 输入使用者 user 之密码 查看 username 执行格式: whoami 查看 login 时,自己的 username。 执行格式: whoami 查看目前的 username。若已执行过 “su”命令tch user),则显示出此 user 之 username。 查看目前本地所有工作站的使用者 执行格式: rusers > 结束 与某工作站上的使用者交谈 执行格式: talk username@hostname 或 talk username@ip_address Example: 1. 可先利用 rusers 指令查看网路上的使用者 2. 假设自己的帐号是 u84987 ,在工作站 indian 上使用,现在想要与 doc 上的u84123 交谈。 %talk u84123@doc > 此时屏幕上将会出现等待画面 在对方(u84123)屏幕上将会出现下列信息 Message from Talk_Daemon@Local_host_name at xx:xx talk: connection requested by u84987@indian talk: respond with: talk u84987@indian 此时对方(u84123) 必须执行 talk u84987@indian 即可互相交谈。最后可按结束。 检查远端电脑系统是否正常 执行格式:ping hostname 或 ping IP-Address Example: %ping doc 电子邮件(E-mail)的使用简介 将文件当做 E-mail 的内容送出 执行格式:mail -s “Subject-string” username@address < filename Example %mail -s "program" user < file.c 将 file.c 当做 mail 的内容,送至 user, subject name 为 program。 (实际上,在Ubuntu中并不能将邮件发送到邮箱,例如163邮箱,而是在/var/mail文件夹下面生成了一个 以当前用户名为文件名的文件,并在其中指出了错误信息。) 传送 E-mail 给本地使用者 执行格式:mail username %mail user 传送 E-mail 至 外地 执行格式: mail username@receiver-address Example %mail paul@gate.sinica.edu.tw Subject : mail test 键入信文内容 按下 “Control D” 键或 ” . ” 键结束信文。 连按两次 “Control C” 键,则中断工作,不送此信件。 Cc: ( Carbon copy : 复制一份信文,给其他的收信人 ) 检查所传送之 E-mail 是否送出,或滞留于本所之邮件伺服站中 执行格式:/usr/lib/sendmail -bp ( 若屏幕显示为 “Mail queue is empty” 之信息,表示 mail 已送出。 若为其它错误信息,表示 E-mail 因故尚未送出。) 读取信件 执行格式: mail 常用指令如下: cd [directory] chdir to directory or home if none given d [message list] delete messages h print out active message headers m [user list] mail to specific users n goto and type next message p [message list] print messages q quit, saving unresolved messages in mbox r [message list] reply to sender (only) of messages R [message list] reply to sender and all recipients of messages s [message list] file append messages to file t [message list] type messages (same as print) u [message list] undelete messages v [message list] edit messages with display editor w [message list] file append messages to file, without from line x quit, do not change system mailbox z [-] display next [previous] page of headers ! shell escape == 文件编辑器 vi 之使用方法简介 ==(???) vi、celvis(cvi) 是在工作站上被广大使用的中英文编辑软体。对初学者而言,常因其特殊的使用方法,而不得其门而入;对已经在使用 vi 的使用者来说,也常见因对 vi 的不熟悉或不够了解,而无法发挥出 vi 强大的编辑能力,以下将介绍 vi 之使用方法简介。 本文内容大纲 进入 vi 离开 vi 输入模式 如何进入输入模式 如何离开输入模式 指令模式 光标的移动 视窗的移动 删除、复制及修改指令介绍(delete、change、yank) 删除与修改(delete、replace) 移动与复制(delete/put、yank/put) 指令重复 取消前一动作(undo) 字串搜寻 资料的连接与分行 环境的设定 ex 指令 其它方面 中文编辑 恢复编辑时被中断的文件 编辑多个文件 vi 是 visual editor 的缩写,是 UNIX 所提供的编辑器之一。它提供使用者一个视窗的编辑环境,在此视窗下,使用者可编辑所要的文件。 进入vi 直接执行 vi编辑程序即可: %vi test 此刻屏幕上会出现 vi 的编辑视窗,同时 vi 会将文件复制一份至记忆体中的缓冲区 (buffer) 。 vi会保留在磁盘中的文件不变,而先对缓冲区的文件作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。 ——————————————————————————– – 作者:itvue – 发布时间:2005-5-11 10:17:42 – 离开vi 若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令 离开vi。 :q! 离开vi,并放弃刚在缓冲区内编辑的内容。 :wq 将缓冲区内的资料写入磁盘中,并离开vi。 :ZZ 同wq。 :x 同wq。 :w 将缓冲区内的资料写入磁盘中,但并不离开vi。 :q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容。 此指令可与:w 配合使用。 vi 的操作模式 vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。当使用者进入 vi 后,即处在指令模式下,此刻键入之任何字符皆被视为指令。在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入模式。 输入模式 如何进入输入模式 l a (append) 由光标之后加入资料。 l A 由该行之末加入资料。 l i (insert) 由光标之前加入资料。 l I 由该行之首加入资料。 l o (open) 新增一行于该行之下供输入资料之用。 l O 新增一行于该行之上供输入资料之用。 如何离开输入模式 l 《ESC》 结束输入模式。 指令模式 光标之移动(以下命令区分大小写) l h 向左移一个字符。 l J 向上移一个字符。 l K 向下移一个字符。 l L 向右移一个字符。 l ^移至该行之首 l $ 移至该行之末。 l H 移至视窗的第一列。 l M 移至视窗的中间那列。 l L 移至视窗的最后一列。 l G 移至该文件的最后一列。 l + 移至下一列的第一个字符处。 l - 移至上一列的第一个字符处。 l ( 移至该句之首。 (注一) l ) 移至该句之末。 l { 移至该段落之首。 (注二) l } 移至该段落之末。 l nG 移至该文件的第 n 列。 l n+ 移至光标所在位置之后的第 n 列。 l n-移至光标所在位置之前的第 n 列。 l 会显示该行之行号、文件名称、文件中最末行之行号、光标所在行号占总行号之百分比。 注一:句子(sentence)在vi中是指以『!』、『.』或『?』结束的一串字。 注二:段落(paragraph)在vi中是指以空白行隔开的文字. 视窗的移动 l ^F 视窗往下卷一页(front) l ^B 视窗往上卷一页(back) l ^D 视窗往下卷半页(down) l ^U 视窗往上卷半页(up) l ^E 视窗往下卷一行 l ^Y 视窗往上卷一行 ^表示Ctrl 删除、复制及修改指令介绍 (此单元较少使用) d(delete)、c(change)和y(yank)这一类的指令在 vi 中的指令格式为: Operator + Scope command (运算子) (范围) 运算子: l d 删除指令。删除资料,但会将删除资料复制到记忆体缓冲区。 l y 将资料(字组、行列、句子或段落)复制到缓冲区。 l p 放置(put)指令,与 d 和 y 配和使用。可将最后delete或yank的资料放置于光标所在位置之行列下。 l c 修改(change)指令,类似delete与insert的组和。删除一个字组、句子等之资料,并插入新键资料。 范围: l e 由光标所在位置至该字串的最后一个字符。 l w 由光标所在位置至下一个字串的第一个字符。 l b 由光标所在位置至前一个字串的第一个字符。 l $ 由光标所在位置至该行的最后一个字符。 l 由光标所在位置至该行的第一个字符。 l ) 由光标所在位置至下一个句子的第一个字符。 l ( 由光标所在位置至该句子的第一个字符。 l { 由光标所在位置至该段落的最后一个字符。 l } 由光标所在位置至该段落的第一个字符。 整行动作: l dd 删除整行。 l D 以行为单位,删除光标后之所有字符。 l cc 修改整行的内容。 l yy yank整行,使光标所在该行复制到记忆体缓冲区。 删除与修改 l x 删除光标所在该字符。 l X 删除光标所在之前一字符。 l dd 删除光标所在该行。 l r 用接于此指令之后的字符取代(replace)光标所在字符。如: ra 将光标所在字符以 a 取代之。 l R 进入取代状态,直到《ESC》为止。 l s 删除光标所在之字符,并进入输入模式直到《ESC》。 l S 删除光标所在之该行资料,并进入输入模式直到《ESC》。 移动与复制 利用 delete 及 put 指令可完成资料移动之目的。 利用 yank 及 put 指令可完成资料复制之目的。 yank 和 delete 可将指定的资料复制到记忆体缓冲区,而藉由 put 指令可将缓冲区内的资料复制到屏幕上。 例: 移动一行 .在该行执行 dd .光标移至目的地 .执行 p 复制一行 .在该行执行 yy .光标移至目的地 .执行 p 指令重复 在指令模式中,可在指令前面加入一数字 n,则此指令动作会重复执行 n次。 例: 删除10行 .10dd 复制10行 .10yy 指标往下移10行 .10j 取消前一动作(Undo) 即复原执行上一指令前的内容。 u 恢复最后一个指令之前的结果。 U 恢复光标该行之所有改变。 搜寻 在vi中可搜寻某一字串,使光标移至该处。 /字串 往光标之后寻找该字串。 ?字串 往光标之前寻找该字串。 n 往下继续寻找下一个相同的字串。 N 往上继续寻找下一个相同的字串。 资料的连接 J 句子的连接。将光标所在之下一行连接至光标该行的后面。 若某行资料太长亦可将其分成两行,只要将光标移至分开点,进入输入模式 (可利用 a、i等指令)再按《Enter》即可。 环境的设定 :set nu 设定资料的行号。 :set nonu 取消行号设定。 :set ai 自动内缩。 :set noai 取消自动内缩。 自动内缩(automatic indentation) 在编辑文件或程序时,有时会遇到需要内缩的状况,『:set ai』即提供自动内缩的功能,用下例解释之: .vi test .(进入编辑视窗后) this is the test for auto indent 《Tab》start indent ← :set ai (设自动内缩) 《Tab》data 《Tab》data 《Tab》data ← :set noai (取消自动内缩) the end of auto indent. .注: 可删除《Tab》字符。 ex指令 读写资料 :w 将缓冲区的资料写入磁盘中。 :10,20w test 将第10行至第20行的资料写入test文件。 :10,20w>>test 将第10行至第20行的资料加在test文件之后。 :r test 将test文件的资料读入编辑缓冲区的最后。 删除、复制及移动 :10,20d 删除第10行至第20行的资料。 :10d 删除第10行的资料。 :%d 删除整个编辑缓冲区。 :10,20co30 将第10行至第20行的资料复制至第30行之后。 :10,20mo30 将第10行至第20行的资料移动至第30行之后。 字串搜寻与取代 s(substitute)指令可搜寻某行列范围。g(global)指令则可搜寻整个编辑缓冲区的资料。 s指令以第一个满足该条件的字串为其取代的对象,若该行有数个满足该条件的字串,也仅能取代第一个,若想取代所有的字串则需加上g参数。 :1,$s/old/new/g 将文件中所有的『old』改成『new』。 :10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白。 :%s/old/new/g 将编辑缓冲区中所有的『old』改成『new』。 恢复编辑时被中断的文件 在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未被写回磁盘时,当再度回到系统,执行下列指令即可回复中断前的文件内容。 %vi -r filename 编辑多个文件 vi亦提供同时编辑多个文件的功能,方法如下: %vi file1 file2 … 当第一个文件编修完成后,可利用『:w』将该缓冲区存档,而后再利用 『:n』载入下一个文件。 gedit 编辑器可以打开多个文件,并直接编辑

  • 相关阅读:
    selenium 手写xpath
    pythonselenium面试常问问题
    pytest介绍
    pytest + allure 生成自测报告
    python自动化接口面试题
    接口测试面试题汇总
    Eclipse 视图与视窗
    Access数据库密码为不可见字符的处理方式
    eclipse 导出jar 没有主清单属性的解决方法
    如何在 Windows 下编译 OpenSSL VS2013
  • 原文地址:https://www.cnblogs.com/Samboo/p/6385002.html
Copyright © 2020-2023  润新知