目录
????????《Linux就这样学》
第3章 管道符、重定向与环境变量 | 《Linux就该这么学》 (linuxprobe.com)https://www.linuxprobe.com/basic-learning-03.html
????????输入重定向是指把文件导入到命令中,
????????输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。
?输入重定向中用到的符号及其作用
符号 | 作用 |
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,直到遇见分界符才停止 |
命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 |
输出重定向中用到的符号及其作用
符号 | 作用 |
命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件的数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到一个文件中(追加到原有内容的后面) |
命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有内容的后面) |
命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) |
[root@linuxcool ~]# cat readme.txt
//命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
[root@linuxcool ~]# echo "Welcome to LInuxprobe" > readme.txt
[root@linuxcool ~]# echo "Welcome to LInuxprobe" > readme.txt
[root@linuxcool ~]# echo "Welcome to LInuxprobe" > readme.txt
[root@linuxcool ~]# cat readme.txt
Welcome to LInuxprobe
//命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
[root@linuxcool ~]# echo "Welcome to LInuxprobe" >> readme.txt
[root@linuxcool ~]# cat readme.txt
Welcome to LInuxprobe
Welcome to LInuxprobe
[root@linuxcool ~]# ls -l linuxprode > readme.txt
ls: cannot access 'linuxprode': No such file or directory
//命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
[root@linuxcool ~]# ls -l linuxprode 2> readme.txt
[root@linuxcool ~]# cat readme.txt
ls: cannot access 'linuxprode': No such file or directory
[root@linuxcool ~]# ls -l linuxprobe 2> readme.txt
-rw-r--r--. 1 root root 0 Jan 10 00:18 linuxprobe
//命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
[root@linuxcool ~]# ls -l xxx &>> readme.txt
[root@linuxcool ~]# cat readme.txt
ls: cannot access 'xxx': No such file or directory
[root@linuxcool ~]# wc -l < readme.txt
1
[root@linuxcool ~]# wc -l /etc/passwd
46 /etc/passwd
????????管道命令符的作用也可以用一句话概括为“把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入”。
? ? ? ? 格式:“命令A | 命令B”
?Linux系统中的通配符及含义
通配符 | 含义 |
* | 任意字符 |
? | 单个任意字符 |
[a-z] | 单个小写字母 |
[A-Z] | 单个大写字母 |
[a-Z] | 单个字母 |
[0-9] | 单个数字 |
[[:alpha:]] | 任意字母 |
[[:upper:]] | 任意大写字母 |
[[:lower:]] | 任意小写字母 |
[[:digit:]] | 所有数字 |
[[:alnum:]] | 任意字母加数字 |
[[:punct:]] | 标点符号 |
?//????????*??
[root@linuxcool ~]# ls -l /dev/sda*
brw-rw----. 1 root disk 8, 0 Jan 19 19:01 /dev/sda
brw-rw----. 1 root disk 8, 1 Jan 19 19:01 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jan 19 19:01 /dev/sda2//? ? ? ? ?
[root@linuxcool ~]# ls -l /dev/sda?
brw-rw----. 1 root disk 8, 1 Jan 19 19:01 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jan 19 19:01 /dev/sda2//? ? ? ? [0-9]
[root@linuxcool ~]# ls -l /dev/sda[0-9]
brw-rw----. 1 root disk 8, 1 Jan 19 19:01 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jan 19 19:01 /dev/sda2
[root@linuxcool ~]# ls -l /dev/sda[135]
brw-rw----. 1 root disk 8, 1 Jan 19 19:01 /dev/sda1
[root@linuxcool ~]# ls -l /etc/*.conf | head -n 10
-rw-r--r--. 1 root root ? ? ? 55 Feb ?1 ?2019 /etc/asound.conf
-rw-r--r--. 1 root root ? ?25696 Dec 12 ?2018 /etc/brltty.conf
-rw-r--r--. 1 root root ? ? 1083 Apr ?4 ?2018 /etc/chrony.conf
-rw-r--r--. 1 root root ? ? 1174 Aug 12 ?2018 /etc/dleyna-server-service.conf
-rw-r--r--. 1 root dnsmasq 26843 Aug 12 ?2018 /etc/dnsmasq.conf
-rw-r--r--. 1 root root ? ? ?117 Jan 16 ?2019 /etc/dracut.conf
-rw-r--r--. 1 root root ? ? ? 20 Aug 12 ?2018 /etc/fprintd.conf
-rw-r--r--. 1 root root ? ? ? 38 Nov 16 ?2018 /etc/fuse.conf
-rw-r--r--. 1 root root ? ? ? ?9 Sep 10 ?2018 /etc/host.conf
-rw-r--r--. 1 root root ? ? 4849 Feb 15 ?2019 /etc/idmapd.conf//? ? ? ? {}可以创建多个文件
[root@linuxcool ~]# touch {qq,ww,ee}.txt
[root@linuxcool ~]# ls -l *.txt
-rw-r--r--. 1 root root 52 Jan 17 05:37 ana.txt
-rw-r--r--. 1 root root ?0 Jan 19 21:24 ee.txt
-rw-r--r--. 1 root root 24 Jan 17 05:47 practice.txt
-rw-r--r--. 1 root root ?0 Jan 19 21:24 qq.txt
-rw-r--r--. 1 root root 51 Jan 19 21:08 readme.txt
-rw-r--r--. 1 root root ?0 Jan 19 19:03 result.txt
-rw-r--r--. 1 root root 52 Jan 10 00:37 stderr.txt
-rw-r--r--. 1 root root ?0 Jan 19 21:24 ww.txt
[root@linuxcool ~]# ls -l [a-z][a-z].txt
-rw-r--r--. 1 root root 0 Jan 19 21:24 ee.txt
-rw-r--r--. 1 root root 0 Jan 19 21:24 qq.txt
-rw-r--r--. 1 root root 0 Jan 19 21:24 ww.txt//? ? ? ? {}也可以输出一些指定信息
[root@linuxcool ~]# echo file{1,2,3,4,5}
file1 file2 file3 file4 file5
4个最常用的转义字符如下所示。
????????反斜杠(\):使反斜杠后面的一个变量变为单纯的字符。
????????单引号(' '):转义其中所有的变量为单纯的字符串。
????????双引号(" "):保留其中的变量属性,不进行转义处理。
????????反引号(` `):把其中的命令执行后返回结果。
Linux系统中最重要的10个环境变量
变量名称 | 作用 |
HOME | 用户的主目录(即家目录) |
SHELL | 用户在使用的Shell解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
邮件保存路径 | |
LANG | 系统语言、语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | Bash解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |