随着互联网的不断发展,计算机程序开发越来越受到人们的关注,Linux作为一个免费的开源系统,被广泛的应用在服务器和嵌入式设备上。在Linux上,开发人员需要通过命令行工具或者图形化操作界面完成开发和调试工作。而Strace是Linux系统上一种非常重要的命令行工具,它能够帮助开发人员诊断程序运行过程中的错误,定位程序中的瓶颈,可以给程序员节约大量的时间和精力。
什么是Strace?
Strace是一种在Linux系统上运行的命令行工具,它能够对进程进行跟踪和监视,记录进程的系统调用以及所发生的错误。使用Strace可以帮助程序员:
1. 分析程序运行过程中发生的错误和异常,快速诊断问题并定位错误。
2. 在调试程序运行速度时,找到程序中的瓶颈并进行优化。
3. 确认程序是否按照预期执行。
Strace在Linux系统上非常常用,可以帮助程序员更好地了解程序运行过程中的细节,提高程序的调试效率和可靠性。
如何安装Strace?
安装Strace非常简单,只需要执行以下几个命令即可完成:
$ sudo apt-get update
$ sudo apt-get install strace
在终端中输入以上两个命令后,系统会自动更新软件包信息并安装Strace,安装过程依据网络速度,可能需要一些时间。对于安装过程中出现错误,可以执行以下命令修复:
$ sudo apt-get -f install
安装完成后,可以输入以下命令检查Strace是否已经安装成功:
$ strace –version
如果系统正确输出了Strace的版本信息,则表示Strace已经安装成功。
如何使用Strace?
在使用Strace之前,需要先了解Strace的基本用法。通常情况下,我们可以通过以下两种方式使用Strace:
1. 在启动进程的时候加上strace,例如:
$ strace -o output.txt ./a.out
2. 在已经启动的进程上运行Strace:
$ strace -p process_id
其中,-o选项表示将输出结果保存到指定的文件中,process_id表示要跟踪的进程的ID。在启动Strace后,可以通过Ctrl + C快捷键停止跟踪,输出结果将会保存到指定文件中。
通过Strace,我们可以获取进程运行的系统调用列表,可以了解进程的所有系统调用以及调用的结果。例如,在以下C程序中,使用了fopen打开文件,fwrite向文件中写入数据,使用fclose关闭文件。
#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
输出结果如下:
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可以轻松地捕捉程序运行过程中的系统调用,例如openat,fwrite等等。如果程序在运行过程中出现了错误或异常,我们可以通过Strace快速定位错误发生的位置,找到程序中的瓶颈并进行优化。
相关问题拓展阅读:
1、查看链敬悉进程的线程:
ps -eLf|egrep ‘gateserver|UID’
2、跟踪线程调用:
strace -p 15530
3、统计线程中函数的调用小号CPU时间:
strace -pc
strace -po out.file #输出到out.file文件
4、只显示recv函数的调用:
strace -pf -F -e recv
5、棚乎gdb调试线程:稿纳
gdb -p pid
6、查看线程打开的文件描述符:
lsof -p pid
1.Linux内建命令: 由shell程序自带的命令,最常见的有cd、pwd等。
使用type命令即可查看命令属于哪种,比如:
#type cd
cd is a shell builtin ————》看到这个提示的,说明此命令是内建命令
2.Linux外部命令: 本身是一个独立的可执行程序文件,命令名即为程序文件名,常见的有ls、mv、ps等。
查找方式:通过shell的内置的环境变量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个命令
来自《跟老男孩学Linux运维:核心系统命令实战》一书
前言
第1章 Linux命令行简介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令帮助 / 4
1.3Linux shutdown reboot halt / 9
关机:
shutdown -h now
halt
init 0
第2章 文件和目录操作命令 / 13
2.1pwd:显示当前所在的位置 / 13
2.2cd:切换目录 / 16
2.3tree:以树形结构显示目录下的内容 / 18
2.4mkdir:创建目录 / 22
2.5touch:创建空文件或改变文件的时间戳属性 / 27
2.6ls:显示目录下的内容及相关属性信息 / 30
2.7cp:复制文件或目录 / 39
2.8mv:移动或重命名文件 / 42
2.9rm:删除文件或目录 / 45
2.10rmdir:删除空目录 / 48
2.11ln:硬链接与软链接 / 49
2.12readlink:查看符号链接文件的内容 / 54
2.13find:查找目录下的文件 / 55
2.14xargs:将标准输入转换成命令行参数 / 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:改变文件或目录权限 / 81
2.24chgrp:更改文件用户组 / 85
2.25umask:显示或设置权限掩码 / 86
2.26老男孩从新手成为技术大牛的心法 / 90
第3章 文件过滤及内容编辑处理命令 / 91
3.1cat:合并文件或查看文件内容 / 91
3.2tac:反向显示文件内容 / 103
3.3more:分页显示文件内容 / 104
3.4less:分页显示文件内容 / 107
3.5head:显示文件内容头部 / 109
3.6tail:显示文件内容尾部 / 111
3.7tailf:跟踪日志文件 / 114
3.8cut:从文本中提取一段文字并输出 / 115
3.9split:分割文件 / 117
3.10paste:合并文件 / 118
3.11sort:文本排序 / 123
3.12join:按两个文件的相同字段合并 / 127
3.13uniq:去除重复行 / 129
3.14wc:统计文件的行数、单词数或字节数 / 131
3.15iconv:转换文件的编码格式 / 133
3.16dos2unix:将DOS格式文件转换成UNIX格式 / 134
3.17diff:比较两个文件的不同 / 135
3.18vimdiff:可视化比较工具 / 138
3.19rev:反向输出文件内容 / 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基础入门 / 165
第5章 Linux信息显示与搜索文件命令 / 176
5.1uname:显示系统信息 / 176
5.2hostname:显示或设置系统的主机名 / 178
5.3dmesg:系统启动异常诊断 / 179
5.4stat:显示文件或文件系统状态 / 181
5.5du:统计磁盘空间使用情况 / 183
5.6date:显示与设置系统时间 / 186
5.7echo:显示一行文本 / 190
5.8watch:监视命令执行情况 / 193
5.9which:显示命令的全路径 / 195
5.10whereis:显示命令及其相关文件全路径 / 196
5.11locate:快速定位文件路径 / 197
5.12updatedb:更新mlocate数据库 / 199
5.13老男孩逆袭思想:新手在工作中如何问问题不会被鄙视 / 200
第6章 文件备份与压缩命令 / 201
6.1tar:打包备份 / 201
6.2gzip:压缩或解压文件 / 208
6.3zip:打包和压缩文件 / 211
6.4unzip:解压zip文件 / 212
6.5scp:远程文件复制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆袭思想:新手如何高效地提问 / 220
第7章 Linux用户管理及用户信息查询命令 / 222
7.1 useradd:创建用户 / 222
7.2usermod:修改用户信息 / 227
7.3userdel:删除用户 / 229
7.4groupadd:创建新的用户组 / 230
7.5groupdel:删除用户组 / 231
7.6passwd:修改用户密码 / 232
7.7chage:修改用户密码有效期 / 237
7.8chpasswd:批量更新用户密码 / 238
7.9su:切换用户 / 240
7.10visudo:编辑sudoers文件 / 242
7.11sudo:以另一个用户身份执行命令 / 244
7.12id:显示用户与用户组的信息 / 248
7.13w:显示已登录用户信息 / 249
7.14who:显示已登录用户信息 / 250
7.15users:显示已登录用户 / 252
7.16whoami:显示当前登录的用户名 / 253
7.17last:显示用户登录列表 / 253
7.18lastb:显示用户登录失败的记录 / 254
7.19lastlog:显示所有用户的最近登录记录 / 255
第8章 Linux磁盘与文件系统管理命令 / 257
8.1fdisk:磁盘分区工具 / 257
8.2partprobe:更新内核的硬盘分区表信息 / 265
8.3tune2fs:调整ext2/ext3/ext4文件系统参数 / 266
8.4parted:磁盘分区工具 / 268
8.5mkfs:创建Linux文件系统 / 272
8.6dumpe2fs:导出ext2/ext3/ext4文件系统信息 / 274
8.7resize2fs:调整ext2/ext3/ext4文件系统大小 / 275
8.8fsck:检查并修复Linux文件系统 / 278
8.9dd:转换或复制文件 / 281
8.10mount:挂载文件系统 / 284
8.11umount:卸载文件系统 / 288
8.12df:报告文件系统磁盘空间的使用情况 / 289
8.13mkswap:创建交换分区 / 293
8.14swapon:激活交换分区 / 294
8.15swapoff:关闭交换分区 / 295
8.16sync:刷新文件系统缓冲区 / 296
第9章 Linux进程管理命令 / 298
9.1ps:查看进程 / 298
9.2pstree:显示进程状态树 / 305
9.3pgrep:查找匹配条件的进程 / 306
9.4kill:终止进程 / 307
9.5killall:通过进程名终止进程 / 310
9.6pkill:通过进程名终止进程 / 311
9.7top:实时显示系统中各个进程的资源占用状况 / 313
9.8nice:调整程序运行时的优先级 / 320
9.9renice:调整运行中的进程的优先级 / 323
9.10nohup:用户退出系统进程继续工作 / 324
9.11strace:跟踪进程的系统调用 / 325
9.12ltrace:跟踪进程调用库函数 / 332
9.13runlevel:输出当前运行级别 / 334
9.14init:初始化Linux进程 / 335
9.15service:管理系统服务 / 335
第10章 Linux网络管理命令 / 338
10.1ifconfig:配置或显示网络接口信息 / 338
10.2ifup:激活网络接口 / 343
ifup eth0
10.3ifdown:禁用网络接口 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整个网络,所有网卡。
10.4route:显示或管理路由表 / 344
10.5arp:管理系统的arp缓存 / 350
10.6ip:网络配置工具 / 351
10.7netstat:查看网络状态 / 358
10.8ss:查看网络状态 / 362
10.:测试主机之间网络的连通性 / 363
10.10traceroute:追踪数据传输路由状况 / 366
10.11arping:发送arp请求 / 367
10.12telnet:远程登录主机 / 369
10.13nc:多功能网络工具 / 370
10.14ssh:安全地远程登录主机 / 373
10.15wget:命令行下载工具 / 376
10.16mailq:显示邮件传输队列 / 379
10.17mail:发送和接收邮件 / 381
10.18nslookup:域名查询工具 / 386
10.19dig:域名查询工具 / 389
10.20host:域名查询工具 / 393
10.21nmap:网络探测工具和安全/端口扫描器 / 394
10.22tcpdump:监听网络流量 / 398
第11章 Linux系统管理命令 / 407
11.1lsof:查看进程打开的文件 / 407
11.2uptime:显示系统的运行时间及负载 / 411
11.3free:查看系统内存信息 / 411
11.4iftop:动态显示网络接口流量信息 / 413
11.5vmstat:虚拟内存统计 / 415
11.6mpstat:CPU信息统计 / 419
11.7iostat:I/O信息统计 / 420
11.8iotop:动态显示磁盘I/O统计信息 / 423
11.9sar:收集系统信息 / 425
11.10chkconfig:管理开机服务 / 430
11.11ntsysv:管理开机服务 / 433
11.12 setup:系统管理工具 / 434
11.13ethtool:查询网卡参数 / 436
11.14mii-tool:管理网络接口的状态 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自动化RPM包管理工具 / 446
top命令
第12章 Linux系统常用内置命令 / 450
12.1Linux内置命令概述 / 450
12.2Linux内置命令简介 / 450
12.3Linux常用内置命令实例 / 452
Linux的常用命令有:
echo 命令
举例:echo $PATH。
功能:将命令行中的参数显示到标准输出中。
date命令
举例:date。
功能:显示或设置系统时间,没参数直接显示系统当前的日期和时间。
passwd命令
举例:passwd。
功能:修改密码。
file命令
举例:file 文件名 【参数】。
功能:确定指定文件类型。
ls命令
举例 ls -a 显示当前目录下的全部文件(包括隐藏文件)。
功能:列出目录文件。
touch命令
举例:touch 【选项】 文件名。
功能:修改指定文件的时间标签或者创建一个空文件。
选项:-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
网络通信命令
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
系统管理命令
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
系统设置命令
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
设备管理命令
setleds loadkeys rdev dumpkeys MAKEDEV
关于linux strace 安装的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
当前名称:轻松get!LinuxStrace安装指南(linuxstrace安装)
标题链接:http://www.shufengxianlan.com/qtweb/news37/315637.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联