linuxc第三天

文件重定向
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

  1. 请在 /tmp 这个目录下建立一个名为 vitest 的目录;
    cd tmp
    mkdir vitest

  2. 进入 vitest 这个目录当中;
    cd vitest

  3. 将 man.config 拷贝到本目录底下
    cp /home/share/man.config /tmp/vitest/man.config

  4. 使用 vim 开启本目录下的 man.config 这个档案;
    vim man.config

  5. 在 vim 中设定一下行号;
    shift+:
    set nu

  6. 移动到第 58 行,向右移动 40 个字符,请问您看到的双引号内是什么目录?
    58G
    40+右方向键

  7. 移动到第一行,并且向下搜寻一下“bzip2”这个字符串,请问他在第几行?
    gg
    /bzip2

  8. 接着下来,我要将 50 到 100 行之间的 man 改为 MAN,并且一个一个挑选是否需要修改,如何下达指令?
    shift+:
    50,100s/man/MAN/gc

  9. 修改完之后,突然反悔了,要全部复原,有哪些方法?
    u
    shift+:+q!

  10. 我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后;
    51G
    10yy
    G
    p

  11. 删除 11 到 30 行之间的 20 行;
    11G
    20dd

  12. 将这个文件另存成一个 man.test.config 的文件;
    shift+: w man.test.config

  13. 到第 29 行,并且删除 15 个字符;
    29G
    15x

  14. 储存后离开
    shift+:
    x

猜你喜欢

转载自blog.csdn.net/weixin_43667345/article/details/84064938