ubuntu命令大全

ubuntu命令大全

ID:37013327

大小:142.50 KB

页数:45页

时间:2019-05-17

上传者:山楂树
ubuntu命令大全_第1页
ubuntu命令大全_第2页
ubuntu命令大全_第3页
ubuntu命令大全_第4页
ubuntu命令大全_第5页
资源描述:

《ubuntu命令大全》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

Ubuntu命令大全apt(软件管理)使用参考apt-cachesearchpackage搜索包apt-cacheshowpackage获取包的相关信息,如说明、大小、版本等sudoapt-getinstallpackage安装包sudoapt-getinstallpackage--reinstall重新安装包sudoapt-get-finstall强制安装sudoapt-getremovepackage删除包sudoapt-getremovepackage--purge删除包,包括删除配置文件等sudoapt-getupdate更新源sudoapt-getupgrade更新已安装的包sudoapt-getdist-upgrade升级系统sudoapt-getdselect-upgrade使用dselect升级apt-cachedependspackage了解使用依赖apt-cacherdependspackage了解某个具体的依赖sudoapt-getbuild-deppackage安装相关的编译环境apt-getsourcepackage下载该包的源代码sudoapt-getclean&&sudoapt-getautoclean清理下载文件的存档sudoapt-getcheck检查是否有损坏的依赖sudochmod+xGoogleEarthLinux.bin安装bin文件,GoogleEarthLinux是一个例子,记得要把文件COPY到你的文件夹/home/yourname(我的是doff)权限命令sudonautilus 以超级管理员权限管理文件夹(在终端输入这个命令和密码之后就会自动跳出文件夹,这时你可以有root的权限)注意命令的间隙,如果运行不了,请检查一下大小写和半全角。1文件管理#lsls-a列出当前目录下的所有文件,包括以.头的隐含文件文件管理#lsls-l或ll列出当前目录下文件的详细信息文件管理#pwdpwd查看当前所在目录的绝对路经文件管理#cdcd..回当前目录的上一级目录文件管理#cdcd-回上一次所在的目录文件管理#cdcd~或cd回当前用户的宿主目录文件管理#cdcd~用户名回指定用户的宿主目录2文件管理#mkdirmkdir目录名创建一个目录文件管理#mkdirmkdir–p递归式去创建一些嵌套目录文件管理#rmdirRmdir空目录名删除一个空目录3文件管理#rmrm文件名文件名删除一个文件或多个文件文件管理#rmrm-rf非空目录名递归删除一个非空目录下的一切,不让提式-f4文件管理#catcat文件名一屏查看文件内容5文件管理#moremore文件名分页查看文件内容6文件管理#lessless文件名可控分页查看文件内容7文件管理#grepgrep字符文件名根据字符匹配来查看文件部分内容8文件管理#mvmv路经/文件/经/文件移动相对路经下的文件到绝对路经下文件管理#mvmv文件名新名称在当前目录下改名9文件管理#cpcp/路经/文件./移动绝对路经下的文件到当前目录下 10文件管理#findfind路经-name“字符串”查找路经所在范围内满足字符串匹配的文件和目录11文件管理#lnln源文件链接名创建当前目录源文件的硬链接ln/home/test/usr/test1在/usr下建立/home/test的硬链接12文件管理#lnLn-sab创建当前目录下a的符号链接b13文件管理#touchtouchfile1file2创建两个空文件14磁盘管理#dfdf用于报告文件系统的总容量,使用量,剩余容量。15磁盘管理#dudu-b/home查看目前/HOME目录的容量(k)及子目录的容量(k)。16磁盘管理#fdiskfdisk-l查看系统分区信息17磁盘管理#fdiskfdisk/dev/sdb为一块新的SCSI硬盘进行分区18磁盘管理#mkfs.ext3Mkfs.ext3/dev/sdb1为第一块SCSI硬盘的第一主分区格式化成ext3的文件系统mkfs.ext2Mkfs.ext2/dev/sdb2格式化成ext2文件系统19磁盘管理#mountmount-t文件系统类型设备路经访问路经磁盘管理#文件系统类型ISO9660光驱文件系统vfatFat文件系统(windows)挂载光驱#mount–tiso9660/dev/cdrom/mnt/cdrom挂载FAT#mount–tvfat/dev/hda5/mnt/cdrom挂第一个ide的第五个逻辑分区17磁盘管理#Umount/mnt/cdrom卸载/mnt/cdrom为空18文件权限#chmodchmodu+sfile为file的属主加上特殊权限chmodg+rfile为file的属组加上读权限chmodo+wfile为file的其它用户加上写权限chmoda-xfile为file的所有用户减去执行权限chmod765file为file的属主设为完全权限,属组设成读写权,其它用户具有读和执心权限19文件权限#chownchownroot/home把/home的属主改成root用户20文件权限#chgrpchgrproot/home把/home的属组改成root组21打印管理#redhat-config-printer-tui进入安装打印机界面22打印管理#lplp–dhptrfile打印file到hptr的打印机上23打印管理#lpqLpq–P打印机名查看打印机的状态24打印管理#lprmLprm–P打印机名a删除打印机内的打印作业25打印管理#disableDisable–r“changingpaper”HPtr禁用打印机并提示原因26打印管理#enableEnableHPtr重新启用被禁用的27用户管理#useraddUseradd创建一个新的用户28用户管理#groupaddGroupadd组名创建一个新的组29用户管理#passwdPasswd用户名为用户创建密码30用户管理#Passwd-dPasswd-d用户名删除用户密码也能登陆31用户管理#Passwd-lPasswd-l用户名锁定账号密码32用户管理#Passwd-uPasswd-u用户名解锁账号密码33用户管理#Passwd-SPasswd-S用户名查询账号密码34用户管理#Usermod-lUsermod-l新用户名老用户名为用户改名35用户管理#Usermod-LUsermod-L要锁定用户名锁定用户登陆36用户管理#Usermod-UUsermod–U解锁用户名解锁用户登陆37用户管理#Usermod-uUsermod–u501用户名改变用户UID38用户管理#UserdelUserdel–r用户名删除用户一切39用户管理#Groupmod-nGroupmod–n新用户名老用户名为组改名40用户管理#Groupmod-gGroupmod–g501组名改变组GID41用户管理#groupdelGroupdel组名先应删它的用户删除组42用户管理#gpasswd-agpasswd-a用户名组名增加用户到组43用户管理#Idid用户名查用户信息44软件管理#rpm-qarpm–qa|less查询已安装RPM45软件管理#rpm–qa|grepftp查询指定RPM46软件管理#rpm-qrpm-q已安装的RPM包查是否安装47软件管理#rpm-qtelnet-server查看telnet服务器包 48软件管理#rpm-qirpm–qi软件包名称查看软件的描述信息49软件管理#rpm-qlrpm–ql软件包名称查询软件包的文件列表50软件管理#rpm-qfrpm–qf软件包名称查询某个文件所属的软件包51软件管理#rpm-qprpm–qp软件包全名查询未安装的软件包信息52软件管理#rpm-erpm–e软件包名称删除具体的软件包53软件管理#rpm-Urpm–Uvh软件包全名升级软件包并显示过程54软件管理#rpm-ivhrpm–ivh软件包全名安装软件包并显示过程55软件管理#rpm-Vrpm–V软件包名称验证软件包的大小,类型等56软件管理#tar-c创建包–x释放包-v显示命令过程–z代表压缩包57软件管理#tar-cftar–cvfbenet.tar/home/benet把/home/benet目录打包58软件管理#tar-czftar–zcvfbenet.tar.gz/mnt把目录打包并压缩59软件管理#tar–tftar–tfbenet.tar看非压缩包的文件列表60软件管理#tar–tzftar–tfbenet.tar.gz看压缩包的文件列表61软件管理#tar–xftar–xfbenet.tar非压缩包的文件恢复62软件管理#tar–zxvftar–zxvfbenet.tar.gz压缩包的文件解压恢复63软件管理#tar-jxvftar–jxvfbenet.tar.bz264软件管理#diffdifffile1file2>补丁名.patch为新旧文件生成补丁文件65软件管理#diffdifffile1file2比较两个文件的区别66软件管理#PatchPatchfile补丁名.patch打补丁67软件管理#./configure--prefix=/usr/local/编译前配置68软件管理#make编译69软件管理#makeinstall安装编译好的源码包70启动管理#rebootInit6重启LINUX系统71启动管理#HaltInit0Shutdown–hnow关闭LINUX系统72启动管理#runlevel显示系统运行级73启动管理#Init[0123456]改变系统运行级,7种74启动管理#Chkconfig–-list[服务名称]查看服务的状态75启动管理#Chkconfig–-level<运行级><服务名>on|off|set设置服务的启动状态76启动管理#Chkconfig<服务名>on|off|set设置非独立服务启状态77进程管理#Top动态Ps-aux静态进程树pstree查看系统进程78进程管理#程序名&后台运行程序79进程管理#fg把后台运行的进程调回前台80进程管理#bg把前台运行进程调到后台81进程管理#reniceRenice+1180把180号进程的优先级加182进程管理#killKillPID终止某个PID进程83进程管理#atat5pm+3days/bin/ls指定三天后下午5:00执行/bin/ls84进程管理#crontabCrontab-e用VI的形式来编辑自动周期性任务85进程管理#crontabCrontab-l查看自动周期性任务86进程管理#crontabCrontab-r删除自动周期性任务87进程管理#crondServicecrond马上启动自动周期性服务Servicecrond<启动|停止|重启|状态>实现磁盘配额(注安装LINUX时建立/home分区)目标:对用户zhao在/home目录上实现softlimit为5k,hardlimit为10k的磁盘配额实现步骤:1.修改包含/home的行,#vi/etc/fstab,改为:defaults,usrquota。也就是增加usrquota项。然后保存退出。2、卸载/home目录#umount/home3.挂接/home目录#mount/home4、增加用户zhao#useraddzhao5、修改密码#passwdzhao6、生成关于/home目录的quota信息#quotacheck-cmug/home#quotacheck-vu/home7、查看所有用户的信息#repquota-au 8、设置配额#edquota-uzhao将soft和hard分别改为5和109、保存并退出#wq!10、修改时间#edquota-t11、#wq!12.开启/home上的磁盘配额功能#quotaon/home13.查询配额#quota-uzhao14.验证配额#su-zhao$touchmyfile以上来自:http://zweitian.blog.51cto.com/59324/48823感谢原作者!基本软件安装安装/卸载软件(假设软件源里已经有此软件)sudoapt-getinstall/removexxx(同时只可以进行一个安装或者其他的安装/卸载操作)查看软件xxx(软件名)安装内容dpkg-Lxxx查找软件apt-cachesearch正则表达式查找文件属于哪个包dpkg-Sfilenameapt-filesearchfilename查询软件xxx依赖哪些包apt-cachedependsxxx查询软件xxx被哪些包依赖apt-cacherdependsxxx增加一个光盘源sudoapt-cdromadd软件源更新1、更新前先备份原文件sudocp/etc/apt/sources.list/etc/apt/sources.list_backup2、然后编辑更新源配置文件sudogedit/etc/apt/sources.list至于软件源可Google一下,很多,建议事先ping一下,选择最快的,否则很费时间。系统升级sudoapt-getupdatesudoapt-getupgrade    (更新软件源之后记得更新一下系统的软件包列表,可使用此命令或者下一个)sudoapt-getdist-upgrade清除所以删除包的残余配置文件dpkg-l|grep^rc|awk'{print$2}'|tr[" "][""]|sudoxargsdpkg-P-编译时缺少h文件的自动处理sudoauto-aptrun./configure查看安装软件时下载包的临时存放目录ls/var/cache/apt/archives备份当前系统安装的所有包的列表dpkg--get-selections|grep-vdeinstall>~/somefile从上面备份的安装包的列表文件恢复所有包dpkg--set-selections<~/somefilesudodselect清理旧版本的软件缓存sudoapt-getautoclean清理所有软件缓存 sudoapt-getclean删除系统不再使用的孤立软件sudoapt-getautoremove系统查看内核uname-a查看Ubuntu版本cat/etc/issue查看内核加载的模块lsmod查看PCI设备lspci查看USB设备lsusb查看网卡状态sudoethtooleth0查看CPU信息cat/proc/cpuinfo显示当前硬件信息lshw硬盘查看硬盘的分区sudofdisk-l查看IDE硬盘信息sudohdparm-i/dev/hda查看STAT硬盘信息sudohdparm-I/dev/sda或sudoapt-getinstallblktoolsudoblktool/dev/sdaid查看硬盘剩余空间df-hdf-H查看目录占用空间du-hs目录名优盘没法卸载syncfuser-km/media/usbdisk内存查看当前的内存使用情况free-m进程查看当前有哪些进程ps-A中止一个进程kill进程号(就是ps-A中的第一列的数字)或者killall进程名强制中止一个进程(在上面进程中止不成功的时候使用)kill-9进程号或者killall-9进程名图形方式中止一个程序xkill出现骷髅标志的鼠标,点击需要中止的程序即可查看当前进程的实时状况top查看进程打开的文件lsof-pADSL配置ADSLsudopppoeconf ADSL手工拨号sudopondsl-provider激活ADSLsudo/etc/ppp/pppoe_on_boot断开ADSLsudopoff查看拨号日志sudoplog网络设置IPsudogedit/etc/network/interfaces重启网卡sudo/etc/init.d/networkingrestart根据IP查网卡地址arpingIP地址查看当前IP地址ifconfigeth0|awk'/inet/{split($2,x,":");printx[2]}'查看当前外网的IP地址w3m-no-cookie-dumpwww.ip138.com|grep-o'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'w3m-no-cookie-dumpwww.123cha.com|grep-o'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'w3m-no-cookie-dumpip.loveroot.com|grep-o'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'查看当前监听80端口的程序lsof-i:80查看当前网卡的物理地址arp-a|awk'{print$4}'ifconfigeth0|head-1|awk'{print$5}'立即让网络支持natsudoecho1>/proc/sys/net/ipv4/ip_forwardsudoiptables-tnat-IPOSTROUTING-jMASQUERADE查看路由信息netstat-rnsudoroute-n手工增加删除一条路由sudorouteadd-net192.168.0.0netmask255.255.255.0gw172.16.0.1sudoroutedel-net192.168.0.0netmask255.255.255.0gw172.16.0.1修改网卡MAC地址的方法sudoifconfigeth0down#关闭网卡sudoifconfigeth0hwether00:AA:BB:CC:DD:EE#然后改地址sudoifconfigeth0up#然后启动网卡统计当前IP连接的个数netstat-na|grepESTABLISHED|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-r-nnetstat-na|grepSYN|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-r-n统计当前20000个IP包中大于100个IP包的IP地址tcpdump-tnn-c20000-ieth0|awk-F"."'{print$1"."$2"."$3"."$4}'|sort|uniq-c|sort-nr|awk'$1>100'屏蔽IPV6echo"blacklistipv6"|sudotee/etc/modprobe.d/blacklist-ipv6服务添加一个服务sudoupdate-rc.d服务名defaults99删除一个服务 sudoupdate-rc.d服务名remove临时重启一个服务/etc/init.d/服务名restart临时关闭一个服务/etc/init.d/服务名stop临时启动一个服务/etc/init.d/服务名start设置配置默认Java使用哪个sudoupdate-alternatives--configjava修改用户资料sudochfnuserid给apt设置代理exporthttp_proxy=http://xx.xx.xx.xx:xxx修改系统登录信息sudovim/etc/motd中文转换文件名由GBK为UTF8sudoapt-getinstallconvmvconvmv-r-fcp936-tutf8--notest--nosmart*批量转换src目录下的所有文件内容由GBK到UTF8findsrc-typed-execmkdir-putf8/{};findsrc-typef-execiconv-fGBK-tUTF-8{}-outf8/{};mvutf8/*srcrm-frutf8转换文件内容由GBK到UTF8iconv-fgbk-tutf8$i>newfile转换mp3标签编码sudoapt-getinstallpython-mutagenfind.-iname“*.mp3”-execdirmid3iconv-eGBK{};控制台下显示中文sudoapt-getinstallzhcon使用时,输入zhcon即可文件快速查找某个文件whereisfilenamefind目录-name文件名查看文件类型filefilename显示xxx文件倒数6行的内容tail-n6xxx让tail不停地读地最新的内容tail-n10-f/var/log/apache2/access.log查看文件中间的第五行(含)到第10行(含)的内容sed-n'5,10p'/var/log/apache2/access.log查找包含xxx字符串的文件grep-l-rxxx.查找关于xxx的命令aproposxxxman-kxxx通过ssh传输文件scp-rp/path/filenameusername@remoteIP:/path#将本地文件拷贝到服务器上scp-rpusername@remoteIP:/path/filename/path#将远程文件从服务器下载到本地查看某个文件被哪些应用程序读写lsof文件名把所有文件的后辍由rm改为rmvbrename's/.rm$/.rmvb/'*把所有文件名中的大写改为小写 rename'tr/A-Z/a-z/'*删除特殊文件名的文件,如文件名:--help.txtrm----help.txt或者rm./--help.txt查看当前目录的子目录ls-d*/.或echo*/.将当前目录下最近30天访问过的文件移动到上级back目录find.-typef-atime-30-execmv{}../back;将当前目录下最近2小时到8小时之内的文件显示出来find.-mmin+120-mmin-480-execmore{};删除修改时间在30天之前的所有文件find.-typef-mtime+30-mtime-3600-execrm{};查找guest用户的以avi或者rm结尾的文件并删除掉find.-name'*.avi'-o-name'*.rm'-user'guest'-execrm{};查找的不以java和xml结尾,并7天没有使用的文件删除掉find.!-name*.java!-name‘*.xml’-atime+7-execrm{};统计当前文件个数ls/usr/bin|wc-w统计当前目录个数ls-l/usr/bin|grep^d|wc-l显示当前目录下2006-01-01的文件名ls-l|grep2006-01-01|awk'{print$8}'压缩解压缩xxx.tar.gztar-zxvfxxx.tar.gz解压缩xxx.tar.bz2tar-jxvfxxx.tar.bz2压缩aaabbb目录为xxx.tar.gztar-zcvfxxx.tar.gzaaabbb压缩aaabbb目录为xxx.tar.bz2tar-jcvfxxx.tar.bz2aaabbbNautilus显示隐藏文件Ctrl+h显示地址栏Ctrl+l特殊URI地址*computer:///-全部挂载的设备和网络*network:///-浏览可用的网络*burn:///-一个刻录CDs/DVDs的数据虚拟目录*smb:///-可用的windows/samba网络资源*x-nautilus-desktop:///-桌面项目和图标*file:///-本地文件*trash:///-本地回收站目录*ftp://-FTP文件夹*ssh://-SSH文件夹*fonts:///-字体文件夹,可将字体文件拖到此处以完成安装*themes:///-系统主题文件夹查看已安装字体在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts程序详细显示程序的运行信息strace-f-F-ooutfile日期和时间设置日期#date-smm/dd/yy设置时间#date-sHH:MM将时间写入CMOShwclock--systohc 读取CMOS时间hwclock--hctosys从服务器上同步时间sudontpdatetime.nist.govsudontpdatetime.windows.com控制台不同控制台间切换Ctrl+ALT+←Ctrl+ALT+→指定控制台切换Ctrl+ALT+Fn(n:1~7)控制台下滚屏SHIFT+pageUp/pageDown控制台抓图setterm-dumpn(n:1~7)数据库mysql的数据库存放在地方/var/lib/mysql从mysql中导出和导入数据mysqldump数据库名>文件名#导出数据库mysqladmincreate数据库名#建立数据库mysql数据库名<文件名#导入数据库忘了mysql的root口令怎么办sudo/etc/init.d/mysqlstopsudomysqld_safe--skip-grant-tables&sudomysqladmin-uuserpassword'newpassword''sudomysqladminflush-privileges修改mysql的root口令sudomysqladmin-uroot-ppassword'你的新密码'其它(这部分内容像我这样的新手基本很少用到,是偶在网上搜的)下载网站文档wget-r-p-np-khttp://www.21cn.com·-r:在本机建立服务器端目录结构;·-p:下载显示HTML文件的所有图片;·-np:只下载目标站点指定目录及其子目录的内容;·-k:转换非相对链接为相对链接。如何删除Totem电影播放机的播放历史记录rm~/.recently-used如何更换gnome程序的快捷键点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效;如果要清除该快捷键,请使用backspacevim如何显示彩色字符sudocp/usr/share/vim/vimcurrent/vimrc_example.vim/usr/share/vim/vimrc如何在命令行删除在会话设置的启动程序cd~/.config/autostartrm需要删除启动程序如何提高wine的反应速度sudosed-ie'/GBK/,/^}/d'/usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALEchgrp[语法]:chgrp[-R]文件组文件...[说明]:文件的GID表示文件的文件组,文件组可用数字表示,也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。-R递归地改变所有子目录下所有文件的存取模式[例子]:chgrpgroupfile将文件file的文件组改为groupchmod[语法]:chmod[-R]模式文件... 或chmod[ugoa]{+|-|=}[rwxst]文件...[说明]:改变文件的存取模式,存取模式可表示为数字或符号串,例如:chmodnnnnfile,n为0-7的数字,意义如下:4000运行时可改变UID2000运行时可改变GID1000置粘着位0400文件主可读0200文件主可写0100文件主可执行0040同组用户可读0020同组用户可写0010同组用户可执行0004其他用户可读0002其他用户可写0001其他用户可执行nnnn就是上列数字相加得到的,例如chmod0777file是指将文件file存取权限置为所有用户可读可写可执行。-R递归地改变所有子目录下所有文件的存取模式u文件主g同组用户o其他用户a所有用户+增加后列权限-取消后列权限=置成后列权限r可读w可写x可执行s运行时可置UIDt运行时可置GID[例子]:chmod0666file1file2将文件file1及file2置为所有用户可读可写chmodu+xfile对文件file增加文件主可执行权限chmodo-rwx对文件file取消其他用户的所有权限chown[语法]:chown[-R]文件主文件...[说明]:文件的UID表示文件的文件主,文件主可用数字表示,也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。-R递归地改变所有子目录下所有文件的存取模式[例子]:chownmaryfile将文件file的文件主改为marychown150file将文件file的UID改为150Ubuntu常用命令与技巧sudoapt-getinstall软件名安装软件命令sudonautilus打开文件(有root权限)suroot切换到“root”ls列出当前目录文件(不包括隐含文件)ls-a列出当前目录文件(包括隐含文件)ls-l列出当前目录下文件的详细信息 cd..回当前目录的上一级目录cd-回上一次所在的目录cd~或cd回当前用户的宿主目录mkdir目录名创建一个目录rmdir空目录名删除一个空目录rm文件名文件名删除一个文件或多个文件rm-rf非空目录名删除一个非空目录下的一切mv路经/文件/经/文件移动相对路经下的文件到绝对路经下mv文件名新名称在当前目录下改名find路经-name“字符串”查找路经所在范围内满足字符串匹配的文件和目录fdiskfdisk-l查看系统分区信息fdiskfdisk/dev/sdb为一块新的SCSI硬盘进行分区chownchownroot/home把/home的属主改成root用户chgrpchgrproot/home把/home的属组改成root组Useradd创建一个新的用户Groupadd组名创建一个新的组Passwd用户名为用户创建密码Passwd-d用户名删除用户密码也能登陆Passwd-S用户名查询账号密码Usermod-l新用户名老用户名为用户改名Userdel–r用户名删除用户一切tar-c创建包–x释放包-v显示命令过程–z代表压缩包tar–cvfbenet.tar/home/benet把/home/benet目录打包tar–zcvfbenet.tar.gz/mnt把目录打包并压缩tar–zxvfbenet.tar.gz压缩包的文件解压恢复tar–jxvfbenet.tar.bz2解压缩make编译makeinstall安装编译好的源码包rebootInit6重启LINUX系统HaltInit0Shutdown–hnow关闭LINUX系统uname-a查看内核版本cat/etc/issue查看ubuntu版本lsusb查看usb设备sudoethtooleth0查看网卡状态cat/proc/cpuinfo查看cpu信息lshw查看当前硬件信息sudofdisk-l查看磁盘信息df-h查看硬盘剩余空间free-m查看当前的内存使用情况ps-A查看当前有哪些进程kill进程号(就是ps-A中的第一列的数字)或者killall进程名(杀死一个进程)kill-9进程号强制杀死一个进程常用apt命令:apt-cachesearchpackage搜索包 apt-cacheshowpackage获取包的相关信息,如说明、大小、版本等sudoapt-getinstallpackage安装包sudoapt-getinstallpackage--reinstall重新安装包sudoapt-get-finstall修复安装”-f=–fix-missing”sudoapt-getremovepackage删除包sudoapt-getremovepackage--purge删除包,包括删除配置文件等sudoapt-getupdate更新源sudoapt-getupgrade更新已安装的包sudoapt-getdist-upgrade升级系统sudoapt-getdselect-upgrade使用dselect升级apt-cachedependspackage了解使用依赖apt-cacherdependspackage是查看该包被哪些包依赖sudoapt-getbuild-deppackage安装相关的编译环境apt-getsourcepackage下载该包的源代码sudoapt-getclean&&sudoapt-getautoclean清理无用的包sudoapt-getcheck检查是否有损坏的依赖清理所有软件缓存(即缓存在/var/cache/apt/archives目录里的deb包)sudoapt-getclean删除系统不再使用的孤立软件sudoapt-getautoremove1.打开超级用户权限的运行程序对话框你也许已经知道用Alt+F2来打开”运行程序”对话框,然后可以输入任何命令行运行之。如果你在终端窗口中输入gksu命令,则会弹出一个类似的对话框,但是运行的程序都是在root级权限。你可以通过System->Preferences->KeyboardShortcuts,,将这个命令与键盘快捷键(如Shift+Alt+F2)绑定,可以更加方便的使用这一功能。2.使用GDebi来安装包笔者很长一段时间都没注意到GDebi这个程序,这是一个用于安装你自己手动下载的包的GUI程序。它会根据软件仓库这一实用的特性,来解算依赖关系。很多人也许和笔者一样,用传统的dpkg命令来实现。有一天笔者发现,GDebi也可以命令行模式运行(sudogdebipackage.deb),其功能和GUI模式下完全一样。尝试一下这个命令,也许你再也不想用dpkg–i了。3.CD命令技巧笔者确信甚至很多命令行专家也会偶尔发现一些自己以前没意识到的技巧。最近笔者发现了两个以前被忽略的CD命令的技巧,输入cd命令而不带任何参数,可以直接切换到/home目录(等效于cd~),输入cd–则可以切换到你浏览的上一个目录。4.使用PUSHD将目录添加到目录栈首先来说明一下目录栈是什么,很简单,就是bash存储的一个目录列表。当前浏览的目录总是在列表的顶端,但如果你不通过PUSHD往其中添加目录,这个列表则是空的。举例说明,使用pushd/usr/bin命令会添加/usr/bin目录到列表,同时会切换到这个目录(加上-n参数可以停留在当前目录不跳转)。使用popd则会删除最顶端的目录,然后跳转到列表中的下一个目录。尝试一下这个命令,当你在管理系统时需要在不同目录之间跳转时或者容易忘记重要东西的位置时,它可能会相当有用。5.使用PKILL快速杀掉进程 笔者经常使用top、kill或killall进程加上ps|aux查找进程号/进程名来杀掉进程。但是pkill命令则可去掉大量的工作,pkillfirefox就可以杀掉进程列表中所有与firefox符合的incheng。Pstree也是一个很酷的命令,它会根据所有关系以家庭树的方式显示所有进程。6.使用Gnome中心自定义Gnome对于那些难于放弃窗口界面,希望能获得类似控制面板界面体验的用户,可以考虑使用gnome-control-center来实现系统配置。在桌面上添加快捷方式,可以使新手获得类似Windows的体验,避免迷失在复杂的系统菜单中。7.加速OpenOffice.org的启动如果你经常使用OpenOffice.org,你可能会被它漫长的启动时间所囧到。要解决这个问题,打开会话程序(在Jaunty中被称为启动项管理,反正你总能在System->Preferences->StartupApplications中找到),然后新增一项。在命令行中输入openoffice-nodefault–nologo,重启后,OpenOffice会在Gnome桌面启动的时候缓存,再次启动任何OpenOffice程序时就会很快完成。8.快速清理磁盘垃圾磁盘空间又不够用了?尝试在终端窗口中输入sudoapt-getautoremove然后输入sudoapt-getclean,前一个命令会卸载系统中所有未被使用的依赖关系,后一个命令会清除所有缓存的包文件,两者都是无害的。在一个升级过多次的系统上,你也许能通过这个方法清理出若干GB的空间。9.找出丢失的文件扩展名如果你收到一个没有扩展名的email附件,不知道是什么类型时(苹果用户经常把文件扩展名忽略),试一下file命令,直接加上文件名。同时也可以试一下strings命令,会显示出二进制文件中任何可显示的字符串,文件的类型通常就会在前面几行,所以用管道把这个命令和head连接起来是个好办法。10.不要忘了这些手册页面看一下这些有趣的但是不是广为人知的手册页面:intro初学者的命令行指导;hier文件系统的介绍;built-ins各种没有自带说明的命令的迷你手册。Ubuntu技巧与常用命令安装查看软件xxx安装内容dpkg-Lxxx查找软件apt-cachesearch正则表达式查找文件属于哪个包dpkg-Sfilenameapt-filesearchfilename查询软件xxx依赖哪些包apt-cachedependsxxx查询软件xxx被哪些包依赖apt-cacherdependsxxx增加一个光盘源sudoapt-cdromadd系统升级sudoapt-get updatesudoapt-getupgradesudoapt-getdist-upgrade清除所以删除包的残余配置文件dpkg-l|grep^rc|awk'{print$2}'|tr[" "][""]|sudoxargsdpkg-P-编译时缺少h文件的自动处理sudoauto-aptrun./configure查看安装软件时下载包的临时存放目录ls/var/cache/apt/archives备份当前系统安装的所有包的列表dpkg--get-selections|grep-vdeinstall>~/somefile从上面备份的安装包的列表文件恢复所有包dpkg--set-selections<~/somefilesudodselect清理旧版本的软件缓存sudoapt-getautoclean清理所有软件缓存sudoapt-getclean删除系统不再使用的孤立软件sudoapt-getautoremove查看包在服务器上面的地址apt-get-qq--print-urisinstallssh|cut-d'-f2 安装rpmsudoapt-getinstallaliensudoalienXXX.rpmsudodpkg-iXXX.deb Ubuntu软件安装与删除相关命令安装软件命令:apt-getinstallsoftname1softname2softname3……卸载软件命令:apt-getremovesoftname1softname2softname3……卸载并清除配置命令:apt-getremove--purgesoftname1更新软件信息数据库命令:apt-getupdate进行系统升级命令:apt-getupgrade搜索软件包命令:apt-cachesearchsoftname1softname2softname3……Deb软件包相关安装与卸载 安装deb软件包命令:dpkg-ixxx.deb删除软件包命令:dpkg-rxxx.deb连同配置文件一起删除命令:dpkg-r--purgexxx.deb查看软件包信息命令:dpkg-infoxxx.deb查看文件拷贝详情命令:dpkg-Lxxx.deb查看系统中已安装软件包信息命令:dpkg-l重新配置软件包命令:dpkg-reconfigurexxx系统查看内核uname-a查看Ubuntu版本cat/etc/issue查看内核加载的模块lsmod查看PCI设备lspci查看USB设备lsusb查看网卡状态sudoethtooleth0查看CPU信息cat/proc/cpuinfo显示当前硬件信息lshw硬盘查看硬盘的分区sudofdisk-l查看IDE硬盘信息sudohdparm-i /dev/hda查看STAT硬盘信息sudohdparm-I/dev/sda或sudoapt-getinstallblktoolsudoblktool/dev/sdaid查看硬盘剩余空间df-hdf-H查看目录占用空间du-hs目录名优盘没法卸载syncfuser-km/media/usbdisk内存查看当前的内存使用情况free-m进程查看当前有哪些进程ps-A中止一个进程kill进程号(就是ps-A中的第一列的数字)     或者killall进程名强制中止一个进程(在上面进程中止不成功的时候使用)kill-9进程号或者killall-9进程名图形方式中止一个程序xkill出现骷髅标志的鼠标,点击需要中止的程序即可查看当前进程的实时状况top查看进程打开的文件lsof-pADSL配置ADSLsudopppoeconfADSL手工拨号sudopon dsl-provider激活ADSLsudo/etc/ppp/pppoe_on_boot断开ADSLsudopoff查看拨号日志sudoplog如何设置动态域名#首先去http://www.3322.org申请一个动态域名#然后修改/etc/ppp/ip-up增加拨号时更新域名指令sudovim/etc/ppp/ip-up#在最后增加如下行w3m-no-cookie-dump'http://username:password@members.3322.org/dyndns/update?system=dyndns&hostname=yourdns.3322.org'网络根据IP查网卡地址arpingIP地址查看当前IP地址ifconfigeth0|awk'/inet/{split($2,x,":");printx[2]}'查看当前外网的IP地址w3m-no-cookie-dumpwww.ip138.com|grep-o'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'w3m-no-cookie-dumpwww.123cha.com|grep-o'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'w3m-no-cookie-dumpip.loveroot.com|grep-o'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'查看当前监听80端口的程序lsof-i:80查看当前网卡的物理地址arp-a|awk'{print$4}'ifconfigeth0|head-1|awk'{print$5}'立即让网络支持natsudoecho1>/proc/sys/net/ipv4/ip_forwardsudoiptables-tnat-IPOSTROUTING-jMASQUERADE查看路由信息netstat-rnsudoroute-n手工增加删除一条路由sudorouteadd-net192.168.0.0netmask255.255.255.0gw 172.16.0.1sudoroutedel-net192.168.0.0netmask255.255.255.0gw172.16.0.1修改网卡MAC地址的方法sudoifconfigeth0down#关闭网卡sudoifconfigeth0hwether00:AA:BB:CC:DD:EE#然后改地址sudoifconfigeth0up#然后启动网卡统计当前IP连接的个数netstat-na|grepESTABLISHED|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-r-nnetstat-na|grepSYN|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-r-n统计当前20000个IP包中大于100个IP包的IP地址tcpdump-tnn-c20000-ieth0|awk-F"."'{print$1"."$2"."$3"."$4}'|sort|uniq-c|sort-nr|awk'$1>100'屏蔽IPV6echo"blacklistipv6"|sudotee/etc/modprobe.d/blacklist-ipv6服务添加一个服务sudoupdate-rc.d服务名defaults99删除一个服务sudoupdate-rc.d服务名remove临时重启一个服务/etc/init.d/服务名restart临时关闭一个服务/etc/init.d/服务名stop临时启动一个服务/etc/init.d/服务名start设置配置默认Java使用哪个sudoupdate-alternatives--configjava修改用户资料sudochfnuserid给apt设置代理exporthttp_proxy=http://xx.xx.xx.xx:xxx修改系统登录信息sudovim/etc/motd 中文转换文件名由GBK为UTF8sudoapt-getinstallconvmvconvmv-r-fcp936-tutf8--notest--nosmart*批量转换src目录下的所有文件内容由GBK到UTF8findsrc-typed-execmkdir-putf8/{};findsrc-typef-execiconv-fGBK-tUTF-8{}-outf8/{};mvutf8/*srcrm-frutf8转换文件内容由GBK到UTF8iconv-fgbk-tutf8$i>newfile转换mp3标签编码sudoapt-getinstallpython-mutagenfind.-iname“*.mp3”-execdirmid3iconv-eGBK{};控制台下显示中文sudoapt-getinstallzhcon使用时,输入zhcon即可文件快速查找某个文件whereisfilenamefind目录-name文件名查看文件类型filefilename显示xxx文件倒数6行的内容tail-n6xxx让tail不停地读地最新的内容tail-n10-f/var/log/apache2/access.log查看文件中间的第五行(含)到第10行(含)的内容sed-n'5,10p'/var/log/apache2/access.log查找包含xxx字符串的文件grep-l-rxxx.查找关于xxx的命令aproposxxxman-kxxx通过ssh传输文件scp-rp/path/filenameusername@remoteIP:/path#将本地文件拷贝到服务器上scp-rpusername@remoteIP:/path/filename/path #将远程文件从服务器下载到本地查看某个文件被哪些应用程序读写lsof文件名把所有文件的后辍由rm改为rmvbrename's/.rm$/.rmvb/'*把所有文件名中的大写改为小写rename'tr/A-Z/a-z/'*删除特殊文件名的文件,如文件名:--help.txtrm----help.txt或者rm./--help.txt查看当前目录的子目录ls-d*/.或echo*/.将当前目录下最近30天访问过的文件移动到上级back目录find.-typef-atime-30-execmv{}../back;将当前目录下最近2小时到8小时之内的文件显示出来find.-mmin+120-mmin-480-execmore{};删除修改时间在30天之前的所有文件find.-typef-mtime+30-mtime-3600-execrm{};查找guest用户的以avi或者rm结尾的文件并删除掉find.-name'*.avi'-o-name'*.rm'-user'guest'-execrm{};查找的不以java和xml结尾,并7天没有使用的文件删除掉find.!-name*.java!-name‘*.xml’-atime+7-execrm{};统计当前文件个数ls/usr/bin|wc-w统计当前目录个数ls-l/usr/bin|grep^d|wc-l显示当前目录下2006-01-01的文件名ls-l|grep2006-01-01|awk'{print$8}'压缩解压缩xxx.tar.gztar-zxvfxxx.tar.gz解压缩xxx.tar.bz2tar-jxvfxxx.tar.bz2压缩aaabbb目录为xxx.tar.gztar-zcvfxxx.tar.gzaaabbb压缩aaabbb目录为xxx.tar.bz2tar-jcvfxxx.tar.bz2aaabbb Nautilus显示隐藏文件Ctrl+h显示地址栏Ctrl+l特殊URI地址*computer:///-全部挂载的设备和网络*network:///-浏览可用的网络*burn:///-一个刻录CDs/DVDs的数据虚拟目录*smb:///-可用的windows/samba网络资源*x-nautilus-desktop:///-桌面项目和图标*file:///-本地文件*trash:///-本地回收站目录*ftp://-FTP文件夹*ssh://-SSH文件夹*fonts:///-字体文件夹,可将字体文件拖到此处以完成安装*themes:///-系统主题文件夹查看已安装字体在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts程序详细显示程序的运行信息strace-f-F-ooutfile日期和时间设置日期#date-smm/dd/yy设置时间#date-sHH:MM将时间写入CMOShwclock--systohc读取CMOS时间hwclock--hctosys从服务器上同步时间sudontpdatetime.nist.govsudontpdatetime.windows.com 控制台不同控制台间切换Ctrl+ALT+←Ctrl+ALT+→指定控制台切换Ctrl+ALT+Fn(n:1~7)控制台下滚屏SHIFT+pageUp/pageDown控制台抓图setterm-dumpn(n:1~7)数据库mysql的数据库存放在地方/var/lib/mysql从mysql中导出和导入数据mysqldump数据库名>文件名#导出数据库mysqladmincreate数据库名#建立数据库mysql数据库名<文件名#导入数据库忘了mysql的root口令怎么办sudo/etc/init.d/mysqlstopsudomysqld_safe--skip-grant-tables&sudomysqladmin-uuserpassword'newpassword''sudomysqladminflush-privileges修改mysql的root口令sudomysqladmin-uroot-ppassword'你的新密码'其它下载网站文档wget-r-p-np-khttp://www.21cn.com·-r:在本机建立服务器端目录结构;·-p:下载显示HTML文件的所有图片;·-np:只下载目标站点指定目录及其子目录的内容;·-k:转换非相对链接为相对链接。如何删除Totem电影播放机的播放历史记录rm~/.recently-used如何更换gnome程序的快捷键点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效;如果要清除该快捷键,请使用backspacevim如何显示彩色字符sudocp/usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc如何在命令行删除在会话设置的启动程序cd~/.config/autostartrm需要删除启动程序如何提高wine的反应速度sudosed-ie'/GBK/,/^}/d'/usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALEsudoapt-getinstall软件名安装软件命令sudonautilus打开文件(有root权限)suroot切换到“root”ls列出当前目录文件(不包括隐含文件)ls-a列出当前目录文件(包括隐含文件)ls-l列出当前目录下文件的详细信息cd..回当前目录的上一级目录cd-回上一次所在的目录cd~或cd回当前用户的宿主目录mkdir目录名创建一个目录rmdir空目录名删除一个空目录rm文件名文件名删除一个文件或多个文件rm-rf非空目录名删除一个非空目录下的一切mv路经/文件/经/文件移动相对路经下的文件到绝对路经下mv文件名新名称在当前目录下改名find路经-name“字符串”查找路经所在范围内满足字符串匹配的文件和目录fdiskfdisk-l查看系统分区信息fdiskfdisk/dev/sdb为一块新的SCSI硬盘进行分区chownchownroot/home把/home的属主改成root用户chgrpchgrproot/home把/home的属组改成root组Useradd创建一个新的用户Groupadd组名创建一个新的组Passwd用户名为用户创建密码Passwd-d用户名删除用户密码也能登陆Passwd-S用户名查询账号密码Usermod-l新用户名老用户名为用户改名Userdel–r用户名删除用户一切tar-c创建包–x释放包-v显示命令过程–z代表压缩包tar–cvfbenet.tar/home/benet把/home/benet目录打包tar–zcvfbenet.tar.gz/mnt把目录打包并压缩tar–zxvfbenet.tar.gz压缩包的文件解压恢复tar–jxvfbenet.tar.bz2解压缩make编译makeinstall安装编译好的源码包rebootInit6重启LINUX系统 HaltInit0Shutdown–hnow关闭LINUX系统常用apt命令:apt-cachesearchpackage搜索包apt-cacheshowpackage获取包的相关信息,如说明、大小、版本等sudoapt-getinstallpackage安装包sudoapt-getinstallpackage--reinstall重新安装包sudoapt-get-finstall修复安装"-f=--fix-missing"sudoapt-getremovepackage删除包sudoapt-getremovepackage--purge删除包,包括删除配置文件等sudoapt-getupdate更新源sudoapt-getupgrade更新已安装的包sudoapt-getdist-upgrade升级系统sudoapt-getdselect-upgrade使用dselect升级apt-cachedependspackage了解使用依赖apt-cacherdependspackage是查看该包被哪些包依赖sudoapt-getbuild-deppackage安装相关的编译环境apt-getsourcepackage下载该包的源代码sudoapt-getclean&&sudoapt-getautoclean清理无用的包sudoapt-getcheck检查是否有损坏的依赖Vi使用教程viFileName      打开文件FileName,并将光标置于第一行首。vi+nFileName    打开文件FileName,并将光标置于第n行首。vi+FileName    打开文件FileName,并将光标置于最后一行。vi+/patternFile  打开文件File,并将光标置于其中第一个于pattern匹配的字符串处。vi–rFileName    在上次正用vi编辑FileName发生系统崩溃后,恢复FileName。viFile1…Filen  打开多个文件,依次对之进行编辑。:%!xxd          按十六进制查看当前文件:%!xxd-r        从十六进制返回正常模式:n1,n2con3      将n1行到n2行之间的内容拷贝到第n3行下。:n1,n2mm3      将n1行到n2行之间的内容移至第n3行下。:n1,n2d        将n1行到n2行之间的内容删除。:n1,n2wfilename  将n1行到n2行之间的内容保存到文件filename中:n1,n2w!Command  将文件中n1行到n2行的内容作为Command的输入并执行之,              若不指定n1、n2,则将整个文件内容作为Command的输入。:r!Command      将命令Command的输出结果放到当前行。:nr        把插入到第n行:so        读取,再执行文件里面的命令(文件中的命令应该都是一些ex命令):l1,l2w      把第l1和第l2行之间的文本写到中去:w>>      添加到末尾.也可以使用行号:e!            重新编辑当前文件,忽略所有的修改·(、[、、]、)对应显示  %显示当前(、[、{、}、]、)的对应项  )显示对应的(    )显示对应的[  ]显示对应的{·(、[、、]、)内数据选择   daB删除{}及其内的内容(在非v可视模式下)  diB删除{}中的内容  ab选择()中的内容  ib选择()中的内容(不含())  aB选择{}中的内容  iB选择{}中的内容(不含{})·语法提示与自动补齐★  插入模式下的单词自动完成★  行自动完成(超级有用)·设置ctags#ctags-f/usr/share/vim/vim63/funcs.tags-R/opt/j2sdk/src/usr/src/kernels/2.6.9-5.EL-i686^p自动补齐上下文已有相近项^n自动补齐~/.tags中的相近函数^[显示~/.tags中的光标下的函数的原型,按^t退出函数:pta函数名预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头K显示光标下的C函数的man说明手册·变量定位gd转到光标下局部变量的定义处Gd转到光标下全局变量的定义处·编译选项:cn命令会把你带到下一个出错地点,而不考虑它在什么文件里。:cc命令会向你显示当前错误的编译器输出信息;:cl会生成一个列有项目所有错误的列表,以供浏览这些错误3]光标移动  h        光标左移一个字符。  l        光标右移一个字符。  w或W    光标右移一个字至字首。  B或b    光标左移一个字至字首。  E或e    光标右移一个字至字尾。  }        光标移至句尾。  (        光标移至句首。  )        光标移至段落开头。  {        光标移至段落结尾。  k或Ctrl+p光标上移一行。  j或Ctrl+n光标下移一行。  Enter    光标下移一行。  nG      光标移至第n行首。  n+      光标下移n行。  n-      光标上移n行。  n$      光标移至第n行尾。  0        光标移至当前行首。  $        光标移至当前行尾。    H        光标移至屏幕顶行。  M        光标移至屏幕中间行。  L        光标移至屏幕最后行。  Ctrl+u    向文件首翻半屏。  Ctrl+d    向文件尾翻半屏。  Ctrl+f    向文件尾翻一屏。  Ctrl+b    向文件首翻一屏。nz将第n行滚至屏幕顶部。不指定n时将当前行滚至屏幕顶。 4}插入#在文件中插入行号(不是显示行号,是插入!)★:g/^/exec"s/^/".strpart(line(".")."",0,4)·光标i在光标前插入。a在光标后插入。·行I在当前行首插入。A在当前行尾插入。o在当前行之下一新行插入。O在当前行之上新开一行插入。5)替换r替换当前字符。R替换当前字符及其后的字符,直至按ESC键。s从当前光标位置处开始,以输入的文本代替指定数目的字符。S删除指定数目的行,并以所输入的文本代替。6)修改ncw或nCW修改指定数目的字符。nCC修改指定数目的行。:rfilename将文件filename插入在当前行之下7)查找替换/把狭义单词  写到搜索命令行/把广义单词  写到搜索命令行:g/str/s/str1/str2/g第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行的所有进行替换包括str的行所有的str1都用str2替换:%s/f$/for$/g将每一行尾部的“f”(f键和空格键)替换为for:%s/^/mv/g在每一行的头部添加“mv”(mv键和空格键):s/fred/a/g替换fred成registera中的内容,呵呵:g/s/Emacs/Vim/g前面的'是vim自动添加的#在多个文档中搜索:bufdo/searchstr:argdo/searchstr复制与剪切xp交换前后两个字符的位置ddp上下两行的位置交换:g/fred/t$拷贝行,从fred到文件末尾(EOF)9)窗口操作:vne[filename]:sp[filename]:S[filename]:new[filename]:^w+^r交换两个窗口的位置^w=窗口等宽:res-n窗口高度减小n:res+n窗口高度增大n:vertres-n:vertres+n10)DOS格式文本转成Unix格式文本:1,$s/^M//g11)书签在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。 将光标移到想做标记的位置。假如做一个名为“debug1”的标记,那么用户可在命令模式下输入做标记的命令“mdebug1”,然后敲入回车键,一个名为“debug1”的标记就做好了。接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“`debug1”后,就能快速回到“debug1”的标记所在行的行首。12)删除操作:%s/r//g删除DOS方式的回车^M:%s=*$==删除行尾空白:%s/^(.*)n1/1$/删除重复行:%s/^.pdf/new.pdf/只是删除第一个pdf:%s///又是删除多行注释(咦?为什么要说「又」呢?):g/^s*$/d删除所有空行:g!/^dd/d删除不含字符串'dd'的行:v/^dd/d同上(译释:v==g!,就是不匹配!):g/str1/,/str2/d删除所有第一个含str1到第一个含str2之间的行:v/./.,/./-1join压缩空行:g/^$/,/./-j压缩空行ndw或ndW删除光标处开始及其后的n-1个字符。d0删至行首。d$删至行尾。ndd删除当前行及其后n-1行。x或X删除一个字符。Ctrl+u删除输入方式下所输入的文本。^R恢复u的操作J把下一行合并到当前行尾V选择一行^V按下^V后即可进行矩形的选择了aw选择单词iw内部单词(无空格)as选择句子is选择句子(无空格)ap选择段落ip选择段落(无空格)D删除到行尾x,y删除与复制包含高亮区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删除直到工作缓存区开始的内容修改命令操作r更改当前字符cw修改到某个单词的结尾位置c3w修改到第三个单词的结尾位置cb修改到某个单词的开始位置cW修改到某个以空格作为分隔符的单词的结尾位置cB修改到某个以空格作为分隔符的单词的开始位置c7B修改到前面7个以空格作为分隔符的单词的开始位置c0修改到某行的结尾位置c}修改到某个语句的结尾位置c4}修改到第四个语句的结尾位置c(修改到某个语句的开始位置c)修改到某个段落的结尾位置c{修改到某个段落的开始位置c7{修改到当前段落起始位置之前的第7个段落位置ctc修改当前行直到下一个字符c所出现位置之间的内容C修改到某一行的结尾cc修改当前行5cc修改从当前行所开始的5行内容.重复上一次修改!13}Set选项设置setall列出所有选项设置情况。setterm设置终端类型。setignorecase在搜索中忽略大小写。setlist显示制表位(^I)和行尾标志($)。setnumber显示行号。setshowmode示用户处在什么模式下setreport显示由面向行的命令修改国的行数目。setterse显示简短的警告信息。setwarn在转到别的文件时,若没有保存当前文件则显示Nowrite信息。setautowrite在“:n”和“:!”命令之前都自动保存文件setnomagic允许在搜索模式中,使用前面不带的特殊字符。setnowrapscan禁止vi在搜索到达文件两端时,又从另一端开始。setmesg允许vi显示其他用户用write写到自己终端上的信息。autoindent(ai)noai使新行自动缩进,和上(下)行的位置对齐autoprint(ap)ap每条命令之后都显示出修改之处autowrite(aw)noaw在:n,:!命令之前都自动保存文件beautify(bf)nobf在输入的时候忽略所有的控制字符(除了制表键(tab),换行(newline),进纸(formfeed))directory=(dir=)/tmp存放缓冲区的目录名edcompatiblenoedcompatible在替换的时候使用类ed的用法errorbells(eb)errorbells出错的时候响铃exrc(ex)noexrc允许在主目录(home)外面之外放.exrc文件hardtabs=(ht=)8设置硬制表的边界 ignorecase(ic)noic正规式里忽略大小写lispnolisp打开lisp模式listnolist显示所有的制表键和行的结尾magicagic可以使用更多的正规表达式mesgmesg允许向终端发送消息number(nu)nonumber显示行号openopen允许开放和可视化optimize(opt)optimize优化吞吐量,打印时不发回车paragraphs=(para=)IPLPPPQPPLIbp设置{&}的分界符promptprompt命令模式下的输入给出:的提示符readonly(ro)noro除非用!号否则不准保存文件redrawnoredraw当编辑的时候重绘屏幕remapremap允许宏指向其他的宏report=5如果影响的行数>这个数的话就报告scroll1/2window下卷屏幕时滚动屏幕的数目,同样这也是z命令输出的行数(z输出2倍滚屏的大小)sections=SHNHHHU定义节的末尾(当使用命令[[和]]时)shell=(sh=)/bin/sh缺省的SHELL,如果设置了环境变量SHELL的话,就使用变量shiftwidth=(sw=)8当使用移动(shift)命令时移动的字符数showmatch(sm)nosm显示{,},(,),[,或者]的匹配情况showmodenoshowmode显示你处在什么模式下面slowopen(slow)插入之后不要立刻更新显示tabstop=(ts=)8设置制表停止位(tabstop)的长度taglength=(tl=)0重要标记的字符个数(0表示所有的字符)tags=tag,/usr/lib/tags定义包含标记的文件路径term=设置终端类型tersenoterse显示简短的错误信息timeout(to)timeout一秒钟后键盘映射超时ttytype=设置终端类型warnwarn显示"Nowritesincelastchange"信息window=(w=)可视模式下窗口的行数wrapmargin=(wm=)0右边距,大于0的话最右边的单词将折行,留出n个空白位置wrapscan(ws)ws查找到文件尾后再重头开始writeany(wa)nowa可以保存到任意一个文件去14}特殊字符^匹配字符串位于行首。$匹配字符串位于行尾。.用在模式串中,表示任何单个字符。在命令模式下,重复上次的命令。*在模式串中,表示其前字符可出现任意多次。[]用在模式串中,表示指定方位内字符,其中可用-表示一个字符范围,用^表示不在某个范围内的字符。ESC从插入状态转换到命令状态^[功能同ESC15]大小写转换guu行小写gUU行大写g~~行翻转(当然指大小写啦)guw字小写(狭义字)译注:建议对比iwgUw字大写(狭义字)g~w字翻转(狭义字)vEU字大写(广义字)vE~字翻转(广义字) ggguG把整个文章全部小写(ft!bt!)16)跳转足迹'.跳到最后修改的那一行(超级有用)(ft,怎么又是这个评价)`.不仅跳到最后修改的那一行,还要定位到修改点依次沿着你的跳转记录向回跳(从最近的一次开始)依次沿着你的跳转记录向前跳:ju(mps)列出你跳转的足迹17)命令历史:history列出历史命令记录:hisc命令行命令历史:hiss搜索命令历史q/搜索命令历史的窗口q命令行命令历史的窗口:历史命令记录的窗口18]寄存器#列出寄存器(Registers):reg显示所有当前的registers"1p表示引用register,1表示一个名字叫做1的register,p就是粘贴(paste)命令译释:"也用来定义register先输入",表示定义register然后输入名字,如0~9,a~z然后执行删除或复制命令,如dd或y,或者是visual模式下的d(删除选中的部分)或y(复制选中的部分)则被删除或复制的部分就被存入了这个命名的register观察:一个特殊的register,"",里面存储了一个匿名的删除/复制在你执行dd或y的时候,被作用的部分被存到了""中19}命令行"ayy@a把当前行作为一个Vim命令来执行译释:"ayy是定义当前行到registera,然后@a是执行registera中存储的指令10yycopy当前行以下10行11}排序:%!sort-u使用sort程序排序整个文件(用结果重写文件)!1)sort-u排序当前段落(只能在normal模式下使用!!):.,+5!sort排序当前行及以下5行20)列操作:%s=[^]+$=&&=复制最后一列:%s=f+$=&&=一样的功能:%s=S+$=&&ft,还是一样:s/(.*).*)/2"1/颠倒用:分割的两个字段:%s(w+s+))str1:1str2:处理列,替换所有在第三列中的str1:%sw+)(.*s+)(w+)$:321:交换第一列和最后一列(共4列)·.vimrc"UseVimsettings,ratherthenVisettings(muchbetter!).setnocompatible"c风格的缩进:setexpandtab"不使用tab只使用空格:setcindentshiftwidth=4"自动缩进:setai"语法":setfiletype=java:setsyntax=java"键入)、]、},显示(、[、{ :setshowmatch"手工定义折叠:setfoldmethod=manual"标签文件位置settags=/usr/share/vim/vim63/funcs.tags"在插入模式下通过按[Ctrl]N自动地将任何类、方法或者字段名补齐setcomplete+=k"不要用声音烦我!setvisualbell"历史:sethistory=50"显示行列位置:setruler"设置字符编码setfileencodings=gb2312"setencoding=euc-cn"设置rulersetruler"显示当前命令setshowcmd"incsearchsetincsearch"allowbackspacingovereverythingininsertmodesetbackspace=indent,eol,start"自动检测文件类型:filetypeon"""""""""""快捷键定义"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ifversion>=600"查找"map  /"查找函数原型map  yiw/^(s)*(sub)|(function)(s)*""继续查找map  n"使用显示类、属性、方法列表map  :Tlist"用compiler定义的编译程序来编译当前程序"map  :make"%""使用来进行php语法检测map  :!php-l"%"  map;w:callFormatText()"查找当前光标下的字map  /endif"""""""""""::快捷键定义""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""格式化文件"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""functionFormatText():%s/t//g"把t换成4个空格:%s/*$//g"去掉行尾空格endfunction"""""""""""格式化文件"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""显示行尾的tab和多余空格"""""""""""""""""""""""""""""""""""""""""""""""setlistchars=tab:>-,trail:~ setlistsyntaxmatchTrail"+$"highlightdeflinkTrailTodo""""""""""::显示行尾的tab和多余空格"""""""""""""""""""""""""""""""""""""""""""""functionLastMod()ifline("$")>5letl=5elseletl=line("$")endifexe"1,".l."/CnsProgCMTime/s/CnsProgCMTime.*/CnsProgCMTime".strftime("%Y-%m-%d%H:%M:%S")."/e"endfunction"map  :callLastMod()"""""""""""自动加注释的*星号"""""""""""""""""""""""""""""""""""""""""""""""""""""使用如/*...*/的注释时,r在插入模式下回车时插入*;"o在普通模式下,使用"o"或"O"时插入*:setformatoptions=tcro"""""""""""::自动加注释的*星号""""""""""""""""""""""""""""""""""""""""""""""""""vi扩展的正则表达式|指示交替,如home|house指匹配home或house()用于分组,如home|house可以写为ho(me|use)*可以用到()上(home|house)*可以匹配home,homehouse,househome,homehousehomehouse(...)实际匹配的文本可以使用、等在替换命令的替换部分进行检索+可匹配正则表达式的一次或多次出现,既可以是单个字符也可以是()或(...)括起的内容,至少匹配一次ho(use|me)+指至少是house或home不允许是空?指前面正则表达式的零次或一次出现,表示出现或未出现。如free?d将匹配fred或freed除此不能匹配其他文本定义区间表达式。区间表达式描述了表示重复次数的计数数字。同(home|house)只能匹配homehome,homehouse,househome,househouse编译相关·用编译器来编译当前文件:!perl-c%:!php-l%用php来检查错误:!php-q%用php来运行程序·编译当前程序为a.out并执行该./a.out:!gcc%-oa.out&&./a.out执行结果oldumaskis%#0newumaskis%#0·编译错误信息:cl!列出所有错误信息的详细列表:cl列出当前条错误信息:cn列出下一条错误信息:cp列出上一条错误信息:cnew最新错误信息条数:cold旧的错误信息条数:cwin或:copen打开错误信息窗口:cclose关闭上面打开的信息窗口自动补齐CTRL-XCTRL-F文件名CTRL-XCTRL-L整行 CTRL-XCTRL-D宏定义(并搜索所包含的文件)CTRL-XCTRL-I当前文件以及所包含的文件CTRL-XCTRL-K词典文件内的单词CTRL-XCTRL-T近义词词典文件内的单词CTRL-XCTRL-]标记CTRL-XCTRL-VVim命令行第一讲第一节∶移动光标※※要移动光标,请依照说明分别按下h、j、k、l键。※※^k提示∶h的键位于左边,每次按下就会向左移动。l的键位于右边,每次按下就会向右移动。jj键看起来很象一支尖端方向朝下的箭头。v1.请随意在屏幕内移动光标,直至您觉得舒服为止。2.按下下行键(j),直到出现光标重复下行。--->现在您应该已经学会如何移动到下一讲吧。3.现在请使用下行键,将光标移动到第二讲。提示∶如果您不敢确定您所按下的字母,请按下键回到正常(Normal)模式。然后再次从键盘输入您想要的命令。提示∶光标键应当也能正常工作的。但是使用hjkl键,在习惯之后您就能够快速地在屏幕内四处移动光标了。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第一讲第二节∶VIM的进入和退出!!特别提示∶敬请阅读完整本一节的内容,然后才能执行以下所讲解的命令。1.请按键(这是为了确保您处在正常模式)。2.然后输入∶:q!<回车>--->这种方式的退出编辑器绝不会保存您进入编辑器以来所做的改动。如果您想保存更改再退出,请输入∶:wq<回车>3.如果您看到了命令行提示符,请输入能够带您回到本教程的命令,那就是∶vimtutor<回车>通常情况下您也可以用这种方式∶vimtutor<回车>--->这里的'vim'表示进入vim编辑器,而'tutor'则是您准备要编辑的文件。4.如果您自信已经牢牢记住了这些步骤的话,请从步骤1执行到步骤3退出,然后再次进入编辑器。接着将光标移动到第一讲第三节来继续我们的教程讲解。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第一讲第三节∶文本编辑之删除**在正常(Normal)模式下,可以按下x键来删除光标所在位置的字符。**1.请将光标移动到本节中下面标记有--->的那一行。2.为了修正输入错误,请将光标移至准备删除的字符的位置处。3.然后按下x键将错误字符删除掉。4.重复步骤2到步骤4,直到句子修正为止。--->Theccowjumpeddovverrthhemooon.5.好了,该行已经修正了,下一节内容是第一讲第四节。特别提示∶在您浏览本教程时,不要强行记忆。记住一点∶在使用中学习。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第一讲第四节∶文本编辑之插入**在正常模式下,可以按下i键来插入文本。**1.请将光标移动到本节中下面标记有--->的第一行。2.为了使得第一行内容雷同于第二行,请将光标移至文本第一个字符准备插入的位置。3.然后按下i键,接着输入必要的文本字符。4.所有文本都修正完毕,请按下键返回正常模式。重复步骤2至步骤4以便修正句子。--->Thereistextmisngthis.--->Thereissometextmissingfromthisline.5.如果您对文本插入操作已经很满意,请接着阅读下面的小结。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第一讲小结1.光标在屏幕文本中的移动既可以用箭头键,也可以使用hjkl字母键。h(左移)j(下行)k(上行)l(右移)2.欲进入vim编辑器(从命令行提示符),请输入∶vim文件名<回车>3.欲退出vim编辑器,请输入以下命令放弃所有修改∶:q!<回车>或者输入以下命令保存所有修改∶:wq<回车>4.在正常模式下删除光标所在位置的字符,请按∶x5.在正常模式下要在光标所在位置开始插入文本,请按∶i输入必要文本特别提示∶按下键会带您回到正常模式或者取消一个不期望或者部分完成的命令。第二讲第一节∶删除类命令**输入dw可以从光标处删除至一个单字/单词的末尾。**1.请按下键确保您处于正常模式。2.请将光标移动到本节中下面标记有--->的那一行。3.请将光标移至准备要删除的单词的开始。4.接着输入dw删除掉该单词。特别提示∶您所输入的dw会在您输入的同时出现在屏幕的最后一行。如果您输入有误,请按下键取消,然后重新再来。--->Th.5.重复步骤3至步骤4,直至句子修正完毕。接着继续第二讲第二节内容。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第二讲第二节∶其他删除类命令**输入d$从当前光标删除到行末。**1.请按下键确保您处于正常模式。2.请将光标移动到本节中下面标记有--->的那一行。3.请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。4.然后输入d$从光标处删至当前行尾部。--->Somebodytypedtheendofthislinetwice.5.请继续学习第二讲第三节就知道是怎么回事了。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 第二讲第三节∶关于命令和对象删除命令d的格式如下∶[number]dobject或者d[number]object其意如下∶number-代表执行命令的次数(可选项,缺省设置为1)。d-代表删除。object-代表命令所要操作的对象(下面有相关介绍)。一个简短的对象列表∶w-从当前光标当前位置直到单字/单词末尾,包括空格。e-从当前光标当前位置直到单字/单词末尾,但是*不*包括空格。$-从当前光标当前位置直到当前行末。特别提示∶对于勇于探索者,请在正常模式下面仅按代表相应对象的键而不使用命令,则将看到光标的移动正如上面的对象列表所代表的一样。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第二讲第四节∶对象命令的特殊情况**输入dd可以删除整一个当前行。**鉴于整行删除的高频度,VIM的设计者决定要简化整行删除,仅需要在同一行上击打两次d就可以删除掉光标所在的整行了。1.请将光标移动到本节中下面的短句段落中的第二行。2.输入dd删除该行。3.然后移动到第四行。4.接着输入2dd(还记得前面讲过的number-command-object吗?)删除两行。1)Rosesarered,3)Violetsareblue,6)Sugarissweet7)Andsoareyou.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第二讲第五节∶撤消类命令**输入u来撤消最后执行的命令,输入U来修正整行。**1.请将光标移动到本节中下面标记有--->的那一行,并将其置于第一个错误处。2.输入x删除第一个不想保留的字母。3.然后输入u撤消最后执行的(一次)命令。4.这次要使用x修正本行的所有错误。5.现在输入一个大写的U,恢复到该行的原始状态。6.接着多次输入u以撤消U以及更前的命令。7.然后多次输入CTRL-R(先按下CTRL键不放开,接着输入R键),这样就可以执行恢复命令,也就是撤消掉撤消命令。--->Ftheerrorsoonthhislineandreeplacethemwitthundo.8.这些都是非常有用的命令。下面是第二讲的小结了。第三讲第一节∶置入类命令**输入p将最后一次删除的内容置入光标之后**1.请将光标移动到本节中下面示范段落的首行。2.输入dd将该行删除,这样会将该行保存到vim的缓冲区中。3.接着将光标移动到准备置入的位置的上方。记住∶是上方哦。4.然后在正常模式下(键进入),输入p将该行粘贴置入。5.重复步骤2至步骤4,将所有的行依序放置到正确的位置上。d)Canyoulearntoo?c)Intelligenceislearned,b)Violetsareblue,a)Rosesarered,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第三讲第二节∶替换类命令**输入r和一个字符替换光标所在位置的字符。**1.请将光标移动到本节中下面标记有--->的第一行。2.请移动光标到第一个错误的适当位置。3.接着输入r,这样就能将错误替换掉了。4.重复步骤2和步骤3,直到第一行已经修改完毕。--->Whenthislinewastypedin,someonepressedsomewrongkeys!--->Whenthislinewastypedin,someonepressedsomewrongkeys!5.然后我们继续学校第三讲第三节。特别提示∶切记您要在使用中学习,而不是在记忆中学习。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第三讲第三节∶更改类命令**要改变一个单字/单词的部分或者全部,请输入cw**1.请将光标移动到本节中下面标记有--->的第一行。2.接着把光标放在单词lubw的字母u的位置那里。3.然后输入cw就可以修正该单词了(在本例这里是输入ine。)4.最后按键,然后光标定位到下一个错误第一个准备更改的字母处。5.重复步骤3和步骤4,直到第一个句子完全雷同第二个句子。--->Thislinehasafewwordsthatneedchangingusingthechangecommand.--->Thislinehasafewwordsthatneedchangingusingthechangecommand.提示∶请注意cw命令不仅仅是替换了一个单词,也让您进入文本插入状态了。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第三讲第四节∶使用c指令的其他更改类命令**更改类指令可以使用同删除类命令所使用的对象参数。**1.更改类指令的工作方式跟删除类命令是一致的。操作格式是∶[number]cobject或者c[number]object2.对象参数也是一样的,比如w代表单字/单词,$代表行末等等。3.请将光标移动到本节中下面标记有--->的第一行。4.接着将光标移动到第一个错误处。5.然后输入c$使得该行剩下的部分更正得同第二行一样。最后按键。--->Theendofthislineneedstobecorrectedusingthec$command.--->Theendofthislineneedstobecorrectedusingthec$command.第四讲第一节∶定位及文件状态**输入CTRL-g显示当前编辑文件中当前光标所在行位置以及文件状态信息。输入SHIFT-G则直接跳转到文件中的某一指定行。**提示∶切记要先通读本节内容,之后才可以执行以下步骤!!!1.按下CTRL键不放开然后按g键。然后就会看到页面最底部出现一个状态信息行,显示的内容是当前编辑的文件名和文件的总行数。请记住步骤3的行号。2.按下SHIFT-G键可以使得当前光标直接跳转到文件最后一行。3.输入您曾停留的行号,然后按下SHIFT-G。这样就可以返回到您第一次按下CTRL-g时所在的行好了。注意∶输入行号时,行号是不会在屏幕上显示出来的。 4.如果愿意,您可以继续执行步骤1至步骤三。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第四讲第二节∶搜索类命令**输入/以及尾随的字符串可以用以在当前文件中查找该字符串。**1.在正常模式下输入/字符。您此时会注意到该字符和光标都会出现在屏幕底部,这跟:命令是一样的。2.接着输入errroor<回车>。那个errroor就是您要查找的字符串。3.要查找同上一次的字符串,只需要按n键。要向相反方向查找同上一次的字符串,请输入Shift-N即可。4.如果您想逆向查找字符串,请使用?代替/进行。--->Whenthesearchreachestheendofthefileitwillcontinueatthestart."errroor"isnotthewaytospellerror;errroorisanerror.提示∶如果查找已经到达文件末尾,查找会自动从文件头部继续查找。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第四讲第三节∶配对括号的查找**按%可以查找配对的括号)、]、}。**1.把光标放在本节下面标记有-->那一行中的任何一个(、[或{处。2.接着按%字符。3.此时光标的位置应当是在配对的括号处。4.再次按%就可以跳回配对的第一个括号处。--->This(isatestlinewith('s,['s]and{'s}init.))提示∶在程序调试时,这个功能用来查找不配对的括号是很有用的。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第四讲第四节∶修正错误的方法之一**输入:s/old/new/g可以替换old为new。**1.请将光标移动到本节中下面标记有--->的那一行。2.输入:s/thee/the<回车>。请注意该命令只改变光标所在行的第一个匹配串。3.输入:s/thee/the/g则是替换全行的匹配串。--->thebesttimetoseetheflowersisinthespring.4.要替换两行之间出现的每个匹配串,请输入:#,#s/old/new/g(#,#代表的是两行的行号)。输入:%s/old/new/g则是替换整个文件中的每个匹配串。viFileName        打开文件FileName,并将光标置于第一行首。vi+nFileName     打开文件FileName,并将光标置于第n行首。vi+FileName      打开文件FileName,并将光标置于最后一行。vi+/patternFile 打开文件File,并将光标置于其中第一个于pattern匹配的字符串处。vi–rFileName    在上次正用vi编辑FileName发生系统崩溃后,恢复FileName。viFile1…Filen  打开多个文件,依次对之进行编辑。:%!xxd             按十六进制查看当前文件:%!xxd-r          从十六进制返回正常模式:n1,n2con3       将n1行到n2行之间的内容拷贝到第n3行下。:n1,n2mm3        将n1行到n2行之间的内容移至第n3行下。:n1,n2d           将n1行到n2行之间的内容删除。:n1,n2wfilename  将n1行到n2行之间的内容保存到文件filename中:n1,n2w!Command  将文件中n1行到n2行的内容作为Command的输入并执行之,                     若不指定n1、n2,则将整个文件内容作为Command的输入。:r!Command        将命令Command的输出结果放到当前行。:nr<文件>          把<文件>插入到第n行:so<文件>          读取<文件>,再执行文件里面的命令(文件中的命令应该都是一些ex命令):l1,l2w<文件>      把第l1和第l2行之间的文本写到<文件>中去:w>><文件>        添加到<文件>末尾.也可以使用行号:e!                 重新编辑当前文件,忽略所有的修改·(、[、、]、)对应显示   %显示当前(、[、{、}、]、)的对应项   )显示对应的(    )显示对应的[   ]显示对应的{·(、[、、]、)内数据选择   daB删除{}及其内的内容(在非v可视模式下)   diB删除{}中的内容   ab选择()中的内容    ib选择()中的内容(不含())   aB选择{}中的内容   iB选择{}中的内容(不含{})·语法提示与自动补齐★插入模式下的单词自动完成★行自动完成(超级有用)·设置ctags#ctags-f/usr/share/vim/vim63/funcs.tags-R/opt/j2sdk/src/usr/src/kernels/2.6.9-5.EL-i686^p自动补齐上下文已有相近项^n自动补齐~/.tags中的相近函数^[显示~/.tags中的光标下的函数的原型,按^t退出函数:pta函数名预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头K显示光标下的C函数的man说明手册·变量定位gd转到光标下局部变量的定义处Gd转到光标下全局变量的定义处·编译选项:cn命令会把你带到下一个出错地点,而不考虑它在什么文件里。:cc命令会向你显示当前错误的编译器输出信息;:cl会生成一个列有项目所有错误的列表,以供浏览这些错误3]光标移动    h          光标左移一个字符。   l          光标右移一个字符。    w或W     光标右移一个字至字首。   B或b     光标左移一个字至字首。     E或e     光标右移一个字至字尾。    }          光标移至句尾。   (          光标移至句首。    )          光标移至段落开头。   {          光标移至段落结尾。   k或Ctrl+p光标上移一行。   j或Ctrl+n光标下移一行。   Enter      光标下移一行。   nG         光标移至第n行首。   n+         光标下移n行。   n-         光标上移n行。   n$         光标移至第n行尾。   0          光标移至当前行首。   $          光标移至当前行尾。     H          光标移至屏幕顶行。   M          光标移至屏幕中间行。   L          光标移至屏幕最后行。   Ctrl+u     向文件首翻半屏。   Ctrl+d     向文件尾翻半屏。   Ctrl+f     向文件尾翻一屏。   Ctrl+b     向文件首翻一屏。nz将第n行滚至屏幕顶部。不指定n时将当前行滚至屏幕顶。4}插入 #在文件中插入行号(不是显示行号,是插入!)★:g/^/exec"s/^/".strpart(line(".")."",0,4)·光标i在光标前插入。a在光标后插入。·行I在当前行首插入。A在当前行尾插入。o在当前行之下一新行插入。O在当前行之上新开一行插入。5)替换r替换当前字符。R替换当前字符及其后的字符,直至按ESC键。s从当前光标位置处开始,以输入的文本代替指定数目的字符。S删除指定数目的行,并以所输入的文本代替。6)修改ncw或nCW修改指定数目的字符。nCC修改指定数目的行。:rfilename将文件filename插入在当前行之下7)查找替换/把狭义单词写到搜索命令行/把广义单词写到搜索命令行:g/str/s/str1/str2/g第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行的所有进行替换包括str的行所有的str1都用str2替换:%s/f$/for$/g将每一行尾部的“f”(f键和空格键)替换为for:%s/^/mv/g在每一行的头部添加“mv”(mv键和空格键):s/fred/a/g替换fred成registera中的内容,呵呵:g/                  l的键位于右边,每次按下就会向右移动。            j                          j键看起来很象一支尖端方向朝下的箭头。            v 1.请随意在屏幕内移动光标,直至您觉得舒服为止。 2.按下下行键(j),直到出现光标重复下行。—>现在您应该已经学会如何移动到下一讲吧。 3.现在请使用下行键,将光标移动到第二讲。提示∶如果您不敢确定您所按下的字母,请按下键回到正常(Normal)模式。     然后再次从键盘输入您想要的命令。提示∶光标键应当也能正常工作的。但是使用hjkl键,在习惯之后您就能够快速     地在屏幕内四处移动光标了。 第一讲第二节∶VIM的进入和退出 !!特别提示∶敬请阅读完整本一节的内容,然后才能执行以下所讲解的命令。 1.请按键(这是为了确保您处在正常模式)。 2.然后输入∶                       :q!<回车>—>这种方式的退出编辑器绝不会保存您进入编辑器以来所做的改动。    如果您想保存更改再退出,请输入∶                               :wq <回车> 3.如果您看到了命令行提示符,请输入能够带您回到本教程的命令,那就是∶               vimtutor<回车>    通常情况下您也可以用这种方式∶               vimtutor<回车>—>这里的‘vim’表示进入vim编辑器,而‘tutor’则是您准备要编辑的文件。 4.如果您自信已经牢牢记住了这些步骤的话,请从步骤1执行到步骤3退出,然    后再次进入编辑器。接着将光标移动到第一讲第三节来继续我们的教程讲解。第一讲第三节∶文本编辑之删除  **在正常(Normal)模式下,可以按下x键来删除光标所在位置的字符。** 1.请将光标移动到本节中下面标记有—>的那一行。 2.为了修正输入错误,请将光标移至准备删除的字符的位置处。 3.然后按下x键将错误字符删除掉。 4.重复步骤2到步骤4,直到句子修正为止。—>Theccowjumpeddovverrthhemooon. 5.好了,该行已经修正了,下一节内容是第一讲第四节。特别提示∶在您浏览本教程时,不要强行记忆。记住一点∶在使用中学习。第一讲第四节∶文本编辑之插入        **在正常模式下,可以按下i键来插入文本。** 1.请将光标移动到本节中下面标记有—>的第一行。 2.为了使得第一行内容雷同于第二行,请将光标移至文本第一个字符准备插入    的位置。 3.然后按下i键,接着输入必要的文本字符。 4.所有文本都修正完毕,请按下键返回正常模式。    重复步骤2至步骤4以便修正句子。—>Thereistextmisngthis.—>Thereissometextmissingfromthisline. 5.如果您对文本插入操作已经很满意,请接着阅读下面的小结。                              第一讲小结 1.光标在屏幕文本中的移动既可以用箭头键,也可以使用hjkl字母键。        h(左移)       j(下行)      k(上行)           l(右移) 2.欲进入vim编辑器(从命令行提示符),请输入∶vim文件名<回车> 3.欲退出vim编辑器,请输入以下命令放弃所有修改∶         :q!        <回车>    或者输入以下命令保存所有修改∶         :wq        <回车> 4.在正常模式下删除光标所在位置的字符,请按∶x 5.在正常模式下要在光标所在位置开始插入文本,请按∶        i    输入必要文本       特别提示∶按下键会带您回到正常模式或者取消一个不期望或者部分完成的命令。好了,第一讲到此结束。下面接下来继续第二讲的内容。                       第二讲第一节∶删除类命令           **输入dw可以从光标处删除至一个单字/单词的末尾。* 1.请按下 键确保您处于正常模式。 2.请将光标移动到本节中下面标记有—>的那一行。 3.请将光标移至准备要删除的单词的开始。 4.接着输入dw删除掉该单词。 特别提示∶您所输入的dw会在您输入的同时出现在屏幕的最后一行。如果您输 入有误,请按下键取消,然后重新再来。—>Thereareasomewordsfunthatdon’tbelongpaperinthissentence. 5.重复步骤3至步骤4,直至句子修正完毕。接着继续第二讲第二节内容。                     第二讲第二节∶其他删除类命令                  **输入d$从当前光标删除到行末。** 1.请按下键确保您处于正常模式。 2.请将光标移动到本节中下面标记有—>的那一行。 3.请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。 4.然后输入d$从光标处删至当前行尾部。—>Somebodytypedtheendofthislinetwice.endofthislinetwice. 5.请继续学习第二讲第三节就知道是怎么回事了。                    第二讲第三节∶关于命令和对象 删除命令d的格式如下∶        [number]  d       object           或者    d        [number]  object 其意如下∶   number–代表执行命令的次数(可选项,缺省设置为1)。   d–代表删除。   object–代表命令所要操作的对象(下面有相关介绍)。 一个简短的对象列表∶   w–从当前光标当前位置直到单字/单词末尾,包括空格。   e–从当前光标当前位置直到单字/单词末尾,但是*不*包括空格。   $–从当前光标当前位置直到当前行末。特别提示∶   对于勇于探索者,请在正常模式下面仅按代表相应对象的键而不使用命令,则   将看到光标的移动正如上面的对象列表所代表的一样。               第二讲第四节∶对象命令的特殊情况              **输入dd可以删除整一个当前行。** 鉴于整行删除的高频度,VIM的设计者决定要简化整行删除,仅需要在同一行上 击打两次d就可以删除掉光标所在的整行了。 1.请将光标移动到本节中下面的短句段落中的第二行。 2.输入dd删除该行。 3.然后移动到第四行。 4.接着输入2dd(还记得前面讲过的number-command-object吗?)删除两行。     1) Rosesarered,     2) Mudisfun,     3) Violetsareblue,     4) Ihaveacar,     5) Clockstelltime,     6) Sugarissweet     7) Andsoareyou.            第二讲第五节∶撤消类命令        **输入u来撤消最后执行的命令,输入U来修正整行。** 1.请将光标移动到本节中下面标记有—>的那一行,并将其置于第一个错误    处。 2.输入x删除第一个不想保留的字母。 3.然后输入u 撤消最后执行的(一次)命令。 4.这次要使用x修正本行的所有错误。 5.现在输入一个大写的U,恢复到该行的原始状态。 6.接着多次输入u以撤消U以及更前的命令。 7.然后多次输入CTRL-R(先按下CTRL键不放开,接着输入R键),这样就    可以执行恢复命令,也就是撤消掉撤消命令。—>Fiixtheerrorsoonthhislineandreeplacethemwitthundo. 8.这些都是非常有用的命令。下面是第二讲的小结了。                              第二讲小结 1.欲从当前光标删除至单字/单词末尾,请输入∶dw 2.欲从当前光标删除至当前行末尾,请输入∶d$ 3.欲删除整行,请输入∶dd 4.在正常模式下一个命令的格式是∶      [number]  command  object    或者    command       [number]  object    其意是∶      number–代表的是命令执行的次数      command–代表要做的事情,比如d代表删除      object–代表要操作的对象,比如w代表单字/单词,$代表到行末等等。               $(totheendofline),etc. 5.欲撤消以前的操作,请输入∶u(小写的u)    欲撤消在一行中所做的改动,请输入∶U(大写的U)    欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R                        第三讲第一节∶置入类命令              **输入p将最后一次删除的内容置入光标之后** 1.请将光标移动到本节中下面示范段落的首行。 2.输入dd将该行删除,这样会将该行保存到vim的缓冲区中。 3.接着将光标移动到准备置入的位置的上方。记住∶是上方哦。 4.然后在正常模式下(键进入),输入p将该行粘贴置入。 5.重复步骤2至步骤4,将所有的行依序放置到正确的位置上。    d)Canyoulearntoo?    b)Violetsareblue,    c)Intelligenceislearned,    a)Rosesarered,                      第三讲第二节∶替换类命令         **输入r和一个字符替换光标所在位置的字符。** 1.请将光标移动到本节中下面标记有—>的第一行。 2.请移动光标到第一个错误的适当位置。 3.接着输入r,这样就能将错误替换掉了。 4.重复步骤2和步骤3,直到第一行已经修改完毕。—> Whanthislimewastuoedin,someonepresswdsomewrojgkeys!—> Whenthislinewastypedin,someonepressedsomewrongkeys! 5.然后我们继续学校第三讲第三节。特别提示∶切记您要在使用中学习,而不是在记忆中学习。                       第三讲第三节∶更改类命令          **要改变一个单字/单词的部分或者全部,请输入cw** 1.请将光标移动到本节中下面标记有—>的第一行。 2.接着把光标放在单词lubw的字母u的位置那里。 3.然后输入cw就可以修正该单词了(在本例这里是输入ine。) 4.最后按键,然后光标定位到下一个错误第一个准备更改的字母处。 5.重复步骤3和步骤4,直到第一个句子完全雷同第二个句子。—>Thislubwhasafewwptfdthatmrrfchangingusfthechange command.—>Thislinehasafewwordsthatneedchangingusingthechangecommand.提示∶请注意cw命令不仅仅是替换了一个单词,也让您进入文本插入状态了。                      第三讲第四节∶使用c指令的其他更改类命令            **更改类指令可以使用同删除类命令所使用的对象参数。** 1.更改类指令的工作方式跟删除类命令是一致的。操作格式是∶      [number]  c  object          或者           c       [number]  object 2.对象参数也是一样的,比如w代表单字/单词,$代表行末等等。 3.请将光标移动到本节中下面标记有—>的第一行。 4.接着将光标移动到第一个错误处。 5.然后输入c$使得该行剩下的部分更正得同第二行一样。最后按键。—>Theendofthislineneedssomehelptomakeitlikethesecond.—>Theendofthislineneedstobecorrectedusingthe c$ command.                              第三讲小结 1.要重新置入已经删除的文本内容,请输入小写字母p。该操作可以将已删除    的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置    于当前光标所在行的下一行。 2.要替换光标所在位置的字符,请输入小写的r和要替换掉原位置字符的新字    符即可。 3.更改类命令允许您改变指定的对象,从当前光标所在位置直到对象的末尾。    比如输入cw可以替换当前光标到单词的末尾的内容;输入c$可以替换当    前光标到行末的内容。 4.更改类命令的格式是∶        [number]  c       object             或者       c  [number]  object下面我们继续学习下一讲。                    第四讲第一节∶定位及文件状态 **输入CTRL-g显示当前编辑文件中当前光标所在行位置以及文件状态信息。    输入SHIFT-G则直接跳转到文件中的某一指定行。** 提示∶切记要先通读本节内容,之后才可以执行以下步骤!!! 1.按下CTRL键不放开然后按g键。然后就会看到页面最底部出现一个状态信    息行,显示的内容是当前编辑的文件名和文件的总行数。请记住步骤3的行号。 2.按下SHIFT-G键可以使得当前光标直接跳转到文件最后一行。 3.输入您曾停留的行号,然后按下SHIFT-G。这样就可以返回到您第一次按下    CTRL-g时所在的行好了。注意∶输入行号时,行号是不会在屏幕上显示出来    的。 4.如果愿意,您可以继续执行步骤1至步骤三。                       第四讲第二节∶搜索类命令    **输入/以及尾随的字符串可以用以在当前文件中查找该字符串。** 1.在正常模式下输入/字符。您此时会注意到该字符和光标都会出现在屏幕底    部,这跟:命令是一样的。 2.接着输入errroor<回车>。那个errroor就是您要查找的字符串。 3.要查找同上一次的字符串,只需要按n键。要向相反方向查找同上一次的字    符串,请输入Shift-N即可。 4.如果您想逆向查找字符串,请使用?代替/进行。—>Whenthesearchreachestheendofthefileitwillcontinueatthestart. “errroor”isnotthewaytospellerror; errroorisanerror. 提示∶如果查找已经到达文件末尾,查找会自动从文件头部继续查找。       第四讲第三节∶配对括号的查找             **按%可以查找配对的括号)、]、}。** 1.把光标放在本节下面标记有–>那一行中的任何一个(、[或{ 处。 2.接着按%字符。 3.此时光标的位置应当是在配对的括号处。 4.再次按%就可以跳回配对的第一个括号处。--->This(isatestlinewith('s,['s]and{’s}init.))提示∶在程序调试时,这个功能用来查找不配对的括号是很有用的。                     第四讲第四节∶修正错误的方法之一               **输入:s/old/new/g可以替换old为new。** 1.请将光标移动到本节中下面标记有—>的那一行。 2.输入:s/thee/the<回车>。请注意该命令只改变光标所在行的第一个匹配    串。 3.输入:s/thee/the/g       则是替换全行的匹配串。—>thebesttimetoseetheeflowersisintheespring. 4.要替换两行之间出现的每个匹配串,请输入:#,#s/old/new/g(#,#代表的是    两行的行号)。输入:%s/old/new/g则是替换整个文件中的每个匹配串。                              第四讲小结 1.Ctrl-g用于显示当前光标所在位置和文件状态信息。Shift-G用于将光标跳    转至文件最后一行。先敲入一个行号然后按Shift-G则是将光标移动至该行    号代表的行。 2.输入/然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。    输入问号?然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字    符串。完成一次查找之后按n键则是重复上一次的命令,可在同一方向上查    找下一个字符串所在;或者按Shift-N向相反方向查找下该字符串所在。 3.如果光标当前位置是括号(、)、[、]、{、},按%可以将光标移动到配对的    括号上。 4.在一行内替换头一个字符串old为新的字符串new,请输入 :s/old/new    在一行内替换所有的字符串old为新的字符串new,请输入 :s/old/new/g    在两行内替换所有的字符串old为新的字符串new,请输入 :#,#s/old/new/g    在文件内替换所有的字符串old为新的字符串new,请输入 :%s/old/new/g    进行全文替换时询问用户确认每个替换需添加c选项,请输入:%s/old/new/gc               第五讲第一节∶在VIM内执行外部命令的方法          **输入:!然后紧随著输入一个外部命令可以执行该外部命令。** 1.按下我们所熟悉的:命令设置光标到屏幕底部。这样就可以让您输入命令了。 2.接着输入感叹号!这个字符,这样就允许您执行外部的shell命令了。 3.我们以ls命令为例。输入!ls<回车>。该命令就会列举出您当前目录的    内容,就如同您在命令行提示符下输入ls命令的结果一样。如果!ls没起    作用,您可以试试:!dir看看。—>提示∶所有的外部命令都可以以这种方式执行。—>提示∶所有的:命令都必须以<回车>告终。                     第五讲第二节∶关于保存文件的更多信息            **要将对文件的改动保存到文件中,请输入:wFILENAME。** 1.输入:!dir或者:!ls获知当前目录的内容。您应当已知道最后还得敲    <回车>吧。 2.选择一个尚未存在文件名,比如TEST。 3.接着输入:wTEST (此处TEST是您所选择的文件名。) 4.该命令会以TEST为文件名保存整个文件(VIM教程)。为了确保正确保存,    请再次输入:!dir查看您的目录列表内容。—>请注意∶如果您退出VIM然后在以文件名TEST为参数进入,那么该文件内    容应该同您保存时的文件内容是完全一样的。 5.现在您可以通过输入:!rmTEST来删除TEST文件了。                   第五讲第三节∶一个具有选择性的保存命令               **要保存文件的部分内容,请输入:#,#wFILENAME ** 1.再来执行一次:!dir或者:!ls获知当前目录的内容,然后选择一个合适的    不重名的文件名,比如TEST。 2.接着将光标移动至本页的最顶端,然后按CTRL-g找到该行的行号。别忘了    行号哦。 3.接着把光标移动至本页的最底端,再按一次CTRL-g。也别忘了这个行好哦。 4.为了只保存文章的某个部分,请输入:#,#wTEST。这里的#,#就是上面    要求您记住的行号(顶端行号,底端行号),而TEST就是选定的文件名。 5.最后,用:!dir确认文件是否正确保存。但是这次先别删除掉。                  第五讲第四节∶提取和合并文件      **要向当前文件中插入另外的文件的内容,请输入:rFILENAME** 1.请键入:!dir确认您前面创建的TEST文件还在。 2.然后将光标移动至当前页面的顶端。特别提示∶执行步骤3之后您将看到第五讲第三节,请届时再往下移动回到这里来。 3.接着通过:rTEST将前面创建的名为TEST的文件提取进来。特别提示∶您所提取进来的文件将从光标所在位置处开始置入。 4.为了确认文件已经提取成功,移动光标回到原来的位置就可以注意有两份第    五讲第三节,一份是原本,另外一份是来自文件的副本。                              第五讲小结 1.:!command用于执行一个外部命令command。    请看一些实际例子∶         :!dir - 用于显示当前目录的内容。         :!rmFILENAME -       用于删除名为FILENAME的文件。 2.:wFILENAME 可将当前VIM中正在编辑的文件保存到名为FILENAME的文    件中。 3.:#,#wFILENAME可将当前编辑文件第#行至第#行的内容保存到文件    FILENAME中。 4.:rFILENAME可提取磁盘文件FILENAME并将其插入到当前文件的光标位置    后面。                        第六讲第一节∶打开类命令        **输入o将在光标的下方打开新的一行并进入插入模式。** 1.请将光标移动到本节中下面标记有—>的那一行。 2.接着输入小写的o在光标*下方*打开新的一行并进入插入模式。 3.然后复制标记有—>的行并按键退出插入模式而进入正常模式。—>Aftertyping o thecursorisplacedontheopenlineinInsertmode. 4.为了在光标*上方*打开新的一行,只需要输入大写的O而不是小写的o    就可以了。请在下行测试一下吧。当光标处在在该行上时,按Shift-O可以    在该行上方新开一行。OpenupalineabovethisbytypingShift-Owhilethecursorisonthisline.                       第六讲第二节∶光标后插入类命令                    **输入a将可在光标之后插入文本。** 1.请在正常模式下通过输入$将光标移动到本节中下面标记有—>的第一行    的末尾。 2.接着输入小写的a则可在光标之后插入文本了。大写的A则可以直接在行    末插入文本。提示∶输入大写A的操作方法可以在行末插入文本,避免了输入i,光标定位到     最后一个字符,输入的文本,回复正常模式,箭头右键移动光标以及     x删除当前光标所在位置字符等等诸多繁杂的操作。 3.操作之后第一行就可以补充完整了。请注意光标后插入文本与插入模式是基    本完全一致的,只是文本插入的位置定位稍有不同罢了。—>Thislinewillallowyoutopractice—>Thislinewillallowyoutopracticeappendingtexttotheendofaline.                    第六讲第三节∶另外一个置换类命令的版本                     **输入大写的R可连续替换多个字符。** 1.请将光标移动到本节中下面标记有—>的第一行。 2.移动光标到第一行中不同于标有—>的第二行的第一个单词的开始,即单    词last处。 3.然后输入大写的R开始把第一行中的不同于第二行的剩余字符逐一输入,就    可以全部替换掉原有的字符而使得第一行完全雷同第二行了。—>Tomakethefirstlinethesameasthelastonthispageusethekeys.—>Tomakethefirstlinethesameasthesecond,typeRandthenewtext. 4.请注意∶如果您按退出置换模式回复正常模式,尚未替换的文本将仍    然保持原状。                           第六讲第四节∶设置类命令的选项                 **设置可使查找或者替换可忽略大小写的选项** 1.要查找单词ignore可在正常模式下输入/ignore。要重复查找该词,可以    重复按n键。 2.然后设置ic选项(ic就是英文忽略大小写IgnoreCase的首字母缩写词),即    输入∶       :setic 3.现在可以通过键入n键再次查找单词ignore。重复查找可以重复键入n键。 4.然后设置hlsearch和incsearch这两个选项,输入以下内容∶    :sethlsis 5.现在可以再次输入查找命令,看看会有什么效果∶    /ignore                              第六讲小结 1.输入小写的o可以在光标下方打开新的一行并将光标置于新开的行首,进入    插入模式。    输入大写的O可以在光标上方打开新的一行并将光标置于新开的行首,进入    插入模式。 2.输入小写的a可以在光标所在位置之后插入文本。    输入大写的A可以在光标所在行的行末之后插入文本。 3.输入大写的R将进入替换模式,直至按键退出替换模式而进入正常    模式。 4.输入:setxxx可以设置xxx选项。                      第七讲∶在线帮助命令                     **使用在线帮助系统** Vim拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方 法之一∶       –按下键(如果键盘上有的话)       –按下键(如果键盘上有的话)       –输入       :help<回车> 输入:q<回车>可以关闭帮助窗口。 提供一个正确的参数给”:help”命令,您可以找到关于该主题的帮助。请试验以 下参数(可别忘了按回车键哦。:)∶         :helpw<回车>         :helpc_         :helpinsert-index<回车>         :helpuser-manual<回车>                      第八讲∶创建一个启动脚本                         **启用vim的功能** Vim的功能特性要比vi多得多,但大部分功能都没有缺省激活。为了启动更多的  功能,您得创建一个vimrc文件。 1.开始编辑vimrc文件,这取决于您所使用的操作系统∶    :edit~/.vimrc               这是Unix系统所使用的命令    :edit$VIM/_vimrc               这是Windows系统所使用的命令 2.接着导入vimrc范例文件∶    :read$VIMRUNTIME/vimrc_example.vim 3.保存文件,命令为∶    :write 在下次您启动vim的时候,编辑器就会有了语法高亮的功能。您可以继续把您喜 欢的其它功能设置添加到这个vimrc文件中。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭