详解linux系统输入输出管理和vim的常用功能

####系统中输入输出的管理####

1.理解系统的输入输出重定向

输入重定向是指把文件导入到命令中,而输出重定向则是把原本要输出到屏幕的数据信息写入到指定文件中。

2.管理输入输出的符号

##输出重定向

>       ##重定向正确输
   2>       ##重定向错误输出
   &>       ##重定向所有输出

注意:

重定向会覆盖原文件内容

>>     ##不会覆盖原文件内容
   2>>     ##错误输出,不覆盖
   &>>     ##所有输出,不覆盖

####find命令####

用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

常用选项:

-group<群组名称>:查找符合指定之群组名称的文件或目录;

-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;

-nouser:找出不属于本地主机用户识别码的文件或目录;

-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;

示例如下:

  

####管道的应用####

1.管道的作用

“|” 管道的作用是把前一条命令的输出变成后一条命令的输入

注意:

管道只允许正确输出通过

通过管道的输出将会变成输入,而变成输入的这些输出是会被第二条命令处理的

如果需要保存输出内容,那么需要复制一份输出,用到的命令是 “tee”

此实验在普通用户下操作:

find /etc/ -name passwd | wc -l   ##会看到的结果为2,因为错误输出不能通过管道
find /etc -name passwd 2>&1|wc -l  ##会看到19,因为编号为2的输出被“2>&1”转换为编号1
find /etc -name passwd 2>&1|tee file |wc -l ##保存一份输出到file再统计行数

小结:2>&1与&> 的差距

&> 是重定向输出, 所以需要说明重定向到哪里

2>&1 没有重定向,还是find的输出指令 用管道符转为输入

 

####输入重定向####

cat >file <<EOF
hello
WORLD
EOF

####vim的常用功能##

1,vim的模式

命令模式

浏览文件,临时更改vim的工作方式,对字符批量处理

插入模式

对文件内容进行编辑

退出模式

退出vim程序

2,命令模式

1) 调整vim的工作方式

在vim程序中

:set 调整参数

参数如下:

:set nu             ##在每一行前显示行号

:set nonu           ##取消行号显示

:set mouse=a        ##显示鼠标

:set cursorline     ##显示行线

注意:

在vim程序中设定的vim工作方式是临时的,在vim关闭后会还源

如果要永久保存vim的工作方式需要编辑(添加或删除)vim的配置文件:/etc/vimrc

2 ) 字符的搜索

/关键字

n向下匹配

N向上匹配

3)字符的管理

y

yl         ##复制一个字母<C-F12>

y3l        ##复制3个字母

yw         ##复制一个单词

y3w        ##复制3个单词

yy         ##复制1行

y3y        ##复制3行

d

dl         ##删除一个字母

d3l        ##删除3个字母

dw         ##删除1个单词

d3w        ##删除3个单词

dd         ##删除1行

d3d        ##删除3行

c

cl         ##剪切1个字母

c3l        ##剪切3个字母

cw         ##剪切1个单词

c3w        ##剪切3个单词

cc         ##剪切1行

c3c        ##剪切3行***"注意***:在剪切之后vim会进入插入模式,如果要粘贴需要按【esc】退出插入模式然后按p粘贴"

p           ##粘贴

u           ##撤销

ctrl+r        ##恢复撤销

4)vim可视化模式

ctrl + v      ##在这个模式下可以选择区域操作批量添加字符

ctrl + v 选中要加入字符所在的列--->按大写的I--->加入字符--->按【esc】
5)字符的替换

:%s/要替换的字符/替换成的字符/g

:%s/:/@/g         ##替换全文的:为@

:1,5s/:/@/g       ##替换1-5行的:为@
注意:

%s标示所有的行

g标示所有的列

  

6)vim 的分屏功能

ctrl+w s        ##上下分屏

ctrl+w v        ##左右分屏

ctrl+w c        ##关闭光标所在屏幕

ctrl+w 上下左右     ##光标移动到指定屏幕

:sp file2       ##同时编辑当前文件和file2

7)在命令模式下光标的移动

gg        ##光标移动到文件的第一行

G         ##光标移动到文件的最后

:数字      ##光标移动到到指定的行

#####插入模式######

1

)插入模式下光标的移动

i      ##光标所在位置插入

I      ##光标所在行行首插入

o      ##光标所在行下一行插入

O      ##光标所在行的上一行插入

a      ##光标所在字符的下一个字符插入

A      ##光标所在行的行尾插入

s      ##光标所在字符删除并插入

S      ##光标所在行删除并插入

####vim的退出模式#####

:q      ##退出,在文件内容没有被改变时使用

:wq     ##退出保存

:q!     ##强制退出不保存,在改变文件后不想保存时使用

:wq!    ##强制退出保存  在对只读文件编写时使用

注意:

所编辑的只读文件必须是当前用户的文件

或者当前操作的用户是root

总结

以上所述是小编给大家介绍的linux系统输入输出管理和vim的常用功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • 在linux下玩转带有超时时间的connect函数

    在之前的文章中,我们在Windows下玩过带有超时时间的,本文我们在linux下来玩.在某次面试中,还被遇到了这个问题,有意思. 直接上客户端代码: #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string

  • linux中alarm函数的实例讲解

    linux alarm函数简介 上代码: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <signal.h> int main(int argc, char *argv[]) { alarm(5); sleep(20); printf("end!\n"); return 0; } 运行5秒后,内核向进程发出SIGALRM信息,进程被终止,所以上述程序

  • linux shell中if的各种判断

    shell编程中使用到得if语句内判断参数 –b当file存在并且是块文件时返回真 -c当file存在并且是字符文件时返回真 -d当pathname存在并且是一个目录时返回真 -e当pathname指定的文件或目录存在时返回真 -f当file存在并且是正规文件时返回真 -g当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -k当由pathname指定的文件或目录存在并且设置了"粘滞"位时返回真

  • linux shell之控制台打印各种颜色字体和背景的实现方法

    1 问题 控制台打印各种颜色字体和背景 字体颜色 #30:黑 #31:红 #32:绿 #33:黄 #34:蓝色 #35:紫色 #36:深绿 #37:白色 背景颜色 #40:黑 #41:深红 #42:绿 #43:黄色 #44:蓝色 #45:紫色 #46:深绿 #47:白色 echo -e "\e[43;35m chenyu\e[0m hello word" 比如上面的命令,43是背景颜色,35是字体颜色, \e[0m 是还原本色 2 代码实现 这里写的是color.sh文件如下 #!/b

  • 详解linux下fsevents模块引起的npm ls报错解决办法

    有个项目在mac下开发,安装包npm i,一切正常: 把这个项目放到linux机器上,安装包npm i,报了一堆warning: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fse

  • linux下搭建go环境的安装配置讲解

    linux下搭建go环境很简单: 1.下载go1.2.1.linux-386.tar.gz,网上到处有类似包,并放到linux目录下. taogeqq@taogeqq-virtual-machine:~/myspace$ ls a.out go1.2.1.linux-386.tar.gz test.cpp test.go taogeqq@taogeqq-virtual-machine:~/myspace$ 2.  切换到root用户,在root下解压,解压即安装,多么绿色的软件啊: root@t

  • linux下查看so或可执行程序的依赖库

    在linux下查看so或可执行程序的依赖库 Linux下可执行程序包括可执行程序exe和so, 两者文件都是ELF打头的. objdump -x libxxxxx.so | grep NEEDED objdump -x 可执行程序名 | grep NEEDED 或 arm-hisiv300-linux-objdump -x 可执行程序 | grep NEEDED arm-hisiv300-linux-readelf -a 可执行程序 | grep NEEDED linux之如何查看哪些进程在使用

  • linux shell之通过标识测试文件系统属性的方法示例

    1 通过标识测试文件系统属性 [ -f $file_var ] :如果给定的变量包含正常的文件路径或文件名,则返回真. [ -x $var ] :如果给定的变量包含的文件可执行,则返回真. [ -d $var ] :如果给定的变量包含的是目录,则返回真. [ -e $var ] :如果给定的变量包含的文件存在,则返回真. [ -c $var ] :如果给定的变量包含的是一个字符设备文件的路径,则返回真. [ -b $var ] :如果给定的变量包含的是一个块设备文件的路径,则返回真. [ -w

  • linux的cut命令用法总结

    要用到,来mark一下: ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt abc abcd ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1 a a ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 2 b b ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-2 ab ab ubuntu@VM-0-15-

  • linux shell之pushd、popd和dirs的使用讲解

    1 问题 我们有时候需要保存多个路径,上下键切换不方便,用cd-只能到上个目录,我们可以用dirs和pushd和popd 2 dirs.pushd.popd dirs: 这个命令显示栈里面所有的路径,一定会包含当前路径,常用参数如下 dirs -v 显示栈里面的所有路径和下标,通过下标,我们可以用pushd +下标到这个目录,然后popd+下标把这个路径在栈里面弹出来, dirs -c 清除栈里所有路径,但是当前路径不会删除 pushd:我们可以添加目录到栈(dirs)里面,比如添加当前目录pu

随机推荐