真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux上跟蹤命令 linux跟蹤命令執(zhí)行過程

linux 好用的命令

Linux運(yùn)維人員必會的120個命令

成都創(chuàng)新互聯(lián)專注于馬尾企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站定制開發(fā)。馬尾網(wǎng)站建設(shè)公司,為馬尾等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

跟老男孩學(xué)Linux運(yùn)維:核心系統(tǒng)命令實(shí)戰(zhàn)

前言

第1章 Linux命令行簡介 / 1

1.1Linux命令行概述 / 1

1.2在Linux命令行下查看命令幫助 / 4

1.3Linux shutdown reboot halt / 9

關(guān)機(jī):

shutdown -h now

halt

init 0

第2章 文件和目錄操作命令 / 13

2.1pwd:顯示當(dāng)前所在的位置 / 13

2.2cd:切換目錄 / 16

2.3tree:以樹形結(jié)構(gòu)顯示目錄下的內(nèi)容 / 18

2.4mkdir:創(chuàng)建目錄 / 22

2.5touch:創(chuàng)建空文件或改變文件的時間戳屬性 / 27

2.6ls:顯示目錄下的內(nèi)容及相關(guān)屬性信息 / 30

2.7cp:復(fù)制文件或目錄 / 39

2.8mv:移動或重命名文件 / 42

2.9rm:刪除文件或目錄 / 45

2.10rmdir:刪除空目錄 / 48

2.11ln:硬鏈接與軟鏈接 / 49

2.12readlink:查看符號鏈接文件的內(nèi)容 / 54

2.13find:查找目錄下的文件 / 55

2.14xargs:將標(biāo)準(zhǔn)輸入轉(zhuǎn)換成命令行參數(shù) / 68

2.15rename:重命名文件 / 71

2.16basename:顯示文件名或目錄名 / 72

2.17dirname:顯示文件或目錄路徑 / 72

2.18chattr:改變文件的擴(kuò)展屬性 / 73

2.19lsattr:查看文件擴(kuò)展屬性 / 75

2.20file:顯示文件的類型 / 76

2.21md5sum:計算和校驗(yàn)文件的MD5值 / 77

2.22chown:改變文件或目錄的用戶和用戶組 / 80

2.23chmod:改變文件或目錄權(quán)限 / 81

2.24chgrp:更改文件用戶組 / 85

2.25umask:顯示或設(shè)置權(quán)限掩碼 / 86

2.26老男孩從新手成為技術(shù)大牛的心法 / 90

第3章 文件過濾及內(nèi)容編輯處理命令 / 91

3.1cat:合并文件或查看文件內(nèi)容 / 91

3.2tac:反向顯示文件內(nèi)容 / 103

3.3more:分頁顯示文件內(nèi)容 / 104

3.4less:分頁顯示文件內(nèi)容 / 107

3.5head:顯示文件內(nèi)容頭部 / 109

3.6tail:顯示文件內(nèi)容尾部 / 111

3.7tailf:跟蹤日志文件 / 114

3.8cut:從文本中提取一段文字并輸出 / 115

3.9split:分割文件 / 117

3.10paste:合并文件 / 118

3.11sort:文本排序 / 123

3.12join:按兩個文件的相同字段合并 / 127

3.13uniq:去除重復(fù)行 / 129

3.14wc:統(tǒng)計文件的行數(shù)、單詞數(shù)或字節(jié)數(shù) / 131

3.15iconv:轉(zhuǎn)換文件的編碼格式 / 133

3.16dos2unix:將DOS格式文件轉(zhuǎn)換成UNIX格式 / 134

3.17diff:比較兩個文件的不同 / 135

3.18vimdiff:可視化比較工具 / 138

3.19rev:反向輸出文件內(nèi)容 / 139

3.20tr:替換或刪除字符 / 140

3.21od:按不同進(jìn)制顯示文件 / 143

3.22tee:多重定向 / 145

3.23vi/vim:純文本編輯器 / 147

3.24老男孩逆襲思想:做Linux運(yùn)維的多個好處 / 152

第4章 文本處理三劍客 / 153

4.1grep:文本過濾工具 / 153

4.2sed:字符流編輯器 / 159

4.3awk基礎(chǔ)入門 / 165

第5章 Linux信息顯示與搜索文件命令 / 176

5.1uname:顯示系統(tǒng)信息 / 176

5.2hostname:顯示或設(shè)置系統(tǒng)的主機(jī)名 / 178

5.3dmesg:系統(tǒng)啟動異常診斷 / 179

5.4stat:顯示文件或文件系統(tǒng)狀態(tài) / 181

5.5du:統(tǒng)計磁盤空間使用情況 / 183

5.6date:顯示與設(shè)置系統(tǒng)時間 / 186

5.7echo:顯示一行文本 / 190

5.8watch:監(jiān)視命令執(zhí)行情況 / 193

5.9which:顯示命令的全路徑 / 195

5.10whereis:顯示命令及其相關(guān)文件全路徑 / 196

5.11locate:快速定位文件路徑 / 197

5.12updatedb:更新mlocate數(shù)據(jù)庫 / 199

5.13老男孩逆襲思想:新手在工作中如何問問題不會被鄙視 / 200

第6章 文件備份與壓縮命令 / 201

6.1tar:打包備份 / 201

6.2gzip:壓縮或解壓文件 / 208

6.3zip:打包和壓縮文件 / 211

6.4unzip:解壓zip文件 / 212

6.5scp:遠(yuǎn)程文件復(fù)制 / 214

6.6rsync:文件同步工具 / 216

6.7老男孩逆襲思想:新手如何高效地提問 / 220

第7章 Linux用戶管理及用戶信息查詢命令 / 222

7.1 useradd:創(chuàng)建用戶 / 222

7.2usermod:修改用戶信息 / 227

7.3userdel:刪除用戶 / 229

7.4groupadd:創(chuàng)建新的用戶組 / 230

7.5groupdel:刪除用戶組 / 231

7.6passwd:修改用戶密碼 / 232

7.7chage:修改用戶密碼有效期 / 237

7.8chpasswd:批量更新用戶密碼 / 238

7.9su:切換用戶 / 240

7.10visudo:編輯sudoers文件 / 242

7.11sudo:以另一個用戶身份執(zhí)行命令 / 244

7.12id:顯示用戶與用戶組的信息 / 248

7.13w:顯示已登錄用戶信息 / 249

7.14who:顯示已登錄用戶信息 / 250

7.15users:顯示已登錄用戶 / 252

7.16whoami:顯示當(dāng)前登錄的用戶名 / 253

7.17last:顯示用戶登錄列表 / 253

7.18lastb:顯示用戶登錄失敗的記錄 / 254

7.19lastlog:顯示所有用戶的最近登錄記錄 / 255

第8章 Linux磁盤與文件系統(tǒng)管理命令 / 257

8.1fdisk:磁盤分區(qū)工具 / 257

8.2partprobe:更新內(nèi)核的硬盤分區(qū)表信息 / 265

8.3tune2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)參數(shù) / 266

8.4parted:磁盤分區(qū)工具 / 268

8.5mkfs:創(chuàng)建Linux文件系統(tǒng) / 272

8.6dumpe2fs:導(dǎo)出ext2/ext3/ext4文件系統(tǒng)信息 / 274

8.7resize2fs:調(diào)整ext2/ext3/ext4文件系統(tǒng)大小 / 275

8.8fsck:檢查并修復(fù)Linux文件系統(tǒng) / 278

8.9dd:轉(zhuǎn)換或復(fù)制文件 / 281

8.10mount:掛載文件系統(tǒng) / 284

8.11umount:卸載文件系統(tǒng) / 288

8.12df:報告文件系統(tǒng)磁盤空間的使用情況 / 289

8.13mkswap:創(chuàng)建交換分區(qū) / 293

8.14swapon:激活交換分區(qū) / 294

8.15swapoff:關(guān)閉交換分區(qū) / 295

8.16sync:刷新文件系統(tǒng)緩沖區(qū) / 296

第9章 Linux進(jìn)程管理命令 / 298

9.1ps:查看進(jìn)程 / 298

9.2pstree:顯示進(jìn)程狀態(tài)樹 / 305

9.3pgrep:查找匹配條件的進(jìn)程 / 306

9.4kill:終止進(jìn)程 / 307

9.5killall:通過進(jìn)程名終止進(jìn)程 / 310

9.6pkill:通過進(jìn)程名終止進(jìn)程 / 311

9.7top:實(shí)時顯示系統(tǒng)中各個進(jìn)程的資源占用狀況 / 313

9.8nice:調(diào)整程序運(yùn)行時的優(yōu)先級 / 320

9.9renice:調(diào)整運(yùn)行中的進(jìn)程的優(yōu)先級 / 323

9.10nohup:用戶退出系統(tǒng)進(jìn)程繼續(xù)工作 / 324

9.11strace:跟蹤進(jìn)程的系統(tǒng)調(diào)用 / 325

9.12ltrace:跟蹤進(jìn)程調(diào)用庫函數(shù) / 332

9.13runlevel:輸出當(dāng)前運(yùn)行級別 / 334

9.14init:初始化Linux進(jìn)程 / 335

9.15service:管理系統(tǒng)服務(wù) / 335

第10章 Linux網(wǎng)絡(luò)管理命令 / 338

10.1ifconfig:配置或顯示網(wǎng)絡(luò)接口信息 / 338

10.2ifup:激活網(wǎng)絡(luò)接口 / 343

ifup eth0

10.3ifdown:禁用網(wǎng)絡(luò)接口 / 343

ifdown eth0

service network restart(/etc/init.d/network restart) 激活整個網(wǎng)絡(luò),所有網(wǎng)卡。

10.4route:顯示或管理路由表 / 344

10.5arp:管理系統(tǒng)的arp緩存 / 350

10.6ip:網(wǎng)絡(luò)配置工具 / 351

10.7netstat:查看網(wǎng)絡(luò)狀態(tài) / 358

10.8ss:查看網(wǎng)絡(luò)狀態(tài) / 362

10.9ping:測試主機(jī)之間網(wǎng)絡(luò)的連通性 / 363

10.10traceroute:追蹤數(shù)據(jù)傳輸路由狀況 / 366

10.11arping:發(fā)送arp請求 / 367

10.12telnet:遠(yuǎn)程登錄主機(jī) / 369

10.13nc:多功能網(wǎng)絡(luò)工具 / 370

10.14ssh:安全地遠(yuǎn)程登錄主機(jī) / 373

10.15wget:命令行下載工具 / 376

10.16mailq:顯示郵件傳輸隊列 / 379

10.17mail:發(fā)送和接收郵件 / 381

10.18nslookup:域名查詢工具 / 386

10.19dig:域名查詢工具 / 389

10.20host:域名查詢工具 / 393

10.21nmap:網(wǎng)絡(luò)探測工具和安全/端口掃描器 / 394

10.22tcpdump:監(jiān)聽網(wǎng)絡(luò)流量 / 398

第11章 Linux系統(tǒng)管理命令 / 407

11.1lsof:查看進(jìn)程打開的文件 / 407

11.2uptime:顯示系統(tǒng)的運(yùn)行時間及負(fù)載 / 411

11.3free:查看系統(tǒng)內(nèi)存信息 / 411

11.4iftop:動態(tài)顯示網(wǎng)絡(luò)接口流量信息 / 413

11.5vmstat:虛擬內(nèi)存統(tǒng)計 / 415

11.6mpstat:CPU信息統(tǒng)計 / 419

11.7iostat:I/O信息統(tǒng)計 / 420

11.8iotop:動態(tài)顯示磁盤I/O統(tǒng)計信息 / 423

11.9sar:收集系統(tǒng)信息 / 425

11.10chkconfig:管理開機(jī)服務(wù) / 430

11.11ntsysv:管理開機(jī)服務(wù) / 433

11.12 setup:系統(tǒng)管理工具 / 434

11.13ethtool:查詢網(wǎng)卡參數(shù) / 436

11.14mii-tool:管理網(wǎng)絡(luò)接口的狀態(tài) / 437

11.19rpm:RPM包管理器 / 443

11.20yum:自動化RPM包管理工具 / 446

top命令

第12章 Linux系統(tǒng)常用內(nèi)置命令 / 450

12.1Linux內(nèi)置命令概述 / 450

12.2Linux內(nèi)置命令簡介 / 450

12.3Linux常用內(nèi)置命令實(shí)例 / 452

linux下tracert命令的作用

1.命令格式:

traceroute [參數(shù)] [主機(jī)]

2.命令功能:

traceroute指令讓你追蹤網(wǎng)絡(luò)數(shù)據(jù)包的路由途徑,預(yù)設(shè)數(shù)據(jù)包大小是40Bytes,用戶可另行設(shè)置。

具體參數(shù)格式:traceroute [-dFlnrvx][-f存活數(shù)值][-g網(wǎng)關(guān)…][-i網(wǎng)絡(luò)界面][-m存活數(shù)值][-p通信端口][-s來源地址][-t服務(wù)類型][-w超時秒數(shù)][主機(jī)名稱或IP地址][數(shù)據(jù)包大小] 《Linux就該這么學(xué)》 一起學(xué)習(xí)linux

3.命令參數(shù):

-d 使用Socket層級的排錯功能。

-f 設(shè)置第一個檢測數(shù)據(jù)包的存活數(shù)值TTL的大小。

-F 設(shè)置勿離斷位。

-g 設(shè)置來源路由網(wǎng)關(guān),最多可設(shè)置8個。

-i 使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包。

-I 使用ICMP回應(yīng)取代UDP資料信息。

-m 設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小。

-n 直接使用IP地址而非主機(jī)名稱。

-p 設(shè)置UDP傳輸協(xié)議的通信端口。

-r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上。

-s 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址。

-t 設(shè)置檢測數(shù)據(jù)包的TOS數(shù)值。

-v 詳細(xì)顯示指令的執(zhí)行過程。

-w 設(shè)置等待遠(yuǎn)端主機(jī)回報的時間。

-x 開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗(yàn)。

4 實(shí)例:

實(shí)例4.1 : traceroute

實(shí)例4.2:跳數(shù)設(shè)置

命令:traceroute -m 10

如何在Linux用戶和內(nèi)核空間中進(jìn)行動態(tài)跟蹤

你不記得如何在代碼中插入探針點(diǎn)了嗎? 沒問題!了解如何使用uprobe和kprobe來動態(tài)插入它們吧。 基本上,程序員需要在源代碼匯編指令的不同位置插入動態(tài)探針點(diǎn)。

探針點(diǎn)

探針點(diǎn)是一個調(diào)試語句,有助于探索軟件的執(zhí)行特性(即,執(zhí)行流程以及當(dāng)探針語句執(zhí)行時軟件數(shù)據(jù)結(jié)構(gòu)的狀態(tài))。printk是探針語句的最簡單形式,也是黑客用于內(nèi)核攻擊的基礎(chǔ)工具之一。

因?yàn)樗枰匦戮幾g源代碼,所以printk插入是靜態(tài)的探測方法。內(nèi)核代碼中重要位置上還有許多其他靜態(tài)跟蹤點(diǎn)可以動態(tài)啟用或禁用。 Linux內(nèi)核有一些框架可以幫助程序員探測內(nèi)核或用戶空間應(yīng)用程序,而無需重新編譯源代碼。Kprobe是在內(nèi)核代碼中插入探針點(diǎn)的動態(tài)方法之一,并且uprobe在用戶應(yīng)用程序中執(zhí)行此操作。

使用uprobe跟蹤用戶空間

可以通過使用thesysfs接口或perf工具將uprobe跟蹤點(diǎn)插入用戶空間代碼。

使用sysfs接口插入uprobe

考慮以下簡單測試代碼,沒有打印語句,我們想在某個指令中插入探針:

[source,c\n.test.c

#include stdio.h\n#include stdlib.h\n#include unistd.h

編譯代碼并找到要探測的指令地址:

# gcc -o test test.\n# objdump -d test

假設(shè)我們在ARM64平臺上有以下目標(biāo)代碼:

0000000000400620 func_1: 400620\t90000080\tadr\tx0, 410000 __FRAME_END__+0xf6f8

并且我們想在偏移量0x620和0x644之間插入探針。執(zhí)行以下命令:

# echo 'p:func_2_entry test:0x620' /sys/kernel/debug/tracing/uprobe_event\n# echo 'p:func_1_entry test:0x644' /sys/kernel/debug/tracing/uprobe_event\n# echo 1 /sys/kernel/debug/tracing/events/uprobes/enable# ./test

在上面的第一個和第二個echo語句中,p告訴我們這是一個簡單的測試。(探測器可以是簡單的或返回的。)func_n_entry是我們在跟蹤輸出中看到的名稱,名稱是可選字段,如果沒有提供,我們應(yīng)該期待像p_test_0x644這樣的名字。test 是我們要插入探針的可執(zhí)行二進(jìn)制文件。如果test 不在當(dāng)前目錄中,則需要指定path_to_test / test。

0x620或0x640是從程序啟動開始的指令偏移量。請注意在第二個echo語句中,因?yàn)槲覀円偬砑右粋€探針。所以,當(dāng)我們在前兩個命令中插入探針點(diǎn)之后,我們啟用uprobe跟蹤,當(dāng)我們寫入events/ uprobes / enable時,它將啟用所有的uprobe事件。程序員還可以通過寫入在該事件目錄中創(chuàng)建的特定事件文件來啟用單個事件。一旦探針點(diǎn)被插入和啟用,每當(dāng)執(zhí)行探測指令時,我們可以看到一個跟蹤條目。

讀取跟蹤文件以查看輸出:

# cat /sys/kernel/debug/tracing/trac\n# tracer: no\n\n# entries-in-buffer/entries-written: 8/8\n#P:\n\n# _-----= irqs-of\n# / _----= need-resche\n# | / _---= hardirq/softir\n# || / _--= preempt-dept\n# ||| / dela\n# TASK-PID CP\n# |||| TIMESTAMP FUNCTION# | | | |||| | |

我們可以看到哪個CPU完成了什么任務(wù),什么時候執(zhí)行了探測指令。

返回探針也可以插入指令。當(dāng)返回該指令的函數(shù)時,將記錄一個條目:

# echo 0 /sys/kernel/debug/tracing/events/uprobes/enabl\n# echo 'r:func_2_exit test:0x620' /sys/kernel/debug/tracing/uprobe_event\n# echo 'r:func_1_exit test:0x644' /sys/kernel/debug/tracing/uprobe_event\n# echo 1 /sys/kernel/debug/tracing/events/uprobes/enable

這里我們使用r而不是p,所有其他參數(shù)是相同的。請注意,如果要插入新的探測點(diǎn),需要禁用uprobe事件:

test-3009 [002] .... 4813.852674: func_1_entry: (0x400644)

上面的日志表明,func_1返回到地址0x4006b0,時間戳為4813.852691。

# echo 0 /sys/kernel/debug/tracing/events/uprobes/enabl\n# echo 'p:func_2_entry test:0x630' /sys/kernel/debug/tracing/uprobe_events count=%x\n# echo 1 /sys/kernel/debug/tracing/events/uprobes/enabl\n# echo /sys/kernel/debug/tracing/trace# ./test

當(dāng)執(zhí)行偏移量0x630的指令時,將打印ARM64 x1寄存器的值作為count =。

輸出如下所示:

test-3095 [003] .... 7918.629728: func_2_entry: (0x400630) count=0x1

使用perf插入uprobe

找到需要插入探針的指令或功能的偏移量很麻煩,而且需要知道分配給局部變量的CPU寄存器的名稱更為復(fù)雜。 perf是一個有用的工具,用于幫助引導(dǎo)探針插入源代碼中。

除了perf,還有一些其他工具,如SystemTap,DTrace和LTTng,可用于內(nèi)核和用戶空間跟蹤;然而,perf與內(nèi)核配合完美,所以它受到內(nèi)核程序員的青睞。

# gcc -g -o test test.c# perf probe -x ./test func_2_entry=func_\n# perf probe -x ./test func_2_exit=func_2%retur\n# perf probe -x ./test test_15=test.c:1\n# perf probe -x ./test test_25=test.c:25 numbe\n# perf record -e probe_test:func_2_entry -e\nprobe_test:func_2_exit -e probe_test:test_15\n-e probe_test:test_25 ./test

如上所示,程序員可以將探針點(diǎn)直接插入函數(shù)start和return,源文件的特定行號等??梢垣@取打印的局部變量,并擁有許多其他選項,例如調(diào)用函數(shù)的所有實(shí)例。 perf探針用于創(chuàng)建探針點(diǎn)事件,那么在執(zhí)行./testexecutable時,可以使用perf記錄來探測這些事件。當(dāng)創(chuàng)建一個perf探測點(diǎn)時,可以使用其他錄音選項,例如perf stat,可以擁有許多后期分析選項,如perf腳本或perf報告。

使用perf腳本,上面的例子輸出如下:

# perf script

使用kprobe跟蹤內(nèi)核空間

與uprobe一樣,可以使用sysfs接口或perf工具將kprobe跟蹤點(diǎn)插入到內(nèi)核代碼中。

使用sysfs接口插入kprobe

程序員可以在/proc/kallsyms中的大多數(shù)符號中插入kprobe;其他符號已被列入內(nèi)核的黑名單。還有一些與kprobe插入不兼容的符號,比如kprobe_events文件中的kprobe插入將導(dǎo)致寫入錯誤。 也可以在符號基礎(chǔ)的某個偏移處插入探針,像uprobe一樣,可以使用kretprobe跟蹤函數(shù)的返回,局部變量的值也可以打印在跟蹤輸出中。

以下是如何做:

; disable all events, just to insure that we see only kprobe output in trace\n# echo 0 /sys/kernel/debug/tracing/events/enable; disable kprobe events until probe points are inseted\n# echo 0 /sys/kernel/debug/tracing/events/kprobes/enable; clear out all the events from kprobe_events\n to insure that we see output for; only those for which we have enabled

[root@pratyush ~\n# more /sys/kernel/debug/tracing/trace# tracer: no\n\n# entries-in-buffer/entries-written: 9037/9037\n#P:8\n# _-----= irqs-of\n# / _----= need-resche\n# | / _---= hardirq/softirq#\n|| / _--= preempt-depth#\n ||| / delay# TASK-PID CPU#\n |||| TIMESTAMP FUNCTION#\n | | | |||| | |

使用perf插入kprobe

與uprobe一樣,程序員可以使用perf在內(nèi)核代碼中插入一個kprobe,可以直接將探針點(diǎn)插入到函數(shù)start和return中,源文件的特定行號等。程序員可以向-k選項提供vmlinux,也可以為-s選項提供內(nèi)核源代碼路徑:

# perf probe -k vmlinux kfree_entry=kfre\n# perf probe -k vmlinux kfree_exit=kfree%retur\n# perf probe -s ./ kfree_mid=mm/slub.c:3408 \n# perf record -e probe:kfree_entry -e probe:kfree_exit -e probe:kfree_mid sleep 10

使用perf腳本,以上示例的輸出:

關(guān)于Linux命令的介紹,看看《linux就該這么學(xué)》,具體關(guān)于這一章地址3w(dot)linuxprobe/chapter-02(dot)html

linux中如何跟蹤日志打印

linux中跟蹤日志打印方法如下

1、按住win+R組合鍵,輸入cmd,然后回車。

2、登陸到遠(yuǎn)程linux,回車,然后輸入密碼。

3、輸入 cd+日志目錄名命令,回車即可進(jìn)入到日志目錄。

4、輸入tail -f xxx.log命令。

5、命令行中只要有請求就會打印出來日志。


本文名稱:linux上跟蹤命令 linux跟蹤命令執(zhí)行過程
本文路徑:http://weahome.cn/article/ddsddgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部