0. 本blog 簡單說明一下 Linux測試環境尤爲是 CentOS測試環境的開發測試使用, 教程可能不會很長, 主要是入門. java
0.1 Linux簡介: linux
Linux 的歷史基本上不用闡述, linus做爲本身的興趣愛好進行編碼實現的一種開源的操做系統. Linux很好的切合了GNU裏面一直沒有可用的開源操做系統的窘境, 因此Linux+GNU結合實現了開源操做系統以及工具的大發展. 大部分linux的工具其實都是GNU來實現的, linus本身主要是維護linux的core 內核部分. 不少發行版再加進去不少GNU的工具 發佈成爲一個開箱即用的Linux發行版. 主要的發行版: CentOS, Ubuntu, SUSE等. 其中 Redhat 做爲紅帽企業版的開源linux環境, 他的源碼從新編譯的CentOS操做系統很受廣大linux服務器維護人員的喜歡. 最新版本 8.1 基於 linux 4.18 內核發佈. 可是現階段最流行的操做系統仍是 CentOS7.X 系列, 基於Linux 3.10內核(能夠自行升級內核) 國產化的中標麒麟是基於CentOS7.x系列研發的. Ubuntu 是基於 debian 的發行版, 一個很大的優點是現階段國產化很火的UOS也是基於debian操做系統來研發的, 以及銀河麒麟也是基於ubuntu1x.04的LTS版本研發的.
0.2 Linux發行版的發佈頻率以及選擇.nginx
CentOS基本上每年至少發佈一個版本,CentOS7.0 是2014年發佈的. 2019年基本上就發佈到了 CentOS7.7 第一位大版本號基本上Linux的內核不會發生變化, 可是會基於這個內核,紅帽一直進行安全更新, 以及添加一下新的GNU工具的升級版本進行提升. Ubuntu每半年發佈一個版本, 版本號使用年月進行表示,好比 1404,1810等,其中除了 1404,1604,1804,2004等相似規律的版本,使用支持期限不超過一年, 通常沒半年就須要手動進行升級. 這些LTS長期支持版本的 支持期限大約有5年時間. 能夠做爲服務器使用. Ubuntu和CentOS如今都採用了 systemd 做爲啓動和服務啓動監控等核心進程. 因此使用起來基本上無特別大的區別. 關於發行版的選擇. ubuntu 的桌面很是炫酷, 發佈頻率也很是高, 很適合做爲客戶端來使用, 做爲服務器也能夠, 可是使用的人羣稍微少一些,由於運維人員更在乎的是穩定性. 紅帽如今是docker以及k8s基金會的核心成員, 也是openstack的很大的發行商, 不少文檔也很是細緻. 兩個很大的區別在於包管理 CentOS使用 yum rpm包管理, ubuntu 使用 apt-get dkpg的包管理, 二者不通用(雖然有工具能夠進行轉換)
1. Windows遠程管理linux 環境.git
現階段大部分開發測試人員使用Windows環境進行研發測試(MacOS 基於BSD內核, 能夠理解爲linux的表兄弟 這裏暫且不談)docker
1.1 經常使用的工具備:shell
xshell 命令行鏈接管理 linux
xftp 基於22端口的xftp實現, 文件上傳以及文件下載
上面兩個工具是xmanager的工具包所包含的 很大的優勢是 能夠經過xshell 直接打開 xftp 進行文件傳輸 不須要再次輸入一遍用戶密碼等複雜操做了.
winscp 同 xftp
putty 同xshell
以及一些其餘的工具好比 cmder 等. 不作詳細描述
1.2 win10 比較新的版本 還能夠搭建WSL 來使用bash直接鏈接(git命令行也能夠)數據庫
直接在命令行裏面就能打開 bash了ubuntu
這個工具最大好處能夠直接將本機的文件經過scp的命令傳輸到linux的服務器裏面, vim
1.3 經過GUI方式遠程管理linuxwindows
1.3.1 很常見的方式有兩種 一種是使用 windows 使用vnc客戶端, 以及linux服務器安裝tigerVNC, 使用vncserver的命令建立 ip:5901的訪問地址 在客戶端進行訪問.
1.3.2 還一種方式是安裝 xrdp 直接使用windows的mstsc命令進行連結
可是這種方式容易讓人產生誤解.
2. linux命令行操做簡介.
linux使用命令行管理很高校,而且佔用帶寬不多, 在網絡很差的狀況下很可以很好的完成各類工做.
2.1 linux的目錄.
/ 根目錄是linux全部文件目錄掛載的起點 注意 / 根目錄與 /root root用戶的家目錄是不同的. 初學的時候很容易將這兩個目錄搞混. /etc 目錄裏面主要是存儲一些配置文件信息 /usr/bin /usr/local/bin 等目錄主要是存儲可執行文件. /lib /lib64 /usr/lib /usr/lib64 等目錄主要是存放應用程序庫文件. /opt 主要是存放一些 第三方軟件, 國產的數據庫 好比 達夢 瀚高 人大金倉 以及360瀏覽器等都喜歡往這個目錄安裝 /var 主要是存放一些運行時會變更的文件, 好比/var/log 做爲存放程序日誌的文件. /temp 臨時文件. /proc 虛擬文件夾 linux裏面 everything is file 因此經過他可以查看一些進程信息的二進制文件等的信息. (ll /proc/pid 的方式) /home 非 root用戶的家目錄
2.2 linux的文件權限與環境變量以及內核參數限制等.
2.2.1 文件權限, 測試環境可使用 777 的方式進行處理, 可是生產環境必定不能夠.
命令爲 以下命令能夠將全部的文件權限所有設置爲 777
2.2.2 環境變量.
linux裏面的環境變量與windows裏面的環境變量相似. 在bash裏面能夠經過環境變量的方式去尋找具體的命令來實現, 想對應的 還有lib目錄信息, 都程序須要使用庫文件時 也可以進行查詢.
linux的環境變量有多個文件能夠存放. 主要有:
1. /etc/profile 這個文件是全部的用戶都從頭開始執行的 不建議修改 出了錯誤比較難處理. 2. ~/.bashrc 以及 ~/.bash_profile 注意 ~ 指代當前用戶的家目錄. 這兩個文件是針對不一樣用戶設置的環境變量. 只適應當前用戶信息 沒法影響其餘的用戶環境變量 3. /etc/profiled.d/something.sh 這裏面的文件能夠手動執行, 用戶bash登陸時會自動獲取該環境變量內的內容進行生效, 好比: export PATH=$PATH:/usr/local/nginx:/gscloud/jstack/runtime/java/x86_64-linux/bin 就能夠直接執行 PATH相關目錄的命令了 注意 linux 裏面使用 $做爲變量操做符號.
2.2.3 內核參數以及用戶限制
主要命令有 ulimit -a 當前bash有效果的設置爲 ulimit -s 可是不建議使用
建議直接修改內核的參數設置:
vim /etc/security/limits.conf 產品測試過程當中 須要添加的參數主要爲:
比較核心的一個是 nofile 一個進程能夠打開的文件描述符數量 還有 nproc一個進程可以打開的子進程數量 #<domain> <type> <item> <value> * hard nproc 666666 * hard nofile 666666 * soft nproc 666666 * soft nofile 666666 注意value值 其實能夠自定義, 不用非得設置 2的整數倍便可.
2.3 基本命令操做說明
基本命令:
ls 列出全部文件 ll 列出相信文件信息與ls -l 命令相同. cd 切換目錄 mkdir 建立文件夾 find 查找文件. | 管道命令 df 顯示磁盤使用狀況 du 顯示當前目錄文件大小信息.
tar 壓縮和解壓縮命令
zip/unzip 進行zip文件的壓縮/解壓縮操做
chmod 修改文件權限
chown 修改文件屬主
ps 展現存在的進程信息
lsof 查看打開的文件後者是端口
scp 複製文件, 若是使用 user@ip:/ 的目的地址 能夠遠程複製.
rsync 同步文件,已經存在的相同文件不進行復制,提供同步效率.
文本編輯
vi/vim 最多見的編輯器之一,主要是分爲三個模式 命令模式-編輯模式-底線命令模式
最經常使用的用法: vim filename 打開文件進入命令模式->輸入"i" 小寫鍵盤字符i符號進入編輯模式->編輯完成使用鍵盤上面的 "esc"按鍵 退出到命令模式->輸入":" 鍵盤符號 進入底線命令模式,輸入wq (write and quit)保存文件.
三劍客
sed 流編輯命令
awk 可以根據規則打印部分文件內容.
grep 進行過濾操做
文件重定向
> 將命令結果重定向其餘方式.
< 從某些文件讀取當前命令須要的參數
>> 增量的方式添加文件 而不是全量覆蓋.
後臺運行命令
nohup yourcommand &
服務操做命令
systemctl systemd的控制命令.
systemctl restart 重啓服務
systemctl status 查看服務狀態
systemctl enable 將服務設置爲開機啓動.
安裝包命令:
yum install 在線安裝
yum localinstall 安裝下載到本地目錄的rpm包.
yum remove 刪除已經安裝的包
yum makecache 建立緩存.
注意 yum 安裝可以使用 repo倉庫直接下載依賴的rpm包同步進行安裝. 相似於k8s裏面的 helm 也相似於nuget和maven的依賴管理處理.
rpm -ivh xxxx.rpm 安裝具體目錄下面的 rpm包
掛載命令
mount -t cifs -o username=username,password=yourpasswords //linuxip/patches/已測補丁/Cloud3.0/ /已測補丁/
注意
1). 須要先mkdir 建立 /已測補丁 目錄纔可行.
2). 注意若是服務器是2003 以及比較早的操做系統, 須要添加 vers=1.0 的參數才能夠. 由於win2003的cifs服務版本比較低.
部分組合命令:1. 查看全部的dotnet進程,而且將dotnet進程殺死ps -ef |grep dotnet |grep -v grep |awk '{print $2}'|xargs kill -9等效於 killall dotnet2. 比較兩個文件夾的不一樣,而且將不通的文件包含文件目錄信息也保存下來第一個:/add 是包含新文件的第二個: /yourapp 是未更新新文件的第三個: /add 是獲取新文件的基準目錄第三個: /addup 是兩個文件夾對比出來的新文件.rsync --dry-run -rcnC --out-format="%n" /add/ /yourapp/ |grep -v "/$"|xargs -I{} rsync -R /add/./{} /addup/3. 後臺方式運行服務,而且將輸出重定向到其餘目錄cd /yourcommandpathnohup ./yourcommand.sh >/yourpath/yourlog.log 2>&1 &