linux中管道重定向
Linux 给程序提供三种I/O设备: 查看是否成功 echo $? 需要再执行命令后直接使用
标准输入:0
标准输出: 1
标准错误: 2
> 把输出的信息重定向到文件
2> 把错误的输出信息重定向到文件
&> 所有输出都重定向到文件
注意: >> 代表的是追加重定向,单独一个>会覆盖原有文件
examp: ls /root /ada 2>> /dev/app #列出错误信息(没有第二个目录) 追加输出到/dev/app, 这样屏幕就不会显示
tr:转换和删除字符
[:alnum:] :字母和数字 [:alpha:] :字母 [:digit:]字 :数字 [:lower:] :小写字母
[:print:] : 可打印字符 [:punct:]:标点符号 [:space:] :空白符 [:upper:]:大写字母
通过一个列子就就可以看明白了:
ls /roo >/app/ls | tr -dc ‘[:alnum:] # 前面是重定向到文本,再管道替换,-d是删除 -c是取反,本来是删除文本的alnum.
加了-c代表保留alnum,其他的都删除了。
标准输入的例子: tr –d abc < /etc/fstab # 删除fstab 文件中的所有abc 这里直接导入了文件,不需要再手动输入了
tr –d abc <<end #这表示想手动输入,输完后需要单独输一行end结束退出 这也叫多行重定向;
<< 终止词
Cat > filea < fileb # 这里本来是要输入信息到filea,但是后面用文本fielb代替了输入,就不用再手动输入
注意两者文件名不能相同,否则会导致文件破坏。
管道:命令1 | 命令2 | 命令3 | …
意思就是把命令1的输出结果作为命令2的输入,命令2的输出结果作为命令3的输入,以此类推;
如果命令1发生错误,则不执行,想执行可以使用 |& 实行
exam:
ls /root /ls &| tr ‘a-z ‘A-Z’ #如果不加&,则只会把ls /root 的输出信息换成大写,
加上&,会把错误的ls /ls的错误结果一同换成大写输出显示
用户的组管理和权限管理说明: 一个用户能使用什么权限,id说了算,root id 为0
centos6: 系统用户id(1-499) 普通用户id(500-65535)
centos7: 系统用户id(1-999) 普通用户 1000+
管理员组的id和上面一样的划分;
Linux 安全上下文:
运行中的程序、进程,以进程发起者的身份运行:进程所能够访问资源的权限取决于进程的运行者的身份
我的理解是:谁发起procsee,就使用谁的权限,比如是发起者是属组权限,那么就只有process的属猪权限,木有属主的权限
除非是process的属主发起,那么就拥有所有的权限。
★用户必须属于一个且只有一个主组; 组名同用户名,且仅包含一个用户:私有组也就是附加组可以多个
用字符代替就是:u : g : o
配置文件信息: /etc/passwd
/etc/shadow 这里存放的是用户的密码信息
/etc/group
/etc/gshadow 这里存放的是用户的组密码信息
passwd的文件格式: username:passwd:uid:gid:用户的注释信息:home directory:shell 用冒号分割七段,其中密码信息保存在另外位置
shadow就是真正的密码保存位置:
username:passwd:密码最近修改时间:密码再过几天可以被变更;0表示随时可被变更:密码过期时间;999表示永不过期
:过期前提醒时间(默认一周):密码过期后几天锁定:密码失效日期:
这个记不住就cat /etc/shadow ; 通过里面一行行的信息对比,记得0是随时更改,999999永不过期,
原创文章,作者:shewei,如若转载,请注明出处:http://www.178linux.com/69614