基本的Linux排查問題的技巧
日拱一卒,慢慢的進步,多學一點知識,將來一定能用得上。
硬體相關
獲取內存信息
cat /proc/meninfo
如果你只是想看一下內存的大小,你可以這樣:
cat /proc/meminfo | head -n 1
一些其他有意思的操作,下面這條命令你能看到內存中純文本信息:
sudo dd if=/dev/mem | cat | strings
同樣的,使用strings命令你也能夠查看二進位程序中的字元串常量。
獲取CPU信息
一些時候你想要知道是什麼進程佔用了CPU,是你的應用程序還是操作系統,你可以使用如下兩條命令:
cat /proc/cupinfo
top
top有一個升級版本htop
,他顯示更加友好:
htop
獲取CPU當前溫度信息:
cat /proc/acpi/thermal_zone/THRM/temperature
列出外部設備以及USB信息
lspci
#對於USB信息:
lsusb
檢查硬碟使用情況
df -h
檢查硬碟掛載情況
sudo fdisk -l
安裝應用程序
有時候你需要查看一下當前系統上安裝的所有的包,你能發現為甚會安裝他,那些包在依賴這些包
dpkg --get-selections | less
檢查所有已經安裝的包,對於yum來說是
sudo yum list --installed
查看安裝原因:
aptitude why packagename
找出包中存儲的文件:
dpkg -L packagename
dpkg這個命令怎麼記呢: debian package的縮寫。
關閉進程
ps -A | grep Prograname
kill 7207
其他雜項
顯示所有的網路鏈接
Linux上有非常多的好用的功能能查看網路情況,netstat
就是其中最簡單易用的一個。
netstat
結合相關的命令行參數或者grep
來使用會更加的強大。
查看當前系統上所有打開的文件
有時候我們需要知道Linux上某個文件或者是某個埠被哪個應用程序佔用了,我們可以使用lsof
命令,也就是list all opened files
。
# 查看8080埠被哪個程序佔用了
sudo lsof -i:8080
# 查看pid為1898的進程打開了那些文件或者埠
sudo lsof -p 1898
持續觀察系統
watch
命令能夠反覆的執行一條命令,將標準輸出輸出到屏幕,默認是2s執行一次。
watch ls
watch df -h
查找二進位程序和依賴庫的安裝地址
經常我們需要使用一條命令的絕對路徑來使用他,我們需要知道他的安裝地址:
```shell
whereid php5
whichi ls
有時候我們在使用一條命令的時候,我們並不知道這個命令是一個bash函數,還是一個bash內置命令,還是一個二進位程序,我們可以使用type
命令:
hellojukay@local:~$ type ls
ls 是 `ls --color=auto 的別名
日誌
如果你要查看內核輸出的日誌:
dmesg | less
如果要查看更多的日誌,可以在/var/log
查找相關的日誌文件,使用cat
,less
,tail
,grep
等工具來檢索日誌信息。
原文地址: [https://www.nixtutor.com/linux/general-troubleshooting-in-linux/](https://www.nixtutor.com/linux/general-troubleshooting-in-linux/)
推薦閱讀: