vim 全部选中
全选(高亮显示):按esc后,然后ggvG或者ggVG
全部复制:按esc后,然后ggyG
全部删除:按esc后,然后dG
替换:
%s/old/new/g
find . -name fingerprint.h -exec vim {} ;
查找某个文件并vim
vim打开二进制文件:
:%!xxd -g 1
以上命令可以以单个字节显示二进制内容
VIM:
:sp 上下分屏
:vsp 左右分屏
GIT命令
repo manifest
---该命令列出manifest.xml内容
repo staus
---显示有改动的仓及文件
git log -n3
---显示前三条git log
git log --oneline -n3 ./fpc_hal_ext_calibration.c
---简化显示某个文件前3个修改记录
git diff仅显示差异
git icdiff 左右直观显示修改的文件内容
1,sudo apt install icdiff
2,~/.gitconfig添加:
icdiff
options = --highlight --line-numbers
3,git icdiff ./Android.mk
该命令即可显示该文件前后的差异
行控制命令和vim基本一致
如果已经git add了,需要添加--cached参数
git icdiff --cached ./build/tee/fpc.mk
比较某个文件两个节点直接的差异:
git icdiff 99af6ee 19b030c ndk_build_hal.mk6
git diff 63a95eb0 ./tools.mk
查看某一个commit中tools.mk文件前后的差异
git上库:
1,进入某个仓, git add
2, git commit 回车,添加commit信息,可以回车后添加jira单号
bring up zte IRIS6(optee) on L3
SWO-1391
3,git push fpc_gerrit HEAD:refs/for/customer/1632_customer_xiaomi_l3_algo2_sw8.0
回退到该文件指定的版本
git checkout a4e215234aa4927c85693dca7b68e9976948a35e MainActivity.java
从gerrit复制down patch 链接,在本地执行了gerry-pick命令后,怎么撤销呢:
git reset --hard HEAD^
git diff a.file > a.patch //生成补丁
git apply ./a.patch //打补丁
t
git add 新增了某个文件并且git add了
git reset HEAD * 可以将其add操作撤销
修改了某个文件,本来想git commit,不小心git commit --amend了
1, git reflog,此时会显示出amend的历史记录,找到刚才amend时候的commit id, 例如下图:
2, git reset + 红框前面的那个commit, 这样就会把刚才的修改重新unstged,入下图:
在某个仓库执行gerrit cherr-pick命令时如果有冲突时:
error: could not apply 844e03a... bring up zte P720F05 (speadtrum+trusty) lib
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
此时冲突文件中会有如下字符:
<<<<<<< HEAD
tz_algo_extract();
status = tz_algo_auth(&tz_auth_result);
=======
tz_algo_extract();
status = tz_algo_auth(&tz_auth_result);
>>>>>>> 844e03a... bring up zte P720F05 (speadtrum+trusty) lib
在gerrit上执行将某个修改cherry-pick到另一个分支时
如果提示冲突,并且强行rebase后,查看文件修改差异,可以看到有"<<<<<<< HEAD"等字符
怎么解决呢:
1,将该修改cherr-pick到本地仓库
2,移除HEAD等字符,并注意是否解决完了冲突
3,git add
4, git commit --amend
5,git push
6,这样就好了
用户A上传的代码,如果还没有merge, 那么用户B可以进行如下修改:
1,将A的修改cherry-pick到本地
2,修改
3,git add
4, git commit --amend
5, git push ***
6, 重新review,merge
已经git add的代码,如果想看修改的差异:
git diff --cached
已经git add的代码,想退回到未add的状态:
git reset HEAD src/access/fpc_sensor_access.c
再继续执行git checkout 即可
执行commit后,还没执行push时,想要撤销这次的commit
只撤销上一次commit,不撤销add
git reset --soft HEAD~1
commit和add的上一次都撤销
git reset --hard HEAD~1
已经add,commit但未push的文件,想撤销到未git add状态:
1,git reset --hard HEAD~1 (此时是git add状态,绿色)
2,git reset HEAD *.file (此时是红色)
3,git checkout *.file (撤销掉该文件)
已经merge的文件,想撤销到未git add状态:
1,git reset --hard HEAD~1 (此时是git add状态,绿色)
2,git reset HEAD *.file (此时是红色)
3,git checkout *.file (撤销掉该文件)
当前仓库修改记录如下:
felix@felix-VirtualBox:~/code/1632_zte_p720f05_sw8_branches/optical_sensor_sdk$ git log --oneline |head -n 10
5aa270b Fix underflow to compatible with DMA align at 8 bytes 2/2
2bc8549 Add log to debug unique id not match 3/3
5ad8cff Remove repeated log print 2/2
8bacd4a Set spi speed 6M when read hwid, 15M in other cases 3/3
32c1674 Enhance spi drive strength
a85c4b0 Add new HWID support for borneo
b5ee1af Save and set issue points info to algo2
c88b49d Capture flow changes for kpi optimization
18f1814 Add Image rotate macro control
b770151 Remove backoff data in calibration image
我想将fpc_sensor_access.c文件回退到上一个状态,即:2bc8549
1, git checkout 2bc8549 src/access/fpc_sensor_access.c
此时该文件显示绿色,并且文件内容已经回到了2bc8549
2,git commit
3,git push fpc_gerrit HEAD:refs/for/customer/1632_zte_p720f05_sw8
想将当前目录的文件备份一下:
tar -cvf ~/tmp.tar hwbinder/legacy/Android.mk hwbinder/legacy/fpc_legacy_hal.c
想恢复的时候:
tar -xvf ~/tmp.tar -C . (解压到当前目录)
根据git log查找某一笔修改动了哪些文件
git show 12dc6ce|grep diff
将某一个节点的文件导出来
git show 12dc6ce A.txt > A1.txt
git log显示关键信息
git log --pretty=format:"%h - %an, %ad : %s" --date=iso -n 10
adb命令
adb shell "dmesg -w|grep fpc"
该命令可以实时打印kernel log
替代while true循环打印
cp --parents
复制文件的时候保留目录结构
1.adb root
a.adb shell "while true; do cat; sleep 1; done < /proc/kmsg" (待测试)
pm list packages -f|grep -HinE collec
(standard input):42:package:/system/app/SaleInfoCollectSystem/SaleInfoCollectSystem.apk=com.android.aftersaleservice
(standard input):82:package:/vendor/app/ImageCollection/ImageCollection.apk=com.fingerprints.imagecollection
列出手机中所有的包和路径
显示当前activity堆栈:
adb shell "dumpsys activity|grep -HinE topactivity"
(standard input):2258: topActivity={com.heyitest.wifilink/com.heyitest.wifilink.MainActivity}
(standard input):2267: topActivity={com.ontim.runin/com.ontim.runin.MAIN}
(standard input):2276: topActivity={com.mediatek.atmwifimeta/com.mediatek.atmwifimeta.Atm_Wifi_Activity}
(standard input):2285: topActivity={com.android.settings/com.android.settings.SubSettings}
sed -i '/hello/d' test.txt
删除test.txt中包含hello的行
adb shell "while true;do cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq&&echo '------------------------' ;sleep 0.5;done"
实时打印cpu频率:
用分割线隔开每次打印
adb shell logcat -b main //只输出logcat
adb shell logcat -b kernel //输出kernel日志
如何下载单个仓:
1, repo manifest
2, 找到目标仓对应的name
3, repo sync sw/linux/android/gen2/lib_build
grep搜索某些关键字,排除某个关键字
grep -HrinE "sensor_driver_calibrate_volt_v1|image_size=32" ./*.txt|grep -wv "image_size=3200"
envsetup.sh脚本中通过export设置的环境变量,都可以在shell窗口用export命令显示出来
getevent可以获取到各个event的name
127|Z6576S:/ # getevent
add device 1: /dev/input/event2
name: "fts_ts"
add device 2: /dev/input/event0
name: "ACCDET"
add device 3: /dev/input/event1
name: "mtk-kpd"
du -sh *
统计当前目录下所有文件和目录的大小
rsync -av --exclude=folder1/ --exclude=folder2/ source_directory/ destination_directory/
复制文件时排除多个目录