189 8069 5689

linux批量命令for,shell批量执行命令

linux批量替换文件夹名,文件名,文件内容命令

1.批量改名采用命令rename

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了怀来免费建站欢迎大家使用!

rename 语法:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

-v表示显示详细信息,-n表示不实际执行替换,只是看哪些文件会受影响。 -f 表示强制,不管是否有重名。

perlexpr是perl语法的表达式, files则是匹配项。因此,该命令执行结果与perlexpr有关,不一定就是改文件名。

实例: 将所有文件名*.html 改为对应的.htm

rename 's//.html$//.htm$/' *.html

去bak后缀

rename 's//.bak$//' *.bak

将文件名大写改为小写

rename 'y/A-Z/a-z/' *

但rename不能递归修改。

2.递归改名,用find+rename

将文件名的abc改为xyz

find . -name "abc*" -exec rename 's/abc/xyz/' {} /;

该命令可以将当前目录下所有子目录的文件都改名。

3.内容替换,用find+sed

将所有ablo 替换为ablozhou

find . -type f -exec sed -i -e "s/ablo/ablozhou/g" {} /;

sed 命令 -i 表示 --in-place,文件原地替换。-e 后跟替换表达式

如何在linux下批量执行命令?

把你的命令写入一个shell脚本就行了啊。

新建一个文本文件,然后给他赋予可执行权限就行了。

文本内容为

#/bin/bash

。。。你的命令

如何在linux命令行中循环执行命令

1、for FILE in $(ls); do [COMMAND]; done

2、for a in {1..100}; do echo $RANDOM; done

3、for (( c=1; c=5; c++ )); do echo $RANDOM; done

4、for ((c=1; c21; c+=2)); do echo "Welcome $c times" ; done

5、for line in $(cat user.txt); do getent shadow $line; done

6、for FILE in $(cat file); do tar zcf $FILE.tar.gz $FILE;rm -rf $FILE; done

7、# awk计算所有行所有区域的总和

awk '{for (i=1; i=NF; i++) s=s+$i}; END{print s}'

linux下批量执行.sh文件

如果执行没有顺序的话,可以试试这个命令:

for filename in $( ls /opt/weblogic/jstx/bin); do sh "/opt/weblogic/jstx/bin/"$filename; done

上面的命令默认目录下所有文件都是.sh的,如果有其他格式的可以过滤以后在执行:

for filename in $( ls /opt/weblogic/jstx/bin |grep ".sh"); do sh "/opt/weblogic/jstx/bin/"$filename; done

如果需要开机启动这些脚本,可以将命令写到 /etc/rc.local

或者把命令写到脚本jiaoben.sh,然后sh jiaoben.sh:

#!/bin/bash

for filename in $( ls /opt/weblogic/jstx/bin|grep ".sh")

do

sh "/opt/weblogic/jstx/bin/"$filename

done

exit

linux有类似Windows上的for命令吗?

Windows-Linux:Windows系统下的命令类似Linux系统下的所有命令集合

目录

Windows下的命令类似Linux系统下的所有命令集合

1、基础命令

2、进阶命令

3、高级命令

Windows下的命令类似Linux系统下的所有命令集合

1、基础命令

命令 Windows系统 Linux系统

prompt export

WSL

WSL 也称为 Bash on Windows,它作为一个常规的 Windows 应用运行,并提供了一个命令行模式的 Linux 发行版。 Bash

WSL:WSL(Windows Subsystem for Linux)的简介、安装、使用方法之详细攻略

2、进阶命令

更新……

3、高级命令

更新……

Linux多台主机批量执行命令

指定一台主机作为信任主机,这样从这台主机登录其他机器就不需要密码了。

设置信任主机:

假设有四台机器:192.168.2.1~192.168.2.4,其中192.168.2.1为信任机,那么在192.168.2.1上运行如下命令:

$ssh-keygen -t rsa //此处一路回车,生成秘钥

$scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘钥拷贝到其他远程机器

$ssh 192.168.2.2 ‘cat id_rsa.pub .ssh/authorized_keys’ //(远程执行命令)在远程机器上生成认证文件

经过这几步,从192.168.2.1 ssh登陆192.168.2.2时,就不会再需要输入密码了。同样的步骤再执行3、4的极其。

文本文件hostlist可以如下

192.168.2.2

192.168.2.3

192.168.2.4

#!/bin/shdoCommand(){    

hosts=`sed -n'/^[^#]/p'hostlist`

for   host  in   $hosts

do

echo ""

echo  HOST$host

ssh  $host  "$@" 

done

return 0

}

if  [  $# -lt 1 ]

then

echo "$0cmd" exit 

fi

do  Command "$@"

echo "return from doCommand"

执行命令(记得先对doCommand.s

h增加执行权限 chmod u+x doCommand.sh)

./doCommand.sh “ls -al /root/”

这样该脚本就会在每台机器上执行”ls -al /root/”这个命令,并返回结果在信任主机上。


当前标题:linux批量命令for,shell批量执行命令
分享链接:http://jkwzsj.com/article/hsphhh.html

其他资讯