文件重定向
Linux 中认为一切皆 文件
文件 | 文件描述符(数字) | |
---|---|---|
标准输入 | 从键盘获取数据 | 0 |
标准输出 | 在屏幕上显示正确的数 据 | 1 |
标准错误 | 在屏幕上显示错误的数据 | 2 |
1、使用 > 进行文件重定向
默认是把标准输出内容重定向到其他文件
使用:命令 (文件描述符)> 文件
history > a | 将history的输出内容写入到文件a 中 |
---|---|
lllll 2> a | 2表示标准错误,将错误的输出导入到文件 a 中 |
注意:> 会将右侧的文件清空,再写入新的内容
2、>> : 不清空 追加写
ls >> a
3、一个特殊的文件:/dev/null
所有写入到该文件的内容都会被清空
ls > /dev/null 2>&1
&1 前面的&不能丢,否则就认为1是一个文件
vim使用
文件编辑
1、图形界面的编辑器: gedit
2、终端文件编辑:vi ----> vim (vi加强版)
命令行模式
1、跳转
G | 跳到最后一行 |
---|---|
gg | 回到第一行 |
nG | 跳到第 n 行 |
n+方向键 | 移动 n 个单位 |
数字:0 | 跳到当前行的起始位置 |
$ | 跳到当前行的末尾 |
w | 往后跳一个单词 |
nw | 往后跳 n 个单词 |
2、删除
dd | 删除当前行 |
---|---|
ndd | 删除 n 行 |
dw | 删除某个单词 |
D | 删除当前行光标后面的内容 |
d0 | 删除当前行光标前面的内容 |
x | 删除单个字符 |
3、恢复
u | 恢复上一次操作 |
---|---|
ctrl+r | 撤销上一次恢复 |
4、复制粘贴
yy | 复制 |
---|---|
nyy | 复制 n 行 |
yw | 复制一个单词 |
y$ | 复制当前行光标后面的内容 |
y0 | 复制当前行光标前面的内容 |
p | 粘贴 |
np | 粘贴 n次 |
5、其他
r | 替换单个字符 |
---|---|
R | 下次输入的内容依次替换光标后面的内容 |
大括号对应 | % |
自动格式化程序 | gg=G |
底行模式
1、查找
/要查找的内容 | 从上往下找 |
---|---|
?要查找的内容 | 从下往上找 |
2、替换
s/old/new | 用 new 替换old 只替换当前行的第一个old |
---|---|
s/old/new/g | 用 new 替换当前行所有的old |
m,ns/old/new/g | 用 new 替换 m 和 n 之间的所有 old |
%s/old/new/g | 用 new 替换全文的 old |
%s/old/new/gc | 用 new 替换全文的 old,替换的时候会提示 |
3、分屏
sp 文件名 | 垂直分屏,默认是当前文件 |
---|---|
vsp 文件名 | 水平分屏,默认是当前文件 |
Ctrl+ww(命令行模式) | 切换分屏 |
4、其他
! 命令 | 执行外部命令 |
---|---|
set nu | 设置显示行号 |
set nonu | 不显示行号 |
syntax on | 语法高亮 |
syntax off | 取消语法高亮 |
Vim 配置
vim 的配置文件:/etc/vim/vimrc
-
请在 /tmp 这个目录下建立一个名为 vitest 的目录;
cd tmp
mkdir vitest -
进入 vitest 这个目录当中;
cd vitest -
将 man.config 拷贝到本目录底下
cp /home/share/man.config /tmp/vitest/man.config -
使用 vim 开启本目录下的 man.config 这个档案;
vim man.config -
在 vim 中设定一下行号;
shift+:
set nu -
移动到第 58 行,向右移动 40 个字符,请问您看到的双引号内是什么目录?
58G
40+右方向键 -
移动到第一行,并且向下搜寻一下“bzip2”这个字符串,请问他在第几行?
gg
/bzip2 -
接着下来,我要将 50 到 100 行之间的 man 改为 MAN,并且一个一个挑选是否需要修改,如何下达指令?
shift+:
50,100s/man/MAN/gc -
修改完之后,突然反悔了,要全部复原,有哪些方法?
u
shift+:+q! -
我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后;
51G
10yy
G
p -
删除 11 到 30 行之间的 20 行;
11G
20dd -
将这个文件另存成一个 man.test.config 的文件;
shift+: w man.test.config -
到第 29 行,并且删除 15 个字符;
29G
15x -
储存后离开
shift+:
x