新聞中心
隨著互聯(lián)網(wǎng)的不斷發(fā)展,計算機程序開發(fā)越來越受到人們的關(guān)注,Linux作為一個免費的開源系統(tǒng),被廣泛的應(yīng)用在服務(wù)器和嵌入式設(shè)備上。在Linux上,開發(fā)人員需要通過命令行工具或者圖形化操作界面完成開發(fā)和調(diào)試工作。而Strace是Linux系統(tǒng)上一種非常重要的命令行工具,它能夠幫助開發(fā)人員診斷程序運行過程中的錯誤,定位程序中的瓶頸,可以給程序員節(jié)約大量的時間和精力。

什么是Strace?
Strace是一種在Linux系統(tǒng)上運行的命令行工具,它能夠?qū)M程進行跟蹤和監(jiān)視,記錄進程的系統(tǒng)調(diào)用以及所發(fā)生的錯誤。使用Strace可以幫助程序員:
1. 分析程序運行過程中發(fā)生的錯誤和異常,快速診斷問題并定位錯誤。
2. 在調(diào)試程序運行速度時,找到程序中的瓶頸并進行優(yōu)化。
3. 確認(rèn)程序是否按照預(yù)期執(zhí)行。
Strace在Linux系統(tǒng)上非常常用,可以幫助程序員更好地了解程序運行過程中的細(xì)節(jié),提高程序的調(diào)試效率和可靠性。
如何安裝Strace?
安裝Strace非常簡單,只需要執(zhí)行以下幾個命令即可完成:
$ sudo apt-get update
$ sudo apt-get install strace
在終端中輸入以上兩個命令后,系統(tǒng)會自動更新軟件包信息并安裝Strace,安裝過程依據(jù)網(wǎng)絡(luò)速度,可能需要一些時間。對于安裝過程中出現(xiàn)錯誤,可以執(zhí)行以下命令修復(fù):
$ sudo apt-get -f install
安裝完成后,可以輸入以下命令檢查Strace是否已經(jīng)安裝成功:
$ strace –version
如果系統(tǒng)正確輸出了Strace的版本信息,則表示Strace已經(jīng)安裝成功。
如何使用Strace?
在使用Strace之前,需要先了解Strace的基本用法。通常情況下,我們可以通過以下兩種方式使用Strace:
1. 在啟動進程的時候加上strace,例如:
$ strace -o output.txt ./a.out
2. 在已經(jīng)啟動的進程上運行Strace:
$ strace -p process_id
其中,-o選項表示將輸出結(jié)果保存到指定的文件中,process_id表示要跟蹤的進程的ID。在啟動Strace后,可以通過Ctrl + C快捷鍵停止跟蹤,輸出結(jié)果將會保存到指定文件中。
通過Strace,我們可以獲取進程運行的系統(tǒng)調(diào)用列表,可以了解進程的所有系統(tǒng)調(diào)用以及調(diào)用的結(jié)果。例如,在以下C程序中,使用了fopen打開文件,fwrite向文件中寫入數(shù)據(jù),使用fclose關(guān)閉文件。
#include
int mn()
{
FILE *fp;
char str[] = {“Hello world!”};
fp = fopen(“sample.txt”,”w”);
if(fp == NULL){
perror(“Error Message: “);
return -1;
}
fwrite(str,1,sizeof(str),fp);
fclose(fp);
return 0;
}
我們可以使用以下Strace命令對程序進行跟蹤:
$ strace ./a.out
輸出結(jié)果如下:
execve(“./a.out”, [“./a.out”], 0x7fff3c16b310 /* 42 vars */) = 0
brk(NULL) = 0x564a87503000
access(“/etc/ld.so.nohwcap”, F_OK) = -1 ENOENT (No such file or directory)
access(“/etc/ld.so.preload”, R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/etc/ld.so.cache”, O_RDON|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=50348, …}) = 0
mmap(NULL, 50348, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6a66679000
close(3) = 0
access(“/etc/ld.so.nohwcap”, F_OK) = -1 ENOENT (No such file or directory)
access(“/etc/ld.so.preload”, R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libc.so.6”, O_RDON|O_CLOEXEC) = 3
…
Strace可以輕松地捕捉程序運行過程中的系統(tǒng)調(diào)用,例如openat,fwrite等等。如果程序在運行過程中出現(xiàn)了錯誤或異常,我們可以通過Strace快速定位錯誤發(fā)生的位置,找到程序中的瓶頸并進行優(yōu)化。
相關(guān)問題拓展閱讀:
- 系統(tǒng)之家Linux查看占用內(nèi)存的進程資源的方法怎么辦
- linux命令主要有哪幾種?
系統(tǒng)之家Linux查看占用內(nèi)存的進程資源的方法怎么辦
1、查看鏈敬悉進程的線程:
ps -eLf|egrep ‘gateserver|UID’
2、跟蹤線程調(diào)用:
strace -p 15530
3、統(tǒng)計線程中函數(shù)的調(diào)用小號CPU時間:
strace -pc
strace -po out.file #輸出到out.file文件
4、只顯示recv函數(shù)的調(diào)用:
strace -pf -F -e recv
5、棚乎gdb調(diào)試線程:稿納
gdb -p pid
6、查看線程打開的文件描述符:
lsof -p pid
linux命令主要有哪幾種?
1.Linux內(nèi)建命令: 由shell程序自帶的命令,最常見的有cd、pwd等。
使用type命令即可查看命令屬于哪種,比如:
#type cd
cd is a shell builtin ————》看到這個提示的,說明此命令是內(nèi)建命令
2.Linux外部命令: 本身是一個獨立的可執(zhí)行程序文件,命令名即為程序文件名,常見的有l(wèi)s、mv、ps等。
查找方式:通過shell的內(nèi)置的環(huán)境變量PATH中指定的路徑進行查找;
#echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/in:/usr/local/bin:/in:/bin:/usr/in:/usr/bin:/root/binPATH路徑
通過使用which來查看命令所在的路徑,比如:
#which ps
/bin/ps ————》說明此命令是在bin目錄下 更多介紹請查看“Linux命令大全”。
Linux運維人員必會的120個命令
來自《跟老男孩學(xué)Linux運維:核心系統(tǒng)命令實戰(zhàn)》一書
前言
第1章 Linux命令行簡介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關(guān)機:
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:改變文件的擴展屬性 / 73
2.19lsattr:查看文件擴展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計算和校驗文件的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:按不同進制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運維的多個好處 / 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)的主機名 / 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進程管理命令 / 298
9.1ps:查看進程 / 298
9.2pstree:顯示進程狀態(tài)樹 / 305
9.3pgrep:查找匹配條件的進程 / 306
9.4kill:終止進程 / 307
9.5killall:通過進程名終止進程 / 310
9.6pkill:通過進程名終止進程 / 311
9.7top:實時顯示系統(tǒng)中各個進程的資源占用狀況 / 313
9.8nice:調(diào)整程序運行時的優(yōu)先級 / 320
9.9renice:調(diào)整運行中的進程的優(yōu)先級 / 323
9.10nohup:用戶退出系統(tǒng)進程繼續(xù)工作 / 324
9.11strace:跟蹤進程的系統(tǒng)調(diào)用 / 325
9.12ltrace:跟蹤進程調(diào)用庫函數(shù) / 332
9.13runlevel:輸出當(dāng)前運行級別 / 334
9.14init:初始化Linux進程 / 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.:測試主機之間網(wǎng)絡(luò)的連通性 / 363
10.10traceroute:追蹤數(shù)據(jù)傳輸路由狀況 / 366
10.11arping:發(fā)送arp請求 / 367
10.12telnet:遠(yuǎn)程登錄主機 / 369
10.13nc:多功能網(wǎng)絡(luò)工具 / 370
10.14ssh:安全地遠(yuǎn)程登錄主機 / 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:查看進程打開的文件 / 407
11.2uptime:顯示系統(tǒng)的運行時間及負(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:管理開機服務(wù) / 430
11.11ntsysv:管理開機服務(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)置命令實例 / 452
Linux的常用命令有:
echo 命令
舉例:echo $PATH。
功能:將命令行中的參數(shù)顯示到標(biāo)準(zhǔn)輸出中。
date命令
舉例:date。
功能:顯示或設(shè)置系統(tǒng)時間,沒參數(shù)直接顯示系統(tǒng)當(dāng)前的日期和時間。
passwd命令
舉例:passwd。
功能:修改密碼。
file命令
舉例:file 文件名 【參數(shù)】。
功能:確定指定文件類型。
ls命令
舉例 ls -a 顯示當(dāng)前目錄下的全部文件(包括隱藏文件)。
功能:列出目錄文件。
touch命令
舉例:touch 【選項】 文件名。
功能:修改指定文件的時間標(biāo)簽或者創(chuàng)建一個空文件。
選項:-a 僅改變指定文件的存取時間。更多命令介紹可看下圖查找
logout,shutdown,pwd,ls,cd,less,more,top,…..and so on 如圖
文件管理命令
cat chattr chgrp chmod chown cksum cmp
diff diffstat file find git gitview indent
cut ln less locate isattr mattrib mc
mdel mdir mktemp more mmove mread mren
mtools mtoolstest mv od paste patch rcp
rm slocate split tee tmpwatch touch umask
which cp in mcopy mshowfat rhmask whereis
目錄磁盤管理命令
cd df dirs du edquota eject
mcd mdeltree mdu mkdir mlabel mmd
mrd mzip pwd quota mount mmount
rmdir rmt stat tree umount ls
quotacheck quotaoff lndir repquota quotaon
文檔編輯命令
col colrm comm csplit ed egrep ex fgrep
fmt fold grep ispell jed joe join look
mtype pico rgrep sed sort spell tr expr
uniq wc
文件傳輸打印命令
lprm lpr lpq lpd bye ftp
uuto uupick uucp uucico tftp ncftp
ftpshut ftpwho ftpcount
磁盤維護命令
badblocks cfdisk dd e2fsck ext2ed
fsck fsck fsconf fdformat hdparm
mformat mkbootdisk mkdosfs mke2fs mkfs.ext2
mkfs.msdos mkinitrd mkisofts mkswap mpartition
swapon symlinks sync mbadblocks mkfs
fsck.ext2 fdisk losetup mkfs sfdisk
swapoff
網(wǎng)絡(luò)通信命令
apachectl arpwatch dip getty mingetty uux
telnet uulog uustat ppp-off netconfig nc
httpd ifconfig minicom mesg dnsconf wall
netstat ping pppstats samba setserial talk
traceroute tty newaliases uuname netconf write
statserial efax pppsetup tcpdump ytalk cu
bd testparm bd bclient shapecfg
系統(tǒng)管理命令
adduser chfn useradd date exit finger
fwhois sleep suspend groupdel groupmod halt
kill last lastb login logname logout
ps nice procinfo top pstree reboot
rlogin rsh sliplogin screen shutdown rwho
sudo gitps swatch tload logrotate kill
uname chsh userconf userdel usermod vlock
who whoami whois newgrp renice su
skill w id free
系統(tǒng)設(shè)置命令
reset clear alias dircolors aumix bind
chroot clock crontab declare depmod dmesg
enable eval export pwunconv grpconv rpm
inod kbdconfig lilo liloconfig lod minfo
set modprobe ntsysv moouseconfig passwd pwconv
rdate resize rmmod grpunconv modinfo time
setup sndconfig setenv setconsole timeconfig ulimit
unset chkconfig apmd hwclock mkkickstart fbset
unalias SVGAText Mode
備份壓縮命令
ar bunzip2 bzip2 bzip2recover gunzip unarj
compress cpio dump uuencode gzexe gzip
lha restore tar uudecode unzip zip
zipinfo
設(shè)備管理命令
setleds loadkeys rdev dumpkeys MAKEDEV
關(guān)于linux strace 安裝的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁題目:輕松get!LinuxStrace安裝指南(linuxstrace安裝)
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/coshgih.html


咨詢
建站咨詢
