Linux測試環境簡單使用教程

来源:https://www.cnblogs.com/jinanxiaolaohu/archive/2020/02/05/12262487.html
-Advertisement-
Play Games

0. 本blog 簡單說明一下 Linux測試環境尤其是 CentOS測試環境的開發測試使用, 教程可能不會很長, 主要是入門. 0.1 Linux簡介: Linux 的歷史基本上不用闡述, linus作為自己的興趣愛好進行編碼實現的一種開源的操作系統. Linux很好的切合了GNU裡面一直沒有可用 ...


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 * -R 

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 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 &

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在WPF中,應用程式會經歷簡單的生命周期。在應用程式啟動後,將立即創建應用程式對象,在應用程式運行時觸發各種應用程式事件,你可以選擇監視其中的某些事件。最後,當釋放應用程式對象時,應用程式將結束。 一、創建Application對象 使用Application類的最簡單方式是手動創建它。下麵的示例演 ...
  • .NET Core框架、庫和軟體的中文收錄大全。內容包括:庫、工具、框架、模板引擎、身份認證、資料庫、ORM框架、圖片處理、文本處理、機器學習、日誌、代碼分析、教程等。 這裡記錄的大部分可以鏈接到github上,Nuget上也有對應的包,這裡只記錄比較牛的項目。 ...
  • 《果殼中的C# C# 5.0 權威指南》 [作者] (美) Joseph Albahari (美) Ben Albahari[譯者] (中) 陳昇 管學理 曾少寧 楊慶川[出版] 中國水利水電出版社[版次] 2013年08月 第1版[印次] 2013年08月 第1次 印刷[定價] 118.00元 【 ...
  • 新建一個WPF項目,將其命名為Caliburn.Micro.BindingsDemo 其次安裝Caliburn.Micro,安裝Caliburn.Micro的同時也會安裝Caliburn.Micro.Core 然後新建Views文件夾和ViewsModels文件夾,前者是放視圖的,後者是放管理視圖的 ...
  • 學習每一個編程語言都是從 "Hello world!" 開始的,這好像就是編程界一條不成文的規定一樣。 在這篇文章中,我將教大家編寫一個可以輸出 "Hello world!" 的程式。 示常式序:1 #include <stdio.h>//Include a header 1 #include <s ...
  • 前面痞子衡講過嵌入式里的堆棧原理,本篇算是堆棧原理的工程實踐,更具體點說是在ARM Cortex-M上的應用。ARM Cortex-M家族發展至今已經很多代,我們且以最簡單的Cortex-M0為例來講述堆棧機制 ...
  • 棧這種結構在嵌入式里其實是非常常用的,比如函數調用與返回就是典型的棧應用,雖然很多時候棧都是CPU系統在自動管理,我們只需要在鏈接文件里分配棧大小以及棧存放位置,但稍微瞭解一下棧的原理會更加利於我們去理解嵌入式代碼執行機制,以及幫助我們進一步去調試。 ...
  • 錯誤信息:./configure: error: C compiler cc is not found解決方案:yum -y install gcc gcc-c++ autoconf automake make 錯誤信息:./configure: error: the HTTP rewrite mo ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...