`
wangminshe89
  • 浏览: 667396 次
文章分类
社区版块
存档分类
最新评论

解决windows下文件在unix系统下出现^M的问题 及 Vi高级命令

 
阅读更多
替换光标所在行的VI命令
:s/^M// (注意此文件中^M 是怎样打出来的 ctrl+v+m)

替换文件中所有出现^M的地方的VI命令
:%s/^M//g
--------------------------------

Vi高级命令

http://www.chinaunix.net/jh/8/16368.html
鉴于大家在使用VI的时候有一定的陌生,在这里借花献佛,从兄弟版[SHELL]中整理出以下关于VI编程的高级技巧,希望对大家学习UNIX有所帮助,并希望大家能结合使用HPUX的心得体会对这些经验进行进一步的扩展。

1.交换两个字符位置

xp
2.上下两行调换
ddp
3.把文件内容反转
:g/^/m0/(未通过)

4.上下两行合并
J
5.删除所有行
dG
6.从当前位置删除到行尾
d$
7.从当前位置复制到行尾
y$如果要粘贴到其他地方p就可以了


由于vi是建立在EX上的所以当键入:时就来到了EX命令状态
8.
:abstringstrings
例如":abusaUnitedStatesofAmerica",
当你在文见里插入usa时
UnitedStatesofAmerica就蹦出来了
9.
:mapkeysnew_seq
定义你当前键盘命令
10.
:set[all]
viorex的编辑状态
如显示每行:setnu
11.
在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,可刚复制的内容粘贴在光标处的
下面。

12.
单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S

13.

:%s/old_word/new_word/g
这个指令是于在整个文件中替换特定字符串

14.光标控制

k:上移nk上移n行
j:下移nj下移n行


将光标移到第n行,按下mk
将光标移到第m行,按下"ay'k
即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等

这样就可以将你常用的需要复用的内容粘贴到不同的寄存器中以备用


想粘贴到某处,直接将光标移到某地,按下‘ap即可,以此类推,b,c........寄存器等

在当前屏幕中
H跳到第一行
M跳到中间一行
L跳到最后一行

15.
表8-2删除命令
删除命令操作
dl删除当前字符(与x命令功能相同)
d0删除到某一行的开始位置
d^删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw删除到某个单词的结尾位置
d3w删除到第三个单词的结尾位置
db删除到某个单词的开始位置
dW删除到某个以空格作为分隔符的单词的结尾位置
dB删除到某个以空格作为分隔符的单词的开始位置
d7B删除到前面7个以空格作为分隔符的单词的开始位置
d)删除到某个语句的结尾位置
d4)删除到第四个语句的结尾位置
d(删除到某个语句的开始位置
d}删除到某个段落的结尾位置
d{删除到某个段落的开始位置
d7{删除到当前段落起始位置之前的第7个段落位置
dd删除当前行
d/text删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的
位置(但不包括该字样)之间的内容
dfc删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
dtc删除当前行直到下一个字符“c”所出现位置之间的内容
D删除到某一行的结尾
d$删除到某一行的结尾
5dd删除从当前行所开始的5行内容
dL删除直到屏幕上最后一行的内容
dH删除直到屏幕上第一行的内容
dG删除直到工作缓存区结尾的内容
d1G删除直到工作缓存区开始的内容

修改命令操作
cl更改当前字符
cw修改到某个单词的结尾位置
c3w修改到第三个单词的结尾位置
cb修改到某个单词的开始位置
cW修改到某个以空格作为分隔符的单词的结尾位置
cB修改到某个以空格作为分隔符的单词的开始位置
c7B修改到前面7个以空格作为分隔符的单词的开始位置
c0修改到某行的结尾位置
c)修改到某个语句的结尾位置
c4)修改到第四个语句的结尾位置
c(修改到某个语句的开始位置
c}修改到某个段落的结尾位置
c{修改到某个段落的开始位置
c7{修改到当前段落起始位置之前的第7个段落位置
ctc修改当前行直到下一个字符c所出现位置之间的内容
C修改到某一行的结尾
cc修改当前行
5cc修改从当前行所开始的5行内容


.重复上一次修改!


表8-4替换命令
替换命令操作
s将当前字符替换为一个或多个字符
S将当前行替换为一个或多个字符
5s将从当前字符开始的5个字符替换为一个或多个字符


vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串


16.

fx
往右移动到x字符上
Fx
往左移动到x字符上
tx
往右移动到x字符前
Tx
往左移动到x字符后
(注意:以上四个命令中,其中x是键入的字符)
&#59;
分号,配合f和t使用,重复一次
,
逗号,配合f和t使用,反方向重复一次



17.vi环境选项Solarisksh

noautoindentnomodelinesnoshowmode
autoprintnonumbernoslowopen
noautowritenonovicetabstop=8
nobeautifynooptimizetaglength=0
directory=/var/tmpparagraphs=IPLPPPQPPLIpplpipnpbtags=tags/usr/lib/tags
noedcompatibleprompttagstack
noerrorbellsnoreadonlyterm=vt100
noexrcredrawnoterse
flashremaptimeout
hardtabs=8report=5ttytype=vt100
noignorecasescroll=11warn
nolispsections=NHSHHHUuhsh+cwindow=23
nolistshell=/bin/kshwrapscan
magicshiftwidth=8wrapmargin=0
mesgnoshowmatchnowriteany


ForC-Shell:
setenvEXINIT"setnu"
ForBourneorKornShell:
EXINIT="setnu"&#59;exportEXINIT
ForKornShellOnly(alternatemethod):
typeset-xEXINIT="setnu"
在.profile里设置vi的环境选项,以上均测试过


18.标记文本

  mchar  用字母char标记当前光标的位置
  `char  移至char所标记处
  'char  移至char标记所在行的开头处
  "    移至当前行上一次所在位置(在光标移动之后)――一个双引号
  ''    移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号


19.
同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。
但是我发现一个BUG:在用CTRL-SHIFT-6切换到上一个文件后,用:args查看多文件vi状态时,
屏幕底部仍然显示目前vi的是刚才的文件。
(在HP-UX,Solaris,AIX上通过)

也可以使用:
:e#
进行切换

20.
sco下VI要在文本前同样的字符加用
%s/^/要加的内容/g要在文本后同样的字符加
%s/$/要加的内容/g

21.
如何去掉文本中的^M硬回车?不必用binary传回去再ascii传回来的方式,用shell或者unix语句实现。

catfilename|tr-d'/015'>;newfile
不同的unix系统还存在一些其他不同的命令,如:doscp
sed也可以实现这个功能.

dos2unixfilenamefilename2
反之
unix2dosfilenamefilename2

在vi中用:$s/^M//g
^是crtl-Vcrtl-M


22.如何在“unix命令行”下将一个文件的某字符串用另一个串换掉

sed's/string1/string2/gp'file1>;file2


23.将/etc/hosts下所有的地址都ping2次

1#/usr/bin/sh
2#grad/etc/hostsandpingeachaddress
3cat/etc/hosts|grep-v'^#'|whilereadLINE
4do
5ADDR=`awk'{print$1}'`
6forMACHINEin$ADDR
7do
8ping$MACHINE-n2
9done
10done
分享到:
评论

相关推荐

    vi命令全 vi 常用命令 unix vi 常用命令 vi 替换命令 unix vi 命令 vi 命令模式

    vi 常用命令 unix vi 常用命令 vi 替换命令 unix vi 命令 vi 命令模式 绝对的有用!

    unix下vi命令详解

    很受用 可以看看 主要详细介绍sco unix 下的vi的各种命令

    UNIX vi 命令

    此为UNIX vi 命令使用方法详解,请放心下载

    Unix vi命令大全

    文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

    windows下的unix

    直接在windows下使用unix的程序。直接安装使用!附带说明书。

    os.rar_linux 硬盘_unix 文件系统_模拟UNIX文件系统_简单 文件系统 实现_索引 文件系统

    在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的 模拟UNIX文件系统 。 [基本要求] 1.在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。 2.编写一管理程序对此空间进行管理,以...

    操作系统接口:兼容Unix/Linux命令接口

    目标:为Windows操作系统建立一个兼容Unix命令的命令接口,实现命令包括ls,cat,cp,mv,md,rd,cd,sort,more命令。 环境:使用CodeBlock开发(g++编译) 效果:尚未发现BUG 优点:代码可读性高、比较精简、错误处理...

    windows下的Unix/Linux命令大全

    非常值得收藏的windows下可用的Unix/Linux命令行工具

    unix命令及上传文件命令

    讲述了unix下的命令,以及ftp,ssh,telnet上传,tar,gzip文件压缩解压,修改权限等。

    SCO UNIX基本命令---VI命令

    SCO UNIX VI 基本命令,总结的一些UNIX中的VI命令

    UNIX目录及文件操作命令

    第一章 目录及文件操作命令 ls、pwd、cd、grep等 第二章 设备管理 stty、lp等 第三章 进程管理 sleep、ps、kill等 第四章 系统管理和用户管理 who、 whodo、passwd等 第五章 通信和邮件 mesg、 write、mailx等...

    unix系统常用命令总结文档

    unix常用命令集unix常unix常用命令集用命令集

    Unix文件系统命令

    该表格中是一些简单的Unix文件系统命令指令,可以帮助刚接触Linux的新人去学习这些指令,方便以后操作。

    Unix文件系统模拟实验报告

    这次实验是操作系统大型实验,要完成的任务是模拟unix操作系统中的文件系统功能。在终端界面上用户可以象unix的shell命令一样输入一些命令,如输入ls 显示文件目录,chmod改变文件权限,chown改变文件拥有者,chgrp...

    UNIX文件系统

    磁盘文件系统:建立基于磁盘存储设备的UNIX文件系统。(2-3人) 4分 首先分配一定容量的磁盘存储空间,作为文件存储空间; 建立相应的文件系统,使用UNIX文件系统,使用索引结点、混合分配方式、成组连接方法管理...

    windows下模拟unix文件系统

    在windows下模拟unix文件系统,如创建文件、创建目录、删除文件、删除目录、修改目录、打开目录等操作。

    unix命令全集

    unix命令全集unix命令全集unix命令全集

    UNIX系统命令操作入门.doc

    UNIX系统命令操作入门 Example : ls 列出目前目录下之文件名。 ls -a 列出所有文件名(包含以.起始的隐藏档)。 ls -t 依照文件最后修改时间之顺序,依序列出文件名。 ls -F 列出目前目录下之文件名及其...

    ubuntu/linux下实现自己的命令

    为Unix/Linux操作系统建立兼容的Windows/DOS命令接口,文件与目录命令; 具体命令:DIR(my_ls), RD(my_rd),CD,MD(my_md), DEL,MOVE(my_move),REN(my_ren),XCOPY, PROMPT,SORT(sort),TYPE(my_type),COPY(my_copy),...

Global site tag (gtag.js) - Google Analytics