1.vim Editor
1. First Knowledge Artifact: Vim
(1). Vim Considerations
编辑文件时 a.当文件名称存在,那么进入文件直接编辑 b.当文件名称不存在,vim会在退出保存时自动建立文件 c.当vim命令后没有跟任何文件名称时,时无法实现":wq"退出保存的那么可以用":wq filename"(给新建文件命名并保存)
(2). When Vim exits abnormally, the system creates. FILE.SWP This cache file
这个文件中保存着没有":wq"动作保存的信息 当用vim对文件做编辑的时候会提示 O ##只读打开 E ##直接忽略.file.swap信息编辑文件 R ##利用.file.swap进行为保存数据恢复 D ##删除.file.swap Q ##退出 A ##终止
For example:
2.vim operation
ps:vim有三种模式1.命令模式: 在Linux终端中输入“vim 文件名”就进入了命令模式,查看文件内容,但不能输入文字。2.编辑模式: 在命令模式下按i/o/A等就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。3.末行模式: 在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。
All of the following operations with: are indicated in the end of the operation in line mode!
1. Command mode
命令模式是vim打开文件后默认进入的模式,这个模式中不能插入字符,只能浏览文件内容。但是可以按 : 进入行末模式然后设定vim的工作方式 :set 指定信息 :set nu 显示行数 :set nonu 不显示行数 :set cursorline 添加行线展示 :set mouse=a 添加鼠标选择
Note: the direct setting of vim in Vim is a temporary setting, that is, when Vim is off, the setting fails. If you want to permanently set the need to write "/ETC/VIMRC". This file is also a vim configuration file. The operation is as follows:
vim /etc/vimrc直接在文件末尾插入想要的设置然后保存退出,重新打开vim即可看到效果
Insert settings:
Settings to take effect:
2. How to manage characters in command mode
按"x": 删除光标所在字符按"u": undo 恢复按"ctrl+r": redo 撤销恢复按"y":复制 "yw" ##复制一个单词 "yl" ##复制一个字母 "yy" ##复制一整行 "y5y" ##复制5行按"c":剪切 "cw" ##剪掉一个单词 "cl" ##剪掉一个字母 "cc" ##剪掉一整行 "c5c" ##剪掉5行
--------> Paste copied or clipped characters by "P" in command mode
Note: when using C to cut, it will go into insert mode, if you want to paste the need to exit Insert mode press <ESC> and press "P"
按"d":删除 "dw" ##删除一个单词 "dl" ##删除一个字母 "dd" ##删除一整行 "d5d" ##删除5行
Visual operation of 3.vim
(1).可视化模式的基本操作 在vim中是不能用鼠标选择区域操作的,如果要操作某个区域,需要进入到可视化模式 在命令模式下 "ctrl + v" 就可以进入到可视模式了 按"上|下|左|右"移动光标选择区域,按相应操作键就可以对选择区域进行操作
(2).可视化模式下批量添加字符 1.把光标停留在想要加入字符所在的列的第一行 2.移动光标选择添加字符所在列 3."I"进入插入模式 4.写入要插入的字符 5.按"ESC"退出插入模式,字符批量添加成功
4.vim character substitution (enter end-of-line mode)
:%s/原有字符/新字符/g #全文替换:1,5s/原有字符/新字符/g #替换1到5行的字符 g #替换出现的所有关键字,如果不加"g"只替换没行出现的第一个
Enter the command for character substitution:
Successful substitution characters:
5.vim Total character search and cursor movement (end-of-line mode)
1.字符的查找:/关键字n ##向下匹配关键字N ##向上匹配关键子2.光标的移动:数字 ##光标快速移动到指定行gg ##光标移动到文件的第一行G ##光标移动到文件的最后以行
6.vim Editing multiple files simultaneously
进入行末模式: sp filename 在当前vim另外打开一个新的文件进入命令模式: ctrl + w 上 #光标进入上边文件窗口 ctrl + w 下 #光标进入下边文件窗口
7. Enter edit mode
"i" #在光标所在位置插入字符"I" #光标所在行的行首插入字符"o" #光标所在行的下一行新行插入字符"O" #光标所在行的上以行新行插入"s" #删除光标所在字符并插入字符"S" #删除光标所在行并插入字符"a" #光标所在字符的下一个字符插入"A" #光标所在行的行尾插入字符
8. Exit Vim
:q #当vim进入文件没有对文件内容做任何操作可以按"q"退出:q! #当vim进入文件对文件内容有操作但不想保存退出:wq #正常保存退出:wq! #强行保存退出,只针对与root用户或文件所有人生效
A picture to understand VIM operation!
2. Management of file input and Output 1. Definition of input and output
1.输入 就是我们的键盘,鼠标和我们用这些硬件在系统只哦个录入的字符2.输入 就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符 输入会有两种出现: 编号1为正确输出 编号2为错误输出 默认着两种输出都会被系统定向到字符设备中
2. How to manage input
1.非交互式多行录入 编辑文件: vim test.sh 写入内容:passwd 保存并退出后执行命令:sh test.sh
Although this works correctly, it is not a multi-line entry
The following examples illustrate the multi-line input
After you create a new example.sh end file, edit the following in the file:
passwd <<end
Redhat
Redhat
END
Command line execution sh example.sh
This will automatically run to avoid interaction (the above action changes the user password to Redhat)
PS: Here because the password is not standardized, so there is no successful setup, but still realize the multi-line input.
2. How to manage the output
重定向:重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。 > 重定向正确输出(将正确的输出 输出到指定地方,错误的输出则还是输出到默认地方) 2> 重定向错误输出(将错误的输出 输出到指定地方,错误的输出则还是输出到默认地方) &> 重定向所有输出(将所有的输出都 输出到指定地方) 2>&1 把错误输出的编号由2转换为1(将错误的输出变成正确的输出)
Give me some chestnuts.
find /etc/ -name passwd > file.out -----------> 查找/etc目录下所有名字叫passwd的文件并重定向使其将正确的查找结果输出到file.out中find /etc/ -name passwd 2> file.out -----------> 查找/etc目录下所有名字叫passwd的文件并重定向使其将错误的找结果输出到file.out中find /etc/ -name passwd &> file.all -----------> 查找/etc目录下所有名字叫passwd的文件并重定向使其将所有查找结果输出到file.all中
"Note: Redirects will overwrite the contents of the original file!!!" "
Append content to File:
保持原文件内容不变的情况下把输出追加到文件之后 >> 追加正确输出 2>> 追加错误输出 &>> 追加所有输出
That is, a > symbol is overwritten, and 2 > Symbols are appended.
Give some chestnuts:
find /etc/ -name passwd >> westosfind /etc -name passwd 2>> westosfind /etc -name passwd &>> westos
In the final file, there will be three redirects of all output content
3. Piping
把上一程序(命令)的输出变成下一个程序的输入(管道是用来组合多条命令的使用的)栗子: ls /bin | wc -l -----------> 查询/bin下所有文件然后把结果作为输入去统计这些文件的个数
Note: The output from the pipeline becomes input and cannot be saved in the file. In addition, the wrong output in the system cannot be piped.
tee:复制输出到指定位置举个栗子: ls /bin | tee file | wc -l执行命令:cat file 可以看到file中已经保存了ls /bin的输出
grep: Global Search expression
从结果中过滤出包含关键字的输出
Linux (radhat) Basic Learning-vim Editor and file input and output