bash-4.2.46-28.el7.x86_64 [root@centos01 ~]# rpm -qi bash Name : bash.../software/bash Summary : The GNU Bourne Again shell Description : The GNU Bourne...[root@centos01 ~]# rpm -qa | grep bash bash-4.2.46-28.el7.x86_64 bash-completion-2.1-6.el7...1)文件位置 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令。...应用程序:完成相对独立的其他辅助任务,例如网页浏览器。 3)适用环境 系统命令:一般只在字符操作界面中运行。
文章目录 Bash shell 中的字典 一 背景 二 脚本 三 总结 Bash shell 中的字典 一 背景 在一些运维工作中,使用字典能让当前工作事半功倍,类似 Python ,...在 GNU bash 4.2.46 中,我们也可以很方便的使用字典来完成一些工作了。...本文以一段 bash shell 为例展示一下 Bash 中字典的使用。 二 脚本 #!.../bin/bash # Declare a dictionary. declare -A Host Host=( [node1]='10.1.1.11' [node2]='10.1.1.12' [node3...三 总结 脚本的注释解释了后面相关代码的功能。通过脚本,我们对 Bash 中的字典有了一些新的认识。
关于bash正则表达式的条件判断操作符=~,gnu官方网站上《Bash Reference Manual(Bash参考手册)》有详细说明 1 差不多就是这样子,使用很方便 $ [[ "hello world...expression ]] 表达式会返回2 赶紧到ubuntu下验证,如下图果然返回2, 也就是说bash认为^[[:alnum:].-_]+这个正则表达式有语法错误,可是何错之有啊?...我检查了几个平台的bash版本,做成下表格,一目了然,不用怀疑这是bash的bug,至少在4.4.38以后的版本才解决的: OS Bash version ^[[:alnum:].-_]+$TEST Result...MacOS(Big Sur 11.4) 5.1.4 OK Windows Git Bash 4.4.23 OK ubuntu 16.04 4.3.48 FAIL CentOS 7 4.2.46 FAIL...所以为了避免上面的问题,建议在正则表达式中‘[]’中用到‘-’做普通符号要把它放在最后一个以避免低版本的bash把它当做区间符号。
通常我们在Linux下利用rpm做软件包的管理,一般删除软件包需要慎重,因为如果你一不小心把一些底层库依赖的软件包,那对你系统将是大伤害,甚至导致你系统的不可用,比如glibc被update或者删除。...6.el7.x86_64 [root@nock ~]# rpm -qR postfix # R参数的意思就是requires就是依赖哪些软件包 /bin/bash /bin/sh /bin/sh /...2.10.1-7.el7 依赖:/bin/bash # 依赖的库或者程序 provider: bash.x86_64 4.2.46-33.el7...# 这个库是通过哪个rpm包安装的 依赖:/bin/sh provider: bash.x86_64 4.2.46-33.el7 依赖:/usr/sbin/alternatives...依赖:libssl.so.10(libssl.so.10)(64bit) provider: openssl-libs.x86_64 1:1.0.2k-19.el7 依赖:rtld(GNU_HASH
第二章:工具使用 ① 连接服务器 我们建个 session,后续就会直接存在列表中,点开就能连接服务器了。 选 SSH,host 直接输入我们的服务器ip就可以了。 ?...② 启用程序 启动程序方法,从左边找到要启用的程序,然后复制一下,右边直接把路径粘贴一下,就可以执行。 也可以直接用下面的复制到终端中。 ? 把路径复制过来后,一回车就可以直接执行了。...[root@taishan-kylinosv10-18 ~]# help GNU bash, 版本 4.2.46(2)-release (aarch64-koji-linux-gnu) 这些 shell...使用 `info bash' 来获得关于 shell 的更多一般性信息 使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息. 名称旁边的星号 (*) 意味着该命令被禁用....不带参数时, `alias' 以可重用的格式 `alias 名称=值'在标准输出设备上打印别名列表。 否则,对于每个给定值的名称定义一个别名。
在 Linux 中,最常用的 shell 是 bash(Bourne-Again Shell), /bin/bash 也是多数 Linux 系统的默认 shell。...在大多数的 Linux 发行版中,默认的 shell 程序 /bin/sh 实际上是对程序 /bin/bash 的一个连接。 除此之外,还有许多其他的 shell 可以使用。 ...GNU bash, version 4.2.46(2)-release (x86_64-RedHat-linux-gnu) Copyright (C) 2011 Free Software...[tongye@localhost ~]$ 如上,笔者的系统中的默认 shell 是 bash,使用 bash --version 命令查看 bash 的版本,可以看到 GNU 证书。...在 shell 脚本中,# 符号表示这一行接下来的语句是注释。注意,第一行中的 #!/bin/bash 是一个特殊形式的注释, #!
之后的几篇我们会进入到linux常用基础命令的讲解中。let's begin!...注:在本文和之后的文章中,如无特殊说明,所说的shell均指bash,准确的说是GNU bash,版本:4.2.46(1)-release。...在类unix操作系统中的命令行接口称为shell,在linux的各种shell实现中,使用最为广泛的是bash。 一个终端窗口中的命令行接口看起来可能是这个样子的: ?...cmd_name --help 或 cmd_name -h #在终端中打印出cmd_name的帮助信息。 除此之外还有许多其他方式来学习命令的用法,但通常知道这三个就足够了。...关于它的更多用法我们现在可以执行命令man man(打开man命令的手册)来查看了。 熟练掌握bash和各种基础命令的用法,是一个linux系统管理员必不可少的技能。
此时就需要进行离线安装,首先我们需要在可以上网的服务器上将需要安装软件的rpm离线包下载下来,然后去不能上网的服务器上安装。以下是几种下载的方法....查看依赖包 > yum deplist nginx package: nginx.x86_64 1:1.20.1-1.el7.ngx dependency: /bin/sh provider: bash.x86..._64 4.2.46-34.el7 dependency: libc.so.6(GLIBC_2.17)(64bit) provider: glibc.x86_64 2.17-324.el7_9...el7_9 dependency: openssl >= 1.0.2 provider: openssl.x86_64 1:1.0.2k-21.el7_9 dependency: rtld(GNU_HASH...与 yumdownloader 命令一样,也是仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
此时就需要进行离线安装,首先我们需要在可以上网的服务器上将需要安装软件的rpm离线包下载下来,然后去不能上网的服务器上安装。以下是几种下载的方法....查看依赖包 > yum deplist nginx package: nginx.x86_64 1:1.20.1-1.el7.ngx dependency: /bin/sh provider: bash.x86..._64 4.2.46-34.el7 dependency: libc.so.6(GLIBC_2.17)(64bit) provider: glibc.x86_64 2.17-324.el7_9....10(libcrypto.so.10)(64bit) provider: openssl-libs.x86_64 1:1.0.2k-21.el7_9 dependency: libdl.so.2(...el7_9 dependency: openssl >= 1.0.2 provider: openssl.x86_64 1:1.0.2k-21.el7_9 dependency: rtld(GNU_HASH
HISTORY:系统记录的历史指令数量 MAIL:mail命令邮件文件保存的文件夹 PATH:执行文件查询路径,目录与目录间用冒号(:)分隔 LANG:语系 RANDOM:随机数变量,在BASH环境中该变量范围是...=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="4" [1]="...2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu") BASH_VERSION='4.2.46(2)-release' COLUMNS...\H :完整主机名 \h:取主机在第一个小数点之前的名字 \t :显示时间,为24小时格式的【HH:MM:SS】 \T:显示时间,为12小时格式的【HH:MM:SS】 \A:显示时间,为24小时格式的...0 OSTYPE,HOSTTYPE,MACHTYPE:主机硬件与核心的等级 OSTYPE=linux-gnu HOSTTYPE=x86_64 MACHTYPE=x86_64-redhat-linux-gnu
项目在2022年3月中旬创建,一经发布,广受大家喜爱,至今不到两周已经1200多个Star。 作用 不需要CA证书,即可捕获HTTPS/TLS通信数据的明文。...在bash审计场景,可以捕获bash命令。 数据库审计场景,可以捕获mysqld/mariadDB的SQL查询。...在大部分linux发行版中,使用的二进制可执行文件(ELF)都是包含符号表的;少部分发行版,会去掉ELF中的符号表。.../libnss_files.so.2 /lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2 /lib/x86_64-linux-gnu/libnss_dns.so...这里的bash命令的监控,是作为eBPF技术在安全审计场景中的一个探索。 eCapture在实现时首先查找ENV的$SHELL值,作为bash的二进制文件路径进行HOOK。
本篇开始,介绍shell脚本编程,更确切的说是bash脚本编程(版本:4.2.46(1)-release)。我们从变量开始。.../中所有以.sh结尾的文件);然后按顺序搜索用户家目录下的~/.bash_profile、~/.bash_login和~/.profile,并执行找到的第一个可读文件(在centos7系统中是文件~/....tmp]# 本系列中在涉及到具体环境变量的时候还有更详细的解释和用法描述。...#撤销普通变量 unset name #撤销整个数组 unset array_name #撤销数组中单个值(实际上是把相应的值置空,数组元素个数减一) unset array_name[index] #...在命令的执行过程中,变量被其值所替换,在替换的过程中能够对应于各种变换。bash称对变量进行取值的过程为变量替换或变量扩展。 直接取值 #如果值中包含空白字符,赋值时需要用引号引起来表示一个整体。
什么样的测试才是 Bash 脚本的单元测试? 首先,所有存在于PATH环境变量的路径中的命令都不应该在单元测试中被执行。对 Bash 脚本来说,被调用的这些命令可以正常运行,有返回值,有输出。...但脚本中调用的这些命令都是被模拟出来的,用于模拟对应的真实命令的行为。这样,我们在 Bash 脚本的单元测试中就避免了很大一部分的外部依赖,而且测试的执行速度也不会受到真实命令的影响了。...比如 Bash 脚本中使用了只有 GNU/Linux 上才有的命令,对应的单元测试也可以在 Windows 或者 macOS 上执行,且结果一致。 怎样为 Bash 脚本写单元测试?...与其他编程语言一样,Bash 也有多个测试框架,比如 Bats、Shunit2 等,但这些框架实际上并不能隔离所有PATH环境变量中的命令。...与运行环境无关:可以在 Windows 上去执行只能工作在 GNU/Linux 上的脚本的测试。
disown -h 和nohup一样,在退出bash后,把进程的控制权都交给init 我们可以根据不同的场景来选择不同的方案。...*##gp' 主:如果用正则的反向引用需要注意终端编码。 1647.巧用通配符重命名单个数字文件: for i in ?....1660.export 格式化列出所有环境变量:export -p 1661.获取 ls -lrt 的最后一列: ls -1 会将 ls -l 的长格式的最后一列打印出来,等价于 ls|xargs...(glo.txt) 2/这样也行 1667.在历史记录里查询某个命令打印它,而不是执行它: !...另外,GNU 没有 sed 早期专门版本的很多限制,如行长度限制 -- GNU 可以轻松处理任意长度的行. 2. first~step GNU扩展,选定 起始行~步长 的那些行。
Bash也支持关联数组,它可以使用字符串作为数组索引。 在很多情况下,采用字符串式索引更容易理解,这时候关联数组就派上用场了。 在这里,我们会介绍普通数组和关联数组的用法。...[root@entel2 ~]# bash -version GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) Copyright.../bin/bash #第一种定义方法 array_var=(1 2 x g j) #数组的值存储在以0为起始索引的连续位置上 echo ${array_var[0]} echo ${array_var...index=5 echo ${array_var[index]} #以清单的形式输出数组中的所有值 echo ${array_var[*]} echo ${arr[*]} echo ${array_var...借助散列技术,关联数组成为解决很多问题的有力工具。接下来就让我们一探究竟。 定义关联数组 在关联数组中,我们可以用任意的文本作为数组索引。首先,需要使用声明语句将一个变量名声明为关联数组。
-C #完全从缓存中运行,而不去下载或者更新任何头文件 install #安装rpm软件包 update #更新rpm软件包 check-update #检查是否有可用的更新rpm软件包...updates: mirrors.aliyun.com package: httpd.x86_64 2.4.6-97.el7.centos dependency: /bin/sh provider: bash.x86..._64 4.2.46-34.el7 dependency: /etc/mime.types provider: mailcap.noarch 2.1.41-2.el7 dependency...: /usr/sbin/groupadd provider: shadow-utils.x86_64 2:4.6-5.el7 ..........................dependency: rtld(GNU_HASH) provider: glibc.x86_64 2.17-323.el7_9 provider: glibc.i686 2.17-323.
搜索文件中的字符串 grep 命令最基本的用法是在文件中搜索字符串(文本)。...例如,如果搜索“ gnu” ,所有“ gnu”嵌入在较大单词中的行,如“ cygnus”或“ magnum”将被匹配: grep gnu /usr/share/words cygnus gnu interregnum...例如,要显示/etc/services 文件中包含以匹配行号作为前缀的字符串 bash 的行,可以使用以下命令: grep -n 10000 /etc/services 下面的输出显示匹配项在第10423...例如,要匹配以 kan 开头,然后有两个字符和以字符串 roo 结尾的任何内容,您可以使用以下模式: grep "kan..roo" file.txt 使用匹配括在方括号中的任何单个字符。...例如,找到包含 accept 或者 accent 的行,你可以使用以下模式: grep "acce[np]t" file.txt 使用 ^ 匹配括在方括号中的任何单个字符。
在我使用命令补全时,出现了一条不普通的提示: -bash: cannot create temp file for here-document: No space left on device ls -...bash 怎么磁盘满了?...先处理一下眼前的问题,放任日志无限增长是肯定不行的,需要有一个单个文件大小限制。否则,明天张三再加一条 print,磁盘又满了。.../Linux 7 /var/log/daemon.log Debian GNU/Linux 8 journalctl -u docker.service Boot2Docker /var/log/docker.log...只有使用了 local 、json-file、journald 日志驱动的容器才可以使用 docker logs 捕获日志,使用其他日志驱动无法使用 docker logs。
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。...-d 将指定的screen作业离线。 -h 指定视窗的缓冲区行数。 -m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。...也就是窗口No. 0,并在其中打开一个系统默认的shell,一般都会是bash。...如果使用文本终端,这个列表会列在屏幕左下角,如果使用X环境下的终端模拟器,这个列表会列在标题栏里。...窗口列表的样子一般是这样: 0$ bash 1-$ bash 2*$ bash 这个例子中我开启了三个窗口,其中*号表示当前位于窗口2,-号表示上一次切换窗口时位于窗口1。
中,资源控制有两种方式: 一种是基于 POSIX(依赖于PAM模块),用户会话资源限制 一种基于 Cgroup ,主要用于进程资源限制 通过资源限制,可以对单个进程或者用户会话的资源的使用进行管理,保证系统的稳定性...2ulimit 会话资源限制 对于多用户的系统不限制资源本身可能就是一种不公平, 限制系统资源比较老的方式是使用 ulimit,由 PAM 模块在登录和会话启动时强制实施,ulimit 命令是bash...当在 gdb 中执行 bt 命令时,它试图提供程序在崩溃点处的执行回溯。...┌──[root@liruilongs.github.io]-[~] └─$ 通过 drop-in 文件进行设置 在限制之前,我们看一个服务的单元文件。...下面为 k8s 中 kubelet 服务的单元文件,在 k8s 中 kubelet 可以看做是一个 Node 上的代理服务,用于计算节点和控制节点交互。
领取专属 10元无门槛券
手把手带您无忧上云