随记01

1、/dev/null和/dev/zero

  • /dev/null 是一个空设备,也称为位桶(bit bucket),任何写入它的输出都会被抛弃,通常被用于丢弃不需要的输出流
  • /dev/zero 是一个输入设备,你可你用它来初始化文件,当你读它的时候,会提供无限的空字符(二进制的零流,NULL, ASCII NUL, 0x00)。可用来产生一个特定大小的空白文件

1、生成文件:

生成一个100M大小的test文件
dd if=/dev/zero of=test bs=1024 count=102400    生成100M大小的文件
dd if=/dev/zero of=test bs=1024 count=1 seek=102400  产生100M大小的文件,实际不写入硬盘
if=输入文件名,缺省为标准输入
of=出文件名,缺省为标准输出
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节
bs=bytes:同时设置读入/输出的块大小为bytes个字节

skip=blocks:从输入文件开头跳过blocks个块后再开始复制
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数
seek=blocks:从输出文件开头跳过blocks个块后再开始复制,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的

2、/proc/pid/wchan

表示一个内存地址或进程正在执行的方法名称

adb shell cat /proc/3550/wchan
pipe_wait     //进程在等待状态

2、查看inode使用情况

df  -i //当inode耗尽时,磁盘也会空间不足

2、显示隐藏文件: Ctrl + H

5、nohup: 在后台运行程序

nohup ./start.sh &
为了使进程不自动关闭,需要按回车键回到shell窗口,然后输入exit退出shell

6、netstat

adb shell netstat -anp

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program Name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1904/sshd          
tcp        0      0 127.0.0.1:5037          0.0.0.0:*               LISTEN      16648/adbd
tcp        0      0 :::5555                 :::*                    LISTEN      16648/adbd

Recv-Q : 接收队列,表示收到的数据已经在本地接收缓冲,但是还没有被进程取走,如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了 DOS拒绝服务攻击

Send-Q: 发送队列,对方没有收到的数据或者说没有Ack的, 还是本地缓冲区。发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快

2.2 Local Address :
1) Local Address 部分的0.0.0.0:22 表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip)
2) :::22 这个也表示监听本地所有ip的22端口,跟上面的区别是这里表示的是IPv6地址,上面的0.0.0.0表示的是本地所有IPv4地址
3) “:::” 这三个: 的前两个"::",是"0:0:0:0:0:0:0:0"的缩写,相当于IPv6的"0.0.0.0",就是本机的所有IPv6地址,第三个:是IP和端口的分隔符
4) 127.0.0.1:631 这个表示监听本机的loopback地址的631端口
5)::1:631 这个表示监听IPv6的回环地址的631端口,::1这个表示IPv6的loopback地址

Foreign Address: 与本机端口通信的外部socket。显示规则与Local Address相同

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State           I-Node PID/Program Name    Path
unix  2      [ ACC ]     STREAM     LISTENING        12295 424/thermal-engine  /dev/socket/thermal-send-client
unix  2      [ ACC ]     STREAM     LISTENING        12300 424/thermal-engine  /dev/socket/thermal-recv-client
State:
LISTEN  等待连接状态
SYN_SENT    客户端通过应用程序调用connect进行active open.于是客户端tcp发送一个SYN以请求建立一个连接.之后状态置为SYN_SENT./*The socket is actively attempting to establish a connection. 在发送连接请求后等待匹配的连接请求 */
SYN_RECV    服务端应发出ACK确认客户端的 SYN,同时自己向客户端发送一个SYN. 之后状态置为SYN_RECV/* A connection request has been received from the network. 在收到和发送一个连接请求后等待对连接请求的确认 */
ESTABLISHED 代表一个打开的连接,双方可以进行或已经在数据交互了。/* The socket has an established connection. 代表一个打开的连接,数据可以传送给用户 */
FIN_WAIT1   主动关闭(active close)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态./* The socket is closed, and the connection is shutting down. 等待远程TCP的连接中断请求,或先前的连接中断请求的确认 */
CLOSE_WAIT  被动关闭(passive close)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT./* The remote end has shut down, waiting for the socket to close. 等待从本地用户发来的连接中断请求 */
FIN_WAIT2   主动关闭端接到ACK后,就进入了 FIN-WAIT-2 ./* Connection is closed, and the socket is waiting for a shutdown from the remote end. 从远程TCP等待连接中断请求 */
LAST_ACK    被动关闭端一段时间后,接收到文件结束符的应用程 序将调用CLOSE关闭连接。这导致它的TCP也发送一个 FIN,等待对方的ACK.就进入了LAST-ACK ./* The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 等待原来发向远程TCP的连接中断请求的确认 */
TIME_WAIT   在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态。等待足够的时间以确保远程TCP接收到连接中断请求的确认 
CLOSING 比较少见。Both sockets are shut down but we still don’t have all our data sent. 等待远程TCP对连接中断的确认
CLOSED  被动关闭端在接受到ACK包后,就进入了closed的状态。连接结束.
UNKNOWN 未知的Socket状态

SYN: 该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
ACK: 是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。
FIN:用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。

7、 cat /proc/pid/stat

λ adb shell cat /proc/25960/stat
25960 (ngdong.app.mall) S 348 347 0 0 -1 1077952832 526192 123868 1500 7 3546 1839 269 648 16 -4 165 0 60920168 2242711552 70758 18446744073709551615 1 1 0 0 0 0 4612 4096 34040 18446744073709551615 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0

每个数字的含义,按顺序:
20、num_threads: 线程个数,165
1、进程pid
2、进程名
3、state: 进程状态, 此处为S
4、ppid: 父进程ID
5、pgrp:进程组ID
6、session:进程会话组ID

14、utime: 该进程处于用户态的时间,单位jiffies,3546
15、stime: 该进程处于内核态的时间,单位jiffies,1839
16、cutime:当前进程等待子进程的utime
17、cstime: 当前进程等待子进程的stime
进程的总Cpu时间processCpuTime = utime + stime + cutime + cstime,该值包括其所有线程的cpu时间

18、进程优先级,16
19、nice值,取值范围[19, -20], -4
20、num_threads: 线程个数,,165
21、已废弃,恒等于0
22、starttime:自系统启动后的进程创建时间,单位jiffies,60920168
23、vsize:进程的虚拟内存大小,单位为bytes
24、rss: 进程独占内存+共享库,单位pages,70758

查看线程的:cat /proc/pid/task/tid/stat
V110:/proc/7358/task/7369 # cat stat
7369 (Jit thread pool) S 651 651 0 0 -1 1077952576 6147 0 233 0 9 5 0 0 29 9 17 0 899299 4028694528 5287 18446744073709551615 393869111296 393869130188 549668607120 543888020352 546215719856 0 4612 1 1073775864 1 0 0 -1 5 0 0 0 0 0 393869240928 393869242368 394878496768 549668608649 549668608748 549668608748 549668610014 0

8、进程的总体信息

λ adb shell cat /proc/stat
cpu  22330678 4359171 10792266 12048305 90888 2355872 1389831 0 0 0
cpu0 6510803 786892 2776996 12036589 90860 1026197 620583 0 0 0
cpu1 5659153 814112 2589491 1326 9 557174 578134 0 0 0
cpu2 5011785 834058 2023085 1390 4 373482 86786 0 0 0
cpu3 4112042 748135 1837489 1436 3 305779 75368 0 0 0
cpu4 388579 416552 615388 1832 2 28361 10316 0 0 0
cpu5 270207 331448 412243 1889 2 19627 7981 0 0 0
cpu6 196470 253169 304845 1915 8 14839 5618 0 0 0
cpu7 181639 174805 232729 1928 0 30413 5045 0 0 0    CPU信息: user,nice, system, idle, iowait, irq, softirq
intr 1207657766 0 0 0 554063139 0 30272497 4 6 6 0 6806 8955 0 199 28 0 0 0 0 0 36 0 272975 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 19869 0 0 0 0 0 318 224 0 0 0 0 3758507 0 0 11722955 52566 0 0 0 0 0 0 1114 21000239 0 0 94 15162847 6 17534978 3928333 152438 0 0 0 0 0 5510470 6110208 50403982 0 0 0 0 326341 0 0 132 0 403671 12582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 0 0 0 0 0 0 0 0 0   所有interrupts的次数情况
ctxt 1871132854  系统上下文切换次数
btime 1586848255  系统启动时间,每次开机改变
processes 158757  系统启动后创建过的进程数量
procs_running 9  处于Runnable状态的进程数量
procs_blocked 0  处于等待I/O完成的进程数量
softirq 241289360 52556 54984453 137660 28840446 10512300 52556 54725591 52647878 0 39335920
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容