nl 文件名 | sed -n '59,121p'
dmesg | grep -i *
logcat | grep -i *
ps -A | grep -i *
file *
lsusb
lsmod
getenforce
setenforce
zcat /proc/config.gz | grep *
ip link show
iw dev
iw dev wlan0 scan | grep SSID
ifconfig -a
netstat -tuln | grep 5555📌 dmesg
1. 简介
dmesg 是 Linux 系统中一个非常有用的命令,用于查看内核环缓冲区中的信息,也就是系统启动和运行过程中,内核打印的各种消息。
2. 基本定义
dmesg(display message)用于显示系统启动时内核(kernel)输出的信息,以及后续由内核产生的日志,例如硬件初始化、驱动加载、内存信息、内核异常等。
3. 基本语法
dmesg [选项]4. 常见用途
5. 示例输出
[ 0.000000] Linux version 5.10.0-23-amd64 ...
[ 1.234567] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[ 2.345678] EXT4-fs (sda1): mounted filesystem with ordered data mode括号里的时间是自启动以来的秒数。
6. 常用选项
7. 结合过滤使用
dmesg | grep usb
dmesg | grep -i error
dmesg | tail -208. 日志来源区别说明
dmesg输出的是内核的环形缓冲区日志。与
journalctl的系统日志不同(后者来源包括 systemd、服务、内核等)。dmesg内容不会永久保留,系统重启后会清空。
9. 权限说明
普通用户可能不能看到完整日志,使用
sudo获取完整信息:
sudo dmesg10. 总结
dmesg是分析 Linux 启动过程、设备驱动状态、硬件识别、内核错误的利器,特别适合做内核级调试或驱动开发。
📌 logcat
logcat 是 Android 系统中用于查看系统日志的工具,相当于 Android 的“系统调试控制台”。
1. 简介
logcat是 Android SDK 提供的命令行工具,用于 查看和过滤 Android 系统的日志信息,包括应用日志(Log.d()/Log.e()等)、系统服务日志、内核信息等。
它是开发调试 Android 应用不可或缺的工具之一。
2. 基本语法
logcat [选项] [过滤规则]3. 最常用命令示例
logcat输出所有系统日志,持续更新(类似 tail -f)
logcat | grep MyApp筛选包含关键字 "MyApp" 的日志
logcat -s MyTag只看 tag 为 MyTag 的日志(对应 Log.d("MyTag", "message"))
logcat -v time添加时间戳格式(默认是简化格式)
logcat -d > mylog.txt
导出一次性日志到文件
4. 日志等级(priority)
过滤格式如:
logcat *:E表示:只显示所有 tag 的 Error 级别日志。
5. 高级过滤格式
logcat tag1:V tag2:D *:S解释:
tag1 的 Verbose
tag2 的 Debug
其他都 Silence(不显示)
6. 日志来源
Log类写入的应用日志系统服务(如
ActivityManager、WifiService等)原生代码中
ALOGD/ALOGE宏打印的日志某些厂商设备也可能将内核日志转发至
logcat中
7. 使用环境
可在 ADB shell 中执行
adb logcat或者在开发环境中直接运行:
adb shell logcat
8. 总结
logcat是 Android 系统中的核心日志查看工具,用于开发调试、问题排查、性能分析,支持强大的过滤与格式化输出。
📌 ps
ps 是 Linux 和类 UNIX 系统中用于查看系统进程信息的经典命令。
1. 简介
ps(process status)用于显示当前系统的活动进程状态,可以看到每个进程的 PID、CPU 占用、内存使用、所属用户等信息。
2. 基本语法
ps [选项]3. 常用命令示例
4. 常见字段说明(ps -ef 或 ps aux)
5. ps vs top vs htop
6. 进程状态(STAT 字段)
7. 小技巧
查看某程序是否在运行:
ps -ef | grep myprogram查找父子进程关系:
ps -ef --forest查看特定 PID 的命令行:
ps -p 1234 -o cmd8. 总结
ps是 Linux 查看当前进程状态的基本工具,适合配合grep、kill等命令进行进程管理和问题排查。
📌 file
1.简介
file 是 Linux 中一个非常常用的命令,它的作用是判断文件类型,而不是依赖于文件扩展名,而是通过读取文件的“魔数(magic number)”或其他内容来识别文件类型。
2. 基本语法
file [选项] 文件名...3. 常用示例
file test.txt输出可能是:
test.txt: ASCII textfile some_binary输出可能是:
some_binary: ELF 64-bit LSB executable, x86-64, ...4. 应用场景
判断某个文件是否是二进制、脚本、图片、压缩包等。
对没有扩展名的文件进行识别。
分析可疑文件类型(如安全检查、数字取证等)。
5. 常见输出类型
6. 常用选项
示例(带 -i):
file -i test.jpg
# 输出: test.jpg: image/jpeg; charset=binary7. 识别原理简述
file 命令背后会使用 /usr/share/file/magic 或 /etc/magic 中的“魔数规则”数据库,结合文件头部的字节特征来判断类型。
8. 总结
file命令通过分析文件内容(而非扩展名)来判断文件的真实类型,是一个在调试、系统管理、安全分析中非常有用的工具。
📌 lsusb
1. 简介
lsusb(list USB)用于列出连接到系统上的 所有 USB 总线和设备,包括鼠标、键盘、U 盘、摄像头、蓝牙、打印机、开发板等,只要是 USB 接口的设备都能显示出来。
2. 基本定义
lsusb 是 Linux 系统中用于查看 USB 设备信息的命令。
3. 基本语法
lsusb [选项]4. 常用示例
lsusb输出如下:
Bus 001 Device 003: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 001 Device 002: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub每一行代表一个 USB 设备。
5. 输出字段说明
6. 常用选项
例如:
sudo lsusb -v -d 0bda:81537. 常见用途
查看是否识别设备(如 U 盘插入后是否出现)
获取 USB 设备的 PID/VID(用于驱动开发或 udev 规则)
判断设备类型(如蓝牙、网卡、ADB、串口转接头等)
排查硬件连接问题
8. 补充:设备文件可能位于
/dev/bus/usb//sys/bus/usb/devices//proc/bus/usb/(旧系统)
9. 总结
lsusb是 Linux 下用于快速查看和诊断 USB 设备连接状态、ID、名称的核心命令,适用于开发、调试和驱动分析场景。
udevadm 是 Linux 系统中用于与 udev(用户空间设备管理器)交互的命令行工具,专门用于管理、监控、调试设备事件和设备属性,特别是在 USB、PCI、串口等热插拔设备场景中非常有用。
📌 udevadm
1. 什么是 udev?
udev是 Linux 的动态设备管理机制,负责在设备插拔时自动创建或删除/dev/目录下的设备节点。udevadm是与它交互的管理员命令工具。
2. 基本语法
udevadm [subcommand] [options]3. 常用子命令(subcommands)
3.1. udevadm info
用于查询设备的属性和信息(如 ID_VENDOR_ID, ID_MODEL_ID)
udevadm info -a -p /sys/class/tty/ttyUSB0或者用 /dev/ 路径:
udevadm info -a -n /dev/ttyUSB0-n:指定设备节点-a:显示所有匹配属性,包括父设备
3.2. udevadm monitor
实时监控 udev 事件(插拔设备时打印)
udevadm monitor输出示例:
KERNEL[1234.567]: add /devices/pci0000:00/...
UDEV [1234.568]: add /devices/pci0000:00/...也可以加参数区分:
udevadm monitor --kernel --udev3.3. udevadm trigger
用于手动触发设备的 udev 事件(例如用于测试 udev 规则)
sudo udevadm trigger可以指定子系统、设备路径:
sudo udevadm trigger --subsystem-match=usb3.4. udevadm control
控制 udev 的行为,例如重新加载规则:
sudo udevadm control --reload或开启日志:
sudo udevadm control --log-priority=debug4. 用例示例:查看 USB 设备的属性
插入一个 USB 设备后:
lsusb
# 假设出现设备 /dev/ttyUSB0
udevadm info -a -n /dev/ttyUSB0你会看到类似:
ATTRS{idVendor}=="0403"
ATTRS{idProduct}=="6001"
ATTRS{serial}=="A6008iA1"这些属性可以用于编写 udev 规则,比如为它自动创建符号链接 /dev/mydevice。
5. 总结
udevadm是与 Linux 设备热插拔机制udev交互的强大工具,可用于监控、调试、获取设备信息,并支持设备规则的测试与触发。
📌 lsmod
1. 简介
lsmod(list modules)列出当前系统中由内核加载的所有模块(也就是设备驱动、文件系统支持模块、网络协议模块等)。这些模块大多位于/lib/modules/$(uname -r)/下。
在设备驱动、嵌入式系统、自定义内核等场景中经常用到。
2. 基本定义
lsmod 是 Linux 系统中用于**查看内核已加载模块(驱动)**的命令。
3. 基本语法
lsmod无参数,直接使用。
4. 输出格式说明
Module Size Used by
i915 123456 3
drm_kms_helper 54321 1 i915
usbcore 234567 5 xhci_hcd, usbhid, ...例子解释:
i915:Intel 显卡驱动使用次数为 3,
drm_kms_helper依赖于它
5. 常见搭配命令
例如:
modinfo usbcore
modprobe dummy
rmmod dummy6. 使用场景
判断驱动模块是否已加载
检查某硬件(如 USB 网卡、摄像头)是否被内核识别
调试驱动开发(加载、卸载 .ko 文件)
排查系统异常(模块冲突、缺失)
7. 注意事项
lsmod实际上读取的是/proc/modules它不能显示编进内核(built-in)的模块,只能显示动态加载的模块
需 root 权限时请加
sudo
8. 总结
lsmod是 Linux 查看当前内核已加载模块的首选命令,适用于驱动调试、模块依赖分析、设备问题排查等场景。
📌 getenforce
1. 简介
getenforce 是 Linux 系统中用于查看 SELinux 当前运行状态 的命令。
2. 什么是 SELinux?
SELinux(Security-Enhanced Linux)是一种由 NSA(美国国家安全局)开发的 强制访问控制(MAC) 安全机制,用于强化 Linux 系统的安全性。
它通过策略规则,控制进程访问文件、端口、资源等,远比传统的 Unix 权限机制更细致、更严格。
3. 基本语法
getenforce4. 输出结果说明
5. 示例
$ getenforce
Enforcing表示 SELinux 正在运行并强制执行策略。
6. 补充命令
7. 注意事项
getenforce只显示当前运行状态,不修改任何设置。setenforce临时生效,重启后失效,需修改配置文件永久生效。如果你在 Android 或某些嵌入式系统里,也可以看到 SELinux,但可能用不同机制管理。
8. 总结
getenforce是一个简单但关键的命令,用来查看 SELinux 是否启用及其当前模式,通常用于安全排查、权限调试、服务部署前检查。
📌 setenforce
1. 简介
setenforce可以让你在运行时把 SELinux 的模式切换为:
Enforcing(强制模式):所有 SELinux 策略都会被严格执行。Permissive(宽容模式):SELinux 会记录违规操作但不阻止。
2. 基本定义
setenforce 是 Linux 系统中用于临时切换 SELinux 模式的命令,用于在不重启的情况下改变 SELinux 的运行状态。
3. 基本语法
setenforce [0|1]或:
setenforce [Permissive|Enforcing]4. 示例
sudo setenforce 0将 SELinux 设置为 Permissive 模式(只记录违规,不拦截)
sudo setenforce 1恢复为 Enforcing 模式(默认,严格限制)
5. 使用场景
6. 注意事项
这个命令 只影响当前运行状态,重启后会恢复配置文件中设定的模式。
想永久修改,要编辑配置文件:
sudo vi /etc/selinux/config将其中内容改为:
SELINUX=permissive然后重启生效。
7. 检查当前模式
执行:
getenforce或
sestatus8. 总结
setenforce是切换 SELinux 模式的快速命令,适合临时排查问题和调试,但不用于永久修改系统安全策略。
📌 zcat
1. 基本定义
zcat 是 Linux 系统中用于查看 压缩文件内容(gzip 格式) 的命令,作用类似于 cat,但它可以直接读取 .gz 文件 而无需手动解压。
2. 简介
zcat相当于cat+gunzip,它会将.gz压缩文件在内存中解压后输出内容,不会修改原始文件。
3. 基本语法
zcat [压缩文件.gz]
4. 示例
zcat /var/log/syslog.1.gz
输出该压缩日志文件的内容(无需解压到磁盘)
zcat file.gz | grep "error"
查找压缩文件中包含关键字 error 的行。
5. 与其他命令区别
6. 多文件支持
zcat file1.gz file2.gz
会将多个 .gz 文件内容连续输出。
7. 常用组合命令
zcat access.log.1.gz | less
zcat archive.log.gz | grep "timeout"
8. 总结
zcat用于直接查看.gz压缩文件内容,是分析日志、调试数据、处理归档时非常高效的工具,不需要先解压。
📌 ip link show
1. 简介
ip link show 是 Linux 系统中用于查看 网络接口(网卡)状态与配置 的命令,属于 ip 命令工具集的一部分,功能类似于老的 ifconfig,但更强大、现代、标准。
2. 命令说明
ip link show显示的是网络接口的低层信息(如接口状态、MAC 地址、MTU、是否启用等),不显示 IP 地址(IP 地址用ip addr show)。
3. 基本语法
ip link show [interface]不加参数:显示所有网络接口
指定接口:只显示某一个(如
ip link show eth0)
4. 示例输出
$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff5. 相关操作命令
6. 总结
ip link show是查看和管理 Linux 网络接口状态的基础命令,用于替代ifconfig查看网卡是否启用、MAC 地址、连接状态等底层信息。
📌 iw dev
1. 简介
iw dev 是用于显示 Linux 无线网卡(Wi-Fi 设备)详细信息 的命令,属于现代无线工具集 iw,用来替代旧的 iwconfig。
2. 命令说明
iw dev用于列出系统中所有无线设备(interface)及其相关信息,比如:
接口名称(如
wlan0)设备支持的模式(如 station/AP/monitor)
当前工作频率(channel)
信道宽度、功率
MAC 地址(addr)
接入点(AP)信息(如已连接时)
3. 示例输出
$ iw dev
phy#0
Interface wlan0
ifindex 3
wdev 0x1
addr 1c:3e:84:9a:12:34
type managed
txpower 20.00 dBm4. 常见搭配命令
5. 总结
iw dev是查看无线网卡接口及其状态(模式、频率、功率等)的命令,是无线调试、抓包、配置 AP/Monitor 模式的常用入口。
📌 ifconfig
1. 简介
ifconfig 是 Linux 系统中 查看和配置网络接口(网卡) 的经典命令,属于 net-tools 套件,曾经是网络调试的主力工具。
虽然已被 ip 命令(如 ip addr, ip link)所取代,但在很多嵌入式系统和老系统中仍在使用。
2. 基本用途
ifconfig # 查看所有活动(UP)接口
ifconfig -a # 查看所有接口,包括未启用的
ifconfig eth0 # 查看指定接口3. 示例输出解析
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::1c3e:84ff:fe9a:1234 prefixlen 64 scopeid 0x20<link>
ether 1c:3e:84:9a:12:34 txqueuelen 1000 (Ethernet)
RX packets 10231 bytes 1248242 (1.2 MB)
TX packets 9813 bytes 1123999 (1.1 MB)4. 网络配置示例(临时)
需要 root 权限!
# 设置 IP 和子网掩码
sudo ifconfig eth0 192.168.1.123 netmask 255.255.255.0
# 启用接口
sudo ifconfig eth0 up
# 禁用接口
sudo ifconfig eth0 down
# 修改 MAC 地址
sudo ifconfig eth0 hw ether 00:11:22:33:44:55
⚠️ 注意:这些修改是临时的,重启系统后会丢失。
5. 总结
ifconfig是传统的网卡查看与配置工具,在新系统中推荐使用ip addr,ip link等现代替代命令。
现代发行版(如 Ubuntu 20+、Arch、Debian 10+),默认可能没有安装 ifconfig,可以通过以下方式手动安装:
sudo apt install net-tools # Debian/Ubuntu
sudo yum install net-tools # RHEL/CentOS📌 iwconfig
1. 简介
iwconfig类似于有线网络的ifconfig,但专门针对无线设备,用于查看无线网卡的状态、信号强度、频率、模式等信息,也能设置无线参数(如 ESSID、频道等)。
2. 基本定义
iwconfig 是 Linux 中用于 查看和配置无线网络接口参数 的经典命令,属于 wireless-tools 套件。
3. 基本用法
iwconfig # 显示所有无线接口信息
iwconfig wlan0 # 查看指定无线接口信息
iwconfig wlan0 essid MyWiFi # 设置连接的无线网络名(SSID)
iwconfig wlan0 channel 6 # 设置无线频道4. 常见输出示例
wlan0 IEEE 802.11 ESSID:"MyWiFi"
Mode:Managed Frequency:2.437 GHz Access Point: 00:11:22:33:44:55
Bit Rate=54 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=70/70 Signal level=-40 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:05. 常用操作
连接指定网络
sudo iwconfig wlan0 essid "YourSSID"更改频道
sudo iwconfig wlan0 channel 11关闭无线接口的功率管理
sudo iwconfig wlan0 power off6. 注意事项
iwconfig主要用于较旧的无线设备和驱动,新的 Linux 发行版和驱动推荐使用iw命令工具。有些现代无线设备驱动不支持
iwconfig,功能有限。iwconfig不管理 IP 地址,只管无线参数,IP 地址管理还是用ifconfig或ip。
7. 总结一句话
iwconfig是查看和设置无线网卡参数的传统工具,适合快速查看信号强度和配置无线网络,但在现代系统中多用iw替代。
📌 netstat
1. 简介
netstat(network statistics)显示当前网络连接(TCP、UDP)、路由表、接口流量统计、端口监听状态等信息,是排查网络问题和查看端口使用情况的重要工具。
2. 基本定义
netstat 是 Linux/Unix 系统中用于 查看网络连接状态和统计信息 的经典命令。
3. 基本语法
netstat [选项]4. 常用选项
5. 经典用法示例
netstat -tuln
显示所有监听的 TCP 和 UDP 端口(数字形式)
netstat -anp | grep 80
查看哪个进程监听或使用了 80 端口
netstat -r
查看路由表
netstat -i
查看网络接口流量统计
6. 替代工具
新版 Linux 发行版推荐用
ss替代netstat,如:
ss -tuln
ip route替代netstat -r
7. 总结
netstat是查看网络连接、端口监听、路由表和网络统计的传统命令,适合诊断网络问题和分析端口使用。