常用的linux命令整理 -- 下

12)磁盘空间

df -h 显示已经挂载的分区列表 
ls -lSr |more 以尺寸大小排列文件和目录 
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间' 
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小 
df -m :查看系统磁盘
du -h dir  :查看dir的大小

13)网络
网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看 linux 服务器 ip 地址,管理服务器网络配置,通过 telnet 和 ethernet 建立与 linux 之间的网络链接,查看 linux 的服务器信息等
hostname 没有选项,显示主机名字

hostname –d 显示机器所属域名
hostname –f 显示完整的主机名和域名
hostname –i 显示当前机器的 ip 地址

ping 将数据包发向用户指定地址。当包被接收,目标机器发送返回数据包。ping 主要有两个作用:
用来确认网络连接是畅通的;用来查看连接的速度信息.

ping 192.168.1.150
ping www.baidu.com

ifconfig 可以查看/配置计算机当前的网卡配置信息

ifconfig eth0 :显示一个以太网卡的配置 
ifconfig eth0 up:启用一个 'eth0' 网络设备 
ifconfig eth0 down:禁用一个 'eth0' 网络设备 
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 :控制IP地址 
ifconfig eth0 promisc :设置 'eth0' 成混杂模式以嗅探数据包 (sniffing) 
dhclient eth0 :以dhcp模式启用 'eth0' 

route命令用于查看或修改主机和网络的路由信息
route :显示路由信息。

route add –host 192.168.1.110 dev eth0  :给网卡eth0的路由表中加入新地址192.168.1.110。
route add –net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1  :给子网192.168.1.0添加路由和网关,新增加的路由和网关地址为192.168.1.1。
route add default gw 192.168.0.1  :给路由表中添加默认网关地址192.168.0.1
route del –host 192.168.1.110 dev eth0   :删除网卡eth0路由表中的地址192.168.1.110。
route del –net 192.168.1.0 netmask 255.255.255.0 :在路由表中删除子网192.168.1.0的路由信息。
route change 192.168.1.0 mask 255.255.255.0 192.168.10.100  :将子网 192.168.1.0 的下一跃点地址设置为 192.168.10.100。

mii-tool命令用于查看或修改指定网卡的通信协商方式。

mii-tool :以简明的形式显示本机物理网卡的工作方式。
mii-tool –v :以详细的形式显示本机物理网卡的工作方式。
mii-tool -F 10baseT-FD eth0 :设置网卡eth0工作在10M、全双工模式下。
mii-tool –r eth0 :设置网卡eth0工作在自动协商工作模式。

ethtool命令用来查看或者修改指定网卡的工作方式。

ethtool eth0 :查看网卡eth0的工作方式,内容包括网卡的传输速度、全双工或半双工传输、网卡连接检测是否激活、网卡是否工作在自动协商状态等。
ethtool –s eth0 speed 10 duplex half  :设置网卡eth0的传输速度为10M、半双工传输模式

netstat发现主机连接最有用最通用的 Linux 命令。你可以使用”netstat -g”查询该主机订阅的所有多播组(网络)

netstat -nap | grep port 将会显示使用该端口的应用程序的进程 id
netstat -a or netstat –all 将会显示包括 TCP 和 UDP 的所有连接
netstat –tcp or netstat –t 将会显示 TCP 连接
netstat –udp or netstat –u 将会显示 UDP 连接
netstat -g 将会显示该主机订阅的所有多播网络。

nslookup 这个命令在 有 ip 地址时,可以用这个命令来显示主机名,可以找到给定域名的所有 ip 地址。而你必须连接到互联网才能使用这个命令。

nslookup www.example.com :从主机名获得 ip 

iwconfig 工具与 ifconfig 和 ethtool 类似。是用于无线网卡的 . 你可以用他查看设置基本的 Wi-Fi 网络信息,例如 SSID, channel 和 encryption.还有其他很多配置你也可以查看和修改,, 包括 接收灵敏度, RTS/CTS, 发送数据包的分片大小,以及无线网卡的重传机制

iwconfig eth1 : 显示无线网卡的信息

iwlist scan :显示无线网络信息
  1. 磁盘管理
    fdisk -l :查看磁盘信息(可查各个硬盘容量大小、可查各硬盘分区情况)(各硬盘或硬盘下分区必须挂载到某个目录才能被使用)
fdisk /dev/sdb :对硬盘sdb创建分区
mkfs.ext4 /dev/vdb1 :修改格式化硬盘分区vdb1的文件系统类型为ext4
df -TH :显示磁盘的空间使用情况、文件系统类型、挂载点(硬盘挂载了才会显示)
df -h /var/log :(显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)
du -sm /var/log/ | sort -rn* : 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小
mount /dev/sda1 /mnt :硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)
mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :挂载iso文件
umount /dev/sda1 :取消挂载(umount 装置文件名或挂载点)

15)服务与进程

netstat -ntlp :查看服务器所有被占用端口
netstat -lnp|grep 端口号/进程号/进程名 :根据查端口是否打开确认服务是否启动,配合ps命令可查服务占用的端口

常用参数:
-p:获取进程名、进程号;
-n:禁用域名解析功能,查出IP且速度快;
-l:只列出监听中的连接;
-t:只列出 TCP协议的连接。

ps 查看整个系统内部所运行的进程状况
a:(all)当前系统所有用户的进程
u:查看进程所有者及其他一些信息
x:显示没有控制终端的进程–不能与用户进行交互的进程输入、输出
-e:显示所有进程
-f:显示UID,PPP与STIME栏位

ps aux|grep tomcat netstat -lnp|grep 进程号 :查tomcat服务占用的端口;
ps aux|grep 进程号/进程启动命令/服务名 :进程查看命令ps(可查进程状态;进程占用cpu、内存;配合netstat根据某服务端口查出进程号用于杀进程,查服务启动命令及服务路径 )
chkconfig :主要来更新(启动或停止)和查询系统服务的运行级信息
env  :查看当前进程环境变量

16)系统性能

vmstat 2 10 :每隔2秒采集一次服务器状态,采集10次(查看内存、io读写状态、cpu)

free显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
​命令参数:
​-b 以Byte显示内存使用情况
​-k 以kb为单位显示内存使用情况
​-m 以mb为单位显示内存使用情况
​-g 以gb为单位显示内存使用情况
​-s<间隔秒数> 持续显示内存
​-t 显示内存使用总合

free -h :查看系统内存及虚拟内存使用情况
​free -t :以总和的形式显示内存的使用信息
​free -s 10 :周期性查询内存使用情况

df显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示
-a 全部文件系统列表
​-h 以方便阅读的方式显示信息
​-i 显示inode信息
​-k 区块为1024字节
​-l 只显示本地磁盘
​-T 列出文件系统类型

df -h :显示磁盘的空间使用情况
​df -l :显示磁盘使用情况
​df -haT :以易读方式列出所有文件系统及其类型

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看
du [选项][文件]
​常用参数:
​-a 显示目录中所有文件大小
​-k 以KB为单位显示文件大小
​-m 以MB为单位显示文件大小
​-g 以GB为单位显示文件大小
​-h 以易读方式显示文件大小
​-s 仅显示总计
​-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和

​du -h scf/  :以易读方式显示文件夹内及子文件夹大小
​du -ah scf/
​du -hc test/ scf/ :显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
​du -hc --max-depth=1 scf/ :输出当前目录下各个子目录所使用的空间
iostat :可查io读写、cpu使用情况
sar -u 3 5 :查看cpu使用情况(3秒一次,共5次)
sar -d 2 3 :评估磁盘性能

ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用top
命令参数:
​-A 显示所有进程
​a 显示所有进程
​-a 显示同一终端下所有进程
​c 显示进程真实名称
​e 显示环境变量
​f 显示进程间的关系
​r 显示当前终端运行的进程
​-aux 显示所有包含其它使用的进程
ps aux|grep firefox :获取火狐的进程号(PID)(可查看进程占用cpu、内存百分比及进程触发指令的路径)

​ps -ef :显示当前所有进程环境变量及进程间关系
​ps -A :显示当前所有进程
​ps -aux | grep apache :与grep联用查找某进程
​ps aux | grep '(cron|syslog)' :找出与 cron 与 syslog 这两个服务有关的 PID 号码

top显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
​常用参数:
​-c 显示完整的进程命令
​-s 保密模式
​-p <进程号> 指定进程显示
​-n <次数>循环显示次数

top -d 2 -p 7427 :-d为画面更新的秒数,默认5秒,-p为指定进程pid的信息

​kill发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
​常用参数:
​-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
​-a 当处理当前进程时,不限制命令名和进程号的对应关系
​-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
​-s 指定发送信号
-u 指定用户

​kill -9 $(ps -ef | grep pro1) :先使用ps查找进程pro1,然后用kill杀掉
systemctl :查看正在运行的服务

17)文件传输
(1)在开发板上执行以下命令:
tftp -g 192.168.2.34 -r gpio_driver.ko //192.168.2.34电脑ip

tftp -g -r test 192.168.1.42
-g: get,下载文件;
-r:remote 远程服务器;
test:远程服务器tftpboot目录下的文件名字
192.168.1.42: 远程服务器ip地址

(2)从Ubuntu拷贝文件到开发板系统
scp: Linux下用来进行 远程拷贝文件的命令它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的
语法: scp 【可选参数】 本地源文件 远程文件标记
参数
-r :递归复制整个目录
-v:详细方式输出
-q:不显示传输进度条
-C:允许压缩

touch testssh
scp testssh [email protected]:/home/root
192.168.1.40:开发板IP
/home/root:为拷贝到开发板指定的目录

(3)SSH 是 非常常用 的工具,通过 SSH 客户端 我们可以连接到运行了 SSH 服务器 的远程机器,
ssh格式:ssh [-p port] user@remote
user 是在远程机器上的用户名,如果不指定的话默认为当前用户
remote 是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名
port 是 SSH Server 监听的端口,如果不指定,就为默认值 22

18)ntpdate对时
date显示或设定系统的日期与时间
​命令参数:
​-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
​-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
​-u  显示GMT。

date +%Y%m%d --date="+1 day" //显示下一天的日期
date -d "nov 22" 今年的 11 月 22 日是星期三
​date -d '2 weeks' 2周后的日期
date -s "2017/07/30 18:39"

Linux服务器要求时间准确,但是Linux本身没有网络时间同步功能,我们需要借助ntpdate功能来实现时间精准。
ntpdate命令用于同步更新互联网时间,或者NTP服务器时间
unix 系统时区设置:每个用户可以使用环境变量来设置与系统不同的时区,这个设置将覆盖系统的设置。
linux系统时间总是UTC(世界协调时间)时间;
硬件RTC保存的是根据/etc/sysconfig/clock 中UTC=true时为UTC时间,否则为CST时间(CST = UTC + 8)
ntpdate [-nv] [NTP IP/hostname]

ntpdate 202.112.10.60
hwclock:系统硬件时间
hwclock -r     :同步时间到服务器,即硬件同步
hwclock -s -u  :加上也可以,后面显示时间

hwclock --set --date="9/25/20 00:00" :设置硬件时间 月/日/年时:分:秒
hwclock  :2020年09月25日星期日 00时00分06秒  -0.870868 seconds
hwclock  -w  根据系统时间设置硬件时间
  1. chown命令
    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符
    ​-c 显示更改的部分的信息
    ​-R 处理指定目录及子目录
chown -c mail:mail log2012.log :改变拥有者和群组 并显示改变信息
​chown -c :mail t.log :改变文件群组
  1. tcpdump命令
tcpdump  -i  eth0  -nnX  port  21

选项:
-i  指定网卡接口
-nn 将数据包中的域名与服务转为IP和端口
-X  以十六进制和ASCII码显示数据包内容
port 指定监听的端口

  1. iperf
    吞吐量测试:最常使用的工具是ipref,假设PC ip(192.168.1.100);单板的IP(192.168.1.101)
    1)TCP发送吞吐量测试
    PC机上命令进入ipref目录,执行:
ipref -s (表示启动服务)

单板:

ipref -c 192.168.1.100 -t 10 -i 1(表示启动客户端,连接192.168.1.100,-t 10 表示测试10s,-i 1表打印1s一次结果)

2)TCP接收吞吐量测试
单板,执行:

ipref -s 

PC:

ipref -c 192.168.1.101 -t 10 -i 1 -w 1M

3)UDP发送吞吐量测试
PC机上命令进入ipref目录,执行:

ipref -s -u -l 32k

单板:

ipref -c 192.168.1.100 -u -t 10 -i 1 -l 32k -b 100M

4)UDP接收吞吐量测试
单板,执行:

ipref -s -u

PC:

 ipref -c 192.168.1.101  -u -t 10 -i 1 -l 32k -b 100M

22)linux kernel usb 调试方法
1)sysfs /debugfs
2) usbmon
3) dynamic debug interface
4) tracepoints

调试信息文件路径:

ls /sys/bus/usb/devices
cat /sys/kernel/debug/usb/devices    //包含usb的设备信息
cat /proc/bus/input/devices          //查找系统的usb输入设备

usbmon源码的路径:kernel/drivers/usb/mon

usbmon的相关命行:

sudo mount -t debugfs none_debugs/sys/kernel/debug
sudo modprobe usbmon
sudo ls /sys/kernel/debug/usb/usbmon

ls /dev | grep usb
sudo tcpdump -i usbmon -w usbmon11.pcap
dmseg | grep -i usb //查看usb相关的信息

cat /sys/kernel/debug/usb/usbmon/ou > /tmp/1.mon.out

猜你喜欢

转载自blog.csdn.net/chocolate2018/article/details/108871737