linux堆栈打印命令 linux查看堆栈调用信息

linux print命令具体参数及讲解如下:
print命令的格式是:
print xxx
p xxx
1. print 操作符
@
是一个和数组有关的操作符,在后面会有更详细的说明 。
::
指定一个在文件或是一个函数中的变量 。
{}
表示一个指向内存地址的类型为type的一个对象 。
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)其他
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就不管虚函数表了 。
c语言如何将函数调用堆栈打印出来可以直接用输出在函数内部调用时,把调用顺序打印出来 。
一、一个由C/C编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 , 存放函数的参数值,局部变量的值等 。其操作方式类似于数据结构中的栈 。
2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵 。
3、全局区(静态区)(static)— , 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域 。- 程序结束后有系统释放
4、文字常量区 —常量字符串就是放在这里的 。程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码 。
二、例程:
//main.cpp
int a = 0; 全局初始化区
char *p1; 全局未初始化区
main()
{
int b; 栈
char s[] = "abc"; 栈
char *p2; 栈
char *p3 = "123456"; 123456在常量区 , p3在栈上 。
static int c =0; 全局(静态)初始化区
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
分配得来得10和20字节的区域就在堆区 。
strcpy(p1, "123456"); 123456放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方 。
}
kill-3生成的线程堆栈怎么查看第一步:在终端运行Java程序
第二步:通过命令 pidof java 找到已经启动的java进程的ID,选择需要查看的java程序的进程ID
第三步:使用命令 kill -3 java进行的 pid 打印出java程序的线程堆栈信息
第四步:通常情况下运行的项目可能会比较大,那么这个时候打印的堆栈信息可能会有几千到几万行,为了方便查看,我们往往需要将输出内容进行重定向
使用linux下的重定向命令方式即可:例如: demo.shrun.log 21 将输出信息重定向到 run.log中 。
注:在操作系统中,0 1 2分别对应着不同的含义 , 如下:
0 : 标准输入,即:C中的stdin ,java中的System.in
1 : 标准输出,即:C中的stdout ,java中的System.out
2 : 错误输出,即:C中的stderr,java中的System.err
Demo:
----------------------------------------------------------------------------------------------
Sources Code :
public class PrintThreadTrace {
Object obj1 = new Object();
Object obj2 = new Object();
public void func1(){
synchronized (obj1){
func2();
}
}
public void func2(){
synchronized (obj2){
while(true){
System.out.print("");
}
}
}
public static void main(String[] args){
PrintThreadTrace ptt = new PrintThreadTrace();
ptt.func1();
}
}
----------------------------------------------------------------------------------------------------------------
按照步骤操作后的打印输出信息:
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode):
"Service Thread" daemon prio=10 tid=0x00007fdc880a9000 nid=0x12a4 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=10 tid=0x00007fdc880a7000 nid=0x12a3 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x00007fdc880a4000 nid=0x12a2 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"JDWP Command Reader" daemon prio=10 tid=0x00007fdc50001000 nid=0x1299 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"JDWP Event Helper Thread" daemon prio=10 tid=0x00007fdc880a1800 nid=0x1298 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"JDWP Transport Listener: dt_socket" daemon prio=10 tid=0x00007fdc8809e000 nid=0x1297 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x00007fdc88091000 nid=0x1296 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x00007fdc88071800 nid=0x1295 in Object.wait() [0x00007fdc77ffe000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on 0x00000000ecb04858 (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked 0x00000000ecb04858 (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
"Reference Handler" daemon prio=10 tid=0x00007fdc8806f800 nid=0x1294 in Object.wait() [0x00007fdc7c10b000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on 0x00000000ecb04470 (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked 0x00000000ecb04470 (a java.lang.ref.Reference$Lock)
"main" prio=10 tid=0x00007fdc8800b800 nid=0x128e runnable [0x00007fdc8fef7000]
java.lang.Thread.State: RUNNABLE
at com.wenchain.study.PrintThreadTrace.func2(PrintThreadTrace.java:20)
- locked 0x00000000ecc04b20 (a java.lang.Object)
at com.wenchain.study.PrintThreadTrace.func1(PrintThreadTrace.java:13)
- locked 0x00000000ecc04b10 (a java.lang.Object)
at com.wenchain.study.PrintThreadTrace.main(PrintThreadTrace.java:27)
"VM Thread" prio=10 tid=0x00007fdc8806b000 nid=0x1293 runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fdc88021000 nid=0x128f runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fdc88023000 nid=0x1290 runnable
"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fdc88024800 nid=0x1291 runnable
"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fdc88026800 nid=0x1292 runnable
"VM Periodic Task Thread" prio=10 tid=0x00007fdc880b3800 nid=0x12a5 waiting on condition
JNI global references: 1391
Heap
PSYoungGentotal 17920K, used 1270K [0x00000000ecb00000, 0x00000000ede80000, 0x0000000100000000)
eden space 15872K, 8% used [0x00000000ecb00000,0x00000000ecc3d898,0x00000000eda80000)
from space 2048K, 0% used [0x00000000edc80000,0x00000000edc80000,0x00000000ede80000)
tospace 2048K, 0% used [0x00000000eda80000,0x00000000eda80000,0x00000000edc80000)
ParOldGentotal 39424K, used 0K [0x00000000c6200000, 0x00000000c8880000, 0x00000000ecb00000)
object space 39424K, 0% used [0x00000000c6200000,0x00000000c6200000,0x00000000c8880000)
PSPermGentotal 21504K, used 2619K [0x00000000c1000000, 0x00000000c2500000, 0x00000000c6200000)
object space 21504K, 12% used [0x00000000c1000000,0x00000000c128edd8,0x00000000c2500000)
----------------------------------------------------------------------------------------------------------------------------
上面的信息中包含了当前JVM中所有运行的线程信息,其中在示例中我们启动的线程为main线程,其余的都是JVM自己创建的 。
在打印的信息中,我们可以清楚的看见当前线程的调用上下文 , 可以很清楚的知道程序的运行情况 。
并且我们在最后面还能看见当前虚拟机中的内存使用情况,青年世代,老年世代的信息等等...
PS: 在JDK1.5以上 , 我们可以通过在Java程序中调用Thread.getStackTrace()方法来进行堆栈的自动打印 , 使得线程堆栈的打印时机可编程控制 。
文章知识点与官方知识档案匹配
Java技能树首页概览
89841 人正在系统学习中
点击阅读全文
打开CSDN,阅读体验更佳
jstack-查看Java进程的线程堆栈信息,锁定高消耗资源代码
jstack主要用来查看某个Java进程内的线程堆栈信息 。语法格式如下: jstack[option]pid jstack[option]executable core jstack[option][server-id@]remote-hostname-or-ip 命令行参数选项说明如下: ...
011Java并发包018查看线程堆栈信息_执笔未来的博客
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) java.util.concurre...
最新发布 jstack -- java堆栈常用排查指令
jstack -- java堆栈常用排查指令
继续访问
热门推荐 jstack 命令查看JAVA线程堆栈
JAVA堆栈信息实际生产中,可能由于开发以及测试未能全面覆盖的代码质量、性能问题,而引致线程挂起甚至崩溃 。可能就需要查看堆栈信息来排查问题了 。jps -lvmjps -lvm 用于查看当前机器上运行的java进程 。C:\Users\Administratorjps -lvm 7348 -Dosgi.requiredJavaVersion=1.8 -Dosgi.instance.area.defa
继续访问
Java多线程——查看线程堆栈信息
Java多线程——查看线程堆栈信息 摘要:本文主要介绍了查看线程堆栈信息的方法 。使用Thread类的getAllStackTraces()方法 方法定义 可以看到getAllStackTraces()方法的返回值是一个Map对象,key是Thread的实例,value是一个StackTraceElement实例数组: 1 public static MapThread, S...
继续访问
java堆栈常用排查指令
java 异常排查四板斧 1、查看java 堆栈线程信息 说明 jstack命令打印指定Java进程、核心文件或远程调试服务器的Java线程的Java堆栈跟踪信息 。对于每个Java框架,完整的类名,方法名,字节码索引(BCI)和行号(如果有的话)被打印出来 。使用-m选项,jstack命令打印程序中所有线程的Java和本机帧 计数器(PC) 。对于每个本机?。笨捎檬保?将打印离PC最近的本机符号 。c乱码的名字不会被修改 。要demangle c名称,输出这个 命令可以管道到cfilt 。当
继续访问
java诊断工具-Arthas(thread命令)查看当前线程堆栈
cpu使用率与linux 命令top -H -p pid的线程CPU类似 1、支持一键展示当前最忙的前N个线程并打印堆栈 thread -n 3 没有线程ID , 包含[Internal]表示为JVM内部线程,参考dashboard命令的介绍 。cpuUsage为采样间隔时间内线程的CPU使用率,与dashboard命令的数据一致 。deltaTime为采样间隔时间内线程的增量CPU时间,小于1ms时被取整显示为0ms 。time线程运行总CPU...
继续访问
java查看线程的堆栈信息
通过使用jps 命令获取需要监控的进程的pid,然后使用jstackpid 命令查看线程的堆栈信息 。通过jstack命令可以获取当前进程的所有线程信息 。每个线程堆中信息中,都可以查看到线程ID、线程的状态(wait、sleep、running 等状态)、是否持有锁信息等 。jstack -l pid jvm_listlocks.txt 转...
继续访问
java 查看线程堆栈信息_Java多线程——查看线程堆栈信息
java多线程——查看线程堆栈信息摘要:本文主要介绍了查看线程堆栈信息的方法 。使用thread类的getallstacktraces()方法方法定义可以看到getallstacktraces()方法的返回值是一个map对象,key是thread的实例,value是一个stacktraceelement实例数组:1 public static map getallstacktraces()使用可以使...
继续访问
java线程堆栈信息分析
java堆栈信息分析
继续访问
java 查看堆栈_javap 命令查看堆栈中信息
javap命令是对.java文件进行反编译,通过这个命令可以看到堆栈中是怎么压栈和出栈的已经执行顺序 , 这里简单解释下javap的简单的使用,下面举个例子:题目:i和i的区别解释:简单点说 这个问题都不难回答,这里就不说了,但是实际上堆栈中区别也是老大了(这里就用到了javap命令),步骤:1.在任意一个盘下面建一个名为Test.java的文件(文件名可以随意命名)代码如下:public...
继续访问
java 查看线程堆栈信息_jstack-查看Java进程的线程堆栈信息,锁定高消耗资源代码 。...
jstack主要用来查看某个Java进程内的线程堆栈信息 。语法格式如下:jstack[option]pidjstack[option]executablecorejstack[option][server-id@]remote-hostname-or-ip命令行参数选项说明如下:-llonglistings,会打印出额外的锁信息,在发生死锁时可以用jstack-lpid来观察...
继续访问
java堆栈信息怎么看_线程堆栈信息怎么看? - cs_person的个人空间 - OSCHINA - 中文开源技术交流社区...
一条线程堆栈信息大概长成下面这个样子:RMI TCP Connection(267865)-172.16.5.25" daemon prio=10 tid=0x00007fd508371000 nid=0x55ae waiting for monitor entry [0x00007fd4f8684000]java.lang.Thread.State: BLOCKED (on object m...
继续访问
线程堆栈信息怎么看?
一条线程堆栈信息大概长成下面这个样子: RMI TCP Connection(267865)-172.16.5.25" daemon prio=10 tid=0x00007fd508371000 nid=0x55ae waiting for monitor entry [0x00007fd...
继续访问
java的栈和堆
栈与堆都是Java用来在Ram中存放数据的地方 。与C不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆 。Java 的堆是一个运行时数据区,类的(对象从中分配空间 。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放 。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大?。?生存期也不必事先告诉编译器,因为它是在...
继续访问
查看java线程_【JAVA】Java线程堆栈信息查看
如何获得线程的堆栈信息?线上服务器cpu 100%了,该如何排查问题?1.top命令查询哪个pid进程占用cpu高(ps -ef|grep java 获取PID号)2.通过 top -Hp pid 可以查看该进程下各个线程的cpu使用情况,获取占用cpu高的线程id3.执行命令:printf "%X\n" 线程tid(用于获取占用cpu高的线程id的16进制数)4.执行命令:jstack pid ...
继续访问
kill -3 java_kill -3 PID命令获取java应用堆栈信息
一、应用场景:当linux服务器出现异常情况(响应缓慢 , 负载持续飙升)并且服务器没有安装对应的包而无法使用jstack等命令时,可以使用linux的kill相关命令打印堆栈信息 。命令格式:kill -3 PID二、执行步骤:2.1、获取java进程的PIDps -ef|grep java结果的第二列数字就是进程对应的pid 。2.2、kill -3 PID(1)如果项目通过Tomcat进行发布(普通...
继续访问
jstack 工具 查看JVM堆栈信息
1|0介绍 jstack是java虚拟机自带的一种堆栈跟踪工具 。jstack用于打印出给定的java进程ID或corefile或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64" , Windows的jstack使用方式只支持以下的这种方式: jstack [-l] pid 主要分为两个功能: a. 针对活着的进程做本地的或远程的线程dump; b. 针对core文件做线程dump 。jstack用于生成java虚拟机当前时刻的线程快照 。线程快照是...
继续访问
linux查看java堆栈
1、查看JAVA进程JVM参数 jinfo -flags pid(进程号) -XX:CICompilerCount=2 最大的并行编译数 -XX:InitialHeapSize=16777216 JVM 的初始堆内存大小 -XX:MaxHeapSize=257949696 JVM 的最大堆内存大小 -XX:MaxNewSize=85983232 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=5570560 -XX:OldSize=11206656 2、JVM 查看.
继续访问
Linux 如何查看一个进程的堆栈
有两种方法:第一种:pstack 进程ID第二种,使用gdb 然后attach 进程ID , 然后再使用命令 thread apply all bt 两种方法都可以列出进程所有的线程的当前的调用栈 。不过 , 使用gdb的方法 , 还可以查看某些信息 , 例如局部变量,指针等 。不过,如果只看调用栈的话,pstack还是很方便的 。
继续访问
JAVA获取堆栈信息
1. 通过Throwable获取 StackTraceElement[] stackTrace = new Throwable().getStackTrace(); 2. 通过Thread获取 StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
继续访问
java 查看线程栈大小_基于 Java 线程栈的问题排查
除日志外,还有没有别的方式跟踪线上服务问题呢?或者,跟踪并排除日志里无法发现的问题?方法当然是有的,就是通过现场快照定位并发现问题 。我们所说的现?。饕刚饬椒矫妫篔ava 线程栈 。线程栈是Java线程工作的快照 , 可以获得当前线程在做什么;Java 内存堆 。堆是JVM的内存快照,可以获取内存分配相关信息 。
Linux操作系统,telnet的时候如何能让printk打印到前台 。redhat linux的命令
一. 启动,关机,登入,登出相关命令
login 登录
logout 登出
exit 登出
shutdown 停止系统
halt 停止系统
reboot 重启动
poweroff 切断电源
sync 把内存里的内容写入磁盘
lilo 安装lilo启动管理程序
grub 安装lilo启动管理程序
二. Shell相关命令
chsh 切换Shell
history 显示命令履历
alias 设置命令别名
unalias 取消命令别名
which 显示命令所在位置
type 查询命令种类
echo 显示字符串或者变量内容
set 设置/显示Shell变量
printenv 显示环境变量
export 设置环境变量
env 设置临时环境变量
unset 释放环境变量
setenv 设置环境变量
unsetenv 释放环境变量
source 执行文件当中的命令
man 查询命令手册
info 查询超文本命令手册
whatis 显示命令简介
apropos 通过关键字查询手册
三. 用户管理相关命令
su 切换到其他用户
useradd 追加用户
adduser 追加用户
userdel 删除用户
usermod 修改用户设置
chfn 修改用户私人信息
groupadd 追加组
groupdel 删除组
groupmod 修改组设置
passwd 更改密码
whoami 显示用户名
logname 显示登录用户帐号
users 显示所有登录用户信息
who 查询登录用户信息
w 查询登录用户信息
id 显示指定用户的ID信息
groups 显示指定用户的所属组
finger 显示指定用户的个人信息
mesg 开关与他人收发消息
write 给其他用户发消息
wall 给所有用户发消息
talk 和其他用户聊天
四. 系统消息相关命令
date 显示/设置当前时间
uptime 显示系统运行时间
arch 显示机器的核心构架(如i386)
uname 显示操作系统信息
tty 显示终端名
last 显示登录/登出在履历
lastb 显示非法登录信息
dumpkeys 显示当前键盘配置
loadkeys 变更键盘配置
df 查询磁盘使用信息
du 查询磁盘使用信息
dmesg 显示系统启动消息
script 保存输入输出到文件
五. 文件操作相关命令
ls 显示文件列表
tree 显示目录树
pwd 显示当前路径
cd 更改当前路径
pushd 追加路径到目录堆栈
popd 从目录堆栈删除路径
dirs 显示目录堆栈的内容
mkdir 创建路径
rmdir 删除路径
cp 复制文件/目录
rm 删除文件/目录
mv 移动文件/目录,修改文件名
chown 更改文件/目录的所有者
chgrp 修改文件/目录的所有组
chmod 修改文件/目录的权限
touch 更改文件时间
ln 建立文件/目录链接
find 查找文件
whereis 显示文件存在的路径名
file 查询文件种类
size 查询文件大小
六. 文件编辑相关命令
cat 显示文件内容
tee 输出到文件和屏幕
more 分屏显示文件内容
less 分屏显示文件内容
head 显示文件头部内容
tail 显示文件尾部内容
fold 折叠显示长行
sort 排列文件的行
cmp 比较文件内容
diff 显示文件差异
nkf 更改日语文件编码
dd 变更文件之后复制
wc 统计文本单词数,文件大小等
split 分割文件
paste 以行连接文件
join 以字段连接文件
grep 查询文字
uniq 过滤重复部分显示文件内容
tr 替换文字
sed 替换文字
七. 压缩/解压缩相关命令
ar 压缩/解压缩文件
tar 压缩/解压缩文件
compress 压缩/解压缩文件
uncompress 解压缩
gzip 压缩/解压缩文件
gunzip 解压缩
zcat 显示压缩文件的内容
lha 压缩/解压缩文件
uuencode 把二进制文件编码为文本文件
uudecode 把经过编码的文本文件还原为二进制文件
八. MS-DOS工具集[mtools]命令
mdir 显示文件列表
mcd 改变当前目录
mmd 新建目录
mrd 删除目录
mdeltree 删除目录树
mcopy 复制文件
mdel 删除文件
mmove 移动文件
mren 更改文件或目录名
mattrib 修改文件属性
mtype 显示文件内容
mdu 查询文件或目录大小
minfo 显示磁盘信息
mformat 以MS-DOS方式格式化磁盘
mlabel 设置磁盘标签
九. 控制外部设备相关命令
mount mount上设备
umount 解除已经mount上的设备
eject 弹出(CD/DVD等)
fdformat 格式化软盘
fdisk 配置/显示硬盘分区
mkfs 格式化磁盘分区
fsck 检查/修复磁盘错误
lpr 打印到打印机
lprm 中断打印任务
lpq 显示打印任务的状态
lpc 管理/控制打印任务
ifconfig 显示/设定NIC配置
十. 进程及任务管理相关命令
ps 显示正在运行的进程
jobs 显示后台运行任务
fg 把任务切换到前台
bg 把任务切换到后台
kill 中止进程或任务
killall 中止进程或任务
wait 等待进程或任务的结束
at 设置定时执行任务
atq 显示尚未执行的任务
atrm 删除定时执行任务
batch 在系统负荷减轻的时候执行任务
nice 改变优先度并执行任务
nohup 在后台执行任务,Logout之后也不退出
sleep 休眠一定的时间
十一. 网络管理相关命令
netstat 显示当前网络连接状况
route 显示/设置路由
host 显示网络主机情况
hostname 显示/设置当前主机的名字
ping 确认和远程机器的连接情况
traceroute 显示路由信息
rwho 查询网上机器的登陆用户
ruptime 查询网上机器的系统运行时间
rlogin 登陆到远程机器
telnet 用telnet登陆到远程机器
rsh 给远程机器发送命令
rcp 在远程机器之间复制文件
mail 收取邮件
sendmail 发送邮件
mailq 确认邮件队列
ftp 用ftp传输文件
十二. 其他命令
cal 显示日历
clear 清屏
gcc 编译C语言代码
as 汇编
bc 计算
rpm Redhat的包管理
dpkg Debian的包管理
installpkg Slackware的包安装(删除命令则是removepkg)
XF86Setup,turboxfg,Xconfigurator 配置 X 服务器
startx 启动 X-Window 系统
附:组合命令
重定向,如
$ ls -l /binls-output
$ more ls-output
管道命令,如
$ cat file1 file2 | sort | uniq
经常被用于管道的命令
awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc
很多了
linux切换下一个目录自动打印在Linux的多目录命令提示符中工作是一种痛苦的事情linux堆栈打印命令,但以下这些利用cd和pushd切换目录的技巧有助于你节省时间和精力。
在Linux命令提示中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堆栈打印命令 linux查看堆栈调用信息】linux堆栈打印命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux查看堆栈调用信息、linux堆栈打印命令的信息别忘了在本站进行查找喔 。

    推荐阅读