主頁 > 軟體設計 > 了解你的系統

了解你的系統

2021-09-05 07:45:57 軟體設計

了解你的系統

本實驗主要介紹了了解你的Linux系統,通過本實驗的學習,你能夠了解自己在系統中的角色,掌握如何查看系統基本資訊,學會查看系統運行的行程有哪些,

實驗簡介

實驗所屬系列:Linux作業系統

實驗物件: 本科/專科資訊安全專業

相關課程及專業:計算機基礎,計算機網路

實驗時數(學分):2學時

實驗類別:實踐類

預備知識

當你登陸到系統,也許你不知道干嘛好?黑乎乎的的界面,你也不知道這臺電腦到底有啥子東西,你是否很好奇配置咋樣之類的,它都運行了哪些程式?等等的東西,那么我們就來了解一下我們使用的系統吧,

關于Linux系統運行級別:

在Linux中共有7個運行級別,它們分別是:

運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動

運行級別1:單用戶作業狀態,root權限,用于系統維護,禁止遠程登陸

運行級別2:多用戶狀態(沒有NFS)

運行級別3:完全的多用戶狀態(有NFS),登陸后進入字符模式(就是黑乎乎的界面)

運行級別4:系統未使用,保留

運行級別5:圖形界面模式

運行級別6:系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動

系統啟動默認級別設定檔案是 : /etc/inittab ,修改里面的 id:3:initdefault:這一行 ,就能改變啟動默認啟動級別,比如id:3 ,就是默認啟動到字符界面,

實驗目的

  1. 掌握如何查看系統基本資訊

  2. 了解自己在系統中的角色

  3. 系統運行的行程有哪些

實驗環境

網路拓撲見下圖:

在這里插入圖片描述

CentOS6.5 試驗臺

實驗步驟一

查看Linux中硬體資訊

1、查看CPU資訊

命令:cat /proc/cpuinfo

如圖:

在這里插入圖片描述

這么多是不是感覺有點亂,那來選取一些我們想要的資訊吧(至于為啥命令是這樣寫,以后會知道的)

查看邏輯CPU個數:

cat /proc/cpuinfo | grep “processor” | wc -l

在這里插入圖片描述

查看物理CPU個數:

cat /proc/cpuinfo | grep “physical id” | sort -u | wc -l

在這里插入圖片描述

查看core id的數量,如果有兩個邏輯CPU具有相同的 core id ,意味這,CPU啟用的超執行緒

cat /proc/cpuinfo | grep “core id” | uniq | wc -l

在這里插入圖片描述

2、查看linux的記憶體資訊

命令:cat /proc/meminfo

如圖:

在這里插入圖片描述

顯示的資訊較多,我們可以用另外一個命令 :free 來查看記憶體的資訊:

在這里插入圖片描述

Total:代表總大小 ; used :已經使用的大小;free:剩余的大小;Shared:多個行程共享的記憶體總額;Buffers/cached:磁盤快取的大小,

第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別,這兩個的區別在于使用的角度來看,第一行是從OS的角度來看,因為對于OS,buffers/cached 都是屬于被使用,所以他的可用記憶體是887016KB,已用記憶體是133280KB,其中包括,內核(OS)使用+Application(X, oracle,etc等)使用的+buffers+cached,

第三行所指的是從應用程式角度來看,對于應用程式來說,buffers/cached 是等于可用的,因為buffer/cached是為了提高檔案讀取的性能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被回收,

所以從應用程式的角度來說,可用記憶體=系統free memory+buffers+cached,

如上圖:

931612=887016+6888+37708

3、磁盤使用情況查看

磁盤磁區資訊查看之fdisk -l

如圖:

在這里插入圖片描述

以后我們會詳細講解linux下如何用fdisk進行磁區,這里稍做了解就好了,

磁盤使用情況查看之 df -Th命令

在這里插入圖片描述

實驗步驟二

身份資訊查看

我是誰?

命令:whoami 如圖:

在這里插入圖片描述

可以看到,我們當前的用戶身份是root,

還有誰?

命令:who

Linux作為一個多用戶的系統,常常是很多人同時使用的,如果你作為管理員,當然希望都有哪些人在用系統,

在這里插入圖片描述

當前的話,只有我們自己登陸到這臺系統,

系統在干嘛?

系統都在運行哪些程式?

命令:top

作用:相當與windows里面的任務管理器

在這里插入圖片描述

里面會顯示cpu,記憶體,swap的使用情況等,會列出具體行程所占用的資源

top 是動態顯示的,如果要退出,按 q 鍵就好了,

行程查看之二 ps 命令

ps 是顯示瞬間的狀態,而 top是實時動態顯示的

最常用命令:ps -aux

解釋: 顯示所有包含其他使用者的行程

在這里插入圖片描述

欄位說明:

USER:該 process 屬于哪個使用者賬號的

PID :該 process 的號碼

%CPU:該 process 使用掉的 CPU 資源百分比

%MEM:該 process 所占用的物理記憶體百分比

VSZ :該 process 使用掉的虛擬記憶體量 (Kbytes)

RSS :該 process 占用的固定的記憶體量 (Kbytes)

TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程式,若為 pts/0 等等的,則表示為由網路連接進主機的程式,

STAT:該程式目前的狀態,主要的狀態有:

D 不可中斷

R 運行中

S 休眠的行程,可以被某些信號喚醒

T 停止的行程

Z 僵死的行程,就像windows里面程式無回應差不多

系統都開啟了哪些服務?

命令:chkconfig --list

解釋:查詢系統服務在系統各個運行級別上的資訊

在這里插入圖片描述

最左邊的一列,是表示服務名,右邊是指各個服務在各個系統啟動級別上是否開啟的狀態,

查看服務命令之二:service

它就像我們windows里面的服務管理,可以開啟和關閉服務,

要注意的是這個命令不是在所有的linux發行版本中都有,主要是在redhat、fedora、和centos中,

用法:service [服務名] status :查看某個服務的狀態,比如查看 sshd這個服務的狀態

在這里插入圖片描述

查看所有服務的狀態:

在這里插入圖片描述

實驗步驟三

系統網路鏈接狀況

系統網卡鏈接狀態?

命令:ifconfig

在這里插入圖片描述

默認使用ifconfig 會顯示已經啟用的所有網卡的狀態
如果只想看一其中一個的話,用 ifconfig [網卡名] 就行了,如 :ifconfig eth0

在這里插入圖片描述

Inet addr :就是IP地址 ;Bcast:廣播地址;Mask:是子網掩碼;inet6 addr:這是ipv6的ip地址,RX:指接收 ;TX:指發送,

系統都建立了哪些鏈接?

命令:netstat

這條命令類似與windows里面的netstat

在這里插入圖片描述

如果要看更加詳細的,可以使用 netstat -atunp

在這里插入圖片描述
會顯示所有udp和tcp鏈接并顯示行程號

實驗結果

實驗步驟一
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

實驗步驟二
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
實驗步驟三
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

分析與思考

1、自行查閱資料,如何進入centos6.5的單用戶模式?

  1. 重啟服務器,一直按“E”鍵,進入grub引導選單的內核界面,
  2. 在內核界面選擇使用上下箭頭移動并選擇內核,
  3. 內核選定之后再次按下“E”鍵進行編輯,
  4. 在最后一行后面加上數字1(是單用戶模式的運行級別)或者single然后回車(補充:好像加數字1比較有效)
  5. 然后根據提示按下boot進行重新引導;
  6. 現在可以查看一下系統剛剛是從哪個運行級別進來的;
  7. 現在即可修改root用戶的密碼然后再重啟,

實驗環境無法自行操作 待補充

2、自行查閱資料,如何使用ps 命令找出某個行程的pid?

命令ps aux | grep xxx

xxx為行程名

例如:先用top命令找到有一個行程 ,行程init的PID為1

在這里插入圖片描述

執行ps aux | grep init的結果如下:

在這里插入圖片描述

3、自行查閱資料,如何找到httpd的行程號?

命令ps aux | grep httpd

在這里插入圖片描述

補充 Linux用ps命令查找行程PID再用kill命令終止行程的方法

使用linux作業系統,難免遇到一些軟體"卡殼"的問題,這時就需要使用linux下強大的kill命令來結束相關行程,這在linux系統下是極其容易的事情,你只需要kill xxx即可,這里xxx代表與此軟體運行相關的行程PID號,
    首先,我們需要使用linux下另外一個ps命令查找與行程相關的PID號:ps aux | grep program_filter_word
    ps a 顯示現行終端機下的所有程式,包括其他用戶的程式, 
    ps -A 顯示所有程式, 
    ps c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,引數或常駐服務的標示, 
    ps -e 此引數的效果和指定"A"引數相同, 
    ps e 列出程式時,顯示每個程式所使用的環境變數, 
    ps f 用ASCII字符顯示樹狀結構,表達程式間的相互關系, 
    ps -H 顯示樹狀結構,表示程式間的相互關系, 
    ps -N 顯示所有的程式,除了執行ps指令終端機下的程式之外, 
    ps s 采用程式信號的格式顯示程式狀況, 
    ps S 列出程式時,包括已中斷的子程式資料, 
    ps -t<終端機編號> 指定終端機編號,并列出屬于該終端機的程式的狀況, 
    ps u 以用戶為主的格式來顯示程式狀況, 
    ps x 顯示所有程式,不以終端機來區分,
    最常用的方法是ps aux,然后再通過管道使用grep命令過濾查找特定的行程,然后再對特定的行程進行操作,
    其次,使用kill命令結束行程:kill xxx
    1)作用
    kill命令用來中止一個行程,
    2)格式
    kill [ -s signal | -p ] [ -a ] pid ...
    kill -l [ signal ]
    3)引數
    -s:指定發送的信號,
    -p:模擬發送信號,
    -l:指定信號的名稱串列,
    pid:要中止行程的ID號,
    Signal:表示信號,
    4)說明
    行程是Linux系統中一個非常重要的概念,Linux是一個多任務的作業系統,系統上經常同時運行著多個行程,我們不關心這些行程究竟是如何分配的,或者是內核如何管理分配時間片的,所關心的是如何去控制這些行程,讓它們能夠很好地為用戶服務,
    Linux作業系統包括三種不同型別的行程,每種行程都有自己的特點和屬性,互動行程是由一個Shell啟動的行程,互動行程既可以在前臺運行,也可以在后臺運行,批處理行程和終端沒有聯系,是一個行程式列,監控行程(也稱系統守護行程)Linux系統啟動時啟動的行程,并在后臺運行,例如,httpd 是著名的Apache服務器的監控行程,
    kill命令的作業原理是,向Linux系統的內核發送一個系統操作信號和某個程式的行程標識號,然后系統內核就可以對行程標識號指定的行程進行操作,比如在top命令中,我們看到系統運行許多行程,有時就需要使用kill中止某些行程來提高系統資源,在講解安裝和登陸命令時,曾提到系統多個虛擬控制臺的作用是當一個程式出錯造成系統死鎖時,可以切換到其它虛擬控制臺作業關閉這個程式,此時使用的命令就是kill,因為kill是大多數Shell內部命令可以直接呼叫的,
    5)應用實體
    (1)強行中止(經常使用殺掉)一個行程標識號為324的行程:
    #kill -9 324
    (2)解除Linux系統的死鎖
    在 Linux中有時會發生這樣一種情況:一個程式崩潰,并且處于死鎖的狀態,此時一般不用重新啟動計算機,只需要中止(或者說是關閉)這個有問題的程式即可,當kill處于X-Window界面時,主要的程式(除了崩潰的程式之外)一般都已經正常啟動了,此時打開一個終端,在那里中止有問題的程式,比如,如果Mozilla瀏覽器程式出現了鎖死的情況,可以使用kill命令來中止所有包含有Mozolla瀏覽器的程式,首先用ps命令查找該程式的 PID,然后使用kill命令停止這個程式:
    #kill -SIGKILL XXX
    其中,XXX是包含有Mozolla瀏覽器的程式的行程標識號,
    (3)使用命令回收記憶體
    我們知道記憶體對于系統是非常重要的,回收記憶體可以提高系統資源,kill命令可以及時地中止一些"越軌"的程式或很長時間沒有相應的程式,例如,使用top命令發現一個無用 (Zombie) 的行程,此時可以使用下面命令:
    #kill -9 XXX
    其中,XXX是無用的行程標識號,
    然后使用下面命令:
    #free
    此時會發現可用記憶體容量增加了,
    (4)killall命令
    Linux下還提供了一個killall命令,可以直接使用行程的名字而不是行程標識號,例如:
    # killall -HUP inetd

其他文章傳送處

檔案管理基礎命令一
檔案管理基礎命令二
獲取幫助命令
Linux檔案權限篇之一
Linux命令進階篇之一
Linux命令進階篇之二

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/297541.html

標籤:其他

上一篇:??終于有人把行程概念講清楚了??

下一篇:計算機網路-------------icmp和arp協議

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more