Day12-重定向
导读
- 昨日回顾
- 1.特殊权限SUID
- 2.特殊权限SGID
- 3.特殊权限SBIT
- 4.特殊属性
- 5.默认权限UMASK
- 今日内容
- 1.什么是重定向
- 2.为什么要使用重定向
- 3.标准输入、标准输出、错误输出
- 输出重定向
- 输入重定向
- 4.进程管道技术
- 三通管道tee
- xargs参数传递
- 今日总结
昨日回顾
特殊权限SUID
功能:任何用户执行带有suid的命令,都是用该命令的属主权限
非常危险,比如授权 vim --> sudoers
授权方式
chmod u+s /usr/bin/vim
chmod 4755 /usr/bin/vim
chmod u-s /usr/bin/vim
chmod 755 /usr/bin/vim
特殊权限SGID
功能:目录被赋予SGID属性,所有在该目录下的文件都隶属于目录的属组
授权方式
chmod g+s /data
chmod 2755 /data
特殊权限SBIT
功能:允许任何人在该目录下创建文件,但只能删除自己创建的,不允许删除其他人的
/tmp <---- 上传资源时,临时存放的一个目录
特殊属性
chattr
i 不允许删除,不允许修改的文件 /etc/passwd(不允许创建用户)
a 只允许往文件中追加内容,其他无操作(日志文件)
chattr +i /etc/passwd
lsattr
查看文件是否存在特殊属性
默认权限UMASK
Umask表示要减去的权限
默认目录权限是777 - 022
默认文件权限是666 - 022
普通用户创建文件和目录的权限不一样,取决于/etc/profile中的UMASK设定
创建普通用户,会同时创建家目录,家目录权限是多少取决于/etc/login.defs文件的设定
今日内容
什么是重定向
将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中
为什么要使用重定向
1.当屏幕输出的信息很重要,而且希望保存下来的时候
2.后台执行中的程序,不希望干扰屏幕正常输出结果
3.系统的例行命令,例如定时任务的执行结果
4.一些命令的错误信息,想将信息丢掉时
5.错误日志与正确日志分别保存到文件
标准输入、标准输出、错误输出
输出重定向
`>` 标准覆盖输出重定向
`>>` 标准追加输出重定向
`2>` 错误覆盖输出重定向
`2>>` 错误追加输出重定向
`&>` 混合覆盖输出重定向
`&>>` 混合追加输出重定向
输入重定向
`<` 输入重定向
`;` cmd1;cmd2 无论前者命令成功还是失败,都执行后者命令
`&&` cmd1&&cmd2 前者命令执行成功,后者命令才会执行
`||` cmd1||cm2 前者命令执行失败,后者命令才会执行
`&` 将程序放入后台执行(screen)
进程管道技术
将前者命令的输出变成后者命令的输入
三通管道tee
#将前者命令的输出另存为df.log,并将输出传递给后者命令的输入
df -h | tee df.log | grep '/$'
#将前者命令的输出打印到屏幕,并将输出传递给后者命令的输入
df -h | tee /dev/pts/0 | grep '/$'
xargs参数传递
主要让一些不支持管道的命令可以使用管道技术
which cat | xargs ls -l
ls | xargs rm -rf
今日总结
# 重定向
将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中
# 标准输入,标准输出,错误输出
程序运行起来后变为进程,会同时打开三个文件 标准输入 标准输出 错误输出
标准输入:0
标准输出:1
错误输出:2
# 标准输入,标准输出,错误输出与重定向之间有什么关系
重定向就是用来改变标准输出或者标准错误输出的一个指向
`>` 标准覆盖输出重定向
`>>` 标准追加输出重定向
`2>` 错误覆盖输出重定向
`2>>` 错误追加输出重定向
`&>` 混合覆盖输出重定向
`&>>` 混合追加输出重定向
# 输入重定向
从文件中获取内容 <
# 进程管道技术
将左边命令的标准输出传递给右边命令的标准输入
tee将左边命令的标准输出保存至文件或打印至终端,但不影响管道数据的一个传递
xargs用于将不支持管道的命令支持管道,将左边命令的输出作为参数进行传递
网友评论