fabric部署中常用linux及docker命令和知識點彙總
docker命令:
docker kill $(docker ps -q)
停止所有正在執行的容器
docker rm $(docker ps --all -q -f status=exited)
刪除所有已經停止的容器
docker rmi $(docker images -q)
刪除所有映象
docker rmi $(docker images | grep "none" | awk '{print $3}')
批量刪除名字中帶“none”的映象
docker rm -f $(docker ps -aq)
強制刪除所有容器
go的環境變數:
安裝go時設定環境變數:有三個變數GOPATH、PATH、GOROOT
GOROOT就是go的安裝路徑 export GOPATH=/usr/local/go
GOPATH就是go的工作目錄 export GOPATH=/opt/gopath
PATH是go安裝路徑下的bin目錄
Linux命令:
1 copy命令
copy命令的功能是將給出的檔案或目錄拷貝到另一檔案或目錄中。
語法: cp [選項] 原始檔或目錄 目標檔案或目錄
該命令的各選項含義如下:
- -a 該選項通常在拷貝目錄時使用。它保留連結、檔案屬性,並遞迴地拷貝目錄,其作用等於dpR選項的組合。
- -d 拷貝時保留連結。
- -f 刪除已經存在的目標檔案而不提示。
- -i 和-f選項相反,在覆蓋目標檔案之前將給出提示要求使用者確認。回答y時目標檔案將被覆蓋,是互動式拷貝。
- -p 此時cp除複製原始檔的內容外,還將把其修改時間和訪問許可權也複製到新檔案中。
- -r 若給出的原始檔是一目錄檔案,此時cp將遞迴複製該目錄下所有的子目錄和檔案。此時目標檔案必須為一個目錄名。
- -l 不作拷貝,只是連結檔案。
假設複製源目錄 為 dir1 ,目標目錄為dir2
將dir1下所有檔案複製到dir2下:
如果dir2目錄不存在,則可以直接使用
cp -r dir1 dir2
如果dir2目錄已存在,則需要使用
cp -r dir1/. dir2
2 建立目錄
mkdir path
3 解壓縮到指定目錄
tar zxvf test3.tgz -C path
4 用rz,sz在xshell傳輸檔案
rz,sz是Linux/Unix同Windows進行ZModem檔案傳輸的命令列工具,用於在windows和linux之間上傳或下載某個檔案。
首先安裝rz、sz:
yum install lrzsz -y
windows端需要支援ZModem的telnet/ssh客戶端(xshell支援,好像putty不支援),SecureCRT就可以用SecureCRT登陸到Unix/Linux主機(telnet或ssh均可)
執行命令rz,即是接收檔案,xshell就會彈出檔案選擇對話方塊,選好檔案之後關閉對話方塊,檔案就會上傳到linux裡的當前目錄。
執行命令sz file 就是發文件到windows上(儲存的目錄是可以配置) 比ftp命令方便多了,而且伺服器不用再開FTP服務了。
更簡便的方法是直接拖動檔案到Xshell裡面,就可以完成上傳。
5 在windows下修改sh檔案回傳後使檔案可執行
當你在windows下修改了一個sh檔案並通過rz傳到Xshell裡時,該sh檔案不會被Linux識別成綠色的可執行檔案,這時需要用:
chmod +x ./network_setup.sh
命令來使指令碼具有執行許可權。
注意,一定要寫成./network_setup.sh,而不是network_setup.sh。執行其它二進位制的程式也一樣,直接寫network_setup.sh,linux系統會去PATH裡尋找有沒有叫network_setup.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH裡,你的當前目錄通常不在PATH裡,所以寫成network_setup.sh是會找不到命令的,要用./network_setup.sh告訴系統說,就在當前目錄找。
但此時執行依然會報錯
/bin/sh^M: bad interpreter: No such file or directory
分析:這是不同系統編碼格式引起的:在windows系統中編輯的.sh檔案可能有不可見字元,所以在Linux系統下執行會報以上異常資訊。
解決:1)在windows下轉換:
利用一些編輯器如UltraEdit或EditPlus等工具先將指令碼編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File–>Conversions–>DOS->UNIX即可。
2)也可在Linux中轉換:
首先要確保檔案有可執行許可權
chmod a+x filename
然後修改檔案格式
vi filename
利用如下命令檢視檔案格式
:set ff 或 :set fileformat
可以看到如下資訊
fileformat=dos 或 fileformat=unix
利用如下命令修改檔案格式
:set ff=unix 或 :set fileformat=unix
:wq (存檔退出)
最後再執行檔案
./filename