上篇文章简要的介绍了Linux的基本概念和基本命令,忘记了戳这里。
下面简单的介绍下Vim编辑工具以及一些经常遇到的问题。
一、Vim
Vim或Vi是Linux操作系统中常用的文本编辑工具,它非常简洁,但也能通过扩展变得非常强大;学习曲线陡峭,但是熟练之后可以达到更高的操作效率(想想曾经的五笔)。不过我个人不是很倾向于使用Vim输入大量内容,毕竟IDE才是更高效的选择,基本上在简单修改的时候才使用。但是在命令行中编辑文件,Vim也是为数不多的选择。
- Vim的三种模式
首先介绍三种模式,因为Vim都是用键盘操作,不同模式下,按键有不同的含义。执行任何操作前,都要先观察一下当前所处的模式。
命令模式:刚进入Vim时的默认模式,可以执行各种命令,但是不能输入内容,键盘按键都代表不同的命令。命令模式下,可以输入:并紧跟其他指令来执行比如保存、退出等操作。命令模式下,窗口左下角不会显示任何内容。
插入模式:可以输入内容,但是不能直接移动光标。插入模式下键盘按键会直接输入按键表示的字符。在命令模式下,按i、a、o等命令可以进入插入模式,并定位光标到不同位置(当前,行末,新行行首等)。插入模式下,窗口左下角会显示-- INSERT --。
选择模式:在命令模式下,按v可以进入选择模式,并以当前光标位置开始选择;按下ESC键或者执行任意其他指令,如拷贝、删除等,将结束选择模式并进入命令模式。选择模式下,窗口左下角会显示-- VISUAL --。
-
打开或创建文件
vim [文件名或带路径的文件名]
举例:vim a.txt将会在当前目录创建一个名为a.txt的空文件并使用vim打开。 -
移动光标
命令模式和选择模式下:
使用方向键或hjkl键移动光标,h 左 j 下 k 上 l 右 -
进入插入模式
命令模式下:
i 在光标位置进入插入模式。注意,此时光标并没有位置变化,之后输入的内容都会插入到光标位置。
I 在行首进入插入模式。
a 在行尾进入插入模式。(a -> append)
o 换行并进入插入模式。
O 下移当前行,并在新行进入插入模式。 -
退出插入模式、选择模式
在插入模式、选择模式下,按下ESC键,进入命令模式。 -
删除
命令模式下:
x 删除光标所在字符
[任意数字]x 先输入任意数字,再按x,从光标位置开始,删除多个字符。
X 删除光标前一个字符,”退格”。
D 删除光标位置到行尾。
dd 删除整行 -
拷贝、粘贴
选择模式下:
y 拷贝选择的内容
命令模式下:
yy 拷贝整行
p 粘贴到光标后
P 粘贴到光标前 -
退出、保存
命令模式下:
:q 退出,关闭文件。如果当前文件有未保存的修改,Vim将不允许退出,并会在最下面一行进行提示。
:q! 强行退出。忽略未保存的内容。
:w 保存,保存对当前文件的修改。
:wq 保存并退出。
二、常见问题
-
command not found:
当你在网上找到一条指令,输入终端之后提示not found,是不是很尴尬?
和图形界面不同,终端内输入指令的时候,是不知道这条指令是不是能识别的(毕竟就是一行字符串)。所以遇到这个问题,安装相应的软件包即可。每个Linux发行版都有自己的默认包管理器,比如CentOS使用yum,Ubuntu/Debains使用apt-get。
以yum为例,比如vim不存在,执行sudo yum install vim即可安装vim。大多数软件包都可以按照这种方式安装,个别情况,如果yum的安装源(就想一个软件包仓库)没有你要装的软件,那么就要更新源或者添加源,这时候就视情况而定啦,请使用Google大法。 -
xxx is not in the sudoers file
使用sudo命令时,可能会出现这个错误:当前用户不在sudoer列表内。
解决方法:
切换到root用户
su
修改sudoers文件权限,让root可以执行。(是的,默认root也没有写权限)
chmod 740 /etc/sudoers
编辑文件,在最下面插入 [用户名] ALL=(ALL) ALL 并保存。
vim /etc/sudoers
恢复文件权限。
chmod 440 /etc/sudoers