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

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

  • 1. 输入输出重定向
  • 2. 管道符命令
  • 3. 命令行的通配符
  • 4. 常用的转义字符
  • 5. 重要的环境变量
  • 复习题
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

1. 输入输出重定向

输入重定向中用到的符号及其作用

符号作用
命令 < 文件将文件作为命令的标准输入
命令 << 分界符从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2将文件1作为命令的标准输入并将标准输出到文件2

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

符号作用
命令 > 文件将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 或者 命令 &>> 文件将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
1. 创建空白文件linuxprobe
touch linuxprobe
2. 显示创建的linuxprobe文件信息
ls -l linuxprobe
3. 通过标准输出重定向将man bash命令原本要输出到屏幕的信息写入到文件readme.txt中
man bash > readme.txt
4. 显示readme.txt文件中的内容
cat readme.txt
5. 通过覆盖写入模式向readme.txt文件写入"Welcome to LinuxProbe.Com"数据
echo "Welcome to LinuxProbe.Com" > readme.txt
6. 通过追加写入模式向readme.txt文件写入"Quality linux learning materials"数据
echo "Quality linux learning materials" >> readme.txt
7. 将linuxprobe文件(存在)信息写入到/root/stderr.txt文件中
ls -l linuxprobe > /root/stderr.txt
8. 将xxxxx文件(不存在)信息的报错信息写入到/root/stderr.txt文件中
ls -l xxxxx 2> /root/stderr.txt
9. 不区分标准输出和错误输出,将显示linuxprobe文件信息写入到readme.txt文件中
ls -l linuxprobe &>> readme.txt
10. 使用输入重定向统计readme.txt文件中的内容行数
wc -l < readme.txt

2. 管道符命令

执行格式为命令A | 命令B | ...,把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入。如果需要将管道符处理后的结果既输出到屏幕,又同时写入到文件中,则可以与tee命令结合使用。

1. 在/etc/passwd文件中查找禁止登录系统的用户数量(/sbin/nologin)
grep /sbin/nologin /etc/passwd | wc -l
2. 用翻页的形式查看/etc目录中的文件列表及属性信息
ls -l /etc | more
3. 搜索与bash有关的进程信息
ps aux | grep bash
4. 显示系统中所有与bash相关的进程信息,并同时将输出到屏幕和result.txt文件中
ps aux | grep bash | tee result.txt

3. 命令行的通配符

Linux系统中的通配符及含义

通配符含义
*任意字符
?单个任意字符
[a-z]单个小写字母
[A-Z]单个大写字母
[a-Z]单个字母
[0-9]单个数字
[[:alpha:]]任意字母
[[:upper:]]任意大写字母
[[:lower:]]任意小写字母
[[:digit:]]所有数字
[[:alnum:]]任意字母加数字
[[:punct:]]标点符号
1. 匹配所有在/dev目录中且以sda开头的文件
ls -l /dev/sda*
2. 如果只想查看文件名以sda开头,但是后面还紧跟着其他某一个字符的文件的相关信息
ls -l /dev/sda?
3. 搜索/etc目录中所有以.conf结尾的配置文件
ls -l /etc/*.conf
4. 同时创建AA.conf,BB.conf和CC.conf三个空白文件
touch {AA,BB,CC}.conf

4. 常用的转义字符

4个最常用的转义字符如下所示。

\(反斜杠):使反斜杠后面的一个变量变为单纯的字符
''(单引号):转义其中所有的变量为单纯的字符串
""(双引号):保留其中的变量属性,不进行转义处理
``(反引号):把其中的命令执行后返回结果
1. 定义一个名为PRICE的变量并赋值为5
PRICE=5
2. 输出Price is 5信息
echo "Price is $PRICE"
3. 输出Price is $5信息
echo "Price is \$$PRICE"
4. 使用echo命令来查看本机的Linux版本和内核信息
echo `uname -a`

5. 重要的环境变量

命令在Linux中的执行分为4个步骤。
第1步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是绝对路径则直接执行,否则进入第2步继续判断。
第2步:Linux系统检查用户输入的命令是否为“别名”命令,即用一个自定义的命令名称来替换原本的命令名称。可以用alias命令来创建一个属于自己的命令别名,语法格式为alias 别名=命令。若要取消一个命令别名,则是用unalias命令,语法格式为unalias 别名
第3步:Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4继续处理。可以使用type 命令名称来判断用户输入的命令是内部命令还是外部命令。
第4步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫做PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找。

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

变量名称作用
HOME用户的主目录(即家目录)
SHELL用户在使用的Shell解释器名称
HISTSIZE输出的历史命令记录条数
HISTFILESIZE保存的历史命令记录条数
MALL邮件保存路径
LANG系统语言、语系名称
RANDOM生成一个随机数字
PS1Bash解释器的提示符
PATH定义解释器搜索用户执行命令的路径
EDITOR用户默认的文本编辑器
1. 将当前rm命令所被设置的别名取消掉
unalias rm
2. 再删除文件initial-setup-ks.cfg
rm initial-setup-ks.cfg
3. 查看echo命令是内部命令还是外部命令
type echo
4. 使用export将WORKDIR变量提升为全局变量
export WORKDIR
5. 后续不再使用WORKDIR变量,使用unset命令把它取消掉
unset WORKDIR

复习题

1

把ls命令的正常输出信息追加写入到error.txt文件中的命令是什么?
ls命令 >> error.txt

2

请简单概述管道符的作用。
命令A | 命令B | … 将命令A的输出作为命令B的输入

3

Bash解释器的通配符中,星号*代表几个字符?
星号代表任意字符(零个或多个)

4

PATH变量的作用是什么?
设定解释器搜索所执行命令的路径,找到其所在位置

5

一般情况下,为参数添加双引号有什么好处?
可以区分参数的数量

6

使用什么命令可以把名为LINUX的一般变量转换成全局变量?
export 命令

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于MSOGI的交叉对消谐波信号提取网络MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介&#xff1a; 此模型利用二阶广义积分器&#xff08;SOGI&#xff09;对基波电流和相应次的谐波电流进行取 &#xff0c;具体是通过多个基于二阶广义积分器的正交信号发生器 &#xff08; S&#xf…

python魔法方法是什么

魔法方法是python内置方法&#xff0c;不需要主动调用&#xff0c;存在的目的是为了给python的解释器进行调用&#xff0c;几乎每个魔法方法都有一个对应的内置函数&#xff0c;或者运算符&#xff0c;当我们对这个对象使用这些函数或者运算符时就会调用类中的对应魔法方法&…

可视化-实验四- seaborn工具包绘图基础及关系

一、任务一 1.1 开发环境 多种选择方案&#xff08;大家根据自己的编程习惯&#xff0c;选择适合自己的工具&#xff09;&#xff0c;老师授课如下&#xff1a;Anaconda3Jupter 1.2 特殊包 导入工具包设置中文显示&#xff1a; import matplotlib.pyplot as plt import p…

在做ESP32-S3模组物联网项目时无法烧录下载怎么排查原因?分享经验

ESP32-S3模组在物联网中非常好用&#xff0c;可以做带屏小音箱、温控器、智能86盒、泳池清洁机器人等等&#xff0c;在烧录的时候经常会遇到一些问题&#xff0c;这里分享一些烧录失败的原因或者烧录遇到的问题&#xff0c;教大家怎么排查原因&#xff0c;希望能帮到大家&#…

参数化建模系列-cityengine篇之:如何基于GIS数据快速构建道路三维建模模型

结合上期介绍的基于GIS数据自动化构建城市三维建筑模型&#xff0c;本期在上期的知识点上继续介绍道路模型的自动化构建方法。 数据获取 本期道路自动化建模从获取道路数据开始。 首先打开“QuickOSM”插件&#xff0c;在“Key”中选择“highway”&#xff1b;其次选择数据范…

Python程序设计 函数(三)

练习十一 函数 第1关&#xff1a; 一元二次方程的根 定义一个函数qg&#xff0c;输入一元二次方程的系数a,b,c 当判别式大于0&#xff0c;返回1和两个根 当判别式等于0&#xff0c;返回0和两个根 当判别式小于0&#xff0c;访问-1和两个根 在主程序中&#xff0c;根据函数返回…

数据结构(四)—— 堆和二叉树(上)

制作不易&#xff0c;三连支持一下呗&#xff01;&#xff01;&#xff01; 文章目录 前言一、树的概念及结构二、二叉树的概念及结构总结 前言 这篇博客我们将进行更加复杂的一种数据结构的学习——树形结构。 一、树的概念及结构 树是一种非线性的数据结构&#xff0c;它是…

如何把多个文件(夹)平均复制到多个文件夹中

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 假定的情况是&#xff0c;共有20个兔兔的图片&#xff0c;想要平均的复制4个文件夹里&#xff0c;那么每个文件夹里面就有5个图片 &#xff08;如果是5个&a…

一般产品:功能、质量、结构

**一般产品&#xff1a;**功能、质量、结构 通用工程&#xff1a; 收益-风险&#xff1b;过程-结果&#xff1b;少数-多数 风险 vs 收益 过程 vs 结果 少数 vs 多数 工程师的特点&#xff1a; 人道无害雇主实事求是&#xff0c;恪守公心&#xff0c;严守纪律&#xff0c;…

信创 | 信创基础设施建设:国内外对比分析研究

信创基础设施建设在国内外的比较分析涉及到多个方面&#xff0c;包括政策支持、产业发展现状、技术进步、市场应用等。通过综合分析&#xff0c;我们可以得出以下结论&#xff1a; 政策支持与发展方向&#xff1a;中国自2019年以来&#xff0c;陆续出台了一系列政策支持信创产业…

RS485空调系统到BACnet江森楼宇系统的高效整合攻略

智慧城市的每一栋建筑都在追求更高的能效与更佳的居住体验&#xff0c;而这一切的实现离不开强大且灵活的楼宇自动化系统。其中&#xff0c;协议转换网关作为连接不同设备的纽带&#xff0c;扮演着至关重要的角色。本文将以一个典型的商业综合体为例&#xff0c;揭秘BACnet协议…

北交所佣金费率标准是多少?北交所相关信息科普

北交所的佣金费率并非固定不变&#xff0c;而是可以根据投资者的需求和证券公司的政策进行调整。目前北交所的佣金费率最低是万分之二。 一般来说&#xff0c;北交所的佣金费率默认在万分之三左右&#xff0c;但这不是固定的费率。根据证券公司的不同&#xff0c;佣金费率可以…

语义分割——前列腺分割数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

微服务学习笔记

微服务学习笔记 文章目录 微服务学习笔记认识微服务微服务技术栈微服务学习要点微服务远程调用1)注册RestTemplate2) 服务远程调用RestTemplate Eureka注册中心简介操作过程搭建EurekaServer注册user-service在order-service完成服务拉取 Ribbon负载均衡IRule负载均衡策略饥饿加…

Electron学习笔记(二)

文章目录 相关笔记笔记说明 三、引入现代前端框架1、配置 webpack&#xff08;1&#xff09;安装 webpack 和 electron-webpack&#xff1a;&#xff08;2&#xff09;自定义入口页面 2、引入 Vue&#xff08;1&#xff09;安装 Vue CLI &#xff08;2&#xff09;调试配置 -- …

【Micropython Pitaya Lite教程】烧录固件

文章目录 前言一、编译固件源码二、烧录固件总结 前言 MicroPython是一种精简的Python 3解释器&#xff0c;可以在微控制器和嵌入式系统上运行。Pitaya Lite是一款基于ESP32的微控制器开发板&#xff0c;它结合了低功耗、Wi-Fi和蓝牙功能。结合MicroPython和Pitaya Lite&#…

Python AI库pandas读写数据库的应用操作——以sqlite3为例

Python AI库pandas读写数据库的应用操作——以sqlite3为例 本文默认读者具备以下技能&#xff1a; 熟悉python基础知识&#xff0c;vscode或其它编辑工具 已阅读Pandas基础操作文章,了解pandas常见操作 具备自主扩展学习能力 在数据分析和人工智能领域&#xff0c;pandas库和s…

Ruby中的字符串转换方法

在Ruby中&#xff0c;你可以使用各种方法来转换字符串。下面是一些常用的方法&#xff0c;当然选择哪种适用的方法还得更具具体项目来做调整。日常使用中下面的错误也是比较常见的&#xff0c;看看我们怎么处理哈。 1、问题背景 在Python中&#xff0c;内置的数据结构都有一个…

VMware 虚拟机打开一段时间后卡死,VNX进程CPU占比高

一、问题描述 打开虚拟机后可以正常运行 运行几分钟后突然卡死 然后通过任务管理器可以观察到VMware Workstation VMX应用进程的CPU占比高&#xff0c;CPU也出现异常 关闭虚拟机重新开启&#xff0c;还是一样卡死 二、系统环境 系统: Windows10 VMware: Workstation 17 Pro …

visa/masterCard虚拟信用卡可以用于欧洲亚马逊店Amazon铺吗?欧洲亚马逊Amazon店铺扣租金

亚马逊是网络上最早开始经营电子商务的公司之一&#xff0c;亚马逊成立于1995年&#xff0c;一开始只经营网络的书籍销售业务&#xff0c;现在则扩及了范围相当广的其他产品&#xff0c;已成为全球商品品种最多的网上零售商和全球互联网企业。 很多小伙伴需要开多个站点店铺&a…
最新文章