网络安全快速入门(十四)Linux输出重定向及通配符

news2024/11/18 4:25:48

14.1  前言

在我们了解网络之后,接下来我们来了解一下Linux的输出重定向及通配符,以便更快捷地去执行Linux的基础命令!话不多说,我们开始今天的学习内容吧。

14.2 输出重定向

输出重定向,本质上就是将本该显示在终端上的信息去存放到其他位置以便进行记录或进行数据传输,这种操作一般在写shell脚本时比较常用,这里我们就先来简单了解一下输出重定向!

输出重定向分为以下两种:

  • 标准输出:

                是将信息输出在终端

  • 标准错误输出:

                在执行命令的过程中所产生错误信息也是输出在终端

这里我们要做一个了解,命令的执行结果的错误指令一般都反馈在终端,(大部分命令结果执行正确将不会显示,只有发生错误时才会产生反馈)!!

在我们有了上述了解后,我们了解一下输出重定向的原理,简单点来说,就是将原本显示终端的反馈结果重定向到其他文件中以便进行保存!!!我们在下面将会进行举例,接下来我们来看看标准输出重定向!

14.2.1  标准(正确)输出重定向

        作用:将本来要显示在终端上的信息重定向到一个文件中

实现方法(命令格式)

格式一:

命令 >  文件名称
#将文件中原有的内容全部删除,然后进行写入

简单点来说,就是在原有文件上进行覆盖,从而实现命令结果反馈至目标文件中,这里我们通过举例来理解:

例子:

        输出“hello world重定向到/tmp下的1.txt

格式如下:

echo "hell world" > /tmp/1.txt

我们来看结果

此时我们发现1.txt中有了内容“hello word”,不仅如此,读者之前并没有创建1.txt文件,但现在自己创建了,因此这里需要注意,在进行输出重定向时目标文件不存在时,则会自动创建一个文本文件进行存储!

好了,格式一就到这里了,接下来我们来看格式二!!

格式二:

命令 >>  文件名称
在文件原有的内容后,追加新的内容

这里我们发现,多了一个“>”,格式二与格式一的区别是,格式一会自动覆盖文件之前的内容,而格式二会在文件原有的内容后,追加新的内容。

我们还是通过举例来看两个格式的区别:

现在我们用格式一再搞一个l love you,看看效果

格式如下:

echo "l love you" > /tmp/1.txt

看效果

我们发现,1.txt里面的hello word被吞了,这就是格式一的覆盖性质

接下来我们用格式二再输入一条ch225

格式如下:

echo "伟大的ch225" >> /tmp/1.txt

我们来看结果:

这个就是格式二的追加性质!!

完成,接下来我们来看标准错误输出重定向!!

14.2.2 标准错误输出重定向

我们要知道,命令执行结果时有对有错的,上面命令只是针对正确的命令结果进行输出重定向,那么问题来了,如果命令执行错误的话,我们该如何进行操作呢?这个时候就要用到 标准错误输出重定向了,也是两个格式,如下

格式一:

命令 2>  文件名称
#将错误的命令执行结果输出到指定文件中,文件中原有的内容全部删除,然后进行写入

格式二:

命令 2>  文件名称
#将错误的命令执行结果输出到指定文件中,在文件中原有的内容后追加新的内容

这个时候我们发现,这跟标准输出重定向之间就多了一个二啊,但是!!这玩意他一点也不二!!我们还是通过后面的例题来进行了解

例:

        执行命令"ls  /root /roat",将错误信息输出到/tmp/1.txt

命令如下

ls /root /roat 2>> /tmp/1.txt 

我们来看一下结果

错误的命令执行结果被保存到了1.txt下,格式一这里就不多举例子了,知道就行。

那么问题来了,能能不能将正确的和错误的都保存到同一个文件中呢?能!!

14.2.3 特殊输出重进向

将正确的和错误的都保存到同一个文件中

格式:

格式一:

命令 2>  文件名称
#将正确和错误的命令执行结果输出到指定文件中,文件中原有的内容全部删除,然后进行写入

格式二:

命令 &>  文件名称
#将正确和错误的命令执行结果输出到指定文件中,在文件中原有的内容后追加新的内容

我们还是以上面的举例:

执行命令"ls  /root /roat",将错误信息和正确信息都输出到/tmp/3.txt

命令如下

ls /root /roat &>> /tmp/1.txt 

我们看结果

ok

我们接下来来讲一个小知识

小知识(黑洞文件):

/dev/null文件,也被我们称之为黑洞文件,这个文件有个特点,所有输出重进项的结果,无论正确还是错误只要指向这个文件,都会消失,类似于回收站,但不能进行还原!!!因此常被作为屏蔽命令结果的首要位置!!

在我们了解输出重进向之后,接下来我们来看看我们的终极例题:

终极例题:

执行命令"ls  /root /roat",将错误信息屏蔽掉,正确信息输出到/tmp/3.txt

看着好像很难的样子,接下来我们先写命令再来解释:

命令如下:

ls /root /roat 1> /tmp/1.txt  2>/dev/null

我们来看结果

这里我们就有疑问了,我们看不到命令的执行结果,那么执行结果都上哪去了?

我们看一下1.txt

这里我们看到了正确的命令执行结果,那么错误的命令执行结果呢?

已经被转移到这个位置了

说明已经被屏蔽了,这个命令是什么意思呢?

意思是系统会对命令输出结果做一次判断,如果输出结果无误,就会被放置到/tmp/1.txt下,如果输出结果错误,则会被放置到黑洞文件进行屏蔽!!!!

输出重进向就到这里了,接下来我们来看通配符

14.3 linux的通配符

linux通配符,说白了就是辅助命令进行执行的一些特殊符号,这里我们之前用到了很多了,这里我们来大概做一个讲解:

14.3.1 *

表示任意长度的任意字符,这里任意长度可以是一个,也可以是0个,这类通配符通常用于rm命令中,蛋蛋一个通配符则表示所有文件,举例如下

rm -rf /*

这里不建议各位进行尝试!

这里不建议各位进行尝试!!

这里不建议各位进行尝试!!!

这里不建议各位进行尝试!!!!

 

14.3.2 ?

表示一个长度的任意字符,用法与*一样,一般用于rm,find命令等查询模糊文件时进行使用,我们举个例子:
删除根下文件名第二字符个是 a 的文件:
命令如下
rm -rf ?a

14.3.3 ;

 这里一般用来链接多个命令,举例如下

cd -;cd -

其他连接命令包括以下几种:

  • && 只有前面的命令执行成功,后面的命令才会执行
  • || 只有前面命令执行失败,才会执行后面的命令

(连接命令类似于命令分隔符,用来分隔上一个命令的结果,让系统认为为两个命令,该操作一般在写shell脚本中较为常用!!!!)

14.3.4 #

注释行(一般用于描述命令的信息及做备注,注释行系统不执行!!!)

14.3.5 |

        一般用来传递命令的执行结果,该符号一般用于统计一般文件,特殊查询等操作,我们举个例子

  1. 统计/tmp/1.txt中有多少字符

命令如下:

cat /tmp/1.txt |wc -c

我们看结果!!

ok,下一个

14.3.6 ~

        家目录,一般用于跟在cd后面,这里不多做解释,可以查看笔者的Linux基础命令cd小节进行进一步了解!

14.3.7 -

        返回上一次所在目录,一般也用于在cd命令,这里不做赘述!!

14.3.8 $

        一般用在shell脚本和三剑客中,在shell脚本中用于引用变量名,而在三剑客中该符号作为截取文件中每行指定的字段中指定字段数来使用,而在linux命令行,该符号一般搭配?进行使用,用来查看上一个命令的执行状态,0为执行成功,非0为执行失败,这里举例来说明

这里大家可以看bash后跟的数字来判断命令是否成功执行!!!

14.3.9 /

路径分隔符,相信各位学到这里这个东西也见了很多了,在绝对路径下单一的/表示系统根目录,后面带的/则为目录之间的分隔符!这里不多赘述!!!

14.3.10 > 及>>

这里我们14.3.2讲了,翻笔记!!!!!

14.3.11 <<

这个一般用于打印菜单,进行输出使用,跟echo没啥区别,唯一的区别是在shell是执行echo命令需要加条件什么乱七八糟的,这个可以不换行进行输出!具体格式如下

cat <<EOF
> 1
> 2
> 3
> 4
> EOF

看结果

14.3.12 引号

Linux中引号分为以下三种

  • ' ' :弱引用,引用的内容原样输出
  • " " :强引用,引用中变量会变成变量的值(一般在shell脚本中用到,在命令中通常搭配三剑客进行使用!!)
  • `` :命令替换

这里要注意的是,反引号··是将命令转换成命令的执行结果,放到当前位置下,而管道符是将前面的命令结果传递给后面的命令让后面的命令继续执行!!!

14.3.13 .(点)

一般用于cd命令,这一个点表示当前目录,两个点表示上一级目录,这里不多进行赘述!!

14.314.{}

可以理解为起始和结束的操作,一般用于创建连续字符集的文本文件,目录文件,在正则表达式则表示前面字符的最少表示个数及最多表示个数,在awk中则用来定义分隔符之后的字段,这里我们举例一个创建文本文件供大家理解:

  1. 创建文件1.txt 2.txt 3.txt 4.txt,,,,  100.txt (共100个)​​​​​​​

命令格式如下

touch {1..100}.txt

我们来看

ok,完成

今天的内容就到这里了,写的有些仓促,如果有问题请联系作者改正,如果这篇文章对各位起到帮助了还请各位点个赞,最后感谢各位的收看,我们下期见!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1683947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

04. Redis 配置文件

文章目录 单位包含网络 NETWORK通用 GENERAL快照 SNAPSHOTTING主从复制 REPLICATION安全 SECURITY客户端 CLIENTS内存设置 MEMORY MANAGEMENTAPPEND ONLY MODE 模式&#xff08;aof 的配置&#xff09; 单位 配置文件对大小写不敏感&#xff08;unit单位&#xff09;。 包含 …

数据库操作(函数)

函数是一段可以直接被另外一段程序调用的程序或代码 一。字符串函数 1.concat(s1,s1....sn)&#xff1a;字符串拼接&#xff0c;将s1&#xff0c;s2&#xff0c;sn拼接为一个字符串 例如&#xff1a; select concat("hello","world"); 2.lower(str&…

java版本ERP管理系统源码 Spring Cloud ERP系统-生产型企业erp系

在当今数字化浪潮的推动下&#xff0c;企业对于高效、稳定且易于扩展的管理系统需求日益增长。为了满足这一需求&#xff0c;我们精心打造了一款基于Java技术的鸿鹄ERP&#xff08;Enterprise Resource Planning&#xff09;管理系统。该系统充分利用了Spring Cloud Alibaba、S…

《Effective Objective-C 2.0》读书笔记——对象、消息、运行期

目录 第二章&#xff1a;对象、消息、运行期第6条&#xff1a;理解“属性”这一概念第7条&#xff1a;在对象内部尽量直接访问实例变量第8条&#xff1a;理解“对象等同性”这一概念第9条&#xff1a;以“类族模式”隐藏实现细节第10条&#xff1a;在既有类中使用关联对象存放自…

推荐ChatGPT4.0——数学建模

1.建模助手 2. 可直接上传文档分析 3.获取途径 现在商家有活动&#xff0c;仅仅需要19.9&#xff01;&#xff01;&#xff01;&#xff01; 现在有优惠&#xff1a; 推荐人写&#xff1a;love 周卡&#xff0c;半月卡&#xff0c;月卡优惠码是love&#xff0c; 会优惠10元…

JAVA项目开发公共字段自动填充——省事

业务表中&#xff0c;有时候会有公共的字段需要反复的赋值&#xff0c;最常见的就是每次操作都会记录更新日期&#xff0c;更新人等。为了避免反复的赋值操作—— 我们可以用自定义注解加上自定义切面&#xff0c;还有反射来一次性设置多次使用。 1.首先自定义一个注解&#xf…

C++—数组

数组是由一批相同类型的元素&#xff08;element&#xff09;的集合所组成的数据结构&#xff0c;分配一块连续的内存来存储。 语法&#xff1a; <数据类型> <数组名>[<数组长度>]; 数据类型&#xff1a;数组内存放的数据类型&#xff0c;如int、char&…

暴雨为IBM发布《可信赖的企业级生成式 AI 白皮书》点赞

2024年 5月 23日&#xff0c;北京&#xff09;&#xff0c;IBM 在北京举行“AI for Business论坛”&#xff0c;与客户、合作伙伴、生态联盟等行业参与者一起&#xff0c;探讨如何将生成式 AI 应用到企业创新和实践当中。会上&#xff0c;中国开源软件推进联盟与 IBM 联合发布《…

LeetCode刷题之HOT100之比特位计数

今天把仙剑三看完了&#xff0c;茂茂割肉让人无法释怀&#xff0c;眼泪止不住的流。长卿和紫萱的分离似乎也意味着重逢&#xff0c;这就是他们的宿命吧。怅然若失的感觉席卷全身&#xff0c;哎&#xff0c;做题吧。 1、题目描述 2、逻辑分析 题目要求将整数从0到此元素&#…

【华为笔试题汇总】2024-05-22-华为春招笔试题-三语言题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新小米近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f49…

vue三级联动组件

背景 项目中经常出现三级下拉框组件的要求&#xff0c;这种组件其中一级发生变化&#xff0c;子级的组件就会发生变化如果这一个组件&#xff0c;单独作为搜索条件使用&#xff0c;很好写&#xff0c;同时作为搜索条件和form回写组件&#xff0c;回显就比较困难 子组件代码 将与…

2.搜索游戏中不可见的数据坐标

内容参考于&#xff1a; 易道云信息技术研究院VIP课 首先一般游戏在设计时会把人物相关的属性放到一起&#xff0c;在 1.搜索游戏中的数据与环境搭建 里也能证实&#xff0c;角色的等级、攻击力、生命值、经验等它们的内存地址都是相差4字节也就是用int类型存储的&#xff0c;…

简单的TCP网络程序:英译汉服务器

一、服务器的初始化 下面介绍程序中用到的socket API,这些函数都在sys/socket.h中。 1.创建套接字 socket()&#xff1a; ⭐参数介绍&#xff1a; socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符;应用程序可以像读写文件一样用read/write在网…

AIGC实践|探索用AI实现小游戏开发全流程

前言&#xff1a; 在上一篇中&#xff0c;我们已经深入探讨了AI工具在动态绘本创作中的应用&#xff0c;体验了AI在创意内容生成上的魅力。本篇文章将带领大家进入一个全新的探索领域——游戏开发。 本文将详细介绍如何利用AI工具探索实现游戏开发的全过程&#xff0c;从概念…

提升代码简洁,MVEL 表达式和责任链设计模式应用实践

导读 本文主要讲解了MVEL表达式和责任链设计模式相结合一起的消息处理解决方案设计、解耦消息处理节点以及方便代码维护扩展。通过“订单拆单消息”的接入作为具体实践案例&#xff0c;简要阐述了MVEL表达式和Apache Chain职责链设计模式应用场景。希望通过本文&#xff0c;读…

【C/C++笔试练习】TCP、IP广播、ARP协议、IP路由器、MAC协议、三次握手、TCP/IP、子网划分年、会抽奖、抄送列表

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;TCP&#xff08;2&#xff09;IP广播&#xff08;3&#xff09;ARP协议&#xff08;4&#xff09;IP路由器&#xff08;5&#xff09;MAC协议&#xff08;6&#xff09;三次握手&#xff08;7&#xff09;TCP/IP&#xf…

Vue 3入门指南

title: Vue 3入门指南 date: 2024/5/23 19:37:34 updated: 2024/5/23 19:37:34 categories: 前端开发 tags: 框架对比环境搭建基础语法组件开发响应式系统状态管理路由配置 第1章&#xff1a;Vue 3简介 1.1 Vue.js的历史与发展 Vue.js由前谷歌工程师尤雨溪&#xff08;Eva…

JVM学习-垃圾回收(三)

System.gc 通过System.gc()或Runtime.getRuntime().gc()的调用&#xff0c;会显示触发Full GC&#xff0c;同时对老年代和方法区进行回收&#xff0c;尝试释放被丢弃对象占用的内存然后System.gc()调用附带一个免责声明&#xff0c;无法保证对垃圾收集器的调用JVM实现者可以通…

第3天 Web源码拓展_小迪网络安全笔记

1.关于web源码目录结构 #数据库配置文件 后台目录 模板目录 数据库目录 1.1数据库配置文件: 1.1就拿wordpress来说,先到官网下载源码:Download – WordPress.org,解压源码之后: 2.2找到目录下名为 wp-config-sample.php的文件,这就是数据库配置文件: 设想: 我们在渗透…

K8S集群再搭建

前述&#xff1a;总体是非常简单的&#xff0c;就是过程繁琐&#xff0c;不过都是些重复的操作 master成员: [controller-manager, scheduler, api-server, etcd, proxy,kubelet] node成员: [kubelet, proxy] master要修改的配置文件有 1. vi /etc/etcd/etcd.conf # 数…