在系统中用普通用户执行 find /etc -name passwd 时,因为权限的问题,所以会出现正确输出和错误输出。在Linux系统中,正确输出的编号为1,错误输出编号为2
在student用户下执行该命令后,会发现有两个正确输出,其他都是Permission denied没有权限。
重定向正确输出: find /etc -name passwd > file (这个命令的意思就是把上面执行命令后的正确输出放入文件file中)
当执行这条命令之后,正确的输出会被放到file文件中。
重定向错误输出: find /etc -name passwd 2> file(这个命令的意思是把上面执行的find命令后的错误输出放到file文件中)
重定向所有输出: find /etc -name passwd &> file(这个命令的意思是把上面执行的find命令后的所有输出放到file文件中)
注意: >, 2> ,&> 都会覆盖源文件内容
附加:>file 清除file文件里的内容
如果想要不覆盖源文件内容,可以执行以下三条命令:
find /etc -name passwd >> file 在file内容后面加上find的正确输出
可以看到,我在执行>>命令之前,先给file文件里写入了123 456,然后执行>>命令后,正确输出加在了123 456之后,并没有覆盖掉源文件。
find /etc -name passwd 2>> file 在file内容后面加上find的错误输出
可以看到,我在执行2>>命令之前,先给file文件里写入了123 789,然后执行2>>命令后,错误输出加在了123 789之后,并没有覆盖掉源文件。
find /etc -name passwd &>> file 在file内容后面加上find的所有输出
可以看到,我在执行&>>命令之前,先给file文件里写入了qwe abc,然后执行&>>命令后,错误输出加在了qwe abc之后,并没有覆盖掉源文件。
注意:>> 2>> &>> 不会覆盖源文件内容,会把相应的输出字符方到文件的最后
管道 |:管道的作用是将上一条命令中的输出变成下一条命令的输入 注意:执行管道命令必须要有输出
例如: ls /bin | wc -l 统计ls /bin 命令的输出行数
注意:系统中的错误输出是无法通过管道的,但是可以用 2>&1 命令将错误输出编号由2变成1
可以看出,当我用管道命令把find命令的输出变成wc -l命令的输入时,还是会有错误输出和一个数字2,这就表示,只有正确输出才能通过管道,所以当所有输出结果通过管道时,错误输出被拒之门外,正确输出执行了wc -l统计行数的命令。但是当我用2>&1命令后,所有输出都可以通过管道了,它其实是把错误输出的编号由2变成了1,从而顺利的通过管道,执行了wc -l的命令。
tee 复制输出到指定的位置
格式:date |tee file tee命令复制date命令的输出到file中
可以看出,tee命令也会i覆盖file文件里的内容。
同样,可以用>>命令,如上图,这样就不会覆盖源文件的内容了
管道命令可以重复多次使用,例如:date |tee file |wc -l tee命令复制date命令的输出到file中,并统计输出行数
在vim一场退出时,系统中会在所编辑的文件目录中生成.file.swp,vim再次编辑此文件时会出现相应提示
按 "o" open 打开
按 "e" edit 编辑
按 "r" recover 覆盖
按 "d" delete .swap file 删除
按 "q" quit 放弃
在vim进入一个内容较多的文件时,是没有行号的,可能看起来非常难受,所以我们可以添加行号,在vim文件后 按 : set nu,然后回车就可以看到行号了。
如果想要取消行号,按: set nonu
如果要添加鼠标选择,按: set mouse=a
这个时候就可以用鼠标选择了。
如果要显示下划线,按:set cursorline
以上的设定方式都是临时的,永久的设定方式为:vim /etc/vimrc(此文件为vim的配置文件,在此文件最后加入以上参数,就可以永久设定)
如果vim打开一个文件,而这个文件又非常大,找自己想要找的东西就会非常困难,那么此时就可以用关键字搜索
在vim打开文件后,输入/关键字就可以找到自己想要找的东西了,n是向下匹配,N是向上匹配。
复制: (复制完成后按p粘贴)
yl 复制一个字母
y2l 复制两个字母
yw 复制一个单词
y3w 复制三个单词
yy 复制一行
y3y 复制三行
删除:
dl 删除一个字母
d3l 删除三个字母
dw 删除一个单词
d3w 删除三个单词
dd 删除一行
d3d 删除三行
剪切: (剪切完后会进入插入模式,然后按esc退出插入模式后按p粘贴)
cl 剪切一个字母
c3l 剪切3个字母
cw 剪切一个单词
c3w 剪切3个单词
cc 剪切一行
c3c 剪切3行
与复制和删除命令类似,这里就不放图了。
vim进入文件后在,在命令模式下按 ctrl+v 进入可视化模式,在可视化模式下可以区域选择字符
可视模式下批量添加字符:
ctrl+v 选中要加入字符所在列
按“I”进入插入模式,写入要加入的字符(注意:这里是大写I)
按esc
可视模式下批量修改字符
:%s/原有字符/替换后字符 只替换每一行中出现的第一个原有字符
:14,17s/原有字符/替换后字符/g 替换14-17行
ctrl+w s 上下分屏
ctrl+w v 左右分屏
ctrl+w 上下左右 光标移动到指定屏幕
:sp file2 同时编辑当前文件和file2
在命令模式下
:数字 移动到指定的行
在插入模式下
i 光标所在位置插入
I 光标所在行行首
a 光标所在字符的下一个位置
A 光标所在行行尾
o 光标所在行下一行
O 光标所在行上一行
s 删除光标所在字符插入
S 删除光标所在行插入
这些命令放图也看不出效果,所以这里就不放了,一般最常用的就是 i 光标所在位置插入,然后上下左右移动光标
:q 如果没有对字符作任何操作时可直接q退出
:q! 如果有操作,放弃所有操作退出
:wq 保存退出
首先我vim一个文件,然后向文件里写入了字符,然后:wq保存退出。当我再次打开这个文件时,里面的字符都在。
vimtutor vim的手册,如果有vim命令不懂的地方,可以查看手册。
ctrl+n 在gedit中打开一个新的tab
ctrl+x 剪切字符
ctrl+v 粘贴字符
ctrl+c 复制字符
以上三个命令与windows下的命令相同
yelp help:gedit gedit的图形手册