linux命令大全网站:
http://man.linuxde.net/tune2fs
gdbserver调试:
实机端:
gdbserver 136.18.227.78:1234 test_main -c 1 -l 4 -p 0
服务器端:
/home/cfan5/DNTC_SDK/bin/arm-linux-gnueabihf-gdb test_main -c 1 -l 4 -p 0
target remote 136.18.227.146:1234
修改系统权限为rw:
mount -o remount,rw /
cpu高占用率gdb定位:
ps -efL | grep test.out | grep -v grep
gdb attach 1162
apt-get install xx 软件源配置文件: /etc/apt/sources.list
杀死weston线程:
kill -9 `ps -e | grep weston | awk '{if(NR == 1){print $1}}'`
ps aux
指定ps查看的内容:
ps -eo pid,stat,comm,args,vsz
ps -eo pid,comm,vsz,rss
查看某个进程运行的详细参数:
cat /proc/进程号/cmdline
跟踪系统调用:
strace -ec trace=open,close test或者 -p 线程号
清理Zombie僵尸进程:
kill -18 PPID 杀父进程
或者
kill -15 PID1, PID2.. 先杀僵尸进程的兄弟进程
kill -15 PPID 再杀父进程
打印文件内容:
cat test.txt
列出各进程打开的文件信息:
lsof -a
如果rm 后面跟的文件太多可以用find和xargs命令:
find dir -name "*.log" | xargs rm -rf
在目录下查找是否有文件包含某个字符串:
find dir | xargs grep -ri "字符串正则表达式"
统计代码量
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.c" -or -name "*.h" -or -name "*.xib" -or -name "*.pch" ")" -print | xargs wc -l
使用WinSCP传输文件:
udhcpc eth0
查看开机信息:
dmesg
列出所有远程分支和本地分支:
git branch -av
用远程分支创建本地分支:
git checkout origin/远程分支名 -b 本地分支名
git配置别名:
git config --global alias.st status (git stauts命令--》 git st)
git配置git log为git lg并改变显示效果:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git修改权限导致文件全部变红的解决方法:
git config core.filemode false
查看代码克隆的远程地址:
git remote -v
和远程库的代码有冲突解决:
git stash 先暂存本地修改
git pull
git stash pop 恢复修改
然后手动解决冲突再提交
撤销push到远程的提交:
git revert commitID
git push
撤销多次提交:
比如提交顺序 A->B->C->D->E 需要撤销 B C D 三个提交
git revert -n B_commitID^..D_commitID
git commit -m "revert B C D commit"
git push
将某些其他分支的提交应该到目前所在的分支上
git cherry-pick C1 C2 C3
本地git仓库上传到服务器空仓库:
git remote rm origin
git remote add origin xxxxx
git push -u origin master
本地分支上传到远程分支
git push origin local_branch:remote_branch
产生补丁
git format-patch commit-ID -n (n是往回比较的版本次数,如果是1则为当前版本和前一个版本的差异产生patch)
打补丁:
git apply xxxxx.patch
.gitignore不起作用:
git rm -r --cached 要忽略的目录
git add 要忽略的目录
git commit -m 'update .gitignore'
挂载USB:
fdisk -l 列出usb的设备名称如: /dev/sda4
mkdir -p ./usb 建立挂载目录
mount /dev/sda4 ./usb 将/dev/sda4/挂载到./usb目录
cd ./usb 就可以访问U盘内容
umount ./usb 卸载u盘
查看系统版本: cat /proc/version 或者 uname -r
查看内核Log级别: cat /proc/sys/kernel/printk
检测内存问题:
valgrind --tool=memcheck --leak-check=full --trace-children=yes ./test
压缩和解压:
tar cvf xxx.tar dir
tar cvzf xxx.tar.gz dir
tar cvjf xxx.tar.bz2 dir
tar xvf xxx.tar -C dir
tar xvzf xxx.tar.gz -C dir
tar xvjf xxx.tar.bz2 -C dir
GDB调试命令:
info thread 查看线程信息
thread + threadID 切换到指定的线程
set scheduler-locking on/off 锁定只运行当前线程或解锁
thread apply all bt 列出所有线程信息
反汇编命令:
objdump -dS xxx.so/应用程序
列出文件的符号信息
nm -Al xxx | less
查找文件所在的位置:
apt-file search 文件名
根据缺少的头文件查找需要的安装包:
sudo apt-file update
apt-file search xxx.h
查看linux系统是多少位的:
getconf LONG_BIT
或者
echo $HOSTTYPE 如何返回x86_64则为64位的系统
查找IO占用高的进程:
1、停止系统日志
/etc/init.d/syslog stop
2、停止审计日志
/etc/init.d/auditd stop
3、启用block_dump
echo 1> /proc/sys/vm/block_dump
4、通过下面命令查找出IO高的进程
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
5、关闭block_dump
echo 0 >/proc/sys/vm/block_dump
6、启动系统日志和审计
/etc/init.d/syslog start
/etc/init.d/auditd start
查看磁盘空间及文件系统挂载点
df -h
查看硬盘使用情况
fdisk -l
统计文件的行数:
awk 'END{print NR}' 文件名
打印应用或so依赖的共享库:
/lib/ld-linux.so.2 --list program 或者ldd program
显示当前目录下各个文件及子目录占用空间
du
显示当前目录总占用空间
du -s ./ 或者 du -s
打印cpu信息:
cat /proc/cpuinfo
统计打开的文件句柄数:
lsof | wc -l
每隔一秒统计一次
while true; do sleep 1; lsof | wc -l; done
echo 1 > /proc/sys/vm/block_dump
watch -n 1 "dmesg | egrep \"READ|WRITE|dirtied\" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head"
echo 0 > /proc/sys/vm/block_dump
dmesg -c | sed '/(\S+)\((\d+)\): (READ|WRITE) block (\d+) on (\S+)/p'
人为制造kernel panic:
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
核心转存:
ulimit -c 如果输出为0 说明默认是关闭core dump的
ulimit -c unlimited //开启core dump功能,
ulimit -c 2048 //也可以自己设置core文件大小(KB)
echo 1 > /proc/sys/kernel/core_uses_pid //生成的core文件自动加上pid号,生成core.pid的文件名
echo "/tmp/tombstone-%e-%p-%t" > /proc/sys/kernel/core_pattern //设置保存在/tmp目录下且文件名格式为“tombstone-命令名-PID-时间戳”
运行程序比如:
./test
程序crash掉后在 /tmp目录产生 tombstone-xxx的文件
gdb ./test /tmp/tombstone //就可以看到在哪里挂掉了
利用以上命令,处理单个文件补丁的方法:
# 产生补丁
diff -uN from-file to-file >to-file.patch
# 打补丁
patch -p0 < to-file.patch
# 取消补丁
patch -RE -p0 < to-file.patch
对整个文件夹打补丁的情况:
# 产生补丁 # 学习andriod好文章 while true; do sleep 1; dumpsys cpuinfo; done repo sync -f -j10 zcat /proc/config.gz #查看 linux内核的配置 cat /proc/interrupts | grep vip vpe_test -i /vendor/usr/capture_full.uyvy -j 720x480 -k uyvy -o /vendor/usr/360_240p.rgb24 -p 360x240 -q rgb24 -l 0 -t 3 omapconf set bit 0x4a008e20 0x1 beyondCompare4被吊销: 通过文件系统设置GPIO的状态 echo 30 > /sys/class/gpio/export adb推送整个文件夹下的文件到实机目录 将test shell脚本的'\r'替换为空 修复SD卡ext4分区 查看负载 stress-ng用法 CPU压力密集型 IO压力密集型 虚拟机添加共享文件夹:
diff -uNr from-docu to-docu >to-docu.patch
# 打补丁
cd to-docu
patch -p1 < to-docu.patch
# 取消补丁
patch -R -p1
https://www.kancloud.cn/alex_wsc/androids/473752
1、adb shell setprop debug.sf.dump.enable true
adb shell setprop debug.sf.dump.primary true
如果是externel display : adb shell setprop debug.sf.dump.externel
true
2、adb shell stop
3、adb shell start
4、adb shell setprop debug.sf.dump.png x(x代表是一个数字,如果要dump一帧
就写1,如果要dump 10帧就写10,png代表是将layer保存为png文件)
或者adb shell setprop debug.sf.dump x(dump出来的是原始数据)
5、dump的layer文件保存在/data/目录下,如:/data
/sfdump.png.1970.01.08.06.08.37
adb pull /data/sfdump.png.1970.01.08.06.08.37 ~/
adb shell screencap /data/screen.png
vpe_test -i /vendor/usr/capture_full.uyvy -j 720x480 -k uyvy -o /vendor/usr/360_240p.argb32 -p 360x240 -q argb32 -l 0 -t 3
omapconf set bit 0x4a008e28 0x1
C:\Users\CFAN5\AppData\Roaming\Scooter Software\Beyond Compare 4
echo 32 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio32/direction
cat /sys/class/gpio/gpio32/direction
echo 1 > /sys/class/gpio/gpio32/value
cat /sys/class/gpio/gpio32/value
echo out > /sys/class/gpio/gpio30/direction
cat /sys/class/gpio/gpio30/direction
echo 1 > /sys/class/gpio/gpio30/value
cat /sys/class/gpio/gpio30/value
adb push D:\aaa\. /vendor/usr/aaa/
sed -i 's/\r$//' test.sh
sudo fdisk -l
sudo umount /dev/sdb2
sudo fsck.ext4 /dev/sdb2
[root@x home]# mpstat -P ALL 5
./stress-ng --cpu 0 --cpu-method pi -t 5m --times &
./stress-ng --io 4 --hdd 1 -t 5m --times &
sudo adduser fcx vboxsf