Shell 小技巧 ${} 的使用 截断变量 去掉左边 使用 # (最短匹配)或 ## (最长匹配)方法为 ${var#<模式>} var=DUMMY echo ${var#*M} # MY echo ${var##*M} # Y 去掉右边 使用 % (最短匹配)或 %% (最长匹配)方法为 ${var%<模式>} var=DUMMY echo ${var%M*} # DUM echo ${var%%M*} # DU 字符串提取 索引从0开始,使用 :<索引> 定位开始…
如何能让自己的shell显得不那么业余?下面6点实践一定有用. 画外音:本篇文章源自Google的一篇实践,抽取了部分1分钟能读完的内容,加入了一些分析. 一.以下面的语句开场 set -o nounset 在默认情况下,遇到不存在的变量,会忽略并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行. 画外音:有些变量名的手误,会让人崩溃的调试半天,通过这个方式,这类手误秒发现. set -o errexit 在默认情况下,遇到执行出错,会跳过并继续执行,而这往往不符合预期…
这里纪录一些linux下用到的小技巧,以免遗忘 在linux中经常碰见各种文件处理.最常用的就是替换文件中的某些字符.常见字符替换还是很容易完成.但是有些不可见字符以及ascii编码字符等等都无法直接使用常见方法替换.这里可以用下面的几种方法进行处理 1.sed 方法 sed -i 's/$(echo -ne "\001")/|/g' file #这里就可以通过这种方式直接使用ascii编码来替换不可见的字符.echo "\001"这种方法可以打印出对应的ascii…
复制一个文件nfsclient.sh到主机172.18.117.162的/tmp目录下 scp -P22 /tmp/nfsclient.sh  root@172.18.117.162:/tmp -P22 是指定端口(默认是22,遇到非默认端口情况需要指定端口): /tmp/nfsclient.sh  文件的决定路径:在文件的当前路径下使用这个命令可以不加路径: root 是目的机器的用户名(172.18.117.162): /tmp 是复制的目的路径: 使用对端主机必须开启ssh服务,并在防火墙…
当前目录下后缀为sh的文件,改为后缀shell. 这里列出两种方法,先看第一种.方法1:#!/bin/bash str=`find ./ -name \*.sh`  # 会产生一个列表 file=" $str "   # 需要在列表前后加空格,在shell中,列表或数组的括号前后必须是空格 for i in $file do mv $i ${i%sh}shell done思路很简单,用find找到符合的文件,存如数组.然后使用mv修改文件名. 其中${i%sh}shell是修改后缀后的…
代码: find -type f ! -name "*.jpg" ! -name "*.png" ! -name "*.jpeg" ! -name "*.php" ! -name "*.txt" ! -name "*.php5" ! -name "*.asp"…
方法1: grep -E "^$" 1.txt | wc -l 详解:在网上摘抄,个人觉得不使用-E参数也行,利用正则^$可帅选出空行 方法2: file="1.txt" sed -n  '/^$/p' 1.txt |wc -l 详解:-n选项:只显示匹配处理的行(否则会输出所有) 方法3: awk '/^$/' 1.txt  |wc -l awk '/^$/{print $0}' 1.txt  |wc -l awk '$0~/^$/{print $0}' 1.tx…
工具推荐 命令行中很方便的代码统计工具---cloc 强大的分屏工具---tmux 最舒服的markdown书写工具---typora markdown图床推荐--七牛云 模拟生成熵(避免暴力手搓键盘) 计算机本身是可预测的系统(比如开始的过程),因此,计算机算法不可能产生真正的随机数.但是机器的环境中充满了各种各样的随机性的噪声,如硬件设备发生中断的时间,用户点击鼠标的时间间隔等,这些事件是完全随机的,事先无法预测.而Linux内核实现的随机数产生器正是利用系统中的这些随机噪声来产生高质量随机…
api_url= #echo ${api_url/:/ }a #echo `echo $api_url|sed -i 's/:/ /' ` #|sed -i 's/:/ /' ` #sed 'as/:/ /' (;)|telnet ${api_url/:/ }|cat #替换并检测数据 str4=`(;; ; ; ) | telnet ${IP} | grep ${tempValue}` num4=`echo ${#str4}` ];then echo "==::在a.log文件中没有找到关键字…
我们linux获取文件当前路径一般问 #逼格不够高 [root@xxxx]# pwd 高逼格 SHELL_FOLDER=$(dirname $(readlink -f "$0"))…