分享

linux基础20课03,03.管道、重定向、vim编辑器 晓桂科技

 苏醒的贝壳 2018-04-29

管道、重定向、vim编辑器 多操作几次自然而然就记住了

一. 管道

将一个命令的输出(结果)作为输入给另一个命令处理,管道可以有多个

# stat 1 | tail -3

# tail -5 /etc/passwd |head -1

# cat /etc/passwd |wc -l

wc 统计有多少行,字符等

-l lines,行数

-L 字符串最大长度(不包含结束符)

-c/-m 字符(linux系统中的字符串有一个结束符‘\0’)

-w 单词

# cat /etc/passwd |grep root |wc -l

grep 查找内容

# cd /etc

# grep root * --表示在当前目录的所有文件里查找有root关键字的行

处理字符串命令:

cut --切割

-d --分割符

-f --列 ,负数也可以

sort --排序

-n --按照数字大小排序,从小到大

-r -n --按照数字大小排序,从大到小

uniq --重复的次数

-c --重复次数

tr --删除或替换字符串(替换的可以是字母、数字、符号等)

-d --删除

# cat /etc/passwd | head -1 | cut -d':' -f2

# cat /etc/passwd | head -1 | cut -d':' -f1,2

# cat /etc/passwd | head -1 | cut -d ':' -f -2

# cat /etc/passwd | cut -d':' -f3 | sort -n

# cat /etc/passwd |cut -d':' -f7 | uniq -c

# cat /etc/passwd | head -1 | tr ':' ',' --将':'替换成','

# cat /etc/passwd | head -1 | tr -d ':'

# cat /etc/passwd | head -1 | tr ':' '\n'

# cat /etc/passwd | head -1 | tr ':' 'A'

# cat /etc/passwd | head -1 | tr 'root' 'ROOT'

二. 重定向

0 标准输入(stdin) ----- 终端 --------标准输出(stdout) 1

错误输出(stderr)

2

/dev/stdin 标准输入设备(键盘)

/dev/stdout 标准输出设备

/dev/stderr 标准输出设备

# ls /proc/self/fd/

0 1 2 3 --0,1,2系统自动创建

标准输入:指你键盘的输入

标准输出:指结果里正确的输出,一般的设备是屏幕,可以用> 或者 1> 来重定向

错误输出:指结果里错误的输出,一般的设备是屏幕,可以用 2> 来重定向

将本来输出到屏幕的内容输出到其他地方

# ls > 1.txt --重定向到某个文件(标准输出)

# ls abc 2> 1.txt --重定向到某个文件(标准出错)

# ls &> 1.txt --&,表示1,2,清空内容再写入

# ls 1.txt aaa > 1.txt 2>&1 --2>&1与&>作用一样

# ls abc &>> 1.txt -->>,追加内容

# ls install.log.syslog fdsafasf 1> 1.txt 2> 2.txt

# cat 1.txt > /dev/null --/dev/null类似一个黑洞设备

# echo 123 > 1.txt --覆盖之前的内容

# echo 456 >> 1.txt --追加内容

# wc -l < 1.txt --将文件的内容重定向出来

2

# cat > 1.txt

hello

hello --ctrl+d结束

# cat 1.txt

hello

hello

# cat > 123.txt << EOF --EOF是end of file的缩写,就是一个标记

> 111

> 222

> EOF

# cat >> 123.txt << HAHA --相比于上一条,这是追加内容,而且标记不一定要用EOF,只要前后一致成对出现就可以

> 333

> 444

> HAHA

三. vim编辑器的使用

vi vim (增强版vi,现在基本各种linux版本都带有vim)

vi 有三种模式:

1,一般普通模式:

2,编辑模式: i I o O a A r R

3,命令行模式: : / ?

一般普通模式:

移动光标的方法

h 向左箭头键(←) 光标向左移动一个字符

j 向下箭头键(↓) 光标向下移动一个字符

k 向上箭头键(↑) 光标向上移动一个字符

l 向右箭头键(→) 光标向右移动一个字符

ctrl+b 向上翻页 = page up

ctrl+f 向下翻页 = page down

+ 光标移动到非空格符的下一行

- 光标移动到非空格符的上一行

0 行首

$ 行尾

G 文件最后一行

gg 文件第一行

n 移动n行

查找

/xxx或者?xxx 查找某个单词

n 向下接着找

N 向上接着找

替换(switch)

:n1,n2s/old/new/g 从n1到n2行将old替换成new,g表示替换所有的(global)

:1,$s/old/new/g 将整个文件的old替换成new

:%s/old/new/g 将整个文件的old替换成new

:%s#old#new#g 将整个文件的old替换成new

:1,$s/old/new/gc c=确认(confirm)

复制粘贴和删除

x,X x向后删除一个字符,X向前删除一个字符

dw 删除一个单词 word

dd 删除一行 delete

ndd 删除n行

dG 删除光标所在行到文件最后一行的内容

d$ 删除光标所在处,到该行的最后一个字符

d0 删除光标所在处,到该行的最前面一个字符

yy 复制一行 yank

nyy 复制n行

p,P 粘贴 paste

u 还原,撤销 undo

ctrl+r 重做

插入模式:

i,I 光标所在处插入

o,O 下一行插入

a,A 光标所在下一个字符处插入

r,R r替换一个字符,R会一直替换光标所在的文字,直到按下ESC为止

[Esc] 退出编辑模式,回到一般模式中

指令模式:

:w 存档(write)

:q! quit,退出,!,强制

:qa 退出所有的窗口

:wq! 保存并退出

:x 保存并退出

ZZ 保存并退出

:w [filename] 另存为

:r [filename] 将另外一个文件读入到正在编辑的文件

:n1,n2 w [filename] 将n1到n2的内容储存成filename文件

:n n是数字,快速定位到n行($)

vim 1.txt +100 打开1.txt光标直接到100行

:set nu 显示行号

:set nonu 取消行号

:set ic(ignorecase 的缩写) 忽略大小写

:set noic(noignorecase 的缩写) 不忽略大小写

区块选择:

v 字符选择

V 行选择

ctrl+v 区块选择

y 将反白的地方复制

d 将反白的地方删除

p 粘贴

n > 右移

n < 左移

多窗口功能:

:sp [filename] 水平多窗口 sp = splite 分割

:vsp [filename] 垂直多窗口 v = vertical splite

ctrl+w+w 在不同的窗口之间切换

vim环境设定:

/etc/vimrc 全局配置文件

~/.vimrc 用户的配置文件 --手动创建

作业:

创建一个文件命名为test.txt,把/etc/passwd文件的内容全部导入test.txt中

把test.txt文件中的第10行到15行删除

第1到第9行复制到文件的最后

把所有的:号替换成*号,所有的bin替换成sbin

保存退出

很多命令 是要多操作几次才能记住的,其实命令也不多的,经常用习惯就好了,不难的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多