Unix命令和SHELL编程.doc

上传人:asd****56 文档编号:70344014 上传时间:2023-01-19 格式:DOC 页数:36 大小:560.50KB
返回 下载 相关 举报
Unix命令和SHELL编程.doc_第1页
第1页 / 共36页
Unix命令和SHELL编程.doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《Unix命令和SHELL编程.doc》由会员分享,可在线阅读,更多相关《Unix命令和SHELL编程.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、资料编码产品名称使用对象产品版本编写部门资料版本Unix命令和SHELL编程拟 制:章新日 期:2007-10-19审 核:徐智,郑浩,周建水,谢东勇,姜愉日 期:2007-10-22审 核:日 期:批 准:李缤日 期:2007-10-22华 为 技 术 有 限 公 司版权所有 侵权必究Unix命令和SHELL编程文档密级:内部公开修订记录日期修订版本描述作者2007-10-191.0初稿章新华为机密,未经许可不得扩散Unix命令和SHELL编程文档密级:内部公开目 录Unix命令21. UNIX基础2lUNIX系统结构2lUNIX树型目录结构2l根目录下的目录说明:2l文件的属性和权限3l目

2、录的使用权限:32. 普通指令4l登录和注销指令4l环境指令4l时间指令5l进程指令5l查询指令6l文件和目录指令7l移动和复制指令9l搜索指令10l压缩指令10l帮助指令113. 维护指令11l用户指令11l权限指令11l设备指令12l网络指令12l关机指令134. vi 指令14lvi 的操作模式14l游标的移动14l屏幕的移动15l删除及修改指令15l搬移与复制指令16l字符串搜寻与取代17l编辑文件17Shell 编程191. 字符19l有意义字符19l通用字符20l转义字符202. 变量20l自定变量20l参数变量20l预先定义变量21l变量之替换223. 流程控制指令22lif22

3、lwhile23luntil24lfor24lcase25l其它274. test测试运算27l括号27l数字比较27l字符串比较27l逻辑运算27l文件测试275. 其它指令28leval 字符串28lexec 命令28lread 变量名称串行28lset296. 数据输出入管道30l, 30l, 30l|31关键词:Unix SHELL摘 要:本文分为Unix命令和SHELL编程两大部分,旨在用简练的语言和清晰的分类,为现场维护人员提供一个Unix命令和SHELL编程的命令的速查手册。除了常用的各种命令,本文还罗列了一些不常用但很有用的命令或者参数,请使用时参考。缩略语清单:参考资料清单:

4、华为机密,未经许可不得扩散Unix命令和SHELL编程文档密级:内部公开第一部分 Unix命令1. UNIX基础l UNIX系统结构UNIX Shell(UNIX外壳)是一个UNIX的特殊程序,是UNIX内核和用户的接口,是UNIX的命令解释器。目前常见的Shell有三种:shell类型 简称 命令 主要特点Bourne ShellB Shell sh 最老、使用最广泛,每个UNIX都提供。Korn ShellK Shell ksh ksh 兼容B Shell,功能强大。C-Shell csh csh 格式有点象C语言。功能强,命令记忆稍难,速度慢 一般系统缺省为Bourne Shell, 本

5、文以此shell为例。要想将当前Shell改为其它 Shell,只需在操作系统提示符下键入相应的Shell命令即可。如在B Shell下键输入命令:$ echo $0 显示当前的shell类型$ ksh 就进入了K Shelll UNIX树型目录结构UNIX操作系统可由多个可以动态安装及拆卸的文件系统组成。UNIX文件系统主要分为两大类:根文件系统和附加文件系统。根文件系统(the root file system) 每一个UNIX操作系统在其主硬盘上至少含有一个文件系统,它包含构成操作系统的程序和目录,一般由“/”符号来表示。附加文件系统 除根文件系统外的其它文件系统,如/u文件系统,NFS

6、文件系统等。UNIX操作系统采用树型带勾连的目录结构,如下图所示。在这种结构中,一个文件的名字是由根目录到该文件的路径上的所有节点名按顺序构成的,相互之间用“/”分开。如文件prog的全路径名为:/usr/smith/prog,根目录用“/”表示。根文件系统常用目录:目录名称说明例bin系统的一些重要执行文件Kill、cp、dfdev设备文件如/dev/cd0etc系统设定文件home使用者的自家目录所在、ftp server lib基本函数库Lost+found系统检查结果 mnt可以挂上其它文件系统root系统管理者的自家目录所在sbin一些设定的可执进程序、设定网路tmp杂七杂八的东西u

7、sr应用程序var记载着各种系统上的变数的地方l 文件的属性和权限文件权限有三种:read 能读 (r),write 能写 (w),execute 能执行 (x) 给与三种使用者:owner 拥有者 (u),members 属拥有者同样的群组 (g),others 其它使用者(o)。root用户是UNIX的超级用户,拥有其它用户没有的特权。UID为0;root用户的UNIX操作系统提示符一般为#。用 ls -l 来查看文件的属性和权限。 例:ls -l .vgtoolsdrwxrwxrwx 2 root sys 8192 May 24 2006 vgtools第一列表示文件的属性:- 一般文件

8、;d 目录;l 符号连结文件;c 字符设备b 区块设备 (如硬盘);s 一个 socket (如/dev/printer 印表机);p 一个 pipe linux 后面的列表示文件的权限:rwxrwxrwx 表示所有使用者对这文件有所有权限。左边三个字符 代表拥有者之权限,中间三个代表与拥有者同群之权限,右边三 个代表其它使用者之权限。没有权限是用-。l 目录的使用权限:r-:只能读;可以 ls 看目录下有什么文件而不能编辑或读取文件-w- :只能写;但还不能建目录或拷贝文件进去-x:可以 cd 进去此目录,但无法使用 lsrw- :可以 ls 看此目录中有那些文件;但是无法进去此目录、无法使

9、用 ls -l、无法编辑目录、 无法拷贝文件进去r-x:可以 cd 进去此目录、可以使用 ls、但无法拷贝文件进去-wx :可以 cd 进去此目录、可以拷贝文件进去;无法使用 ls2. 普通指令l 登录和注销指令telnet:用 telnet 通讯协定连接到另一个电脑。你可以用对方的电脑名称或 IP。 对方电脑会要求你输入 login name 和 password。telnet IPAddressrlogin server(=remote login) 远程登录连到别台机器rlogin -l 签入的帐号 IP连接时会自动使用你在这电脑的 login name 和 password。如失败,就

10、会要求你输入 login name 和 password。ftp server用 ftp 通讯协定连接到另一个电脑。ftp 使用在与远方电脑复制文件。ftp IPAddress!:暂时离开 ftp 回到自已的电脑,exit 回到 ftp bin:以 binary 模式 ftpget:下载文件 get 文件名 【新文件名】 mget:下载多个文件 mget 文件名 可使用 * 或 ? put:上传文件 put 文件名 【新文件名】 mput:上传多个文件prompt:对答模式开关 预设值为 off bye:结束 ftp特殊键Ctrl + d结束键盘输入或退出当前shellDel中断键,停止当前动

11、作回到shellCtrl+s暂停屏幕输出Ctrl+q继续屏幕输出Ctrl+ukill键,删除光标所在行的所有字符Esc结束当前的操作状态(如vi)注销(退出UNIX系统) 在每次使用完后,一定要进行注销,以防他人通过你的帐号进入系统,并保证系统的完整性。注销过程:可以在图形界面下点鼠标右键,然后选择注销;在UNIX提示符下,输入命令:$ exitl 环境指令set | more显示使用者之环境变数。echo:印出字符串例:echo $PATH显示环境变数PATH之内容。su(=super user) 切换使用者。如果不写用户名,表示切换为root 身份。系统会要求你输入 root 之 pass

12、word。要离开时,就敲exit。如在你担任 root 的身份的同时也 建立 root 的环境变数就用 su -l。alias 建立命令的别名,一般设在登录文件中例:alias oracle_log = cd $ORACLE_BASE/$ORACLE_SID/bdump之后执行oracle_log命令,就会转到当前ORACLE_SID的bdump目录clear:清除萤幕l 时间指令uptime:显示目前的使用者和平均的系统负荷date显示或改变电脑之日期和时间。格式为mmddhhmmyyyy。月/日/时(24)/分/年。例:改变目前之日期和时间为 2000-12-31 23:57,就下:dat

13、e 123123572000。time确定一个程序需要多少时间来完成和其它资讯。cal 月 年:显示月历-j:显示查询的那一天为每年的第几天-y:显示整年的月历l 进程指令top继续显示正在执行的程序,用 cpu 使用率来排列。按 Ctrl + c 结束ps:查看系统中正在执行的程序之程序数据-l:长格式显示-u:显示使用者名称和起始时间-i:显示各程序的详细执行情况-s:显示各程序的讯号名称-v:显示虚拟内存使用情况-m:显示内存分配情形-f:显示执行的路行群-a:其它使用者执行的程序一并显示出来-x:显示所有程序-r:显示前景执行的程序-c:只显示执进程序的名字-e:显示执行程序的环境变数

14、-f:不显示标题栏-w:若讯息一列无法容纳,则换列显示例:ps axu | more 显示所有正在执行的程序,包含程序之拥有者。又如:ps ef |grep “ora_”|grep v grep|grep $ORACLE_SID 显示当前ORACLE_SID的Oracle后台进程oracle1201110Dec 06ora_dbwr_JAPoracle1320210Dec 06ora_smon_JAPoracle1498310Dec 06ora_arch_JAPoracle1020910Dec 06ora_pmon_JAPoracle 209010Dec 06ora_reco_JAPoracl

15、e1040410Dec 06ora_lgwr_JAPkill:终止程序之执行 (配合 ps 指令)kill 程序号码 (pid) 强迫终止程序之执行kill -l 列出所有的信号 uname:查询 linux 版本 (/proc/uname) free:查询目前内存的使用情形例:kill和shell结合使用,更加方便。这里举一个杀掉所有Oracle服务进程的kill命令:ps ef | grep “ora_”| grep v grep|grep $ORACLE_SID | awk print $2 | xargs kill 9l 查询指令hostname显示或改变这主机(local host)

16、之名称。uname -a 显示服务器之资讯。pwd显示目前使用之目录。Whoami显示我的 login name.who:显示目前线上使用者-m:显示本身的数据-q:显示使用者帐号和线上人数-i:显示使用者的闲置时间-w:显示线上使用者能否用 write 传送讯息给他w:显示目前线上使用者(可显示正在执行的指令) vall 文件名称:传送讯息给线上所有使用者 (root 专用) write:传送讯息给线上某一位使用者finger user_name 显示使用者之系统资讯,如 finger root。finger -参数 使用者名称s:使用短格式显示使用者的各项资讯l:使用长格式显示使用者的各项

17、资讯df:查询硬盘使用量a:显示全部的文件系统和各分割区的硬盘使用情形i:显示 i -nodes 的使用量k:大小用 k 来表示 (预设值) t:显示某一个文件系统的所有分割区硬盘使用量 x:显示不是某一个文件系统的所有分割区硬盘使用量 T:显示每个分割区所属的文件系统名称例:df -h (=disk free) 显示所有文件系统的硬盘空间之资讯。du:查询文件或目录的硬盘使用空间a:显示全部目录和其次目录下的每个文件所占的硬盘空间 b:大小用 bytes 来表示 (预设值为 k bytes) c:最后再加上总计 (预设值)l:计算所有文件大小 s:只显示各文件大小的总合 x:只计算同属同一个

18、文件系统的文件 L:计算所有的文件大小例:du / -bh | more (=disk usage) 显示从根目录有关每子目录占用的硬盘空间。l 文件和目录指令ls:列出文件资讯 类似 dos 之 dir-l:列出详细的文件资讯-a:列出全部文件包括隐藏文件-R:递回列出文件及子目录其下的所有子目录和文件-x:以多栏方式列出,字母顺序由左而右-i:以 i -node 来列出,会列出每个文件在硬盘中的编号-m:列出文件时以逗号 , 来分隔-n:把群组及文件拥有者名称转成数字代码-t:依文件的修改时间排序 (由新而旧)-u:依文件上次的存取时间排序 (需与 t 配合)-s:文件的大小以区块为单位

19、(每个区块 block = 512 bytes)-o:用颜色来显示各种类别的文件-r:以相反的英文字母顺序显示-d:只显示目录讯息而非目录下的文件ln 制作捷径文件:ln -参数 已存在的文件 要连结成的文件 ln -参数 原来的目录 要连结的目录 参数说明:不加:预设值;只限于相同文件系统间的连结,且不能连结目录s:可作不同文件系统间的连结,且能连结目录f:如果要连结成的文件已存在,则砍掉这个已存在的文件n:如果要连结成的文件已存在,则停止连结,不会砍掉该文件cat:显示文件内容(类似 dos 之 type)cat -参数 文件名若不加参数:即 cat 新文件 (类似 dos 之 copy

20、con 新文件名)按 ctrl + d 结束并储存 more:显示文件的内容,如果超过一页则暂停(类似 dos 之 more)more -参数 文件名指令 | more(类似 dos 之指令|more;如 type 文件名|more)参数说明:p:先清除萤幕再列出 c:每页都清除萤幕一次再从萤幕最顶端列出 s:如果文件中有许多连续空白列时,只显示一列 l:忽略文件中的跳页符号less filename翻上/下文字文件之内容。要结束就按 q。head 从文件开头查看文件例:head /etc/passwordtail 从文件末尾查看文件tail -100 /var/log/message 看文件

21、末尾100行的内容tail -f /var/log/message 持续看文件末尾增加的内容rm files删除文件。rm -参数 文件或目录r:删除其下的文件及目录(类似 dos 之 deltree)i:删除时提出警告 f:删除时不提出警告 d:删除目录,即使该目录并非空目录例:rm -r files 删除文件,目录以及下面的子目录。cd 子目录名称 转移目录 (类似 dos 之 cd)cd 回自家目录.为上一层目录 分隔符号为非 dos 的mkdir:建立子目录(类似 dos 之 md)mkdir -参数 目录名称p:连续建立两个以上不存在的目录m:设定这个目录的存取权限rmdir:删除子

22、目录,必须为空目录 (类似 dos 之 rd)rmkdir -参数 子目录名称p:若删除此目录之后,其上层目录变成空目录,则一并删除l 移动和复制指令cp:复制文件(类似 dos 之 copy)cp -参数 来源文件 (或目录) 目的文件 (或目录)a:拷贝目录,保留所有的资讯,包括连结的文件d:保留连结的文件s:制造符号连结f:拷贝时若相同文件名的文件直接复盖不提出警告i:拷贝时若相同文件名的文件不直接复盖而会提出警告l:不拷贝,但是连结文件p:保留文件的修改时间及存取权限r:拷贝时包含目录及目录下的文件mv:更改、移动目录或文件 (类似 dos 之 ren、move) mv -参数 来源文

23、件 (或目录) 目的文件 (或目录) 参数说明:b:移动之前先做备份 v:做完移动之后显示所做的移动情形 f:强迫性移动,不会询问使用者是否确认dd:字码转换程序 将软碟上的数据写成一个文件,或把一个文件写入硬盘dd if=输入文件或设备名称 of=输出文件或设备名称 skip=blocks 跳过读入缓冲区的区块数 bs=bytes 设定读写缓冲区的 bytescbs=bytes 一次转换的 bytes ibs=bytes 读入缓冲区的 bytes obs=bytes 写入缓冲区的 bytes count=blocks 只写入 block 数conv=ascii 将 EBCDIC 码转成 AS

24、CII ebcdic 将 ASCII 码转成 EBCDIC ibm 将 ASCII 码转成 IBMblock 将变动位转成固定字符 ublock 将固定位转成变动字符 lcase 将大写变小写 ucase 将小写变大写swab 将每一组 bytes 的数据做交换noerror 忽略错误notrunc 不要打断 truntate 的输出文件sync 对 ibs 所指定的区块大小填入空白l 搜索指令grep:用关键字找寻文件grep -参数 字符串 要寻找的来源文件数字:列出找到字符串的文件名称和字符串前后几行的内容A 数字:列出找到字符串的文件名称和字符串后几行的内容B 数字:列出找到字符串的文

25、件名称和字符串前几行的内容c:显示找到该字符串的个数,不会显示文件内容h:不会显示文件名,只会显示内容i:忽略大小写L:只显示文件名一次m:只找寻字符串完全相同者find:找寻文件、目录find 【起始目录】 -name 【欲找的文件名】 -print从起始目录开始寻找文件;使用万用字符*时须在文件名两端加例:find / -name filename 从根目录寻找 filename 文件。filename 可以包含万用字*和?。又如:find . print|xargs grep i create_db_test 在当前目录寻找包括create_db_test内容的文件,并把找到的文件名和内

26、容显示在屏幕上whereis:寻找某个指令的文件位置 whereis 指令名称 locate:找寻文件 locate 相关字 whatis:查询某个指令的用途 whatis 指令名称 at:设定某一个时间执行某一个指令 crontab:设定每天或每月定期执行的指令 nohup:设定退出系统后,程序仍不被终止locate filename比较快的寻找文件。l 压缩指令tar -zxvf filename解压.tar.gz 或.tgz 文件。功能选项(function-option):r 将所指的文件附加在文件库后x 读取文件库内的文件,如文件名为目录,则连子目录也会被读取 (常用)c 建立一个新

27、文件库 (常用)g 将文件由文件库的最前头开始建立,而不是写在最后一个文件后修改选项(modifier):v 启动显示模式,tar 会显示所处理的文件名 (常用)w 启动确认模式,tar处理每个文件之前,要求用户先加以确认f 表示文件库为file,省略此项,以预设的磁带或磁盘为对象 (常用)例:$tar xv /work/aaro1d /work/all.bak /work/state.wp复原更具有选择性,这里列出三个文件。注意,必须输入备份文档的全名。compress 压缩命令compress命令可将文件压缩以减少存储空间。压缩后的文件以“.Z”结尾。展开命令为uncompress。压缩命

28、令格式:compress filename 展开命令格式为:uncompress compressed-filename例:对file 文件进行压缩和解压缩compress file则压缩后的文件名为file.Z,解压命令为:uncompress file.Zgzip 压缩文件gzip 压缩文件对应的解压缩文件为zip。压缩后的文件名称为“.gz”。命令格式::gzip filenamegzip -d filename l 帮助指令man:查询某个指令的辅助说明 man 指令名称 help:查询某个内建指令的说明 (bash shell) help 内建指令名称3. 维护指令l 用户指令add

29、user user_name (当 root) 建立新使用者帐号。例:adduser barbara。不要忘下一步是要设定新使用者之 password。新使用者的硬盘空间是放在/home/user_name。useradd user_name和 adduser 相同之指令。userdel user_name(当 root) 删除使用者帐号。使用者之硬盘空间和 email 是另外处 理。groupadd group_name建立新的 group(群组)。passwd改变自己的 password。如你是 root,你可以改变任何使用者之password:password user_name。l 权

30、限指令chmod perm files(=change mode) 改变自己文件之权限(root 可以改变任何文件)。例:chmod a+r junk 会给所有使用者(a=all:user+group+others)对 junk 文件读取之权 限。chmod o-x junk 会取消其它使用者对 junk 文件执行之权限。 请参考 chmod -help 和 man chmod。要设定你建立文件的初始权限你可以用 umask(请参考 man umask)。chown new_owner fileschown -参数 拥有者 (或拥有群组) 文件R:将目录下之文件及其子目录一并更改拥有者v:执行

31、完后显示讯息chgrp new_group files改变文件之拥有者和群组。如你复制一个文件给另一个人你就用 这两个指来令改拥有者和群组。l 设备指令mount:挂上文件系统mount -参数 设备名称 存放目录mount ip 地址:/所提供的目录 存放目录 设备名称:如/dev/hda2、/dev/fd0存放目录:必须是已存在的目录 不加参数:显示目前已经挂上来的文件系统、目录a:挂上/etc/fstab 下所述全部的文件系统t:指定所挂上来的文件系统的名称 (见/proc/filesystems)n:挂上文件系统时不会把文件系统的数据写入/etc/mtab 中w:文件系统设定为可读写r

32、:挂上来的文件系统设定为唯读 例:mount -t iso9660 /dev/hdd /cdrom挂上光盘机,把光盘机之数据放入/cdrom 目录之中umount:卸下已挂上的文件系统umount 已经挂上的目录或设备名称 例:umount /cdrom 卸下/cdrom 目录 mke2fs:制作文件系统 (类似 dos 之 format)mke2fs -参数 设备名称fsck:检查、修复文件系统fsck -参数 分割区名称a:自动修复r:执行时会询问V:显示处理时的每一个步骤t:指定一个文件系统n:不要真正执行,只看执行时会做那些动做l 网络指令ping machine_name:检查是否可

33、以连接另一个电脑(给那电脑的名称或 IP)。 要结束就按。ping -参数 主机地址c 次数:送几次封包给这台主机,然后等待回应d:设定 SO_DEBUG 选项f:大量且快速的送网路封包给一台主机,看它的回应i 秒数:设定几秒钟送一次封包给一台主机,预设值 1 秒q:不显示传送封包的资讯,只显示最后结果l 次数:在次数内,以最快速的方式送封包给一台主机netconf(当 root)设定网路(有菜单)。netstat:查询网路目前状况-a:全部列出-c:每隔几秒钟重新列一遍-i:界面状态-n:以网路 IP 地址代替名称列出网路连接情形-o:列出时间状态-r:列出网路的路径表-t:列出 tcp 协

34、定的连接情形-u:列出 udp 协定的连接情形-v:列出版本-w:列出 raw 程序连结的资讯-x:列出有关 unix 网域 socket 的资讯nslookup:查询一台机器的 IP 地址及其对应的网域名称route -n显示路由表。ifconfig (当 root)显示使用的网路接口(ethernet,ppp,等)。要改变界面之设定请参考ifconfig -help。ifup interface_name(使用者下/sbin/ifup) 启动网路接口。例:ifup eth0,ifup ppp0。让使 用者启动 ppp 之界面必须在 ppp 之设定时(执行 netconf)已给使用者这 个权

35、限。ifdown interface_name (使用者下/sbin/ifdown) 关闭网路接口。l 关机指令shutdown:关机shutdown -参数 时间 讯息k:并非真正关机,只是送出讯息r:关机后重新开机h:关机后不重新开机f:快速关机n:快速关机,不要经过 init 的程序c:取消关时的程序t:在警告讯息和删除信号间做停留 时间可用 now 或任意数字 (代表分钟)例:shutdown -g0 y注意: 如有应用系统和数据库,则先关闭应用系统,在关闭数据库,在关闭操作系统,然后关主机电源必须在运行完shutdown命令,并出现允许关机的信息时,再关掉主机电源。未出现允许关机的信

36、息,千万不要关主机电源。对于小型机双机系统,其开关机要严格遵循其特定的次序,通常先开磁盘阵列再启动主机,关机时先关主机,最后关闭磁盘阵列。reboot:快速重启 (类似按 Alt + Ctrl + Del 键) 一般不建议使用halt:快速关机 一般不建议使用4. vi 指令l vi 的操作模式vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。当使用者进入 vi 后,即处在指令模式下,此刻键入之任何字符皆被视为指令。在此模式下可进行删除、修改 等动作。若要输入数据,则需进入输入模式。如何进入输入模式a (append)由游标之后加入数据。A由该行

37、之末加入数据。i (insert)由游标之前加入数据。I由该行之首加入数据。o (open)新增一行在该行之下供输入数据之用。O新增一行在该行之上供输入数据之用。如何离开输入模式ESC 结束输入模式。l 游标的移动h向左移一个字符。j向上移一个字符。k向下移一个字符。l向右移一个字符。0移至该行之首$移至该行之末。移至该行的第一个字符处。H移至屏幕的第一列。M移至屏幕的中间那列。L移至屏幕的最后一列。G移至该文件的最后一列。+移至下一列的第一个字符处。-移至上一列的第一个字符处。(移至该句之首。 (说明一)移至该句之末。移至该段落之首。 (说明二)移至该段落之末。nG移至该文件的第 n 列。n

38、+移至游标所在位置之后的第 n 列。n-移至游标所在位置之前的第 n 列。会显示该行之行号、文件名称、文件中最末行之行号、游标所在行号占总行号 之百分比。说明一:句子(sentence)在 vi 中是指以!、.或?结束的一串字。 说明二:段落(paragraph)在 vi 中是指以空白行隔开的文字。l 屏幕的移动屏幕往下翻一页。屏幕往上翻一页。屏幕往下翻半页。屏幕往上翻半页。屏幕往下翻一行。屏幕往上翻一行。l 删除及修改指令d(delete)、c(change)和 y(yank)这一类的指令在 vi 中的指令格式为: Operator(运算符) + Scope (范围)= command运算符

39、:d删除指令。删除数据,但会将删除数据复制到内存缓冲区。y将数据(字组、行列、句子或段落)复制到缓冲区。p放置(put)指令,与 d 和 y 配和使用。可将最后 delete 或 yank 的数据放置游标 所在位置之行列下。c修改(change)指令,类似 delete 与 insert 的组和。删除一个字组、句子等之数据, 并插入新键数据。 范围:e由游标所在位置至该字符串的最后一个字符。w由游标所在位置至下一个字符串的第一个字符。b由游标所在位置至前一个字符串的第一个字符。$由游标所在位置至该行的最后一个字符。0由游标所在位置至该行的第一个字符。)由游标所在位置至下一个句子的第一个字符。(

40、由游标所在位置至该句子的第一个字符。由游标所在位置至该段落的最后一个字符。由游标所在位置至该段落的第一个字符。整行动作dd删除整行。D以行为单位,删除游标后之所有字符。cc修改整行的内容。yyyank 整行,使游标所在该行复制到内存缓冲区。删除与修改x删除游标所在该字符。X删除游标所在之前一字符。r用接鳟此指令之后的字符取代(replace)游标所在字符。 如: ra 将游标所在字符以 a 取代之。R进入取代状态,直到ESC为止。s删除游标所在之字符,并进入输入模式直到ESC。S删除游标所在之该行数据,并进入输入模式直到ESC。例:10,20d删除第 10 行至第 20 行的数据。:10d删除

41、第 10 行的数据。:%d删除整个编辑缓冲区。:10,20co30将第 10 行至第 20 行的数据复制至第 30 行之后。:10,20mo30将第 10 行至第 20 行的数据搬移至第 30 行之后。取消前一动作(Undo) 即复原执行上一指令前的内容。u恢复最后一个指令之前的结果。U恢复游标该行之所有改变。l 搬移与复制指令利用 delete 及 put 指令可完成数据搬移之目的。 利用 yank 及 put 指令可完成数据复制之目的。yank 和 delete 可将指定的数据复制到内存缓冲区,而藉由 put 指令 可将缓冲区内的数据复制到萤幕上。 例:搬移一行*在该行执行 dd*游标移至目的地*执行 p复制一行*在该行执行 yy*游标移至目的地*执行 pl 字符串搜寻与取代在 vi 中可搜寻某一字符串,使游标移至该处。/字符串往游标之后寻找该字符串。?字符串往游标之前寻找该字符串。n往下继续寻找下一个相同的字符串。N往上继续寻找下一个相同的字符串。s(substitute)指令可搜寻某行列范围。g(global)指令则可搜寻整个编辑缓冲区的数据。s 指令以第一个满足该条件的字符串为其取代的对象,若该行有数个满足该条件的字符串,也仅 能取代第一个,若想取代所有的字符串则需加上 g 参数。:1,$s/old/new/g将文件中所有的old改成new。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁