[linux]常用指令

进程线程相关

ps -ef | grep Webrtc 
top -H -p <pid>
ps -T -p <pid>

GDB相关

gdb WebrtcAgent.2333 core.WebrtcAgent.2333 //加载coredump
bt //backtrace
p varname //查看变量
p *object._M_ptr //智能指针真实指针
thread apply all bt  //全部线程及帧栈
info threads //显示全部线程
f // frame
l
p *this
attach pid //加入正在运行的进程
dettach pid
set print pretty on
set print object on

 

管道相关

管道常用于进程间通信

即上一个进程的stdout作为下一个进程的stdin(直接对接)

在linux中  | 符号即为管道符号,将上一个命令的stdout作为下一个命令的stdin

例:

将当前目录下含有123的文件全部删除(单输入)

ls | grep 123 | xargs rm

将当前目录下含有123的文件全部放入其他文件夹

ls | grep 123 | xargs -t -i mv {} ../file

  将含有关键字的文件打包压缩
find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz 

附:

https://www.runoob.com/linux/linux-comm-xargs.html

FFMPEG

ffmpeg -i record_6860793027212984321.flv -vf fps=0.4 img5/out%d.png //抽帧为图片
ffmpeg -f alaw -ar 8000 -ac 1 -i 2020_11_18_20-12-24_recvd_pcma_6896435569312677892.pcma  -ar 8000 -ac 1 -f s16le out.pcm
ffplay/ffmpeg -decoders

  

编译

add_dependencies(libyuv libjpeg-turbo)

#!/bin/bash path="$1" #获取带入的参数 $0为文件本身 同c程序argv #index=`expr index "${path}" ".cpp"` #echo ${index} #index=`expr ${index} - 1` #exec="${path:0:index}" #echo ${path} #echo ${exec} g++ -g -o run $1 `pkg-config --libs --cflags libavutil` ./run

后台(并发)运行函数/命令 (后台运行符&)

#!/bin/bash
echo "hello, world"
#!/bin/bash

function sub1 {
  for i in {1..5}
  do
    echo `date +%T`" sub1" #注意date 和+号之间有空格。如:date +%m/%d date取"月/日"的命令行。
  sleep 1
  done
}

function sub2 {
  for i in {1..5}
  do
    echo `date +%T`" sub2"
  sleep 1
done
}

function sub3  {
  for i in {1..5}
  do
    echo `date +%T`" sub3"
  sleep 1
  done
}

sub1&
sub2&
sub3&
原文地址:https://www.cnblogs.com/zeolim/p/13060011.html