把你的命令寫入一個shell腳本就行了啊。
新建一個文本文件,然後給他賦予可執行許可權就行了。
文本內容為
#/bin/bash
。。。你的命令
『貳』 Linux批量替換多個文件中字元串
linux批量替換多個文件中字元串linux下批量替換多個文件中的字元串的簡單方法。用sed命令可以批量替換多個文件中的字元串。
用sed命令可以批量替換多個文件中的字元串。sed
-i
s/原字元串/新字元串/g
`grep
原字元串
-rl
所在目錄`例如:我要把mahuinan替換為huinanma,執行命令:sed
-i
s/mahuinan/huinanma/g
'grep
mahuinan
-rl
/www'這是目前linux最簡單的批量替換字元串命令了!具體格式如下:sed
-i
s/oldString/newString/g
`grep
oldString
-rl
/path`實例代碼:sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
/usr/aa`sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
./`
『叄』 linux 如何快速給500 台機器 執行同一條命令
要實現批量部署,前提是標准化,和自動化
1.自動化可以完成大量重復性工作
2.標准化是部署對象必須有一定的標准
比如:賬號user1密碼是usr1,user2密碼是usr2.。。
如題:
假設那500台機子IP為 192.168.1.1-250,192.168.2.1-250
第一種情況(簡單):
管理節點已經ssh公鑰傳所有主機
[root@master ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)?
[root@master ~]# ssh--id /root/.ssh/id_rsa.pub 192.168.1.1
我們只要執行兩個循環就能完成需求
for i in {1..250}; do ssh 192.168.1.$i "echo 1 > /etc/a.txt ";done
for i in {1..250}; do ssh 192.168.2.$i "echo 1 > /etc/a.txt ";done
第二種情況只能用密碼登陸
要求是IP,密碼必須滿足標准化
我這邊只有一個ssh捕捉信號的腳本(完成非互動式輸入密碼),雖然沒有針對需求,但樓主可以參考下。結合第一種方法完成需求。
vim /ssh.sh
#!/usr/bin/expect
# 設置超時時間為 60 秒
set timeout 60
# 設置要登錄的主機 IP 地址
set host 192.168.0.4
# 設置以什麼名字的用戶登錄
set name root
# 設置用戶名的登錄密碼
set password 123456
#spawn 一個 ssh 登錄進程
spawn ssh $host -l $name
# 等待響應,第一次登錄往往會提示是否永久保存 RSA 到本機的 know hosts 列表中;等到回答後,在提示輸出密碼;之後就直接提示輸入密碼
expect {
"(yes/no)?" {
send "yes\n"
expect "assword:"
send "$pasword\n"
}
"assword:" {
send "$password\n"
}
}
expect "#"
# 下面測試是否登錄到 $host
send "uname\n"
expect "Linux"
send_user "Now you can do some operation on this terminal\n"
# 這里使用了 interact 命令,使執行完程序後,用戶可以在 $host 終端進行交互操作。
Interact
『肆』 Linux下如何像windows下那樣製作批處理文件就是執行一批shell命令或可執行文件
csh, bash, 不管什麼shell都可以把代碼寫成文件再執行,比windows的批處理功能強得多, 因而叫shell腳本程序而不是批處理文件了。
你可以把shell腳本保存為.sh文件, 第一行用#!/bin/[shell name]來說明執行所用的shell, 然後以防萬一用chmod +x ***.sh來給文件可執行許可權, 然後./***.sh來執行就好了。
shell腳本編程比bat文件復雜得多,你可以參考相關書籍。
『伍』 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終端中一次執行多條命令
命令中間加&&符號 例如 make && make install 代表前面的命令執行完畢在執行後面的
還有加管道符號 rpm -qa | wc -l 代表把前面命令執行結果作為後面命令的輸入
『柒』 linux怎樣一次運行多個shell腳本
inux 下shell腳本執行多個命令的方法
1.每個命令之間用;隔開
說明:各命令的執行給果,不會影響其它命令的執行。換句話說,各個命令都會執行,但不保證每個命令都執行成功。
2.每個命令之間用&&隔開
說明:若前面的命令執行成功,才會去執行後面的命令。這樣可以保證所有的命令執行完畢後,執行過程都是成功的。
3.每個命令之間用||隔開
說明:||是或的意思,只有前面的命令執行失敗後才去執行下一條命令,直到執行成功一條命令為止
『捌』 在linux下創建可以運行批量處理命令的文件
可以的. 而且比windows的批處理強多了.
安卓也能運行, 語法可能小有不同.
『玖』 想做個linux下的腳本中,在原先的命令中需要在輸入命令後手動輸入一個yes後才能執行 我想批量執行命令
把test.sh腳本里的yes判斷去掉就是了。。。
如果不想改,也很簡單:
#!/bin/bash
foriin`cattest.txt`
do
echo"yes"|./test.sh-id$i
done