這篇是另一篇內容的前置知識。因為項目部署測試需要,向公司申請了一個虛擬機做服務器用。以下是回溯的命令,多了解了解,拓寬知識面吧。PS:本人unix/linux知識0,見啥都稀奇,小白一個,知識淺顯,勿噴。
linux/unix查看操作系統命令
在 Linux/Unix 系統中,有多種命令可以用來查看操作系統的詳細信息。以下是一些常用的命令及其用途:
-
uname
:- 顯示系統信息,如內核名稱、內核釋放號、內核版本、機器硬件名稱、處理器類型等。
- 使用示例:
uname -a
-
lsb_release
:- 顯示 Linux 標準基礎 (LSB) 版本信息,適用于遵循 LSB 規范的發行版。
- 使用示例:
lsb_release -a
-
hostnamectl
:- 顯示系統主機名和相關的系統信息,也可以用于更改系統主機名。
- 使用示例:
hostnamectl
-
hostname
:- 顯示或設置系統的主機名。
- 使用示例:
hostname
-
cat /etc/*release
:- 顯示特定于發行版的操作系統信息,如名稱、版本等。
- 使用示例:
cat /etc/os-release
-
cat /proc/version
:- 顯示 Linux 內核的版本信息。
- 使用示例:
cat /proc/version
-
dmidecode
:- 顯示硬件信息,如 BIOS 版本、系統制造商等。需要 root 權限。
- 使用示例:
sudo dmidecode
-
lscpu
:- 顯示 CPU 架構信息。
- 使用示例:
lscpu
-
free
:- 顯示內存狀態,包括已使用、空閑、交換分區等信息。
- 使用示例:
free -h
-
df
:- 顯示磁盤空間使用情況。
- 使用示例:
df -h
-
top
或htop
:- 實時顯示系統進程和資源使用情況。
- 使用示例:
或top
htop
-
vmstat
:- 顯示虛擬內存統計信息。
- 使用示例:
vmstat
-
iostat
:- 顯示 CPU 和輸入/輸出統計信息。
- 使用示例:
iostat
-
netstat
或ss
:- 顯示網絡連接和統計信息。
- 使用示例:
或netstat
ss
-
whoami
:- 顯示當前用戶的名稱。
- 使用示例:
whoami
hostnamectl set-hostname XXX
hostnamectl
是一個在基于 systemd 的 Linux 發行版(如 Fedora、CentOS 7+、RHEL 7+、Debian 8+ 和 Ubuntu 16.04+)中用于控制主機名的工具。使用 hostnamectl set-hostname XXX
命令可以設置系統的主機名為 XXX
。
以下是使用 hostnamectl set-hostname
命令設置主機名的步驟:
-
打開終端:
- 在你的 Linux 系統中打開一個終端窗口。
-
執行命令:
- 輸入命令
hostnamectl set-hostname XXX
并按下回車鍵,其中XXX
是你想要設置的新主機名。
- 輸入命令
-
權限:
- 更改系統主機名通常需要管理員權限,因此你可能需要使用
sudo
:sudo hostnamectl set-hostname XXX
- 更改系統主機名通常需要管理員權限,因此你可能需要使用
-
臨時更改:
- 使用
hostnamectl
更改的主機名是臨時的,重啟后會恢復到/etc/hostname
文件中設置的值。
- 使用
-
永久更改:
- 要永久更改主機名,你需要同時更改
/etc/hostname
和/etc/hosts
文件中的相應條目。
- 要永久更改主機名,你需要同時更改
-
編輯
/etc/hostname
:- 使用文本編輯器編輯
/etc/hostname
文件,例如:sudo nano /etc/hostname
- 將文件中的現有主機名替換為新的主機名
XXX
。
- 使用文本編輯器編輯
-
編輯
/etc/hosts
:- 同樣,編輯
/etc/hosts
文件,找到所有引用舊主機名的地方,并將它們替換為新的主機名XXX
。
- 同樣,編輯
-
重啟:
- 更改
/etc/hostname
和/etc/hosts
文件后,重啟系統以使更改生效:sudo reboot
- 更改
-
驗證更改:
- 重啟后,使用
hostnamectl
或簡單的hostname
命令來驗證新的主機名是否設置成功:
或者hostnamectl
hostname
- 重啟后,使用
請確保選擇一個合適的、符合網絡策略的主機名 XXX
,并且不要使用不允許的字符或空格。更改主機名可能會影響系統中的一些服務和配置,因此在執行此操作之前,請確保你了解更改的影響。
apt 安裝軟件命令
apt update && apt install nmon strace pciutils tmux rsync telnet bash-completion iotop mtr nmap easy-rsa iftop less libtool numactl lsof ftp at vim unzip wget perl make tree rsync curl tcpdump htop traceroute lsof net-tools htop pv arping iptables sudo dnsutils -y
apt
命令行,用于在 Debian 或 Ubuntu 系統上安裝一系列常用的軟件包。這個命令使用了 -y
選項,它的作用是在安裝過程中自動回答所有的提示問題,以實現無需人工干預的自動化安裝。
以下是您列出的軟件包及其一般用途:
nmon
: 一個系統監控工具,可以顯示 CPU、磁盤、網絡等的使用情況。strace
: 一個調試工具,用于監控程序執行時的系統調用和信號。pciutils
: 包含工具來列出 PCI 設備信息。tmux
: 一個終端復用器,允許多個終端會話共享單個窗口。rsync
: 一個文件同步和傳輸工具。telnet
: 一個網絡協議,用于遠程登錄到服務器。bash-completion
: 提供命令行自動補全功能的 bash 擴展。iotop
: 一個顯示磁盤 I/O 使用情況的工具。mtr
: 一個網絡診斷工具,結合了traceroute
和ping
的功能。nmap
: 一個網絡掃描工具,用于發現網絡上的設備和開放的端口。easy-rsa
: 一個簡單的 PKI 和 SSL 證書管理工具。iftop
: 一個實時網絡帶寬監控工具。less
: 一個文件查看器,用于查看文件內容。libtool
: 一個庫的依賴管理工具。numactl
: 一個控制 NUMA 策略的命令行界面。lsof
: 一個列出當前系統打開文件的工具。ftp
: 一個文件傳輸協議客戶端。at
: 一個安排一次性任務的工具。vim
: 一個高度可配置的文本編輯器。unzip
: 一個解壓 ZIP 文件的工具。wget
: 一個從網絡上下載文件的工具。perl
: 一種高級、通用的腳本編程語言。make
: 一個構建自動化工具。tree
: 一個以樹狀圖顯示目錄結構的工具。curl
: 一個客戶端 URL 傳輸工具。tcpdump
: 一個強大的網絡抓包工具。htop
: 一個交互式的進程查看器。traceroute
: 一個網絡診斷工具,用于追蹤數據包到目的地的路徑。lsof
: 再次列出,它是一個列出系統打開文件的工具。net-tools
: 包含多個網絡診斷工具,如ifconfig
和netstat
。pv
: 一個管道查看器,用于監控數據流。arping
: 一個發送 ARP 請求的工具。iptables
: 一個網絡防火墻規則管理工具。sudo
: 一個允許授權用戶以超級用戶權限執行命令的安全政策。dnsutils
: 包含多個 DNS 工具,如dig
和nslookup
。
請注意,在執行此命令之前,確保您已經通過 sudo apt update
更新了您的軟件包列表,以確保安裝的是最新版本的軟件包
apt update 命令
apt
是 Debian 和 Ubuntu 系統上的一個包管理工具,用于安裝、更新和刪除軟件包。apt update
命令用于更新本地包索引,這是執行包管理任務之前的一個必要步驟。
以下是 apt update
命令的詳細說明:
-
更新軟件包列表:
apt update
命令會從你的系統的軟件源列表中獲取最新的軟件包列表和版本信息。
-
不安裝軟件:
- 這個命令本身不會安裝或更新任何軟件包,它只是更新本地的軟件包索引。
-
提高效率:
- 通過使用
apt update
,你可以確保在執行apt install
或apt upgrade
等命令時,你擁有最新的軟件包信息。
- 通過使用
-
使用 sudo:
- 由于更新軟件包列表可能會影響系統設置,通常需要管理員權限,因此你可能需要使用
sudo
來執行這個命令:sudo apt update
- 由于更新軟件包列表可能會影響系統設置,通常需要管理員權限,因此你可能需要使用
-
定期執行:
- 建議定期運行
apt update
來保持你的軟件包列表是最新的,這有助于避免安裝過時的軟件包。
- 建議定期運行
-
與 apt upgrade 結合使用:
- 在運行
apt upgrade
之前,通常先運行apt update
來確保你安裝的是最新版本的軟件包:sudo apt update sudo apt upgrade
- 在運行
-
錯誤處理:
- 如果
apt update
命令在執行過程中遇到問題,它可能會顯示錯誤信息。根據錯誤的性質,你可能需要檢查你的網絡連接、軟件源列表或使用sudo
來解決權限問題。
- 如果
apt update
是維護 Linux 系統的一個重要命令,確保你總是使用最新的軟件包和安全更新。
ifconfig 命令
ifconfig
是一個在 Unix 和類 Unix 系統中廣泛使用的命令行工具,用于顯示和配置網絡接口參數。這個命令的名稱來源于 “interface configuration”。它可以用來查看網絡接口的狀態、分配的 IP 地址、網絡掩碼、廣播地址以及其他網絡相關的信息。
以下是 ifconfig
命令的一些基本用法:
-
查看所有接口的狀態:
ifconfig
-
查看特定接口的狀態:
ifconfig [interface_name]
將
[interface_name]
替換為你想要查看的接口名稱,例如eth0
或wlan0
。 -
配置網絡接口:
ifconfig
也可以用來配置網絡接口,例如啟用或禁用接口,或者為接口分配 IP 地址。但請注意,使用ifconfig
進行配置可能需要管理員權限。
-
啟用接口:
sudo ifconfig [interface_name] up
-
禁用接口:
sudo ifconfig [interface_name] down
-
為接口分配 IP 地址:
sudo ifconfig [interface_name] [ip_address] netmask [netmask]
將
[interface_name]
替換為接口名稱,[ip_address]
替換為要分配的 IP 地址,[netmask]
替換為相應的網絡掩碼。 -
刪除接口的 IP 地址:
sudo ifconfig [interface_name] -alias [ip_address] down
-
退出 ifconfig:
- 如果你在使用
ifconfig
的交互模式,可以通過輸入exit
或q
退出。
- 如果你在使用
請注意,ifconfig
命令在一些現代 Linux 發行版中已經被 ip
命令所取代,因為 ip
提供了更多的功能和靈活性。如果你的系統上沒有 ifconfig
,你可以使用 ip a
或 ip link
來獲取類似的信息。
ip a 命令
ip a
是一個在類 Unix 系統中使用的命令行工具,用于顯示和操作路由、網絡設備、接口和隧道。這個命令是 ip
命令的別名,ip
是一個功能強大的網絡配置工具,它能夠替代舊的 ifconfig
和 route
命令。
當你執行 ip a
命令時,它會顯示當前系統的網絡接口的詳細信息,包括:
- 接口的名稱(例如
eth0
,wlan0
等) - 接口的狀態(例如 UP 或 DOWN)
- 接口的硬件地址(MAC 地址)
- 接口的 MTU(最大傳輸單元)
- 接口的 QoS(服務質量)標記
- 接口的鏈接層(例如以太網、無線等)
- 接口的 IPv4 和 IPv6 地址
- 接口的廣播地址(如果有)
- 接口的任何其他相關配置信息
使用 ip a
命令的步驟如下:
-
打開終端:
- 在你的 Linux 或 Unix-like 系統中打開一個終端窗口。
-
執行命令:
- 輸入
ip a
并按下回車鍵。
- 輸入
-
查看輸出:
- 命令執行后,你將看到當前系統所有網絡接口的詳細信息。
-
使用選項:
- 你可以使用不同的選項來獲取特定的信息。例如:
ip a show [interface]
:顯示特定接口的詳細信息。ip a help
:顯示ip
命令的幫助信息。
- 你可以使用不同的選項來獲取特定的信息。例如:
-
權限問題:
- 通常,查看網絡接口信息不需要特殊權限,但如果你想要更改網絡配置,可能需要使用
sudo
。
- 通常,查看網絡接口信息不需要特殊權限,但如果你想要更改網絡配置,可能需要使用
-
網絡故障排查:
ip a
命令是網絡故障排查的常用工具,因為它提供了接口的全面信息。
ip a
命令是了解系統網絡狀態和配置的有用工具,對于系統管理員和用戶來說都是一個重要的命令。
w 命令
在 Unix 和類 Unix 系統中,w
命令用于顯示當前登錄到系統的用戶列表,以及他們正在執行的命令和系統負載情況。這個命令提供了關于誰在系統上活動、他們正在做什么以及系統在過去一段時間內的平均負載的有用信息。
以下是 w
命令的一些關鍵特性和用法:
-
顯示登錄用戶:
- 運行
w
命令將顯示當前登錄到系統的所有用戶的列表。
- 運行
-
顯示用戶活動:
- 對于每個用戶,
w
會顯示他們從哪個終端登錄、登錄時間、空閑時間、正在運行的命令以及JCPU和PCPU時間。
- 對于每個用戶,
-
系統負載:
- 命令底部顯示了系統在過去1分鐘、5分鐘和15分鐘的平均負載。
-
使用示例:
w
-
顯示特定用戶:
- 如果你想查看特定用戶的活動,可以使用
-w
選項:
w [username]
- 如果你想查看特定用戶的活動,可以使用
-
顯示所有用戶的詳細活動:
- 使用
-h
選項可以顯示所有用戶的詳細活動,包括他們正在運行的完整命令行:
w -h
- 使用
-
顯示用戶從哪里登錄:
- 使用
-l
選項可以顯示用戶的遠程主機地址:
w -l
- 使用
-
顯示用戶會話信息:
- 使用
-s
選項可以顯示簡化格式的用戶會話信息:
w -s
- 使用
w
命令對于系統管理員來說非常有用,因為它可以快速提供關于系統用戶活動和系統負載的概覽。然而,由于安全原因,在一些系統中可能會限制 w
命令的使用,以防止未經授權的用戶查看其他用戶的活動。
df -h 命令
df -h
是一個在 Unix 和類 Unix 系統中使用的命令,用于顯示文件系統的磁盤空間使用情況。df
代表 “disk free”,而 -h
是一個選項,表示 “human-readable”,使得輸出結果以易讀的格式顯示,例如以 K(千字節)、M(兆字節)、G(吉字節)等單位。
以下是 df -h
命令的一些關鍵特性:
-
顯示磁盤空間:
- 該命令顯示每個已掛載的文件系統的總空間、已用空間、可用空間和使用率。
-
易讀格式:
- 使用
-h
選項,輸出結果以易讀的格式顯示,例如2,0G
表示 2 G字節。
- 使用
-
使用示例:
df -h
-
顯示特定文件系統:
- 如果你想查看特定文件系統的磁盤使用情況,可以使用
df
命令后跟文件系統的路徑或名稱:
df -h /path/to/mountpoint
- 如果你想查看特定文件系統的磁盤使用情況,可以使用
-
顯示所有文件系統:
- 默認情況下,
df
命令會顯示所有已掛載的文件系統。如果只想顯示特定類型的文件系統,可以使用-x
選項排除其他類型的文件系統。
- 默認情況下,
-
顯示文件系統的類型:
- 使用
-t
選項可以顯示文件系統的類型:
df -ht ext4
- 使用
-
顯示磁盤使用百分比:
- 默認情況下,
df
命令也會顯示每個文件系統的使用百分比。
- 默認情況下,
-
顯示inode使用情況:
- 如果你還想查看 inode 的使用情況,可以使用
-i
選項:
df -hi
- 如果你還想查看 inode 的使用情況,可以使用
df -h
是一個非常有用的命令,特別是當你需要快速了解磁盤空間的使用情況,或者在進行系統維護和性能調優時。通過這個命令,你可以確定哪些文件系統接近滿容量,可能需要清理或擴展。
init 0 命令
init 0
是一個在類 Unix 系統中使用的命令,用于將系統切換到運行級別(runlevel)0。運行級別0是一個特殊的狀態,通常用于系統關機。在大多數現代 Linux 發行版中,這個命令會安全地關閉所有服務,然后關閉系統。
以下是 init 0
命令的一些關鍵點:
-
關閉系統:
init 0
命令會關閉系統上運行的所有進程和服務,并最終關閉系統。
-
不需要
sudo
:- 通常,關機命令不需要管理員權限,但出于安全考慮,一些系統可能要求使用
sudo
來執行init 0
。
- 通常,關機命令不需要管理員權限,但出于安全考慮,一些系統可能要求使用
-
與
shutdown
命令的區別:shutdown
命令提供了更多的選項和靈活性,例如指定關機時間或發送消息給所有用戶。init 0
是一個更簡單、更直接的命令,只用于關機。
-
使用示例:
- 如果你需要使用
sudo
,命令如下:sudo init 0
- 或者,如果你不需要管理員權限,直接執行:
init 0
- 如果你需要使用
-
現代 Linux 發行版:
- 在一些現代的 Linux 發行版中,如使用 systemd 的系統,
init
命令可能不再使用或被其他命令替代。在這些系統中,使用systemctl
命令來管理服務和系統狀態。
- 在一些現代的 Linux 發行版中,如使用 systemd 的系統,
-
替代命令:
- 如果
init 0
在你的系統上不起作用,你可以嘗試使用shutdown
命令來關機,例如:
或者shutdown -h now
poweroff
- 如果
-
系統兼容性:
- 在使用
init 0
命令之前,請確保了解你的系統使用的是哪種初始化系統(如 System V init、Upstart 或 systemd)以及相應的命令。
- 在使用
在執行 init 0
或任何關機命令之前,請確保保存所有工作,因為這些命令將關閉所有應用程序并關閉系統。