【翻译】基本的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信息:
```shell
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/)