本博客将会详细讲解如何在Linux中如何编辑配置文件
输出重定向
对于一台设备而言,存在着两种设备,分别负责输入与输出:
显示器(输出设备>) 与 键盘(输入设备<)
对于Linux系统而言,我们可以使用 echo
命令在终端上输出一些我们想要的内容
即使是命令错误,Linux也会输出错误信息到终端上
对于这两种情况,我们分别可以理解为标准输出设备/0 与 标准错误输出/2
在未来的一些比较专业的需求中,也许我们需要保存一些数据,或者是日志错误信息等
这时候我们就需要使用到输出中的输出重定向
输出重定向的标识符为>
一般是下面的这种使用方式
可以看到,echo
原本会将haha输出到终端上,现经过>
输出重定向后到一个文件中
这里便多创造了一个文件,cat
显示该文件内容,发现是原本该输出在终端的haha
这便是输出重定向的作用
追加重定向
但是假如我们想要重定向其他信息到文件中,继续使用>会发现原来的信息被覆盖了
这时候我们就需要使用到追加重定向>>
这里我们使用>>
将I Love Linux!追加重定向到1.txt文件中
cat
显示该文件内容,可以看到,在原有的hehe基础上,换行添加了I Love Linux!的数据
错误重定向
如果我们这里直接使用>>
追加重定向到一个新的文件中,会发现与>
效果一致
所以与输出重定向不同的是,追加重定向并不会将原来的信息覆盖
而是在原有的基础上继续添加数据
我们也可以使用错误重定向2>
将错误信息给重定向到文件中
由于这里使用了大写的Echo,终端在正常情况下会报错
但是我们使用2>
错误重定向将错误信息输出在3.txt文件中
使用cat
显示该文件内容,可以发现错误信息被输出了出来
这个方法可以运用在未来需要导出错误报告数据的生产环境中
构造管道
什么是管道?
管道拥有两个参数:命令1 | 命令2
(|即为管道)
他的作用是将命令1的结果传递给命令2,作为命令2的第一个参数继续执行
我们下面举个例子来观察一下现象:
bc
命令是一个用于执行数学计算的命令行工具。它支持各种数学运算,包括整数和小数的加减乘除,取余数,指数运算等
这里我们使用echo 10-5 | bc
的命令,最后在终端上输出5
过程是首先echo
将10-5作为输出值,也就是返回值,通过管道传递给bc
bc
接收到10-5作为参数,随后将其计算出值为5,输出在终端上
当然,这只是一个很简单的例子,真正在生产中往往还有比这更加复杂的使用情景
除此之外,|
管道还有一个非常强大的功能:tee
tee是三通,下面使用一个例子来方便理解:
这里我们使用echo 233666 | tee 4.txt
的命令来进行操作
可以看到,命令执行完毕之后首先在终端上输出了233666
随后使用ls
查看当前文件可以发现多了一个文件4.txt
使用cat
显示4.txt文件内容,可以发现4.txt的文件内容是233666
这便是三通的用法
首先将233666输出至终端上,并将输出值保留,存放至4.txt中
当然,tee还有非常强大的一个选项 -a
他的使用效果如下:
我们这里使用了echo 666233 | tee -a 4.txt
的命令来进行操作
与上面一样,首先是在终端中输出了666233的内容
随后显示4.txt的文件却发现
666233被追加在了233666的后面
这便是tee -a
的使用效果:追加(等同于>>)
这个方法一般使用在权限操作文件的生产中,在未来会提及
vim编辑器
Vim是一个在Linux和其他Unix操作系统上广泛使用的文本编辑器
它包含了很多高级的特性和功能
如语法高亮、智能缩进、宏、光标位置记录、多级撤销、拼写检查和补全等
我们一般在Linux进行文件编辑修改一般都是使用vim编辑器
在Linux中,我们可以使用vim + [文件名]
或者 vi + [文件名]
使用vim编辑器打开一个文件进行编辑操作(vi是vim的别名)
三种环境
vim编辑器中有三种模式:命令模式、编辑模式与行底模式
- 命令模式:进入vim默认是命令模式,在此模式下无法编辑,需要按i进入编辑模式
- 编辑模式:在此模式下可以进行文本编辑,按esc键退出编辑模式回到命令模式
- 行底模式:想要进入此模式,需要在命令模式下输入’:’
下面给大家举一个实例来观察一下:
首先我们创建一个名为test.txt的文件
随后使用vim test.txt命令在vim中打开此文件
进入之后显示如图上
现在我们所在的是命令模式
我们需要在此模式下按键盘i键进入编辑模式
进入编辑模式后如图所示,我们当前便可以在此页面输入或修改我们想要的信息
输入结束后我们需要保存并退出vim编辑器,在编辑模式下按esc退出回到命令模式
随后在此页面输出键盘组合键Shitf + ;(也就是输入’:')进入行底模式
在行底模式输入w(保存)q(退出)即可保存并退出vim编辑器
推出之后我们再使用cat test.txt
命令来查看文件内容
可以看到,文件已经被保存了,这就是vim的最简单的使用方法
除了上面三种模式之外,下面还有两种模式需要大家了解: - 视图模式:在命令模式下使用v进入(选择单个单词)使用V进入(选择一行数据)
- 块模式:在命令模式下用键盘组合键Ctrl+v进入
快捷键
- 命令模式:
键盘'h'
(光标左移)
键盘'l'
(光标右移)
键盘'j'
(光标下移)
键盘'k'
(光标上移)
键盘'w'
(单词后移)
键盘'b'
(单词前移)
键盘'gg'
(光标移到第一行)
键盘'G'
(光标移到最后一行)
键盘'y'
(复制)
键盘'yw'
(复制一个单词)
键盘'yy'
(复制一行)
键盘'p'
(粘贴在光标下面)
键盘'P'
(粘贴在光标上面)
键盘'x'
(删除光标所在字符)
键盘'X'
(删除光标前的字符)
键盘'u'
(撤销)
键盘'dw'
(删除一个单词)
键盘'dd'
(删除一行)
键盘'd^'
(删除到行首)
键盘'd$'
(删除到行尾)
键盘'Ctrl + r'
(撤销撤销操作) - 编辑模式:
键盘'I'
(行首插入)
键盘'a'
(光标前插入)
键盘'A'
(行末插入)
键盘'o'
(光标下开一行)
键盘'O'
(光标上开一行)
键盘's'
(删除光标所在字符,并进入命令模式)
键盘'S'
(删除光标所在行,并进入命令模式) - 行底模式:
set nu
显示行号
set nonu
取消显示行号
w
保存文件
w /newfile
另存为其他文件
q
未保存退出
q!
放弃对内容修改并强制退出
s/old/new
将当前行中所查找到的第一个old字符替换为new字符
s/old/new/g
将当前行中查找到的所有old字符全部替换为new字符
#,#s/old/new/g
在行号"#,#"范围内查找到的所有old字符全部替换为new字符
%s/old/new/g
将整个文件中查找到的所有old字符全部替换成new字符
#,$s/old/new/g
将#行到末行中查找到的所有old字符全部替换成new字符