8.1-用户和组(命令篇)

1、标准输入输出

我们知道,执行一个shell命令行时通常会自动打开三个标准文件,
    即标准输入文件(stdin),通常对应终端的键盘;
    标准输出文件(stdout)
    标准错误输出文件(stderr),这两个文件都对应终端的屏幕。
进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
    
>默认为标准输出重定向,与 1>相同
2>&1意思是把 标准错误输出 重定向到 标准输出.
&>file意思是把 标准输出 和 标准错误输出 都重定向到文件file中
2>&1 > file 把错误输出定向到标准输出(此时标准输出为终端,所以输出到终端), 标准输出定位到文件
> file 2>&1 把标准输出定位到文件,错误输出到标准输出(此时标准输出指向文件,所以输出到文件)

():合并多个程序的STDOUT
( cal 2007 ; cal 2008 ) > all.txt

2、tr命令

tr  转换和删除字符
 tr [OPTION]... SET1 [SET2]
 选项:
        [root@localhost ~]# tr ‘a-z’ ‘A-Z’< /etc/issue
        CENTOS RELEASE 6.8 (FINAL)
        KERNEL \R ON AN \M

-c或--complerment:取字符集的补集
-d或--delete:删除所有属于第一字符集的字符
        [root@localhost ~]# echo "0123asdf..**-" |tr -cd '[0-9]'
        0123
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示
-t或--truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符

3、此处文档(Here documents)

用法:1、多行传递文本
[root@localhost ~]# cat << EOF
> nihao
> hello
> EOF
nihao
hello
EOF为标识符字符,可随意写。
用法:2、传递参数给需要参数的脚本或程序
vi $1 <<CLOUD
 i                  #    进入vim编辑模式
 This is line 1
 This is line 2
^[                  #    ^[ 一个特殊转义符用于返回命令行模式。写脚本时按ctrl+v再按<Esc>就能自动打出这个字符。
ZZ                  #    保存退出vim
CLOUD               #    结束标识符

 

4、管道

管道命令 操作符是:| ,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入。

“错误输出”默认不能通过管道转发,可利用2>&1 或 |& 实现
[root@localhost ~]# cat /e |& tr 'a-z' 'A-Z'
CAT: /E: 没有那个文件或目录

#set -C :禁止覆盖输出重定向至已存在文件,仅对当前shell有效
      >|:强制覆盖输出
#set +C:关闭上述特性

5、重定向到多个目标:tee命令

[root@localhost ~]# ls /root/ |tee a.txt|tr 'a-z' 'A-Z'
ANACONDA-KS.CFG
INSTALL.LOG
INSTALL.LOG.SYSLOG
公共的
模板
视频
图片
[root@localhost ~]# cat a.txt
anaconda-ks.cfg
install.log
install.log.syslog
公共的
模板
视频
图片

把命令1的STDOUT保存在文件名中,然后管道输入给命令2使用

-a:追加至文件而非覆盖



用户和组

用户和组.png





原创文章,作者:M20-1--孔祥文,如若转载,请注明出处:http://www.178linux.com/27275

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-08-04 14:41
下一篇 2016-08-04 14:41

相关推荐

  • 0804练习与作业

    0804练习与作业 练习  1 、找出ifconfig 命令结果中本机的所有IPv4 地址 答: 使用cut将电脑的IP地址提取出来。   经过观察,这些信息极为不规则,没有明显的分隔符。这时们需要首先提取出IP地址所在的行,然后去定义一个合适的分隔符,再利用cut进行提取即可。(思路:化繁为简,化不规则为规则,这样才能更好的套用我们的命…

    Linux干货 2016-08-08
  • Shell运算符

    Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。 expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 例如,两个数相加: #!/bin/bash val=`expr 2 + 2` echo …

    Linux干货 2017-04-18
  • 用户和组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@suywien ~]# who | cut -d ‘ ‘ -f1 | uniq -c 2 root [root@suywien ~]# 2、取出最后登录到当前系统的用户的相关信息。 [root@suywien ~]# who | tail -1 | cut…

    Linux干货 2018-03-18
  • 第七周学习总结–系统启动流程

    写在前面 作为一个理工科的你,我相信你一定给自己或者给别人装过windows操作系统,作为windows操作系统都图形化了,因此我们可能很难去了解中间都发生了什么。比如使用U盘安装的时候,网上一大堆某某某U盘制作系统工具,按照网上的教程,制作完成以后,就可以在要装系统的电脑上点击电源键狂按F12(不同的电脑可能不同)进入BIOS设置了,然后就等着使用了。作为…

    2018-01-14
  • ntp时间服务器搭建实例

    ntp时间服务器采用stratum分级架构来处理时间同步;举例说明:你搭建了一台ntp服务器,然后同步的server为stratum-1,你的ntp则为stratum-2,你的下级ntp则为tratum-3。依此类推,最多为15层。 1.ntp server安装: [root@localhost ~]# yum -y …

    Linux干货 2015-11-10
  • TCP 的那些事儿(下)

    这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的…

    Linux干货 2016-08-15