shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户。这种对话方式可以是交互的方式(从键盘输入命令,可以立即得到shell的回应),或非交互(执行脚本程序)的方式。

下图的黄色部分就是命令解释器shell处于的操作系统中位置形象图解。

Linux SHELL 脚本

大量重复执行的工作

     

     shell(Linux壳), 一类程序的名称

     

     文本文件----->shell命令,/bin/bash提供逻辑控制语句

重定向向符号的使用

    /dev/stdin     标准输入设备(键盘)        0

    /dev/stdout    标准输出设备(显示器)      1

    /dev/stderr    标准错误输出设备(显示器)  2

输出重定向符号

    

    >  覆盖原文件信息

    >>  往原文件后面追加类容

>  >>   用于重定向标准输出

[root@wei ~]# ls -ldh /etc/ /tmp/1.txt
[root@wei ~]# ls -ldh /tmp/ >>/tmp/1.txt 

2>  2>>     用于重定向标准错误输出

 [root@wei ~]# ls -ldh /qwertyuasdfgh 2> /tmp/1.txt   

&>  同时重定向标准输出及标准错误输出

    

        特殊设备文件:/dev/null (垃圾站)

      [root@wei ~]# ls -ldh /etc/ &>/dev/null 
      [root@wei ~]# grep "root" /etc/passwd &> /dev/null 

输入重定向符号

[root@wei ~]# cat /tmp/1.txt 
chengfeng
[root@wei ~]# tr 'a-z' 'A-Z' < /tmp/1.txt 
CHENGFENG

输出信息:

1  echo

[root@wei ~]# echo "请输出你的选择"    #默认会打印换行符
请输出你的选择 [root@wei ~]# echo -n "请输出你的选择"
请输出你的选择[root@wei ~]#  [root@wei ~]# echo -e "a\nbb\nccc"     # \n 回车
a
bb
ccc [root@wei ~]# echo -e "a\tbb\tccc"     # \t tab键
a    bb    ccc

2  printf

[root@wei ~]# printf "hello wowrd"
hello wowrd[root@wei ~]# 

3 HERE DOCUMENT   ----->输出多行信息

[root@wei ~]# cat << eof  (eof为提示符,可以任意定义)
> 选择
> 安装
> 重启
> 关机
> eof
选择
安装
重启
关机

双引号和单引号的区别:

单引号:所有字符会失去原有的含义

双引号:特殊的字符会转义

如何交互命令:

[root@wei ~]# echo "root" | passwd --stdin hei &> /dev/null

[root@wei ~]# echo -e "n\rp\r1\r+100M\rw\r" | fdisk /dev/vdb &> /dev/null 

显示历史命令

[root@wei ~]# history

执行历史命令的某一条

[root@wei ~]# !254

清空历史命令

[root@wei ~]# history -c

Linux shell之重定向输入,输出的更多相关文章

  1. Linux shell的标准输入、输出和错误

    编译文件时,若编译过程时间长,可以将  标准错误  重定向  输出到一个文件中   2 > 1.txt         也可以通过管道  重定向 到 标准输出    2 > &1 ...

  2. [转]linux shell数据重定向(输入重定向与输出重定向)详细分析

      在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件 ...

  3. linux shell数据重定向(输入重定向与输出重定向)详细分析

    linux shell下常用输入输出操作符是: 1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << : /dev/stdin -> /proc/self/fd/ ...

  4. linux shell获取键盘输入

    linux shell从键盘获取输入 代码1: #!/bin/bash #提示“Input your choice:”,把用户的输入保存入变量choice_user中read -p "Inp ...

  5. Linux标准重定向-输入-输出-错误-多重

    一切皆文件,都是文件的操作 三种I/O设备 标准的输入输出 程序:指令+数据 读入数据:Input 输出数据:Output 系统中打开一个文件系统自动分配文件描述符,除了0,1,2是固定的,其他的都是 ...

  6. linux shell数据重定向

    标准输入 (stdin) :代码为 0 ,使用 < 或 << :标准输出 (stdout):代码为 1 ,使用 > 或 >> :标准错误输出(stderr):代码为 ...

  7. linux shell获取用户输入

    一.获取用户输入1.基本读取read命令接收标准输入的输入,或其它文件描述符的输入.得到输入后,read命令将数据输入放入一个标准变量中.[root@rac2 ~]# cat t8.sh #!/bin ...

  8. Linux Shell 文件描述符 及 stdin stdout stderr 重定向

    Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已 ...

  9. Linux shell特性

    一:别名 .alias 查看本用户下的alias配置 --自定义别名:alias 别名='shell命令' (注意是单引号) --cat $HOME/.bashrc 在这个用户下配置着alias名的配 ...

随机推荐

  1. <Random>382 380

    382. Linked List Random Node class Solution { ListNode node; Random random; /** @param head The link ...

  2. [LeetCode] 9. Palindrome Number 验证回文数字

    Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same back ...

  3. calc()在less中编译报错

    calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢? calc() 函数用于动态计算长度值. 需要注意的是,运算符前后都 ...

  4. MySQL实战45讲学习笔记:第二十一讲

    一.引子 在上一篇文章中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则.间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上 ...

  5. python与rpc服务

    什么是rpc 随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务. 同时业务服务会随着产品需求的增多越来越肿,架构 ...

  6. mac sudo免密码

    1.先切换到root用户sudo -i2.修改/etc/sudoers文件设置用户为免密码:%admin ALL = (ALL) NOPASSWD: NOPASSWD: ALL 参考:https:// ...

  7. Elasticsearch由浅入深(二)ES基础分布式架构、横向扩容、容错机制

    Elasticsearch的基础分布式架构 Elasticsearch对复杂分布式机制的透明隐藏特性 Elasticsearch是一套分布式系统,分布式是为了应对大数据量. Elasticsearch ...

  8. 【网络知识之三】HTTPS协议

    HTTPS是身披SSL外壳的HTTP.HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包.HTTPS使用的主要目的是提供对网站服务器的 ...

  9. docker 安装 apollo

    apollo作为携程开源的配置中心,很多大厂在使用,在此记录下安装历程 服务器环境: 安装mysql 1.拉取镜像 docker pull idoop/docker-apollo 2.新建3个数据库, ...

  10. springboot 解决Jackson导致Long型数据精度丢失问题

    代码中注入一个bean即可: /** * 解决Jackson导致Long型数据精度丢失问题 * * @return */ @Bean("jackson2ObjectMapperBuilder ...