首页 > 系统相关 >【四】Linux重定向、管道符、通配符、转义字符详解

【四】Linux重定向、管道符、通配符、转义字符详解

时间:2024-06-06 23:30:41浏览次数:27  
标签:mylinux 通配符 cat 命令 转义字符 111 Linux txt root

重定向与管道符

重定向

输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。输出重定向使用较多,故将输出重定向分为了标准输出重定向和错误输出重定向,以及覆盖写入与追加写入两种模式。

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

命令 > 文件

将标准输出重定向到一个文件中(覆盖文件原有的内容)

命令 2> 文件

错误输出重定向到一个文件中(覆盖文件原有的内容)

命令 >> 文件

将标准输出重定向到一个文件中(追加到原有内容的后面)

命令 2>> 文件

错误输出重定向到一个文件中(追加到原有内容的后面)

命令 &>> 文件

将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

命令 < 文件    输入重定向

将文件内容 做为 命令的输入

例1:创建内容为111的文件111.txt,使用标准输出重定向将222写入改文件。结果是文件里原有的内容被清除,只有新写入的信息。再用追加写入信息后查看。

[root@mylinux ~]# cat 111.txt

111

[root@mylinux ~]# echo 222 > 111.txt

[root@mylinux ~]# cat 111.txt

222

[root@mylinux ~]# echo 333 >> 111.txt

[root@mylinux ~]# cat 111.txt

222

333

例2:执行date命令后会向屏幕输出当前的时间,可以使用重定向符将输出信息导入到111.txt文件中。

[root@mylinux ~]# date >> 111.txt

[root@mylinux ~]# cat 111.txt

222

333

Wed Nov  6 17:02:11 CST 2019

例3:使用cat命令查看一个不存在的文件,会输出报错信息,这时用标准输出重定向是不能写入文件的,需要使用错误输出重定向符。

[root@mylinux ~]# cat 123.txt

cat: 123.txt: No such file or directory

[root@mylinux ~]# cat 123.txt >> 111.txt

cat: 123.txt: No such file or directory

[root@mylinux ~]# cat 123.txt 2>> 111.txt

[root@mylinux ~]# cat 111.txt

222

333

Wed Nov  6 17:02:11 CST 2019

cat: 123.txt: No such file or directory

或者直接使用 &>> 将错误的信息和正确的信息一起写入文件。

[root@mylinux ~]# cat 123.txt &>> 111.txt

[root@mylinux ~]# cat 111.txt

222

333

Wed Nov  6 17:02:11 CST 2019

cat: 123.txt: No such file or directory

cat: 123.txt: No such file or directory

例4:使用输入重新下将111.txt 导入wc -l 命令统计行数。

[root@mylinux ~]# wc -l < 111.txt

5

管道符 (|  ;   ||)

把前一个命令原本要输出到屏幕的正常数据当作后一个命令的输入信息。

例1:使用cat命令查看111.txt文档,会输出相关信息,使用管道符直接将输出的信息交给wc命令进行统计,会有如下效果。

[root@mylinux ~]# cat 111.txt | wc -l

5

[root@mylinux ~]# netstat -antp | grep 53

tcp        0      0 192.168.122.1:53        0.0.0.0:*

[root@yegg ~]# cat test.txt  ;  whoami   前后互不影响

[root@yegg ~]# w  ||  whoami    (前面为真)---后面命令不执行

[root@yegg ~]# wg  ||  whoami   (前面为假)---后面命令执行

通配符

通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊匹配搜索文件。星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,常见的也有中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。

例1、创建三个文件,分别为test_01.txt,test_02.txt,test_03.txt。我们在使用cp命令复制这三个文件时可以直接用命令cp test* /root/Desktop/将这三个文件一次性复制到桌面上。

例2、删除时也可以使用此方法一次性删除。

[root@mylinux Desktop]# rm -f test_0*

例3、问号(?)只能匹配代替一个字符,如下所示:

例4、使用中括号进行匹配,[1-3] 和 [13] 的区别如下所示:

转义字符

一些单词或者字符在bash和shell中有特殊含义,某些情况下,我们需要这些字符或者单词的字面值,而非特殊含义,比如在bash中,“#”被解释为注释的开头,故“#”和以它开头的同一行该字符后面的内容都将被忽略。

例1、使用echo命令输出一个“#”,但是屏幕上只会出现一个空行,并不会有任何显示。

例2、我们可以加上转义字符“\”,使“#”回归字面意思从而失去注释的意思。

除了\”,还有单引号和双引号,也可以禁止特殊字符和单词的含义。而反引号 ` ` 把其中的命令执行后返回结果。

例3、

需要注意的是,单引号保留其括起来的所有字符的字面值,而双引号的区别在于双引号不保留美元符号 $、反引号 ` ` 、和反斜杠 \ 的字面值。使用双引号括起来的,美元符号和反引号保留其特殊含义,而且仅当反斜杠字符前边是美元符号、反引号、双引号、反斜杠 或者换行符时,才会保留反斜杠字符的特殊含义。

重要的环境变量

变量是计算机系统用于保存可变值的数据类型,而Linux系统中的环境变量是用来定义系统运行环境的一些参数,如每个用户不同的家目录、邮件存放位置等,用户执行一条命令后,一般会有一下几个步骤。

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

2、系统检查用户输入的命令是否为“别名命令”,可以用alias命令来创建一个属于自己的命令别名。若要取消一个命令别名,则是用unalias命令。

例、使用alias来为touch命令创建一个别名,然后再取消。

让别名命令永久生效

vim  /etc/bashrc

alias  cc="nmcli connection"

source  /etc/bashrc

1、Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;若是外部命令,系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置。对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找。

例1、查看PATH

 例2:

[oracle@yegg ~]$ vim .bash_profile  ---添加 tt=/root

[oracle@yegg ~]$ echo $tt

[oracle@yegg ~]$ source .bash_profile

[oracle@yegg ~]$ echo $tt

/root

常见的、重要的环境变量。

变量名称

作用

HOME

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

SHELL

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

MAIL

邮件保存路径

LANG

系统语言、语系名称

RANDOM

生成一个随机数字

PATH

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

EDITOR

用户默认的文本编辑器

标签:mylinux,通配符,cat,命令,转义字符,111,Linux,txt,root
From: https://blog.csdn.net/qq_64498620/article/details/139512070

相关文章

  • 【一】Linux基础命令讲解
    Linux系统内核与Linux发行套件系统。Linux系统内核指的是提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。Linux发行套件系统是我们常说的Linux操作系统,也即是由Linux内核与各种常用软件的集合产品。常见的有:1、红帽企业版Linux(RHEL)2、社区企业操作系统Cen......
  • Linux开发:多进程通过shm_open/mmap共享内存
    Linux编程:多进程间通过shmget共享内存_检测共享内存中是否有数据-CSDN博客介绍了通过SYSV的方式进行多进程间共享内存,这种方式属于比较久远的方式。POSIX也提供了共享内存的方法,使用起来要更容易些式其原理是利用Linux的tmpfs(Linux开发:tmpfs文件系统-CSDN博客)$df......
  • linuxc
    Linux编程环境编译链接3.1LinuxC程序的编译执行3.1.1gcc常用指令https://gcc.gnu.org/onlinedocs/gcc/#toc-GCC-Command-Options构建相关:看不懂没事,可以看下一个加粗部分"调试和优化相关的示例"-E:预处理,生成.i文件-S:预处理+编译,生成.s汇编语言文件-c:预处理+编......
  • 虚拟机安装Linux(Ubuntu24)
     1、虚拟机软件    已经上传了下载链接,可进入本人博客的资源下载        https://download.csdn.net/download/qq_42837317/89402103如果下架,请自行查找下载资源。搜索 VMware workstation 172、ubuntu版本    建议按需求安装ubuntu版本,可......
  • linux安装驱动
    1.查看显卡信息 sudolshw-classdisplay2.安装驱动   驱动网址:下载地址:https://www.nvidia.cn/geforce/drivers/ 官网查找驱动版本并复制链接 查找对应的版本 右击鼠标复制链接3.连接虚拟机下载驱动 wget+复制的连接  修改权限 chomd777+N......
  • Linux权限理解
    目录一、基本的具体用户认识:二、Linux权限管理:1权限简单理解:2文件访问者分类(角色):3 文件类型和访问权限(事物属性):3.1文件类型:3.2基本权限:4文件权限值的表示方法:5 文件访问权限的相关设置方法:(1)chmod:(2)chown:(3) chgrp:(4)umask: 6 目录的权限:7粘滞位: 三、......
  • LINUX基本知识(1)
    linux基本知识网络设置:桥接模式:位于同一个网段的其他机器可以访问NET模式:虚拟化一个路由器,连接虚拟路由器,位于同一个网段的机器不可以访问设置静态IP:可以远程连接时IP地址不会改变远程连接:虚拟机需要安装服务端程序:sshdLinux架构:内核(kernel):1:管理硬件资......
  • 基于Linux操作系统的生产消费者队列封装(C++)
    一.先前代码及实现(在该篇中会用到)1.基于Linux操作系统的锁的封装-CSDN博客2.基于linux操作系统的线程封装(可实现任意传递任意类型任意个数的参数)-CSDN博客二.生产消费者模型    在一个多线程的进程中,通常存在如下关系生产者和消费者,其中生产者负责生产资源(产生任务......
  • 基于Linux下的多人聊天室
    基于Linux下的多人聊天室1.涉及知识点2.整体架构流程3.核心功能展示4.详细代码5.复盘总结1.涉及知识点Linux、C语言、TCP通信、epoll、SQL2.整体架构流程服务器:1.搭建TCP连接客户端2.链接数据库3.使用epoll4.处理各种客户端消息的接收与发送客户端:1.搭建TC......
  • 嵌入式Linux系统编程 — 2.1 标准I/O库简介
    目录1标准I/O库简介1.1 标准I/O库简介1.2 标准I/O和文件I/O的区别2 FILE指针3标准I/O库的主要函数简介4 标准输入、标准输出和标准错误4.1标准输入、标准输出和标准错误概念4.2示例程序5 打开文件fopen()5.1 fopen()函数简介5.2 新建文件的权限5.3......