大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
vim可以分为三种状态,分别是 命令行模式(command mode) 、 输入模式(Insert mode) 和 底行模式(last line mode) ,这 3 种工作模式可随意切换,如下图所示。
奎文ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
使用vim编辑文件时,默认处于命令行模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
下图所示是vim处于命令行模式的状态示意图。
在输入模式下,vim可以对文件执行写操作,类似于在Windows系统的文档中输入内容。
使vim进行输入模式的方式是在命令模式状态下输入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具体功能下表所示),当编辑文件完成后按 esc 键即可返回命令模式。
下图所示为vim处于输入模式模式下的示意图。
底行模式用于对文件中的指定内容执行保存、查找或替换等操作。
使vim切换到底行模式的方法是在 命令行模式 状态下按 : 键(注意是英文符号),此时vim窗口的左下方出现一个 : 符号,这是就可以输入相关指令进行操作了。
指令执行后vim会自动返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下图所示为vim进入底行模式后的状态。
对于新手来说,经常不知道自己处于什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次 esc 键返回命令行模式。如果你多按几次 esc 键后听到"嘀————"的声音,则代表你已经处于命令行模式了。
打开文件
打开文件时光标处于文件尾部
打开文件时,光标定位到第几行
字符移动
这些移动键都可以加上数字(5h:向左移动5个字符格)
单词移动
行内跳转
行间移动
在底行模式下,直接给出行号,实现跳转
用法:起始地址,结束地址 s @要替换内容@替换后内容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a换替换成A,全局替换
显示取消行号
设定自动缩进(写脚本时)
查找到的文本高亮显示
语法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :个人配置文件,每个用户的家目录中,若不存在,手动创建
对于第一次用vim的童鞋,有几点需要提醒一下:
首先,linux提示命令的快截键是 TAB键,在键盘的左侧,一般在capslock键的上面。比如你输入his,然后按一下tab键,就会出现his开头的命令,如下图所示。使用TAB键,一般来说,在访问文件夹的时候非常好用,它会自动补全路径名。
其次,在Linux的命令行上有很多种方法提高输入效率。比如
有 4 种方法可以重复执行上一条命令:
1、使用上方向键,并回车执行。
2、按 !! 并回车执行。
3、输入 !-1 并回车执行。
4、按 Ctrl+P 并回车执行。
Ctrl+R 快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。
再次,如果之前输入过相应的命令,可以通过history这个命令来查找到,并再次重复执行。示例如下:
# history | more
1 service network restart
2 exit
3 id
4 cat /etc/redhat-release
# !4
k向上移动一行;
j向下移动一行;
h向左移动一个单位;
l向右移动一个单位。
Linux的一个特色就是其命令多而且功能强大, 频繁输入命令不仅麻烦而且工作量较大,虽然可以使用TAB进行命令补足,或者使用aliase来简化某个命令的输入,但这并不能从根本上解决敲击键盘次数过多的问题。\x0d\x0a\x0d\x0a可以把任何命令或命令的组合指定给键盘上的某个键,可以是Alt+[A-Z],\x0d\x0aCtrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-F[1-12], Alt+Shift+F[1-12],还有更不可思议的是甚至还可以为功能键加上“参数”,这样你按下那个键的时候,它会等待你输入相应的参数,并根据不同的参数运行不同的命令。\x0d\x0a\x0d\x0a当然,有一些热键会被终端所捕获,如常见的Ctrl-D/C/Q/Z等,不过没关系,可用的热键还多着呢!\x0d\x0a\x0d\x0a定义热键的配置文件为:/etc/inputrc 或 ~/.inputrc,定义热键的格式如下:\x0d\x0a\x0d\x0a"":""\x0d\x0a\x0d\x0a其中热键对应的ASCII字符可以通过 "先按Ctrl-V, 然后按热键" 的方式来输入, 如Ctrl-G对应的字符为^G, Alt-P对应的字符为^[p, Ctrl-Alt-H对应的字符为^[^H.\x0d\x0a\x0d\x0a可以用/C来代替Ctrl,/M来代替Alt, /M-/C来代替Alt-Ctrl, 如/C-M = Ctrl-M, /M-/C-H = Alt-Ctrl-M. 另外还可以用/e代表^[.\x0d\x0a\x0d\x0a先来看一些基本的热键定义,(这里热键里的字母不区分大小写):\x0d\x0a"^[-":"su -/C-M" # 按Alt+- 执行su - 命令,末尾/C-M表示输入完定义的命令后回车,也可以更简洁地用一个/n来表示.\x0d\x0a\x0d\x0a"/M-/C-G":"gaim /dev/null disown/C-M"\x0d\x0a# 按Ctrl-Alt-g在当前shell打开gaim, 并脱离该shell独立运行,即:即使你退出了该shell, gaim也不会关闭\x0d\x0a\x0d\x0a其他一些组合键可以根据自己的需要配置,偶就不多说了.\x0d\x0a\x0d\x0a大家也许会觉得这样定义热键太乱了,而且很难记住,还有一定的限制。这个问题在后面会得到解决。\x0d\x0a\x0d\x0a一般情况下,我们可以使用上下方向键来查找命令历史列表,以此重复输入命令,但是方向键离主键盘区太远,如果频繁使用的话,会耽误不少时间,而且挪动右手时也不太方便,有没有什么办法把方向键的功能转移到我们经常敲命令的地方呢?如使用Alt+J = Down Arrow 向下查找,Alt+K=Up Arrow 向下查找\x0d\x0a\x0d\x0a通过定义热键可以做到这点:\x0d\x0a\x0d\x0a"/eh":"^[OD" # move left\x0d\x0a# Alt-H 向左移一个字符, 相当于Left Arrowgh, 这里^[OD即向上方向键的ASCII字符,输入方式与前面提到的类似\x0d\x0a"/el":"^[OC" # move right\x0d\x0a# Alt-L 向右移一个字符,相当于Right Arrow\x0d\x0a\x0d\x0a"/ej":"^[OB" # move up\x0d\x0a# Alt-J 向下移动,相当于Up Arrow\x0d\x0a\x0d\x0a"/ek":"^[OA" # move down\x0d\x0a# Alt-K 向上移动,相当于Down Arrow\x0d\x0a\x0d\x0a"/ei":"^?" # left earse one character\x0d\x0a# Alt-I 向左删除一个字符,相当于Backspace\x0d\x0a\x0d\x0a"/eo":delete-char # right earse one character\x0d\x0a# Alt-O 向右删除一个字符,相当于Delete\x0d\x0a\x0d\x0a"/en":backward-kill-word # left kill one word\x0d\x0a# Alt-N 向左删除一个单词\x0d\x0a\x0d\x0a"/em":kill-word # right kill one word\x0d\x0a# Alt-M 向右删除一个单词\x0d\x0a\x0d\x0a"/ea":"^[n^[n^[n^[n^[n^[n^[n" # kill to the head\x0d\x0a# Alt-A 删除当前位置到开头,也就是多Alt-N几次(A-- ahead)\x0d\x0a\x0d\x0a"/ee":"^[m^[m^[m^[m^[m^[m^[m" # kill to the head\x0d\x0a# Alt-E 删除当前位置到末尾,也就是多Alt-M几次(E-- end)\x0d\x0a\x0d\x0a"/ep": insert-last-argumem"\x0d\x0a# Alt-P 插入上一个命令最后一个参数 (P-- Paste)\x0d\x0a\x0d\x0a"/ew": forward-word\x0d\x0a# 系统默认Alt-F (forward)跳到当前单词词尾,如果已在词尾,则跳到下一个单词(右边一个单词)词尾\x0d\x0a\x0d\x0a"/eq": backward-word\x0d\x0a# 系统默认Alt-B (backward)跳到当前单词词首,如果已在词首,则跳到上一个单词(左边一个单词)词首\x0d\x0a\x0d\x0a发觉F和B键离得太远,不方便,偶分别改作Alt-Q, Alt-W, 但是Alt-F/B照样可以用\x0d\x0a\x0d\x0a这样输入命令的时候几乎可以不用离开主键盘区,而且移动光标,删除字符,删除单词,上下历史命令查找都集中在一块,比以前方便多了。不过开始可能有些不习惯,就跟使用vi一样,但是多练几次就熟练了。\x0d\x0a\x0d\x0aLinux下绝大部分服务的配置是基于配置文件的,一般说来,更改了某个服务的配置文件,要使其立即生效,还需重启该服务直接的或依附的守护进程才行。难道你就不觉得“每次 vi /etc/xxx.conf 完后又 service xxx restart/reload 或 killall -HUP xxx”这样做很繁琐么?如果要配置的服务较多而且要不停地调试呢?况且我们平常使用Linux时难免会不时地终止或启动某个服务进程,输入命令的次数也不少。如果为每个服务都指定一个热键的话,似乎不大可能。如果我们赋予一个热键为一个基本键,而相应的服务为其“参数”,那又如何呢?\x0d\x0a\x0d\x0a举个例子,赋予Alt-S (S--Start)为启动服务的基本键,服务名的前2个字符为启动“参数”,那么就可以像下面那样随意启动某个服务了:\x0d\x0a"/essm":"service smb start/n"\x0d\x0a# /es=Alt-s, sm=smb,\x0d\x0a# 即:按下Alt-s后紧跟着再输入sm(这时输入的sm并不会显示在终端上),就可以启动samba的服务进程了,不必担心按下键与输入“参数”间的时间延迟问题,你按下Alt-s,然后去外面兜一圈回来,再接着输入sm,照样可以。\x0d\x0a\x0d\x0a"/esht":"service httpd start/n" # ht=httpd,启动Apache服务\x0d\x0a\x0d\x0a类似地,我们赋予\x0d\x0aAlt-D(D-- shutDown) 为停止服务的基本键\x0d\x0aAlt-R(R-- Restart) 为重启服务的基本键\x0d\x0aAlt-T(T-- Status) 为查看服务状态的基本键\x0d\x0aAlt-C(C-- Configure) 为打开服务对应的主配置文件的基本键\x0d\x0a如:"/ecnf":"vi /etc/exports/n" # Alt-c+nf 打开NFS的配置文件\x0d\x0a"/ecsm":"vi /etc/samba/smb.conf/n" # Alt-c+sm 打开smb的配置文件\x0d\x0a\x0d\x0a如果某个服务(如ssh)有2个配置文件,可以在其后再加一个数字,如:\x0d\x0a"/ecssh1":"vi /etc/ssh/sshd_config/n" # 打开sshd服务端配置文件\x0d\x0a"/ecssh2":"vi /etc/ssh/ssh_config/n" # 打开sshd客户端配置文件\x0d\x0a\x0d\x0a如果要执行某个应用程序呢?可以用Alt-x做基本键(x-- eXeccute) 如:\x0d\x0a"/exga":"gaim /dev/null disown clean /n"\x0d\x0a"/exxm":"xmms /dev/null disown clean /n"\x0d\x0a"/exvm":"vmware /dev/null disown clean /n" "/exna":"nautilus /dev/null disown clean /n"\x0d\x0a等等....\x0d\x0a\x0d\x0a到现在为止我们只要按1个组合键+2个字符就可以实现下面众多的功能:\x0d\x0a1. 执行指定的应用程序\x0d\x0a2. 启动|重启|关闭|指定的服务进程\x0d\x0a3. 查看指定服务的状态\x0d\x0a4. 打开指定服务的指定配置文件
登陆进去$符号,改变linux用户提示符,需要配置用户的.bashrc文件,在里面添加PS1环境变量。PS1是命令行提示符环境变量
例如:export PS1='[\u@\H \W]\$ '
登陆进去后,方向键,Delete键,Backspace键,都会在屏幕上显示为^[[C之类的,处理办法:输入命令 set -o vi, 让bash 模拟 vi 的操作,就可以了
可以使用cd命令,cd命令的功能是切换到指定的目录:
命令格式:
cd [目录名]
目录名有几个符号有特殊的含义,“..”代表上一级目录、“~”代表HOME目录、“-”代表前一目录。
因此返回上一级目录可以使用命令:
cd ..