10.1基本输入输出

原创 2017年10月06日 23:22:55

1.管理输入输出

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

在系统中用普通用户执行 “student”

find /etc -name passwd

因为student用户权限问题会有以下输出

find: ‘/etc/pki/CA/private’: Permission denied ##没有进入权力,报错

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/audit’: Permission denied

/etc/passwd ##正确输出

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission
denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/grub.d’: Permission denied

/etc/pam.d/passwd ##正确输出

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/cups/ssl’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

find: ‘/etc/named’: Permission denied

这里写图片描述

由于是普通用户使用shell,普通用户的权限是小于超级用户的,所以有些文件夹是无法访问的。在上面的搜索中,找到了关于passwd 的19条信息,其中有两条是输出正确的,输出正确为1,有17条输出是错误的,输出错误为2。

这里写图片描述

find /etc -name passwd > file ##重定向正确输出

find /etc -name passwd 2> file2 ##重定向错误输出

这里写图片描述

>file表示将前面那条命令的正确是输出结果保存到file中,(由于这儿的file 使用的是相对路径,此时file 是创建在桌面上的)1表示的是正确的输出结果,可以不写.

2> file2表示重新定向错误输出,就是将错误的输出结果,写进file2中。

执行完了之后 file和file1中的内容发生改变。

find /etc -name passwd &> file2 ##重定向所有输出

就是将所有的输出结果都保存在file2中。

注意: >, 2> ,&> 都会覆盖源文件内容

>file ##清空file

find /etc -name passwd >> file ##追加正确输出

这里写图片描述

当>变为>>时,表示在原来文件的基础上,再把新产生的结果加上去,上图中表示在原来file文件的内容基础上,在追加一个正确的输出结果,所以正确是输出结果被集训保存到file 中,而错误的输出结果,被显示到shell中。

这里写图片描述

此时查看file1的时候, 会看到后面多了两行正确的输出结果。

find /etc -name passwd 2>> file ##追加错误输出

find /etc -name passwd &>> file ##追加所有输出

同样的道理,也可以追加错误的输出和所有的输出。

注意:>> 2>> &>> 不会覆盖源文件内容,会把相应的输出字符方到文件的最后。

这里写图片描述

>>表示输出,<<表示输入,end表示什么时候检测到end了就什么时候结束输入,

| 管道,管道的作用是将前一条命令的输出变成管道后命令的输入

ls /bin | wc -l ##统计ls /bin 命令输出的行数

此命令就是统计bin命令的数量,一行一个,所以有多少行就有多少个。

系统中错误的输出是无法通过管道的。

|是管道,可以把前一条命令的输出作为第二条命令的输出,只能将正确的输出传递。

用 2>&1 可以把错误的输出编号由2变成1

这里写图片描述

find /etc -name passwd >dev/null 2>&1 |wc -l
find有两种不同的输出结果,一个为1,一个为2,>dev/null表示将输出为1的丢掉,所以它就是将两个正确是结果丢掉,所以它是没有输出的,也就是统计它的行数为0,

find /etc -name passwd 2>&1 >dev/null |wc -l

这个也有两个不同的结果,但是这条命令是先执行2>&1 ,将所有的2变为1,一个有17个2,所以变了17次,它的输出结果就是17。

这里写图片描述

tee 复制输出到指定位置

date |tee file |wc -l ###tee命令复制date命令的输出到file中,并统计输出行数

2)vim

1.vim 命令模式

在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 的配置文件是,应该wq,保存并退出,然后再第二次使用vim的时候,就会出现刚刚所加进去的内容。

注意:当文件内容更改信息不确定正确与否的时候,应该先备份要更改的文件!!!

这里写图片描述

这里写图片描述

/关键字

n向下匹配

N向上匹配

直接输入/加关键字,就可以在vim中,寻找关键字,n是向下翻。N是向上翻。

3.vim命令模式下字符的管理

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个单词

cc ##剪切一行

c3c ##剪切3行

esc —> p ##剪切过后会进入到插入模式,在执行粘贴动作时一定要退出插入模式

在命令模式下管理字符的时候,要注意鼠标光标的位置。一定要看准光标的位置。

4.vim的可视化模式

在命令模式下按“ctrl+v”进入到可视模式

在可视模式下可以区域选择字符

可视模式下批量添加字符

ctrl+v 选中要加入字符所在列

按“I”进入插入模式,写入要加字符

按esc

5.批量修改字符

:%s/原有字符/替换后字符 ##只替换每一行中出现的第一个原有字符

:%s/s/7777,执行此条命令,会把每行的第一个s变成7777

这里写图片描述

:%s/原有字符/替换后字符/g ##替换所有

:%s/s/7777/g,执行此条命令,会把所有的s变成7777

这里写图片描述

:1,5s/原有字符/替换后字符/g ##替换1-5行

如果要消除每行前面的没有意义的空格,那么就需要
:%s/*/^/g

这里写图片描述

这里写图片描述

6.vim的分屏功能

ctrl+w s ###上下分屏

ctrl+w v ###左右分屏

这里写图片描述

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

这里写图片描述

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

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

vimdiff ##对比两个文件的不同

这里写图片描述

7.vim光标移动

在命令模式下

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

G ##文件最后一行

gg ##文件第一行

在插入模式下

i ##光标所在位置插入

I ##光标所在行行首

a ##光标所在字符的下一个位置

A ##光标所在行行尾

o ##光标所在行下一行

O ##光标所在行上一行

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

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

9.vim手册

vimtutor ##vim的手册

:q ##退出vimtutor

:wq 保存然后退出

:q! 强制退出,不保存

3.gedit

ctrl+n ##在gedit中打开一个新的tab

ctrl+s ##保存文件

ctrl+o ##打开文件

ctrl+x ##剪切字符

ctrl+v ##粘贴字符

ctrl+c ##复制字符

yelp help:gedit ##gedit的图形手册

Java I/O 学习笔记(3) 基本输入输出流过滤

代码片段展示了在基本输入输出流之上使用装饰器进行过滤

我的Python学习之路 Python的输入输出与基本数据类型

*** python中的变量不需要事先声明再使用,而可以直接来一个变量名,后面一个赋值,接着一个数据值,如 hw = "hello python",相当于Python能智能的根据你后面变量的值而自动判...

微机 基本输入输出接口

  • 2011年11月30日 15:00
  • 1.75MB
  • 下载

Java做acm所需要的基础知识之基本输入输出问题

Java做acm所需要的基础知识之基本输入输出问题 1、基本定义 import java.util.*; import java.io.*; public class Main  { public s...

1002: A+B(基本输入输出2)代码

  • 2017年11月20日 13:01
  • 179B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:10.1基本输入输出
举报原因:
原因补充:

(最多只允许输入30个字)