####管理输入与输出####


在linux系统中,正确输出编号为1,错误输出编号为2.


使用student用户执行find    /etc    -name    passed命令,因为student用户的权限问题会出现如下情况:

[kiosk@foundation44 Desktop]$ find /etc/ -name passwd
find: ‘/etc/pki/CA/private’: Permission denied        ##报错:没有权力进入##
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
/etc/passwd        ##正确输出##
find: ‘/etc/audit’: Permission denied
/etc/pam.d/passwd
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/vmware-tools/GuestProxyData/trusted’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
[kiosk@foundation44 Desktop]$


find /etc -name passwd > file           ##重定向正确输出##
find /etc -name passwd 2> file          ##重定向错误输出##
find /etc -name passwd &> file          ##重定向所有输出##
注:>,2>,&>都是命令输出将file文件的原内容覆盖;

> file            ##清空文件file##


find /etc -name passwd >> file          ##追加正确输出##
find /etc -name passwd 2>> file         ##追加错误输出##
find /etc -name passwd &>> file         ##追加所有输出##
注:>>,2>>,&>>都只是将命令输出追加到file文件内容后面,不会覆盖原内容;


| 管道符:管道符的作用是将前一条命令的输出变成管道符之后命令的输入
例如:ls /bin | wc -l         ##统计ls /bin 命令输出的行数##

[kiosk@foundation44 Desktop]$ ls /bin | wc -l
1962
[kiosk@foundation44 Desktop]$


系统中错误的输出是无法通过管道符的,但是用 2>&1 可以把错误的输出编号由2变成1
tee     复制输出到指定位置
例如:date |tee file |wc -l           ##tee命令复制date命令的输出到file中,并统计输出行
数##

[kiosk@foundation44 Desktop]$ date | tee file | wc -l
1
[kiosk@foundation44 Desktop]$ cat file
Thu Mar  2 20:05:14 CST 2017
[kiosk@foundation44 Desktop]$



####vim####


vim的三个模式:编辑模式,命令模式,可视模式


进入编辑模式(即插入模式):


i            ##光标所在位置插入##
l            ##光标所在行行首##
a            ##光标所在字符的下一个位置##
A            ##光标所在行行尾##
o            ##光标所在行下一行##
O            ##光标所在行上一行##
s            ##删除光标所在字符插入##
S            ##删除光标所在行插入##


命令模式下:


/关键字            ##搜索关键字##
n向下匹配,N向上匹配


:数字            ##移动到指定的行##
G            ##文件最后一行##
gg            ##文件第一行##


:set nu            ##行号添加##
:set nonu            ##取消行号##
:set mouse=a            ##添加鼠标选择##
:set cursorline            ##行线显示##

注:永久设定需将参数加入到vim的配置文件/etc/vimrc

:q            ##当用vim打开文件但没有对字符作任何操作时可直接退出##
:q!            ##当用vim打开文件并对字符作操作,放弃所有操作退出##
:wq            ##保存退出##
:wq!            ##强行保存退出,对超级用户及文件所有人生效##



1.字符的复制

yl            ##复制一个字母##
y3l            ##复制3个字母##
yw            ##复制一个单词##
y3w            ##复制3个单词##
yy            ##复制一行##
y3y            ##复制3行##
p            ##复制完成后按“P”粘贴##

2.字符的删除

dl            ##删除一个字母##
d3l            ##删除3个字母##
dw            ##删除一个单词##
d3w            ##删除3个单词##
dd            ##删除一行##
d3d            ##删除3行##

3.字符的剪切
cl            ##剪切一个字母##
c3l            ##剪切3个字母##
cw            ##剪切一个单词##
c3w            ##剪切3个单词##
c3c            ##剪切3行##
esc ---> p            ##剪切过后会进入到插入模式,在执行粘贴动作时一定要退出插入
模式##


4.批量修改字符

:%s/原有字符/替换后字符            ##只替换每一行中出现的第一个原有字符##
:%s/原有字符/替换后字符/g            ##替换所有##
:%s/\t//g            ##把全文的tab键替去掉,\t 表示tab键##
:%s/^\ *//g            ##把全文行首的空格去掉,"^\ *"表示行首的空>格##
:%s/^\#\ */#/g            ##把全文#后的空格去掉##


可视模式:


在命令模式下按“ctrl+v”进入到可视模式,在可视模式下可以区域选择字符


分屏功能

ctrl+w s            ##上下分屏##
ctrl+w v            ##左右分屏##
ctrl+w c            ##关闭光标所在屏幕##
ctrl+w 上下左右            ##光标移动到指定屏幕##
:sp file2            ##同时编辑当前文件和file2##

批量添加字符
ctrl+v进入可视模式

---->选中要加入字符所在列
---->按“I”进入插入模式,写入要加入的字符
---->按esc


补充:

vimtutor        ##vim的手册
:q              ##退出vimtutor


####gedit####

ctrl+n            ##在gedit中打开一个新的tab##
ctrl+s            ##保存文件##
ctrl+o            ##打开文件##
ctrl+x            ##剪切字符##
ctrl+v            ##粘贴字符##
ctrl+c            ##复制字符##
yelp help:gedit            ##gedit的图形手册##



练习题:

[root@localhost Desktop]# grep ich /usr/share/mime/packages/freedesktop.org.xml |tee /root/lines        ####复制/usr/share/mime/packages/freedesktop.org.xml文件中ich所在行,并复制到/root /lines文件中####
[root@localhost Desktop]# vim /root/lines        ####用vim打开/root/lines文件####
在vim的命令模式下输入:%s/\ //g        ####换掉文件中的空格(注意:\ /之间是空格键)####