Linux之常用命令备忘<不断更新中...>(十七)

Linux之常用命令备忘 

1、模糊查找字符串
# find . "*"  | xargs  grep "ro.hardware" -rn  --color
# find -name "*.rc"  | xargs  grep "ro.hardware" -rn --color
# find -name "*.rc"  | xargs  grep -rn --color "ro.hardware"

//过滤不想看到的字符串中: -E 和 \ 转义字符用法相同
# adb logcat | grep -vE "SurfaceFlinger|cnss-daemon"
# adb logcat | grep -v  "SurfaceFlinger\|cnss-daemon\|wpa_supplicant"

//递归删除*.pyc文件
# find . -name "*.pyc" -print | xargs rm -rf
# find . -name “*.pyc” -exec rm '{}' +

2、指定文件名查找字符串
# find -name AccSensor.cpp  | xargs  grep "ro.hardware" -rn

3、查找多个字符串
# grep "ro.hardware" .  -rn --color
# grep -irnE "video|audio"
# ls | egrep 'video|v4l2'  //egrep对grep的扩展,支持|符号查询

注意:-irnE:
       i: 不区分大小写
       r:递归查找
       n:显示字符串所在的行号
       E: 可查找多个字段
       --color: 显示字体颜色

4、
<1> 删除指定一类文件(解决有些文件名中包含空格的问题)
 # find .  -name  "*.jpg" -print0 | xargs -0 rm

 注意:这里的-print0是告诉find命令,在每个输出后面以'\0'作为结束。-0是告诉xargs,使用'\0'来分隔输入,而不是空白符。这样就避免出现问题了。

<2> 删除所有.svn文件
 # find -name "*.svn" | xargs rm -rf

 <3>scp 同一局域网主机之间拷贝文件
# scp 用户名@192.168.1.2:/home/用户名/test.txt  ./  //从远程主机拷贝到本地
# scp ~/test.txt 用户名@192.168.1.2:/home/用户名/  //从本地拷贝到远程主机

5、把符合要求的文件名添加.bak后缀
# find .  -name  "*.jpg" -print0 | xargs -0 rm -I {} mv {} {}.bak

注意:其中的-I {}是告诉xargs,后面的命令中,用{}表示占位符,将会被实际的参数替代。这样就行了。

其他有用的参数还有:
 -n: 用于指定每次传递几个参数
 -d: 用于指定切分输入内容时,具体的分隔符,其他更多的参数,就参考man xargs吧。

6、后台启动程序并且不输出任何log信息
# ./test &>/dev/null &  等价于 ./test 2>/dev/null >/dev/null&
# cat test.txt &>/dev/null &

7、查看内存和cpu
# top //查看cpu占用率
# adb shell top -m 30 -t -d 3 -s cpu
# adb shell top -m 30 -t -d 3 -s cpu | grep <进程名> //只显示某个进程中线程的信息

注:-m 30:只显示cpu占用率最高前30;-t :只显示线程而不是进程 ;-d 3:每3秒更新一次;-s cpu:按cpu占用率排序
# procrank //查看内存。Uss:为当前程序所占内存(不包括库文件等)
# adb shell dumpsys meminfo //查看内存占用率
# adb shell dumpsys meminfo <pid/包名> //查看个程序的内存占用率

8、nm查看动态库、静态库、可执行文件
 nm:选项

 -A 在每个符号信息的前面打印所在对象文件名称;
 -C 输出demangle过了的符号名称;
 -D 打印动态符号;
 -l 使用对象文件中的调试信息打印出所在源文件及行号;
 -n 按照地址/符号值来排序;
 -u 打印出那些未定义的符号;

# nm -A ./* | grep h264
# nm -A *.a
# nm -a *.so
# nm -A a.out

9、ffmpeg命令参考
# ffmpeg -f v4l2 -i /dev/video0 output.mp4 //ffmpeg 获取摄像头/dev/video0并输出.mp4文件
//Camera出来的数据为yuv格式
# ffplay -f rawvideo -video_size 1920x1080 a.yuv //ffplay播放yuv文件命令

//将mp4视频中的音视频信息,以json格式返回
# ffprobe -v quiet -print_format json -show_format -show_streams  video.mp4  
或
# ffprobe -show_format -show_streams video.mp4

//ffplay播放rgb原始数据
# ffplay -f rawvideo -pixel_format rgb24 -s 480*480 video.rgb


//查看bmp格式信息
# ffmpeg -i 222.bmp -hide_banner
Duration: N/A, bitrate: N/A
    Stream #0:0: Video: bmp, bgra, 1920x1080, 25 tbr, 25 tbn, 25 tbc

//ffplay显示bmp格式
# ffplay -pixel_format bgra -s 300x500 222.bmp
# ffplay -pixel_format bgra -s 300*500 222.bmp

//ffplay播放16bit 2通道 44100采样频率的pcm音频数据
# ffplay.exe ./play.pcm -f s16le -channels 2 -ar 44100

10、android进入recovery模式更新固件
# adb reboot recovery

11、查看modem的log
# adb logcat -b radio -s RIL

12、操作指定的多个文件
# chmod +x /home/{run.sh,build.sh}

13、查看进程对应的log信息
# adb logcat | grep "993" //bluetooth情况
      
14、查看进程所打开的文件
# adb shell lsof 993
# adb shell lsof audio.primary.so
      
15、以root权限查看文件
# adb shell su -c 'cat /data/misc/wifi/wpa_supplicant.conf'
# du -sh /data

16、date在logcat中使用
# adb logcat -s NetlinkEvent | tee $(date "+%Y:%m:%d-%H:%M:%S".log)
# adb logcat | packages-$(date "+%Y-%m-%d-%H:%M:%S"-123.log)

17.编译android与tar打包命令
//test.sh
make update-api -j$(grep -c ^processor /proc/cpuinfo)
make -j$(grep -c ^processor /proc/cpuinfo) 2>&1 | tee build_All.log
make otapackage -j$(grep -c ^processor /proc/cpuinfo) 2>&1 | tee build_ota.log

OUTPUT_FILE="packages-$(date "+%Y-%m-%d-%H-%M-%S"-ROM)"
mkdir $OUTPUT_FILE
tar -zcvf ${OUTPUT_FILE}.tar.gz $OUTPUT_FILE

18.解压rootfs.img跟文件系统方法
# sudo mount -o loop rootfs.img /tmp
# mkdir test
# sudo cp -rf /tmp/* test 
# sudo chown user:user test
# sudo chmod 777 test -R //不加权限,压缩会报错
# tar zcvf test.tar.gz test


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android系统攻城狮

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值