1 三种标准输入输出
- 标准输入(STDIN),文件描述符号为:0,默认从键盘获取输入;
- 标准输出(STDOUT),文件描述符号为:1,默认输出到显示终端;
- 标准错误输出(STDERR),文件描述符号为:2,默认输出到显示终端;
2 什么是重定向?如何重定向?
(1)什么是重定向?
IO 重定向是为了改变默认输入、输出的位置,如默认情况下标准输出(STDOUT),标准错误输出(STDERR)都是输出到显示终端,如对标准输出、标准错误输出改变其默认输出位置,可重定向输出到指定的文件中(实际工作中经常这么使用),要重定向就要配合一些语法符号。
(2)如何重定向?
- Linux Shell 使用 " > " 和 ">>" 进行对文件描述符进行重定向
- ">" # 使用本次输出内容替换原有文件的内容;
- ">>" 把本次输出追加到原文件的后面;
- 常见的一些输出重定向(标准输出和标准错误输出)表示
- 【>】标准输出覆盖重定向
- 【>>】标准输出追加重定向
- 【2>】标准错误输出覆盖重定向
- 【2>>】标准错误输出追加重定向
- 【&>】将标准输出和标准错误输出都同时覆盖重定向
- 【&>>】将标准输出和标准错误输出都同时追加重定向
3 管道符以及和它容易混淆的一些符号使用
(1)管道符 |
- 格式 : 命令1 | 命令2 ...
- 解释: 命令1 的输出作为命令2的操作对象
(2)&和&&、|和|| 区别、分号(;)用法
- & 表示任务在后台执行;
- && 逻辑与,只有前一条命令执行成功时,才执行后一条命令 ,如 echo '1' && echo '2';
- | 表示管道,上一条命令的输出,作为下一条命令操作对象;
- || 逻辑或,只有上一条命令执行失败后,才执行下一条命令;
- ";" 用法方式:command1 ; command2,用 ; 号隔开每个命令,每个命令按照从左到右的顺序执行,彼此之间不关心是否失败, 所有命令都会执行。
4 nohup 后台启动进程命令和案例
- nohup 让某个进程在后台运行。
- nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
- nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
# 以后台进程执行启动 grafana 命令,& 放在命令到结尾,表示后台运行
nohup ./bin/grafana-server start > grafana.log 2>&1 &
# 2>&1 解释:将标准错误输出(2 表示)重定向到标准输出(&1 表示) ,标准输出(&1) 再被重定向输入到 grafana.log 文件中。
5 小结
- 总结了 Linux 中标准输入(0 表示),标准输出(1 表示),标准错误输出(2 表示)以及它们的重定向用法;
- 接着简述了管道符 | 用法,以及 &和&&、|和|| 区别、分号(;)用法;
- 最后结合 nohup 后台启动进程命令在实际工作中和上述提到的命令的综合使用。
Linux 搞懂「文件所属者更改及权限的赋予」(chmod、chgrp、chown)
01 一图详解「ls -l」
02 两种符号区分表示文件和目录
- -(横线) # 表示非目录文件
- d # 表示目录文件
03 三种访问权限及表示
文件或目录的访问权限分为只读、只写、可执行三种。
- r # 只读(可用数字 4 表示)
- w # 写(可用数字 2 表示)
- x # 可执行(可用数字 1 表示)
- - # 表示无权限(即无 rwx 权限)
04 四种符号表示文件所属者用户
- u # 表示"用户(user)",即文件或目录的所有者。
- g # 表示"同组(group)用户",即与文件属主有相同组ID的所有用户。
- o # 表示"其他(others)用户"。
- a # 表示"所有(all)用户",它是系统默认值。
05 三个变更文件所属者及修改所属者权限的命令
修改文件权限命令:chmod、chgrp、chown。
- chmod # (change mode) 用来变更用户对文件的权限的命令,就是修改读、写、执行属性。
- chown # (change owner) 用来变更文件或目录的所有者和所属用户组的命令,需要超级用户 root 权限才能执行该命令。
- chgrp # (change group) 用来变更文件或目录的所属用户组的命令,与 chown 命令不同,chgrp 允许普通用户改变文件所属的组,只要该用户是该组的一员。
06 工作实践命令举例
变更文件所属者
- (1)chown -R admin /logs # 把文件夹 /logs 及其下的所有文件和子目录的所属者改成 admin (注: -R 即以递回的方式逐个变更);
- (2)chown -R admin.root /logs # 把文件夹 /logs 及其下的所有文件和子目录的所属者改成 admin,所属组改为 root;
- (3)chown admin log # 把文件 log 的所有者改为 admin;
变更文件所属者对文件的权限
- (1)chmod ug+w,o-x info.log # 为 info.log 文件,所属者(u)增加写(w)权限;所属组(g)增加写(w)权限;其他用户(o)删除执行权限(x);
- (2)chmod a+x info.log # 为 info.log 文件的所有用户增加可执行(x)权限;
- (3)chmod -R 777 /logs # 为 logs 及其下的所有文件和子目录的所属者(u),所属组(g),其他用户(o)赋予所有权限,即可读(r),可写(w),可执行(x)权限;
07 附录 chmod 命令使用示意图
08 小结
搞懂「文件所属者更改及权限的赋予」,涉及关于 chown、chmod、chgrp 命令,结合用例零基础理解和掌握使用。
原文地址:
https://www.cnblogs.com/bilahepan/p/15898514.html