本文目录
sudo自动输入密码
远程执行shell命令
间接引用
批量文件命名
判断某个文件夹是否存在并
点击随机数位置
去除所有本地化的设置
修改sh默认连接到bash的一种方法
命令行中执行命令行
注释多行
命令行实现多条shell
set命令
显示文件夹下所有文件的绝对路径
awk
$变量值
secure.sh
其中zjk123为密码
echo 'zjk123' | sudo -S cp file1 /etc/hosts
sshpass -p efon ssh [efonfighting@192.168.31.70](mailto:efonfighting@192.168.31.70) "rm -rf /home/efonfighting/efon_driver_html/*"
$'$i'
ls | while read line;do a=`echo $line | sed -e 's/?//g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/\*//g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/\///g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/|/_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/</_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/>/_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/(/_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/)/_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/:/_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/\ /_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/(/_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/)/_/g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/\.\.\./\./g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/…//g'`;mv $line $a ;done;
ls | while read line;do a=`echo $line | sed -e 's/ | //g'`;mv $line $a ;done;
test -d $(GMPF_IMG) && cp -vuf $(efon_ROOT)/target/product/$(PROJECT)/images/* $(GMPF_IMG)
while true;do input tap $(($RANDOM%100 +260)) $(($RANDOM%80 +760));done
export LC_ALL=C
在shell脚本中,这一句的作用是为了去除所有本地化的设置,让命令能正确执行。
sudo dpkg-reconfigure dash
选择no 即可!
adb pull -a /sdcard/screencap.png cap`date +%m%d%H%M%S`.png
:<<eof
被注释的多行内容
eof
多文件重命名:
ls | while read line;do **i=$[$i + 1];a=`printf "%03d" $i`**;mv $line $a.mp4;done
ls | while read line;do mv $line ${line%%"房地产广告精选1"*}房地产广告精选${line##*"房地产广告精选1"};done
find -name "358*.git" | while read line; do cd $line; git fetch; cd ..; done
while read line
do
…
done < file
while read line
do
…
done < file
-a:标示已修改的变量,以供输出至环境变量。 -b:使被中止的后台程序立刻回报执行状态。 -C:转向所产生的文件无法覆盖已存在的文件。 -d:Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。 -e:若指令传回值不等于0,则立即退出shell。 -f:取消使用通配符。 -h:自动记录函数的所在位置。 -H Shell:可利用"!"加<指令编号>的方式来执行history中记录的指令。 -k:指令所给的参数都会被视为此指令的环境变量。 -l:记录for循环的变量名称。 -m:使用监视模式。 -n:只读取指令,而不实际执行。 -p:启动优先顺序模式。 -P:启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。 -t:执行完随后的指令,即退出shell。 -u:当执行时使用到未定义过的变量,则显示错误信息。 -v:显示shell所读取的输入值。 -x:执行指令后,会先显示该指令及所下的参数。
删除以a开头的行 :
sed -i '/^a.*/d' tmp.txt
ls | while read line;do a=`echo $line | sed -e 's/?//g'`;mv $line $a ;done;
sed -i 's/20.* : http/http/g' 一汽奔腾.txt
sed -n '2p' //第2行
sed -i '/^$/d' tmp.txt 删除空行
sed -i '/\r/d' tmp.txt 删除^M
cat ssss.txt | grep "@*.com" | sed 's/.com.*$/.com/g' | sort | uniq #(uniq 去除重复,必须先进行正则表达 后'.*$' 前 '^.*')
find "$(pwd)" -maxdepth 1 | sed '1'd # 删除第一行
awk -F ',' '{print NF-3}' efon_ver1.0.cfg >1.txt
1表示记录中的第一个字段。
awk '{print $1}' //第1列
awk '{print $(NF-1)}' //倒数第2列
NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。 FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR。 NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。
awk -F ',' 'gsub($1,NF)' 48k_script_example.cfg //将文本以“,”分割,将第1域替换成“每行列数”
cat GMUI3.0.0.LIST | wc -l //查看输出行数
sed -n '1p' 1000098.txt |awk '{print NF}' //查看某行有多少列
$? //返回值
#!/bin/bash
if [ "" = "$1" ] || [ "" = "$2" ];then
echo security.sh -e/-d filename
elif [ "-e" = $1 ];then
tar -zcf - $2 | openssl des3 -salt -k \!1qawertsW2 | dd of=$2.des3
elif [ "-d" = $1 ];then
dd if=$2 | openssl des3 -d -k \!1qawertsW2 | tar zxf -
fi