Linux学习(二)管道符、重定向与环境变量

1. 输出到文件

符号作用
命令 > 文件将标准输出到一个文件中(清空原有文件的数据)
命令 2> 文件将错误输出到一个文件中(清空原有文件的数据)
命令 >> 文件将标准输出到一个文件中(追加到原有内容的后面)
命令 2>> 文件将错误输出到一个文件中(追加到原有内容的后面)
# 将 ls 的帮助文档输出到文件 readme.txt(如果文件不为空会覆盖)
[root@localhost ~]# ls --help > readme.txt
# 追加文本到文件
[root@localhost ~]# echo “hello word” >> readme.txt 
# 将错误信息输出到文件(因为没有 abcde 这个命令,所以会出错)
[root@localhost ~]# abcde 2> readme.txt
# 将错误信息追加到文件(因为没有 abcde 这个命令,所以会出错)
[root@localhost ~]# abcde 2>> readme.txt 

2. 命令行的通配符

符号作用
*匹配零个或多个字符
?代表匹配单个字符
[0-9]匹配0~9之间的单个数字的字符
[a-z]匹配a~z之间的字母
# 列出所有 sda 开的文件
[root@localhost ~]# ll /dev/sda*
brw-rw---- 1 root disk 8, 0 1月   7 17:17 /dev/sda
brw-rw---- 1 root disk 8, 1 1月   7 17:17 /dev/sda1
brw-rw---- 1 root disk 8, 2 1月   7 17:17 /dev/sda2

# 列出 sda 后有一个字符的文件
[root@localhost ~]# ll /dev/sda?
brw-rw---- 1 root disk 8, 1 1月   7 17:17 /dev/sda1
brw-rw---- 1 root disk 8, 2 1月   7 17:17 /dev/sda2

# 列出 sda 后有0~9数字的文件
[root@localhost ~]# ll /dev/sda[0-9]

3. 常用的转义字符

符号作用
反斜杠(\)使反斜杠后面的一个变量变为单纯的字符串。
单引号('')转义其中所有的变量为单纯的字符串。
双引号("")保留其中的变量属性,不进行转义处理。
反引号(``)把其中的命令执行后返回结果。
# 输出环境变量 $HOME 的值
[root@localhost ~]# echo "$HOME"
/root

# 单引号,转义其中所有的变量为单纯的字符串
[root@localhost ~]# echo '$HOME'
$HOME

# $$作用是显示当前进程ID,所以会输出进程id + HOME
[root@localhost ~]# echo "$$HOME"
2889HOME

# 对第一个$进行转义
[root@localhost ~]# echo "\$$HOME"
$/root

# 将反引号的字符作为命令执行后返回结果
[root@localhost ~]# echo `uname -a`
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

4. 环境变量

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

变量名称作用
HOME用户的主目录(即家目录)
SHELL用户在使用的Shell解释器名称
HISTSIZE输出的历史命令记录条数
HISTFILESIZE保存的历史命令记录条数
MAIL邮件保存路径
LANG系统语言、语系名称
RANDOM生成一个随机数字
PS1Bash解释器的提示符
PATH定义解释器搜索用户执行命令的路径
EDITOR用户默认的文本编辑器
[root@localhost ~]# echo $PATH
/usr/local/java/jdk1.8.0_181/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

设置环境变量,例如我们要创建一个 WORKSPACE 的环境变量。

[root@localhost ~]# WORKSPACE=/home/workspace
[root@localhost ~]# cd $WORKSPACE 
[root@localhost workspace]# pwd
/home/workspace

export 命令将其提升为全局变量,上一步设置的变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用。可以使用export 命令提升为全局变量。

[root@localhost ~]# WORKSPACE=/home/workspace/
[root@localhost ~]# explor WORKSPACE

[root@localhost ~]# su duke
[duke@localhost root]$ cd $WORKSPACE

删除环境变量,使用 unset 命令删除环境变量

[duke@localhost workspace]$ unset WORKSPACE

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://dukec.cn/archives/linux学习二管道符重定向与环境变量

Buy me a cup of coffee ☕.