
shell脚本
文章平均质量分 87
shell脚本
bandaoyu
这个作者很懒,什么都没留下…
展开
-
【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
转自:https://blog.youkuaiyun.com/ledrsnet/article/details/115443242。B:0000 0000.0000 0000.0000 0000.0000 1101 转化为十进制:14。A:0000 0000.0000 0000.0000 0000.0000 1001 转化为十进制:9。输入: 输入IP网段,格式: xx.xx.xx.xx/[0-32]下来举例说明,如何去判断A和B两个IP是否在同一网段。2、要判断两个IP是否在同一网段,主要是看看他们的。原创 2022-09-23 01:42:55 · 2548 阅读 · 1 评论 -
【shell】shell 数组处理
echo "数组的元素个数为: ${#my_array[*]}"echo "数组的元素个数为: ${#my_array[@]}"echo "数组的元素为: ${my_array[*]}"echo "数组的元素为: ${my_array[@]}"Bash Shell 只支持一维数组(不支持多维数组)echo "数组的键为: ${!echo "数组的键为: ${!获取数组长度的方法与获取字符串长度的方法相同。使用 @ 或 * 可以获取数组中的所有元素。关联数组的键是唯一的。获取数组中的所有元素。原创 2022-09-19 20:50:50 · 2737 阅读 · 5 评论 -
【shell】shell笔记--->特殊符号|编程注意|脚本获本身绝对路径
先了解下bash中什么时候该用空格,什么时候不该用。1. 等号赋值两边不能有空格2. 命令与选项之间需要空格3. 管道两边空格可有可无我们来看看常见的问题1. 赋值时等号两边或者只有左边多了空格?123456789101112igi@gentoo ~ $ var1 = testbash: var1: command...原创 2016-10-06 04:07:58 · 1534 阅读 · 0 评论 -
【linux】linux环境变量|删除|添加|shell父子环境变量传递
查看环境变量printenv或envcoreutils包中包含printenv和env。yum -y install coreutils设置临时环境变量export PATH="${PATH}:/root/testPath"export命令来设置临时环境变量,这个变量是只存在于设定环境变量的会话中,其它会话窗口是不会有该变量的,一旦会话结束或者会话退出,重新连接会话,该环境变量就不存在了设置环境变量永久的--针对具体的用户在 ~/profile、~/.bash_profi原创 2022-04-22 14:59:58 · 4345 阅读 · 0 评论 -
【shell】-exec和xargs|对每个结果都执行|前命令结果作为后命令的参数|逐行处理
目录实现效果:参数说明--exec参数xargs参数实现效果:对前一命令的每一个结果都执行某个操作参数说明--exec参数-exec command:command-exec 后面接其他执行的指令来处理前一个命令得到的结果。例如:find /root -name tom_renam -exec grep -nR "hello" {} \;find在/root目录下搜索名为tom_renam的文件,在搜出的tom_renam文件中搜索“...原创 2022-03-31 22:43:31 · 6923 阅读 · 2 评论 -
【shell】scp 同时向多个主机拷贝数据
法1:scp命令扩展法2:主机名放到hostlist.txt文件里转自:linux主机同时向多台主机拷贝文件:scp_all_nodes - 知乎步骤如下:在需要执行runcmd主机使用publickey免密登录所有主机(包括该主机自己),参考之前笔记或者百度(参考上篇run_cmd) 参考:https://blog.youkuaiyun.com/bandaoyu/article/details/83312891LINUX SSH免密登录即看即用Server A 要免密登录..原创 2022-01-18 11:40:11 · 5104 阅读 · 2 评论 -
【shell】远程执行shell|多节点并行执行|远程登录执行
目录shell远程执行前提条件:对于简单的命令:对于脚本的方式:SSH命令格式主要参数说明ssh控制远程主机,远程执行命令步骤准备工作基于公私钥认证远程登录可能存在的不足ssh 执行远程命令格式打开远程shellssh的-t参数在多个节点上并行执行命令的三种方法使用bash执行命令∞(Execute commands using Bash∞)使用执行命令clustershell∞(Execute commands usingclust...原创 2021-11-07 11:41:00 · 10045 阅读 · 7 评论 -
【shell】shell字符串分割|文件分割|剪切|截取
目录一、字符串分割1、awk分割2、利用shell 中 变量 的字符串替换成空格分割3、设置分隔符,通过 IFS 变量4、利用tr 指令实现字符替换二、文件分割附录【转】linux下awk内置函数的使用(split/substr/length)四、gsub函数五、正则表达式一、字符串分割1、awk分割把 ceph_12.2.1.centos.x86_64.tar.gz-2021-10-08-08后面的2021-10-08-08按“-”分割,取最后一个数..原创 2021-10-08 21:07:02 · 106771 阅读 · 5 评论 -
【Shell】while 循环中的变量无法保存|无法获取while中的变量|管道中的函数变量无法获取问题
例子:[liuhao@slave04 ~]$ cat test.sh #! /bin/sh x=1echo "adasd" | while read linedo x=2 doneecho $x 运行结果是[liuhao@slave04 ~]$ sh test.sh 1原因原来是因为管道|创建了新的子进程,而子进程是在独立的进程空间(Context)运行了. 需要跟父进程通信的话, 得使用进程间通信机制. 不是简单的变量问题。解决办法:1、命名管...原创 2021-09-02 22:49:29 · 1803 阅读 · 2 评论 -
【shell】数值加减乘除|运算|字符串转数字|提取数字字母小数|大小写转换
数值计算shell 包含三个命令:bc、expr、let可用于数值计算。输入:整数,let和expr都无法进行浮点运算,但是bc和awk可以。输出:bc、expr可直接显示计算结果;let则丢弃计算结果,可通过传递结果到变量,取变量值获得计算结果。格式示例:bc[root@localhost ~]# echo 300 + 5 |bc305[root@localhost ~]# echo 300 - 5 |bc295[root@localhost ~]# echo.原创 2021-10-08 17:25:53 · 12267 阅读 · 2 评论 -
【shell】Linux 连续执行多条命令的方法和区别
目录前一命令成功与否都会继续执行下一条命令前一命令执行成功了才会继续执行后边的命令前一命令执行失败了才会继续执行后边的命令混合了集中分隔符的例子原文:https://www.jb51.net/article/105993.htm前一命令成功与否都会继续执行下一条命令$ echo 1; echoo 2; echo 3; echo 4这里,故意将第二条命令中的echo多写了一个o,命令执行出错,但并不影响后续命令的执行前一命令执行成功了才会继续执行后边的命令$ ec.原创 2021-05-26 16:50:18 · 9605 阅读 · 0 评论 -
【Shell】Shell脚本(for循环,while循环,break跳出循环,continue结束本次循环)
for循环语法:for 变量名 in 条件 ; do done;案例一:计算1-100所有数字的和。脚本:#!/bin/bashsum=0for i in `seq 1 100`do sum=$[$sum+$i]done echo $sum结果:[root@congji ~]# sh 1-100.sh5050案例二:列出/etc/sysconfig下所有子目录,并且使用ls -d命令查看。脚本:#/bin/bash...原创 2021-04-07 14:02:17 · 28989 阅读 · 0 评论 -
【Shell】awk命令--输出某列,列求和,列求平均值,列最大值,列去重复,取倒列,过滤行,匹配,不匹配,内置变量|定义分隔符|多个分隔符
在awk中运行shell命令目前我所了解的在awk中运行shell命令 有2中方式实现1.awk内置函数system2.通过awk print出要执行的命令 然后交给/bin/bash 执行awk 内置函数system执行方法 awk ‘BEGIN{system(“shell命令)}’ 就行[root@CHSHA-CT-WWW-249 ~]# awk ‘BEGIN{system(“hostname”)}’CHSHA-CT-WWW-249.360buy.com[root@...原创 2021-04-29 16:53:25 · 12261 阅读 · 4 评论 -
【shell】实现交互|read读取键盘输入
简介expect是一个免费的编程工具,用来实现自动和交互式任务通信Expect的语法:关键命令send、expect、spawn和interact:send:用于向进程发送字符串,注意一定要在末尾加\r回车 expect:从进程接收字符串 spawn:启动新的进程 interact:允许用户继续交互expect是关键的部分,在英文中,expect有“期待”的意思,采用了tcl的模式-动作语法,此语法有以下几种模式:单一分支语法:expect "hello" {send "y.原创 2021-07-05 15:37:03 · 15411 阅读 · 7 评论 -
【shell】shell脚本读取给定参数|参数个数
myshell.sh#!/bin/shfunction ParaAnalyse(){if [ -z "$1" ]thenecho no para to analyseelsepara=$1local paraType=${para:O:3} case $paraType in-b:|-B:) boardType=${para:3};;-s:|-S:) BuildType=${para:3};;-f:|-F:) filter="-f ${para:3} $filter" ;;.原创 2021-02-09 14:50:28 · 6730 阅读 · 3 评论 -
【shell】shell之cut用法|剪切列或域|提取列或域
提取列的用awk命令更好用提取域的可以参考cut:https://blog.youkuaiyun.com/appke846/article/details/80367395内容:提取ID域,用冒号做分割符:原创 2021-05-08 16:20:32 · 3912 阅读 · 1 评论 -
【Shell】Shell时间相关|统计Shell脚本执行时间|sleep
统计Shell脚本执行时间,帮助分析改进脚本执行用 date 相减#!/bin/bashstartTime=`date +%Y%m%d-%H:%M:%S`startTime_s=`date +%s`endTime=`date +%Y%m%d-%H:%M:%S`endTime_s=`date +%s`sumTime=$[ $endTime_s - $startTime_s ]echo "$startTime ---> $endTime" "Total:$sumTime sec原创 2021-04-08 16:52:49 · 7392 阅读 · 1 评论 -
【shell】笔记|去重复行|删除匹配行|反选删除|反向显示|加减乘除
加载配置/定义/文件 将函数或者变量替换定义在一个文件中,如函数可以定义在.fun文件中,然后在.sh脚本中,用“."加载,然后直接调用函数,如果:db.fun。定义函数可带参数,函数中的 $1,$2,$3…… 表示接受的第一个,第二个,第三个……参数。如:create_station_db 20 11 $1就是20 $2就是 11....原创 2016-02-04 23:19:00 · 4166 阅读 · 1 评论 -
【shell】echo -n 和echo -e |echo换行/不换行输出|彩色输出
echo -n 不换行输出$echo -n "123"$echo "456"最终输出 123456而不是123456echo -e 处理特殊字符若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\a 发出警告声;\b 删除前一个字符;\c 最后不加上换行符号;\f 换行但光标仍旧停留在原来的位置;\n 换行且光标移至行首;\r 光标移至行首,但不换行;\t 插入tab;\v 与\f相同;\ 插入\字符;\nnn 插入nnn(八进制).原创 2021-06-22 14:03:06 · 16804 阅读 · 2 评论 -
【shell】循环测试脚本|历史脚本记录|启动OSD脚本
#!/bin/bash#说明函数定义脚本#***************************************************************#函数 status_check#判断程序$1是否已经在运行 $1:第一个参数#***************************************************************function status_check(){ pids=`ps aux|grep -w ${1}|g.原创 2021-04-07 14:25:42 · 877 阅读 · 1 评论 -
【shell】Shell 实现多线程(多任务)
目录实现方案:1.命令结尾添加:&2.解决主线程提前退出问题,添加 wait3.控制后台执行数(线程数),mkfifo参考资料原文:https://www.cnblogs.com/zhengbin/p/9513762.html实现方案:1.命令结尾添加:&+ View code#/bin/bashall_num=10a=$(date +%H%M%S)for num in `seq 1 ${all_num}`do { slee.原创 2021-04-07 14:28:37 · 1398 阅读 · 0 评论 -
【shell】Linux限制命令运行时间(timeout)|规定命令运行时长
目录即看即用常用举例发送指定的信号停掉卡住的进程运行在前台详细解释timeout 指定运行的命令最大运行时长,时间到则终止该命令。timeout命令是GNU核心实用程序软件包的一部分,该软件包几乎安装在所有Linux发行版中即看即用常用举例默认单位是秒5秒后终止ping操作:[root@localhost ~]# timeout 5 ping www.baidu.com5分钟之后终止ping操作:[root@localhost ~]# .原创 2021-05-06 11:42:11 · 20897 阅读 · 1 评论 -
【shell】linux输出重定向|输出重定向2>&1
>/dev/null 2>&1 这句话的含义及使用的意义命令的结果可以通过>的形式来定义输出Linux的IO输入输出有三类代码 0 StandardInput代码 1 StandardOutput,表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"代码......原创 2015-04-03 01:04:48 · 2445 阅读 · 0 评论 -
【Shell】判断是否包含给定字符串
Shell判断文件是否包含给定字符串给定一个字符,比方说“Hello Linduo”,查找相应文件中是否包含该字符。 方式1:grep# grep -c 返回 file中,与str匹配的行数grep -c str fileFIND_FILE="/home/linduo/test/Test.txt"FIND_STR="Hello Linduo"# 判断匹配函数,匹配函数不为0,则包含给定字符if [ `grep -c "$FIND_STR" $FIND_FILE` -ne '0' ]原创 2021-04-07 14:05:33 · 46224 阅读 · 0 评论 -
【Shell】Sed 删除、替换、增加字符串
Sed语法删除、替换、增加字符串删除# Delete text between patterns, excluding the lines containing these patterns(不删除所在行):sed -i '/PATTERN-1/,/PATTERN-2/{//!d}' input.txt# Delete text between patterns, including the lines containing these patterns(所在行也删除):sed原创 2021-09-01 19:59:54 · 43302 阅读 · 9 评论 -
【Shell】用ls和grep统计文件个数|ls 统计行数|统计个数|统计代码行数
Linux ls命令Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。语法ls [-alrtAFR] [name...]参数 :-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 -r 将文件以相反次序显示(原定依英文字母次序) -t 将文件依建立时间之先后次序列出 -A 同 -a ,但不列出 “.” (目前目录) 及 “…”原创 2021-02-08 15:31:18 · 1921 阅读 · 0 评论 -
【shell】if判断|if目录是否存在|文件是否存在|判断字符串包含关系|与或
lsdirname如果返回为空则目录为空或者lsdirname|wc-l如果结果为0则目录为空 最简单的方法:用ls-A$dir好用的,测试过,对.file也能好用。 #!/bin/sh#ifdirecDIRECTORY=$1#在此加上是不是目录的判断。if [ "`ls -A $DIRECTORY.....................原创 2019-11-07 09:38:09 · 15437 阅读 · 1 评论 -
【shell】遍历目录及其子目录中的所有文件|判断文件是否有修改
https://www.jb51.net/article/142325.htm新建一个shell文件 1 $ vi traveDir.sh 输入以下代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #! /bin/bash function read_dir(){ for file in原创 2021-06-11 13:00:17 · 3529 阅读 · 1 评论 -
【shell】脚本修改、读取配置文件的值|shell配置文件conf处理
目录问题实例问题问:想在bash脚本中修改改安装Oracle软件的响应文件db_install.rsp。相关参数有:SELECTED_LANGUAGES=en,zh_CN,zh_TWORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1ORACLE_BASE=/u01/app/oracleoracle.install.db.InstallEdition=EE 原文本只含有“参数=”,如何在bash中批量赋值给对应参数?答:.原创 2021-05-08 15:34:17 · 13791 阅读 · 6 评论 -
【shell】shell 命令取别名|tr 转译命令|windows路径转linux路径
目录临时设置:写入配置文件长期有效:在linux中很多时候我们会经常性的使用某些命令,比如切换到某个目录,但是目录结构太多,真的很累,这时候我们就可以自定义命令,也就是给命令取别名Linux 中“命令取别名”涉及的命令为 alias 和 unalias(解除别名):临时设置:设置别名:alias [别名]=[需要别名的命令]alias [别名]=[需要别名的命令] # 注意,等号两边不要空格,若命令包含空格,则一定要加‘’例子:lsl='ls -al'删除别名:.原创 2021-03-25 20:18:29 · 1108 阅读 · 2 评论 -
【shell】两个文件对应列相减|文件合并|网卡流量清0方法
有两个文件,格式如下app1,20,30,2,55app2,23,44,56,58app3,32,32,6,59app1,25,37,24,59app2,27,64,58,66app3,39,72,9,70对应位置相减后输出:app1,5,7,22,4app2,4,20,2,8app3,7,40,3,11用shell如何实现?===================$ join file1 file2 -t, -j1 | awk -F, 'BEGIN{OFS =原创 2021-06-25 10:38:06 · 1180 阅读 · 0 评论 -
【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥
ssh Secure shell 免密码登录简单教程:http://www.cnblogs.com/godtrue/p/4185689.html 1.ssh软件界面:选择 Edit->settings->user authentication > Keys 2. 点击“Generate New”,下一步,可选择 rsa dsa两种加密方式(选择r.........原创 2017-09-24 00:42:38 · 4384 阅读 · 1 评论 -
【shell】用 grep 查找包含字符串的文件|grep 过滤|取匹配行的前后n行
目标:本文提供一些关于如何搜索出指定目录或整个文件系统中那些包含指定单词或字符串的文件。难度:容易约定:#- 需要使用 root 权限来执行指定命令,可以直接使用 root 用户来执行也可以使用sudo命令 $- 可以使用普通用户来执行指定命令案例非递归搜索包含指定字符串的文件第一个例子让我们来搜索/etc/目录下所有包含stretch字符串的文件,但不去搜索其中的子目录:# grep -s stretch /etc/*/etc/os-release:PRET......原创 2021-03-13 17:44:40 · 32246 阅读 · 4 评论 -
【shell】删除脚本/文件的特殊字符|不可见字符|异常字符|统计某个字符串出现次数
使用tr命令可以从字符串中仅获取'可打印'(可见)的字符.如:从file1 中获取可见字符tr -cd "[:print:]\n" < file1 将脚本中的不可见字符去掉可以用下面的命令:tr -cd "[:print:]\n" < file1 >>file1_newfile1_new 就是去除不可见字符后的脚本原文:https://www.it1352.com/1563451.html...原创 2021-08-19 11:14:54 · 4264 阅读 · 0 评论