打印linux命令 linux打印机

linux print命令具体参数及讲解如下打印linux命令:
print命令的格式是:
print xxx
p xxx
1. print 操作符
@
是一个和数组有关的操作符,在后面会有更详细的说明 。
::
指定一个在文件或是一个函数中的变量 。
{}
表示一个指向内存地址的类型为type的一个对象 。
【打印linux命令 linux打印机】2. 察看内容
全局变量(所有文件可见的)
静态全局变量(当前文件可见的)
局部变量(当前Scope可见的)
如果你的局部变量和全局变量发生冲突(也就是重名),一般情况下是局部变量会隐藏全局变量 。如果此时你想查看全局变量的值时,你可以使用“::”操作符:
file::variable
function::variable
eg:
查看文件f2.c中的全局变量x的值:
gdb) p 'f2.c'::x
注:如果你的程序编译时开启了优化选项,那么在用GDB调试被优化过的程序时 , 可能会发生某些变量不能访问,或是取值错误码的情况 。对付这种情况时,需要在编译程序时关闭编译优化 。GCC,你可以使用“-gstabs” 选项来解决这个问题 。
3. 察看数组
(1)动态数组:
p *array@len
array:数组的首地址 , len:数据的长度
eg:
(gdb) p *array@len
$1 = {2, 4, 6, 8, 10}
(2)静态数组
可以直接用print数组名,就可以显示数组中所有数据的内容了 。
4. 输出格式
x 按十六进制格式显示变量 。
d 按十进制格式显示变量 。
u 按十六进制格式显示无符号整型 。
o 按八进制格式显示变量 。
t 按二进制格式显示变量 。
a 按十六进制格式显示变量 。
c 按字符格式显示变量 。
f 按浮点数格式显示变量 。
eg:
(gdb) p i
$21 = 101
(gdb) p/a i
$22 = 0x65
(gdb) p/c i
$23 = 101 'e'
5. 察看内存
使用examine(简写x)来查看内存地址中的值 。语法:
x/
n、f、u是可选的参数 。
(1)n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容 。
(2)f 表示显示的格式,参见上面 。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i 。
(3)u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes 。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节 。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来 。
eg:
x/3uh 0x54320 :从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示三个单位,u表示按十六进制显示 。
6. 察看寄存器
(1)要查看寄存器的值,很简单,可以使用如下命令:
info registers
(2)查看寄存器的情况 。(除了浮点寄存器)
info all-registers
(3)查看所有寄存器的情况 。(包括浮点寄存器)
info registers
(4)查看所指定的寄存器的情况 。
寄存器中放置了程序运行时的数据 , 比如程序当前运行的指令地址(ip),程序的当前堆栈地址(sp)等等 。你同样可以使用print命令来访问寄存器的情况 , 只需要在寄存器名字前加一个$符号就可以了 。如:p $eip 。
7. display自动显示的变量
(1)格式:display[/i|s] [expression | addr]
eg:
display/i $pc
$pc是GDB的环境变量,表示着指令的地址,/i则表示输出格式为机器指令码,也就是汇编 。于是当程序停下后,就会出现源代码和机器指令码相对应的情形,这是一个很有意思的功能 。
(2)其打印linux命令他
undisplay
delete display
删除自动显示,dnums意为所设置好了的自动显式的编号 。如果要同时删除几个,编号可以用空格分隔,如果要删除一个范围内的编号 , 可以用减号表示(如:2-5)
disable display
enable display
disable和enalbe不删除自动显示的设置,而只是让其失效和恢复 。
info display
查看display设置的自动显示的信息 。GDB会打出一张表格,向你报告当然调试中设置了多少个自动显示设置,其中包括,设置的编号,表达式,是否enable 。
8. 设置
(1)set print address
set print address on
打开地址输出,当程序显示函数信息时 , GDB会显出函数的参数地址 。
(2)set print array
set print array on
打开数组显示,打开后当数组显示时,每个元素占一行,如果不打开的话,每个元素则以逗号分隔 。
(3)set print elements
这个选项主要是设置数组的,如果你的数组太大了,那么就可以指定一个来指定数据显示的最大长度 , 当到达这个长度时,GDB就不再往下显示了 。如果设置为0,则表示不限制 。
(4)set print null-stop
如果打开了这个选项,那么当显示字符串时,遇到结束符则停止显示 。这个选项默认为off 。
(5)set print pretty on
如果打开printf pretty这个选项,那么当GDB显示结构体时会比较漂亮 。如:
$1 = {
next = 0x0,
flags = {
sweet = 1,
sour = 1
},
meat = 0x54 "Pork"
}
(6)set print union
设置显示结构体时,是否显式其内的联合体数据 。
(7)set print object
在C中,如果一个对象指针指向其派生类,如果打开这个选项,GDB会自动按照虚方法调用的规则显示输出,如果关闭这个选项的话,GDB就不管虚函数表了 。
linux切换下一个目录自动打印在Linux的多目录命令提示符中工作是一种痛苦的事情,但以下这些利用cd和pushd切换目录的技巧有助于你节省时间和精力。
在Linux命令提示中,用cd命令来改变当前目录 。这是cd命令的一些基本用法:
改变你的根路径,键入cd,按回车键 。
进入一个子目录 , 键入cd,空格,然后是子路径名(例如:cd Documents),再按回车键 。
进入当前目录的上一级目录,键入cd,空格,两个点,然后按回车键 。
进入一个特定的目录,键入cd,空格,路径名(例如 cd /usr/local/lib),再按回车键 。
为了确定你所在的目录 , 你可以键入pwd,按回车键 , 你将看到你所在的当前目录名称 。
用pushd实现在不同目录间切换 。
在命令行模式下 , 当你工作在不同目录中,你将发现你有很多时间都浪费在重复输入上 。如果这些目录不在同一个根目录中,你不得不在转换时输入完整的路径名 , 这难免让人有些难以忍受 。但你可以用以下的一个或两个步骤来避免所有多余的输入:用命令行解释器中的历史记录,或者用命令行函数pushd 。
用命令行解释器中的历史记录的好处是只需按很少的键 。在命令行中用向上的箭头来查找你用过的命令,直到你找到,然后按回车键 。如果你所切换的两个目录在整个驱动器的子目录结构中很接近,那用解释器中的历史记录可能是你最好的选择 。
然而 , 如果你在两个截然不同的路径间转换的话,你可能很希望利用pushd这个函数,你可以用它创建一个目录堆栈(在内存中的一个列表) 。
注释:缺省情况下,pushd函数可能不包括在你的Linux中;但它包涵在Red Hat和用Red Hat驱动的系统中 。如果你的系统中没有pushd函数,你可以在ibiblio.org网站上下载相关的函数工具 。
这里说一下怎么用pushd 。假设你现在工作在/usr/share/fonts目录下 。你需要对/usr/share/fonts做一些改动 , 你将频繁的在两个目录间切换 。开始在一个目录下,用pushd函数切换到另一个目录 。在我们的例子中,开始在/usr/share/fonts下 , 你键入pushd/opt/wonderword/fonts,然后按回车键 。现在,你将在下一行看到堆栈中的内容:/opt/wonderword/fonts /usr/share/fonts 。
正如你所看到的,当你键入pushd和一个路径名时 , 将自动产生一个堆栈,内容是你键入的目录名和你当前工作的目录名 。在我们的例子中,你所键入的路径(/opt/wonderword/fonts)在堆栈的顶部 。
快速返回上一级目录,你可以直接键入pushd,如果不跟路径名 , 你将返回到堆栈中前一个目录的上一层目录 。
如果你需要从堆栈中删除一个目录,键入popd,然后是目录名称,再按回车键 。想查看堆栈中目录列表 , 键入dirs,然后按回车键 。popd和dirs命令也是常用函数中的一部分 。
Linux里面shell下打印命令是什么?printf终端打印
printf使用的参数和C语言中的printf函数一样,使用引用文本或由空格分隔的参数 。在printf函数中,我们可以使用格式化字符串,指定字符串的宽度、左右对齐方式等 。在默认情况下,printf不会在行尾添加换行符,需要手动添加 。
复制代码代码如下:
printf "Hello world"#使用引用字符
printf "%-5s %-10s %-4s\n" No Name Mark #指定宽度及左对齐方式
printf "%-5s %-10s %-4s\n" 1 Sarath 80.3456
----仅供参考
linux系统下什么命令可以显示历史打印信息history 。在linux系统下,history命令可以显示历史打印信息 。其能运行主要的UNIX工具软件、应用程序和网络协议 。它支持32位和64位硬件 。
关于打印linux命令和linux打印机的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读