6 個例子讓初學者掌握 free 命令
在 Linux 系統上,有時你可能想從命令列快速地瞭解系統的已使用和未使用的記憶體空間。如果你是一個 Linux 新手,有個好訊息:有一條系統內建的命令可以顯示這些資訊:free
。
在本文中,我們會講到 free 命令的基本用法以及它所提供的一些重要的功能。文中提到的所有命令和用法都是在 Ubuntu 16.04LTS 上測試過的。
Linux free 命令
讓我們看一下 free
命令的語法:
free [options]
free 命令的 man 手冊如是說:
free
命令顯示了系統的可用和已用的實體記憶體及交換記憶體的總量,以及核心用到的快取空間。這些資訊是從/proc/meminfo
中得到的。
接下來我們用問答的方式瞭解一下 free
命令是怎麼工作的。
Q1. 怎麼用 free 命令檢視已使用和未使用的記憶體?
這很容易,您只需不加任何引數地執行 free
這條命令就可以了:
free
這是 free
命令在我的系統上的輸出:
這些列是什麼意思呢?
total
- 安裝的記憶體的總量(等同於/proc/meminfo
中的MemTotal
和SwapTotal
)used
- 已使用的記憶體(計算公式為:used
=total
-free
-buffers
-cache
)free
- 未被使用的記憶體(等同於/proc/meminfo
中的MemFree
和SwapFree
)shared
- 通常是臨時檔案系統使用的記憶體(等同於/proc/meminfo
中的Shmem
;自核心 2.6.32 版本可用,不可用則顯示為0
)buffers
- 核心緩衝區使用的記憶體(等同於/proc/meminfo
中的Buffers
)cache
- 頁面快取和 Slab 分配機制使用的記憶體(等同於/proc/meminfo
中的Cached
和Slab
)buff/cache
-buffers
與cache
之和available
- 在不計算交換空間的情況下,預計可以被新啟動的應用程式所使用的記憶體空間。與cache
或者free
部分不同,這一列把頁面快取計算在內,並且不是所有的可回收的 slab 記憶體都可以真正被回收,因為可能有被佔用的部分。(等同於/proc/meminfo
中的MemAvailable
;自核心 3.14 版本可用,自核心 2.6.27 版本開始模擬;在其他版本上這個值與free
這一列相同)
Q2. 如何更改顯示的單位呢?
如果需要的話,你可以更改記憶體的顯示單位。比如說,想要記憶體以兆為單位顯示,你可以用 -m
這個引數:
free -m
同樣地,你可以用 -b
以位元組顯示、-k
以 KB 顯示、-m
以 MB 顯示、-g
以 GB 顯示、--tera
以 TB 顯示。
Q3. 怎麼顯示可讀的結果呢?
free
命令提供了 -h
這個引數使輸出轉化為可讀的格式。
free -h
用這個引數,free
命令會自己決定用什麼單位顯示記憶體的每個數值。例如:
Q4. 怎麼讓 free 命令以一定的時間間隔持續執行?
您可以用 -s
這個引數讓 free
命令以一定的時間間隔持續地執行。您需要傳遞給命令列一個數字引數,做為這個時間間隔的秒數。
例如,使 free
命令每隔 3 秒執行一次:
free -s 3
如果您需要 free
命令只執行幾次,您可以用 -c
這個引數指定執行的次數:
free -s 3 -c 5
上面這條命令可以確保 free
命令每隔 3 秒執行一次,總共執行 5 次。
注:這個功能目前在 Ubuntu 系統上還存在 問題,所以並未測試。
Q5. 怎麼使 free 基於 1000 計算記憶體,而不是 1024?
如果您指定 free
用 MB 來顯示記憶體(用 -m
引數),但又想基於 1000 來計算結果,可以用 --sj
這個引數來實現。下圖展示了用與不用這個引數的結果:
Q6. 如何使 free 命令顯示每一列的總和?
如果您想要 free
命令顯示每一列的總和,你可以用 -t
這個引數。
free -t
如下圖所示:
請注意 Total
這一行出現了。
總結
free
命令對於系統管理來講是個極其有用的工具。它有很多引數可以定製化您的輸出,易懂易用。我們在本文中也提到了很多有用的引數。練習完之後,請您移步至 man 手冊瞭解更多內容。
via: https://www.howtoforge.com/linux-free-command/
作者:Himanshu Arora 譯者:jessie-pang 校對:wxy
相關文章
- 為初學者介紹的 Linux tee 命令(6 個例子)Linux
- 透過8個小例子帶你掌握Linux Head命令!Linux
- 給初學者的 type 命令教程
- 為初學者準備的 ln 命令教程(5 個示例)
- free命令
- 透過6個示例帶你掌握Linux sed命令!Linux
- 6個關於dd命令備份Linux系統的例子Linux
- 給初學者看的 shuf 命令教程
- ps命令的10個例子
- linux初學者必會的基本命令Linux
- 掌握 tar 命令讓你秒變大牛
- C語言初學者必須掌握的關鍵字!C語言
- [Vuex系列] - 初嘗Vuex第一個例子Vue
- Java初學者需掌握的4大核心基礎知識!Java
- 作為一名Python初學者,究竟要掌握哪些技能?Python
- ES6個人初學總結-XY
- [譯] 用個實在例子來教你掌握 Async/AwaitAI
- 適用於初學者的基本 kubectl 和 Helm 命令
- 初識隨機規劃:一個小小例子隨機
- [轉帖]剖析free命令
- Python和PHP初學者先學哪個好?PythonPHP
- 初學者Python和C先學哪個好?Python
- 6 個例子教你重構 Python 程式碼Python
- 告軟體測試初學者:入門需掌握的知識點
- Python 初學者容易踩的 5 個坑Python
- c語言初學者用vs還是vscode vs和vscode哪個適合初學者C語言VSCode
- 掌握了這幾個 Linux 命令可以讓你工作效率提升三倍Linux
- 詳解CentOS的free命令CentOS
- 初學Java,這些框架你要掌握!Java框架
- 全網首譯 : 初學者終極指南—掌握Scrum敏捷框架—第1章Scrum敏捷框架
- 必須掌握的10個Linux命令!Linux
- 掌握Linux中的12個grep命令Linux
- 適合初學者的who 命令的解釋與示例指南
- 初學者Mybatis的初級使用MyBatis
- 作為初學者,Python和PHP哪個好學習?PythonPHP
- 初學者Python和C先學哪個好?小白必看!Python
- 學習Linux必須掌握的命令!Linux
- 一個牛人給Java初學者的建議Java
- (適合初學者)下一個更大元素