0. 本blog 簡單說明一下 Linux測驗環境尤其是 CentOS測驗環境的開發測驗使用, 教程可能不會很長, 主要是入門.
0.1 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發行版的發布頻率以及選擇.
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 環境.
現階段大部分開發測驗人員使用Windows環境進行研發測驗(MacOS 基于BSD內核, 可以理解為linux的表兄弟 這里暫且不談)
1.1 常用的工具有:
xshell 命令列連接管理 linux
xftp 基于22埠的xftp實作, 檔案上傳以及檔案下載
上面兩個工具是xmanager的工具包所包含的 很大的優點是 可以通過xshell 直接打開 xftp 進行檔案傳輸 不需要再次輸入一遍用戶密碼等復雜操作了.

winscp 同 xftp
putty 同xshell
以及一些其他的工具比如 cmder 等. 不做詳細描述
1.2 win10 比較新的版本 還可以搭建WSL 來使用bash直接連接(git命令列也可以)

直接在命令列里面就能打開 bash了
這個工具最大好處可以直接將本機的檔案通過scp的命令傳輸到linux的服務器里面,

1.3 通過GUI方式遠程管理linux
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
cd /yourapp chmod 777 * -R2.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檔案的壓縮/解壓縮操作
# 注意如果壓縮包里面包含中文 必須使用 如下命令才能夠正常解壓縮 unzip -O CP936 xxxx.zip
# 問題原因在zip 軟體的bug 對utf8編碼有問題.
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 dotnet
2. 比較兩個檔案夾的不同,并且將不通的檔案包含檔案目錄資訊也保存下來
第一個:/add 是包含新檔案的
第二個: /yourapp 是未更新新檔案的
第三個: /add 是獲取新檔案的基準目錄
第三個: /addup 是兩個檔案夾對比出來的新檔案.
rsync --dry-run -rcnC --out-format="%n" /add/ /yourapp/ |grep -v "/$"|xargs -I{} rsync -R /add/./{} /addup/
3. 后臺方式運行服務,并且將輸出重定向到其他目錄
cd /yourcommandpath
nohup ./yourcommand.sh >/yourpath/yourlog.log 2>&1 &
3. 測驗環境管理防火墻等操作
1. CentOS 使用的是 iptables 防火墻 6時代 直接使用 iptables 命令進行防火墻的設定 7時代 使用了 firewalld的操作.
可以講埠進行設定,添加白名單等操作.
測驗環境比較簡單 可以直接關閉處理
設定開機不啟動以及管理防火墻的命令
systemctl disable firewalld && systemctl stop firewalld
2. 關閉selinux Security enhance linux是redhat給linux增加的安全增強處理.測驗環境可以直接關閉掉
方法:
可以使用 sed -i 的方式處理 比如:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
但是建議可以使用 vim 進行一次簡單的聯系, 來提高熟練程度.
這里要說明一下, 一定要注意 windows的編碼格式與linux的不同 有時候會導致提示檔案加載失敗,或者是命令無法啟動. 可以使用vim 的命令來修改檔案的編碼格式.
比如檔案左下方為:
"startup-nstack.cmd" [noeol][dos] 13L, 275C
可以使用命令來修改一下格式
在vim的命令模式下面輸入
:set ff=unix
輸入完成之后再輸入
:wq 保存退出就會發現檔案有了變化
"startup-nstack.cmd" 13L, 264C
4. 可以使用windows 遠程 linux的xrdp的簡介與安裝
首先使用一張圖表示一個效果:

簡單說明
Linux 是可以使用 xrdp 協議進行遠程訪問的, 前提是 linux服務器里面有GUI界面. 如果沒有安裝的話 可以網上搜一下命令安裝上就可以了.
#備注 最小化安裝是沒有 GUI界面的.
1. 首先安裝epel包, 這個包是一個redhat維護的extension包, 有很多很有用的工具都在里面, 比如非常出名的htop
yum install epel-release # 只要機器能夠上網就能夠拉取
yum makecache # 有時候需要make cache一下才能夠獲取到一些安裝包
安裝完之后就可以進行安裝xrdp
2. 安裝xrdp
yun install xrdp
# 如果安裝失敗 可以使用如下進行安裝
yum --disablerepo "*" --enablerepo epel install xrdp
3. 啟動并且設定開機自動啟動命令
systemctl enable xrdp && systemctl restart xrdp
4. 使用mstsc 用 root以及密碼 就可以直接登錄了.
enjoy it
#雖然這樣非常簡單,但是很不建議這樣操作. cli雖然一開始入門比較晦澀,但是后續使用起來非常便捷, 在遠程辦公以及其他低網路帶寬的情況下非常有優勢.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/141121.html
標籤:Linux
