Linux学习之管道符、重定向、通配符、转义符、环境变量

1. 输入输出重定向

  输入重定向是指把文件导入命令中。

  输出重定向是指把原本要输出到屏幕的数据信息写入指定文件中。

  a 标准输入重定向(STDIN,文件描述符0):默认从键盘输入,也可从其他文件或命令中输入。

  b 标准输出重定向(STDOUT,文件描述符1):默认输出到屏幕,一般省略。

  c 错误输出重定向(STDERR,文件描述符2):默认输出到屏幕,文件描述符必须写上。

  输入重定向中用到的符号及作用:

  命令 < 文件  将文件作为命令的标准输入

  命令 << 分界符  从标准输入中读入,直到遇见分界符停止

1 %mail -s "Readme" root@gmail.com << over #over为分界符,用户输入内容直到over结束

  命令 < 文件1 > 文件2  将文件1作为命令的标准输入并将标准输出到文件2

  输出重定向中用到的符号及其作用:

  命令 > 文件  将标准输出重定向到一个文件中(重写,清空原有数据)

  命令 2> 文件  将错误输出重定向到一个文件中(重写,清空原有数据)

  命令 >> 文件  将标准输出重定向到一个文件中(追加,至原文件内容后面)

  命令 2>> 文件  将错误输出重定向到一个文件中(追加,至原文件内容后面)

  命令 >> 文件 2>&1  将标准输出与错误输出共同写入到文件中(追加,至原文件内容后面)

  或 命令 &>> 文件

  标准输出与错误输出的区别:

  若命令没有错误输出,错误输出时把信息输出到屏幕上;若命令有错误输出,则写入文件中,无返回值。标准输出相反

  例 若ss文件存在

%ls -l ss > /root/stderr.txt #没报错,信息写入文件

%ls -l ss 2> /root/stderr.txt #没报错,将信息输出到屏幕(不写入)

2 管道符

  作用:将前一命令原本要输出到屏幕的标准正常数据当作后一命令的标准输入。

%grep "/sbin/nologin" /etc/passwd | wc -l

  例:用一条命令完成密码重置操作(修改密码需输入2次密码确认)

%echo "linux" | passwd --stdin root

  用一条命令打包内容和标题并发送邮件

 %echo "Content" | mail -s "Subject" linux
%su - linux
%$ mail

  管道符也可以用于多个命令,如:命令1 | 命令2 | 命令3

3 命令行的通配符

  *  代表匹配0个或多个

  ?  代表匹配单个字符

  [0-9]  代表匹配0-9之间的单个数字字符

  [135][abc]  代表匹配1、3或5(a、b、c)中的单个字符

4 常用转义字符

  反斜杠(\)  使反斜杠后面的一个变量变为单纯的字符串

  单引号('')  转义其中所有的变量为单纯的字符串

  双引号("")  保留其中的变量属性,不进行转义处理

  反引号(``)  把其中的命令执行后返回结果  

%PRICE=5 %echo "Price is \$$PRICE" #$$作用是显示当前程序的ID号,需用\使$变为一个单纯的字符串

输出结果为:

Price is $5

5 环境变量

  变量是计算机系统用于保存可变值得数据类型,在Linux系统中,变量名称一般是大写。环境变量是用来定义系统运行环境的一些参数。

  命令在Linux系统中执行共有4步:

  第一步:   判断用户是否以绝对路径或相对路径方式输入命令(如/bin/ls),如果是则直接执行。

  第二步:   Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。

  第三步:   Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由第四步继续处理。

  第四步:  系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫做PATH,Bash解释器会在PATH中逐个查找。

  其他知识点:

  alias、unalias命令

  用来创建或取消一个属于自己的命令别名,格式为“alias [别名]”或“unalias [别名]”,rm命令删除文件需用户确认即是为防止误删而设置的别名命令

  取消rm删除时的用户确认:

%unalias rm #删除rm的别名命令,即删除用户确认

  设置rm删除时的用户确认:

%alias rm='rm -i' #-i参数为用户确认

  添加PATH路径

  PATH是由多个路径值组成的变量,每个路径值之间用:间隔,添加删除命令影响Bash解释器对Linux命令的查找

%PATH=$PATH:/root/bin

注:将当前目录(.)添加到PATH可以让用户在某些情况下省去输入命令所在路径的麻烦,但如果黑客在比较常用的目录/tmp中存放了一个与ls或cd命令相同的木马文件,而用户在公共目录中执行了这些命令就会中招,接手一台Linux系统后一定首先要在执行命令前检查PATH变量中是否有可疑的目录。

  env命令

  用于查看Linux系统中的所有环境变量

  Linux系统最重要的10个环境变量

  HOME  用户的主目录(即家目录)

  SHELL  用户在使用的SHELL解释器名称

  HISTSIZE  输出的历史命令记录条数

  HISTFILESIZE  保存的历史命令记录条数

  MAIL  邮件保存路径

  LANG  系统语言、语系名称

  RANDOM  生成一个随机数字

  PS1  Bash解释器的提示符

  PATH  定义解释器搜索用户执行命令的路径

  EDITOR  用户默认的文本编辑器

  su命令

  用于切换用户身份,格式为“su - [其他用户名]”

%su - liang

  export命令

  将变量提升为全局变量

  例:设置一个变量,方便用户更轻松地进入一个较深层次目录:

%mkdir /home/workdir

%WORKDIR=/home/workdir

%export WORKDIR #提升为全局变量,即所有用户均可使用此变量

Linux学习之管道符、重定向、通配符、转义符、环境变量的更多相关文章

  1. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  2. 【转帖】linux date 显示指定时区的时间 借助TZ 环境变量 export TZ=Asia/Shanghai 或 America/New_York

    linux date 显示指定时区的时间 借助TZ 环境变量 export TZ=Asia/Shanghai 或 America/New_York 2015-02-10 10:58:22 youcha ...

  3. linux学习7-数据流重定向

    数据流重定向 实验介绍 你可能对重定向这个概念感到些许陌生,但你应该在前面的课程中多次见过>或>>操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中.这其实就是重定向, ...

  4. Linux学习笔记(16)shell基础之Bash变量

    1. 用户自定义变量 (1)变量设置规则 ① 变量名称可由字母.数字和下划线组成,但不能以数字开头: ② 变量的默认类型为字符串类型,如果要对数值运算,则必须指定变量类型为数值型: ③ 变量用等号连接 ...

  5. Linux学习2-云服务器上安装java和tomcat环境

    在linux上部署java的项目,首先要安装JDK和Tomcat,具体要求怎么操作呢,我们一起来学习吧! JDK的安装步骤如下: 1.首先我们从官网下载jdk-8u231-linux-x64.rpm安 ...

  6. 【Shell脚本学习指南笔记】重定向文件描述符 2>&1

    如: make > results 2>&1 重定向 > results让文件描述符1(标准输出)作为文件results,接下来的重定向2>&1有两个部分.2& ...

  7. Linux学习笔记之阿里云ECS部署LAMP环境

    LAMP指Linux+Apache+MySQL/MariaDB+Perl/PHP/Python,是一组常用来搭建动态网站或者服务器的开源软件.它们本身都是各自独立的程序,但是因为常被放在一起使用,拥有 ...

  8. linux命令(11)下查看和添加环境变量

    &PATH:决定了shell将到哪些目录中去寻找命令或者程序,PATH值是一系列的目录,当你要运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑PATH 声明,其格式为: PATH ...

  9. Linux命令之env:显示当前用户的环境变量

    Linux系统里的env命令可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令.下面来比较一下set,env和export命令的异同:set命令显示当前shell的变量,包括当前用户的 ...

随机推荐

  1. EF6实现软删除

    https://www.jianshu.com/p/c65fbfe16e1a

  2. js得到规范的时间格式函数,并调用

    1.js得到规范的时间格式函数 Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1 ...

  3. git之命令git checkout

    git checkout 最常用的就是切换分支,最近又发现一种新的用法: 有时候,在看代码的时候,不小心改动了部分代码,但跟项目没啥关系,这个时候,想不去提交这些代码,怎么处理呢? 使用git che ...

  4. CentOS 7 MySql 解压版安装配置

    下载 访问www.mysql.com 点击DOWNLOADS-->Community-->MySQL Community Server 选择要下载的版本,目前可选择的有:5.5.5.6.5 ...

  5. 记录nodejs的writeHead

    使用response.writeHead()时,如果第二个参数的值使用错误的字符时,会使整个页面被镶嵌在<pre></pre>中被传输过去. 例: response.write ...

  6. 二、PHP基本语法 - PHP零基础快速入门

    我们日常生活中,有些人使用普通话交流,有些人使用家乡话.类比到计算机的世界里,PHP 是人与计算机沟通的语言之一. 既然是语言,那就必须遵循一定的语法规则.譬如 A 向 B 表白,A 会对 B 说:& ...

  7. 微信小程序域名

    微信小程序与第三方服务器通讯的域名必要条件1.一个已备案的域名,不是localhost.也不是127.0.0.1,域名不能加端口2.加ssl证书,也就是https://~~~3.HTTPS 服务器的 ...

  8. MySQL之日期时间类型

    mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  D ...

  9. LR IP欺骗

    一.设置IP欺骗的原因: 1.当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达压力测试的效果 2.某些服务器配置了负载均衡,使用同一个 ...

  10. [Cordova 之 入门篇]

    1. cordova是什么 Apache Cordova是一个开源的移动开发框架.允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 2. 为什么用cordova 基于 ...