1. 程式人生 > >fabric部署中常用linux及docker命令和知識點彙總

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