linux line(linux手机版app)
大家好,今天小编来为大家解答linux line这个问题,linux手机版app很多人还不知道,现在让我们一起来看看吧!
linux系统中的grep命令的"l"参数的详解
-l或--file-with-matches列出文件内容符合指定的范本样式的文件名称。
detail
grep
--------------------------------------------------------------------------------
功能说明:查找文件里符合条件的字符串。
语法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
补充说明:grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。
参数:
-a或--text不要忽略二进制的数据。
-A<显示列数>或--after-context=<显示列数>除了显示符合范本样式的那一列之外,并显示该列之后的内容。
-b或--byte-offset在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
-B<显示列数>或--before-context=<显示列数>除了显示符合范本样式的那一列之外,并显示该列之前的内容。
-c或--count计算符合范本样式的列数。
-C<显示列数>或--context=<显示列数>或-<显示列数>除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>或--directories=<进行动作>当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式>或--regexp=<范本样式>指定字符串做为查找文件内容的范本样式。
-E或--extended-regexp将范本样式为延伸的普通表示法来使用。
-f<范本文件>或--file=<范本文件>指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。
-F或--fixed-regexp将范本样式视为固定字符串的列表。
-G或--basic-regexp将范本样式视为普通的表示法来使用。
-h或--no-filename在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H或--with-filename在显示符合范本样式的那一列之前,表示该列所属的文件名称。
-i或--ignore-case忽略字符大小写的差别。
-l或--file-with-matches列出文件内容符合指定的范本样式的文件名称。
-L或--files-without-match列出文件内容不符合指定的范本样式的文件名称。
-n或--line-number在显示符合范本样式的那一列之前,标示出该列的列数编号。
-q或--quiet或--silent不显示任何信息。
-r或--recursive此参数的效果和指定“-d recurse”参数相同。
-s或--no-messages不显示错误信息。
-v或--revert-match反转查找。
-V或--version显示版本信息。
-w或--word-regexp只显示全字符合的列。
-x或--line-regexp只显示全列符合的列。
-y此参数的效果和指定“-i”参数相同。
--help在线帮助。
电脑出现grub command line
出现此问题的原因:是设置错误造成的。
解决的方法和操作步骤如下:
1、第一步,鼠标右键单击“这台电脑”,如下图所示。
2、其次,完成上述步骤后,选择“属性”选项,如下图所示。
3、接着,完成上述步骤后,在“属性”主页上,点击“高级系统设置”选项,如下图所示。
4、然后,完成上述步骤后,单击鼠标以打开“环境变量”选项,如下图所示。
5、随后,完成上述步骤后,看到“TEMP”选项并双击,如下图所示。
6、最后,完成上述步骤后,在新窗口中,变量的值需要修改为“C:\TEMP”,然后单击“确定”按钮保存,如下图所示。这样,问题就解决了。
Linux addr2line具体应用指南
调试zSeries上的Linux应用程序与调试其他体系结构的Linux程序类似,对于有经验的Linux开发者来说,理解新的系统架构是主要挑战。对于刚接触Linux的大型机开发者,掌握新的调试工具可能令人畏惧。但请放心,本文将提供Linux addr2line的使用指南,帮助您入门。
在进行崩溃程序的调试时,首先通过zSeries Linux内核的内置特性记录基本的调试信息。启用此功能,以root身份执行命令:echo1>>/proc/sys/kernel/userprocess_debug。当程序崩溃时,日志文件(/var/log/messages)将提供故障原因、故障地址以及程序状态字(PSW)、通用寄存器和访问寄存器的简要寄存器转储。
通过UserDebug日志,可以确定程序崩溃的位置。使用工具如readelf来打印程序头信息,确定程序加载的位置和范围。假设日志中PSW值为070dc00080400618,通过将其减去0x80000000,可得到实际的指令指针0x400618。接着使用addr2line定位代码,通过addr2line-esimple0x400618,可获知问题发生在simple.c文件的第34行。
如果可执行文件包含调试符号,可进一步定位问题。通过addr2line对地址和可执行文件使用,例如addr2line-esimple0x400618,将返回确切的文件路径和行号。对于原始程序崩溃,如PSW为070dc000c00ab738,该地址对应于加载libc.so.6的地址。通过ldd命令列出所需的共享对象及其地址,如ldd/usr/bin/perl,可了解程序依赖的库和加载地址。
确定崩溃发生在libc.so.6中的具体位置,通过nm命令转储libc.so.6的符号,使用grep进行精确查找。例如,nm/lib/libc.so.6|sort|grep0008a,可快速定位到memcpy函数中的相关代码。结合寄存器转储信息,通过addr2line进一步确定memcpy调用的位置。
在调试过程中,使用arm-eabi-addr2line命令时,可以利用-f、-C、-e等选项进行更精确的解析。例如,arm-eabi-addr2line-e"D:\*.out.symbols\alps\out\target\product\*\symbols/../../../../../kernel/vmlinux" c0037aa0,用于解析在特定vmlinux中地址c0037aa0对应的代码位置。
对于NE调试方法,首先在日志中查找signal 11(SIGSEGV)信息,找到具体故障地址,如baae8fd1。通过分析确定故障类型,例如deaddead表示heap错误,deadadd0则为heap损坏或使用错误。保存heap信息并下载,使用addr2line将故障地址转换为C库出错的位置。
在NE调试中,解码步骤包括查找日志中的信号和故障地址,通过addr2line解析到正确的C库地址。例如,#01 pc 0001cd4a/system/lib/libc.so,将libc.so路径添加到symbols路径后,使用addr2line解析。
通过以上步骤,可以更直观地定位和理解Linux addr2line在zSeries和NE环境下的应用,从而有效地调试Linux应用程序。