shell
小风筝123
^_^
展开
-
zip命令打包去过滤某目录不打包进去
bash中zip命令打包去过滤某目录不打包进去用以下命令zip -r a.zip ./ -x "d/*"注意"-x" 一定要放在最后。实验看效果$ find../d./d/f2./f1$ zip -r a.zip ./ -x "d/*" adding: f1 (stored 0%)$ unzip -l a.zipArchive: a.zip Length Date Time Name--------- ---------- ----- -原创 2021-09-22 11:42:33 · 889 阅读 · 0 评论 -
find atime +n n -n的规律
用以下命令可以创建指定时间的文件$ touch -d "2020-04-28" -a f1$ touch -d "2020-04-28 23:59:59" -a f2、按访问时间查找的命令命令find ./ -type f -atime +n和find ./ -type f -atime n和find ./ -type f -atime -n和有什么区别?查找命令备注find ./ -type f -atime 00-24小时以内的文件find ./ -type原创 2021-09-16 16:10:30 · 542 阅读 · 0 评论 -
ubuntu shell取一位随机数
如果随机数只取一位,该如何取?1. 取最高一位${RANDOM:0:1}a=(0 0 0 0 0 0 0 0 0 0);for i in $(seq 0 99);do first=`echo ${RANDOM:0:1}`;let a[${first}]+=1;done取最高一位数字,我们来统计一下这些‘随机数’是否随机:$ for j in ${a[*]} ; do echo -n $j" " ; done;echo ""0 34 40 13 5 4 2 0 1 1 即以0为开头原创 2021-09-16 14:57:46 · 282 阅读 · 0 评论 -
git clone因为含有特殊字符导致失败 Could not resolve host
某git仓库,用户名是userA,密码是pw12*#git version 1.9.1的机器 上git clone http://userA:pw12*#@love.3q.com/usera/Fruit.git b成功但在git version 2.7.4的机器 上则会失败$ git clone http://userA:pw12*#@love.3q.com/usera/Fruit.git b正克隆到 'FreemePrivateNewsPageCn'...fatal: unable to原创 2021-09-16 11:36:06 · 990 阅读 · 0 评论 -
nohup & 让进程在后台运行的用法
nohup & 让进程在后台运行的用法准备一个可以长时间跑的脚本。$ cat t.sh#!/bin/bashfor i in $(seq 100)dosleep 1secho "i $i"done1.cmd终端A运行/bin/bash t.sh此时终端B可见t.sh进程1.此时终端A Ctrl + C 或者 终端A 关闭此时终端B不可见t.sh进程2.cmd &终端A运行/bin/bash t.sh &此时终端B可见t.sh进程1.终端A Ctrl原创 2021-09-15 17:40:16 · 1504 阅读 · 0 评论 -
zip -d因为set -f取消了通配符导致星号*不起作用
zip xxx.zip -d file_path可以把xxx.zip包里file_path这个路径的文件删除。现在发现 zip -d删除zip包里文件的命令,有时候无法删除里面的文件。有某zip文件,内容如下unzip -l t.zipArchive: t.zip Length Date Time Name--------- ---------- ----- ---- 0 2019-04-19 16:12 d2/f 0 20原创 2021-09-15 15:21:40 · 483 阅读 · 0 评论 -
shell grep -r查找文件内容略过查找某些目录
shell中,grep -r查找文件内容略过查找某些目录。该如何操作呢。1. 如果要略过多个目录不执行grep用grep -r xxx <path> --exlude-dir={folder_name1,folder_name2/}说明 :--exclude-dir里每一个都是目录的名字,而不是目录的路径,目录名最后可以跟一个/,即可以是folder_name1,也可以是folder_name2/,会把<path>路径下子孙目录中所有名字为’folder_name1’原创 2021-09-14 15:38:02 · 687 阅读 · 0 评论 -
shell中判断字符串是否包含某串
shell中判断字符串是否包含某串shell cmd 备注bash if [[ "aa bb cc" =~ "bb" ]] ; then echo "in";fi可以bash if [ "aa bb cc" =~ "bb" ] ; then echo "in";fi语句非法bash if [[ "aa bb cc" = *bb* ]] ; then echo "in";fi可以bash if [[ "aa bb cc" == *bb* ]] ; then echo "in";fi可以b原创 2021-09-14 13:53:45 · 924 阅读 · 0 评论 -
shell awk 打印第2到最后一列
shell awk 打印第2-NF列结论:awk '{$1="";print $0 }'和awk '{for(i=2;i<=NF;i=i+1)printf " "$i;print ""}'可行。看效果。准备一个文件 111 22 33 44aa bb cc dd eeAA BB CC DD EE FF$ awk '{$1="";print $0 }' 1 22 33 44 bb cc dd ee BB CC DD EE FF$ awk '{for(i=2;i<=NF;i原创 2021-09-13 17:31:04 · 10677 阅读 · 0 评论 -
shell(bash)替换字符串大全
shell(bash)替换字符串大全1 .替换(只替换一个)varrB=${varA/str1/str2}$ var="AAAszip_BBB.zip";var2=${var/zip/ZIP};echo $var2};AAAsZIP_BBB.zip$ var="AAAszip_BBB.zip";var2=${var/.zip/.ZIP};echo $var2;AAAszip_BBB.ZIP替换(替换所有)varB=${varA//str1/str2}$ var="AAAszip_BBB.原创 2021-09-13 17:21:13 · 16989 阅读 · 0 评论 -
usermod -a -G group user修改user用户信息,把user添加到组group中
usermod -a -G groupB userA命令是修改userA用户信息,把userA添加到组groupB中。$ ll总用量 40drwxrwxr-x 10 jenkins jenkins 4096 7月 3 16:24 ./drwxrwxr-x 3 jenkins jenkins 4096 6月 6 10:03 ../$ mkdir uploadmkdir: 无法创建目录"upload": 权限不够$ iduid=1000(userA) gid=1000(userA) 组原创 2021-09-11 11:20:58 · 10407 阅读 · 0 评论 -
sudo -S可以不用手动输入密码,且只要第一次密码正确,后面在有效期内,密码错误也可以
"sudo -S"命令可以从字符串或者文本文件中获取,可以从echo结果中获取,而不用在像在终端上需要等待手动输入密码。 这种方法并不推荐,因为密码会暴露。以下实验中,用户user1有sudo权限,密码是abcdef。输入错误密码,无法执行mount:$ echo 123456 |sudo -S mount system.img mp [sudo] user1 的密码: 对不起,请重试。 [sudo] user1 的密码: sudo: 1 次错误密码尝试 输入正确...原创 2021-09-11 10:50:58 · 9613 阅读 · 0 评论 -
shell脚本内获取该执行文件的路径
准备脚本 /home/peggy/1.sh :echo -n "pwd: ";pwdecho -n "dirname $0: ";dirname $0echo "script_folder: "$(cd `dirname $0`;pwd)用绝对路径调用脚本和用相对路径运行脚本:$ /home/peggy/1.shpwd: /mntdirname /home/peggy/1.sh: /home/peggyscript_folder: /home/peggy$ ../home/peggy/1原创 2021-09-11 10:34:31 · 1776 阅读 · 0 评论 -
zip -ry制作压缩文件没有读取权限导致失败
linux终端上用zip命令来打压缩包zip,$ zip -ry /mnt/aa.zip SYSTEM/etc/fs_config_dirs;echo $?updating: SYSTEM/etc/fs_config_dirsSYSTEM/etc/fs_config_dirs: Permission denied zip warning: could not open for reading: SYSTEM/etc/fs_config_dirs zip warning: will just cop原创 2021-09-11 10:02:24 · 2968 阅读 · 0 评论 -
ubuntu中shell set -u 和set +u
shell中 ,set -u之后,使用没有初始化的变量,会导致报错set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。我们来试试。准备一个脚本t1.sh:echo "1:$1"没有set -u之前,$1存在、不存在都可以,运行不报错:$ /bin/bash t1.sh 1:$ /bin/bash t1.sh 2 1:2/bin/bash -u执行脚本相当于在子shell中做了set -u,/bin/bash -u xx.sh ,如果$1原创 2021-09-11 09:41:16 · 1159 阅读 · 0 评论 -
shell basename 可以去除文件名后缀
$ basename /folder/f.zip f.zip$ basename /folder/f.zip .zip f可见,basename /folder/f.zip .zip还可以去除后缀,神奇用法。原创 2021-09-10 17:57:20 · 4208 阅读 · 0 评论 -
shell dd命令在bs参数太大的时候出现异常的解决方法
上文讲到了shell dd命令在bs参数太大的时候会出现异常。现在讲讲怎么解决。如果需要dd很大的文件的时候,需要指定很大的bs参数的时候怎么办呢?答案是分块dd。多进行几次dd。我写了个脚本sdd.sh,sdd $file_input $file_output $bs对应于dd if=$file_input of=$file_output bs=$bs count=1其中$bs值可以大于、等于、或小于dd的bs限定大小2147479552 (0x7ffff000)。上脚本sdd.sh#原创 2021-09-09 15:41:00 · 1337 阅读 · 1 评论 -
shell dd命令在bs参数太大的时候会出现异常
shell dd命令在bs参数太大的时候会出现异常。现有一个文件$ ll-rw-r--r-- 1 server server 2787518108 4月 11 14:13 filea我们想用dd命令跳过开头16448字节,得到剩下的内容。$ dd if=filea of=filea.23 bs=16448 skip=1;169473+1 records in169473+1 records out2787501660 bytes (2.8 GB) copied, 3.80907 s, 7原创 2021-09-09 14:49:34 · 459 阅读 · 0 评论 -
shell逐行读取文件
shell中如何逐行读取?在ubuntu下测试。准备2文件:$ cat cfgline1_a line1_bline2_a line2_bline3_a line3_b$ cat cfg.newline line1_a line1_bline2_a line2_bline3_a line3_b注:cfg最后一行是没有换行符的,cfg.newline最后一行是有换行符中。即hexdump -C cfg和hexdump -C cfg.newline两个命令对比可以发现,cfg.newl原创 2021-09-09 14:17:42 · 1588 阅读 · 0 评论 -
shell cd命令在while中不能作用于while外面,cd在for if case中会作用于for和if和case外面
一. 现象while中cd在退出while后失效,for & if & case中cd在退出块后生效。1. while中cd在退出while后失效$ echo line_1 > ~/1$ echo line_2 >> ~/1$ pwd;cat ~/1 | while read l;do echo $l;cd /folder2;pwd;done;pwd/folder1line_1/folder2line_2/folder2/folder12. fo原创 2021-09-09 14:02:13 · 157 阅读 · 0 评论