第三章 管道、重定向与环境变量

发布时间:2024年01月19日

目录

参考:

一、输入输出重定向(命令与文件的连接)

二、管道命令符(命令和命令的连接)?

三、命令行的通配符

?四、常用的转义字符

?五、重要的环境变量


参考:

????????《Linux就这样学》

第3章 管道符、重定向与环境变量 | 《Linux就该这么学》 (linuxprobe.com)icon-default.png?t=N7T8https://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保存的历史命令记录条数
MAIL邮件保存路径
LANG系统语言、语系名称
RANDOM生成一个随机数字
PS1Bash解释器的提示符
PATH定义解释器搜索用户执行命令的路径
EDITOR用户默认的文本编辑器

文章来源:https://blog.csdn.net/2302_79253478/article/details/135690428
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。