> 文档中心 > Linux命令使用心得和openharmony常用命令

Linux命令使用心得和openharmony常用命令

第一,

ssh-keygen -t ed25519 -C "wangdan231@huawei.com"
git log
git log
git status
git status
git add .
git status
cd multimodalinput_input/
git status
git add .
git status
git commit -sm" 提交测试不合入"
git push origin refs/heads/master:dantets
git log
:git log
git log
git reset --hard 8a95d06be4178e22fc67afe74d747a9345cf5ae5
git clean -fxd
git checkout .
git pull
git log
q
history$ history
ssh-keygen -t ed25519 -C "wangdan231@huawei.com"
git log
git log
git status
git status
git add .
git status
cd multimodalinput_input/
git status
git add .
git status
git commit -sm" 提交测试不合入"
git push origin refs/heads/master:dantets
git log
:git log
git log
git reset --hard 8a95d06be4178e22fc67afe74d747a9345cf5ae5
git clean -fxd
git checkout .
git pull
git log
q
history

第二,

预编译
bash build/prebuilts_download.sh
编译命令【增量,多模】
./build.sh --product-name rk3568 --ccache --build-target multimodalinput_base
UT编译出来的文件路径
out/rk3568/tests/unittest/multimodalinput/unit_out
编译UT命令
./build.sh --product-name rk3568 --ccache --build-target input --build-target make_test ./build.sh --product-name rk3568 --ccache --export-para PYCACHE_ENABLE:true --build-target make_all --build-target make_test ./build.sh --product-name rk3568 --ccache --export-para PYCACHE_ENABLE:true --build-target input --build-target make_test
编译指定UT名称的命令
./build.sh --product-name rk3568 --ccache --build-target InjectPointerEventTest
 

第三,

拉取合并带编辑commit message
git pull origin baiwei_fix_debug --edit --signoff
查看远程仓库
git remote -v
设置远程仓库
git remote add openharmony git@gitee.com:openharmony/multimodalinput_input.git
清除工作区的untrack文件和目录
git clean -fd
https://www.jianshu.com/p/c2ec5f06cf1a
git reset --hard
查看最新的commitid
git show
查看工作区的修改
git diff
查看暂存区的修改
git diff --cached
比较两个分支的差异
git diff branch1 branch2
将工作区代码存入stash区
git stash
将当前stash中的内容弹出,并应用到当前分支对应的工作目录上
git stash pop
摘取b4da2a6b6ced5abf154cb25fc475d9be3aa6e9e8节点合并到当前分支上
git cherry-pick b4da2a6b6ced5abf154cb25fc475d9be3aa6e9e8

根目录下重新拉代码解决
repo sync -c --no-tags -j8  
repo forall -j8 -c "git lfs pull"

日志罗盘命令
hilog -w start -l 100M
日志目录
/data/log/hilog

如果下载失败,强行下载
repo sync --force-sync developtools/bytrace
repo sync --force-sync foundation/aafwk/standard
repo sync --force-sync foundation/bundlemanager/bundle_framework

日志罗盘
hilog -w start -l 100M
日志目录
/data/log/hilog
日志导出
hdc file recv /data/log/hilog/hilog.001.20170805-121750.gz D:/log
 

第四,

1.查看指定进程的进程号
ps -aux | grep ./inotify.out

2.查看1430进程的文件描述符表
ll proc/1430/fd

3.查看24044进程的环境变量
cat /proc/24044/environ

4.删除信号量
ipcrm -s SemaphoreID

5.删除消息队列
ipcrm -q MessageID

6.删除共享内存段
ipcrm -m SharedMemoryID

7.查看所有信号定义
kill -l

8.gcc命令处理bug时的常用方法
首先,知识基础掌握:
c为后缀的文件,C语言源代码文件;
.C或.cc或.cxx为后缀的文件,是C++源代码文件。
.i为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.o为后缀的文件,是编译后的目标文件;
第一步、预处理,生成 .i 的文件[预处理器cpp]
第二步、将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs]
第三步、有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as]
第四步、连接目标代码, 生成可执行程序 [链接器ld]
预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。

gcc 参数解释
-M
生成文件关联的信息
-MM
和上面的那个一样,但是它将忽略由#include造成的依赖关系。
-MMD
和-MM相同,但是输出将导入到.d的文件里面。
-D 
后面直接跟宏命,相当于定义这个宏,默认这个宏的内容是1。例如,-DDEBUG 定义DEBUG宏,-Dprivate=public -Dprotected=public定义了#define private public;#define protected public;
-I
指定头文件路径(相对路径或觉得路径,建议相对路径)
-MF File 
当使用了 ‘-M’ 或者 ‘-MM’ 选项时,则把依赖关系写入名为 ‘File’ 的文件中。若同时也使用了 ‘-MD’ 或 ‘-MMD’,’-MF’ 将覆写输出的依赖文件的名称
-o
选项-o用于指定要生成的结果文件,后面跟的就是结果文件名字。o是output的意思,不是目标的意思。结果文件可能是预处理文件、汇编文件、目标文件或者最终可执行文件。
-c 
使用-c选项可以只激活预处理,编译,和汇编,但是不进行链接。也就是他只把程序做成obj文件。只将源文件编译为 object 文件(*.o)。
-S
只激活预处理和编译,就是指把文件编译成为汇编代码。他将生成 .s 的汇编代码.
-E
只激活预处理,这个不生成文件。
编译过程表示: *.c -> *.i -> *.s -> *.o -> *.out
gcc -E test.c -o test.i
gcc -S test.c -o test.s
gcc -c test.c -o test.o
gcc test.c -o test.out

9.vi中的命令
:set number
显示行号
:/字符串
搜索字符串

10.grep命令
1)搜索build.1645845083.432484.log文件中的ccache字符串,-n搜索的结果显示行号
grep -n 'ccache' build.1645845083.432484.log
2)搜索当前test目录下的文件中的ccache字符串,-r表示在test目录下搜索,并且是递归搜索,-n搜索的结果显示行号
grep -rn 'ccache' ./test
3)同2)加上-i表示不区分大小写
grep -irn 'Ccache' ./test
4)总结 -irn目录或者文件都可以
grep -irn 'ccache' 目录或者文件

11.find和grep联合使用,搜索build*文件名中的ccache字符串,切记不可加-r
find ./test -name "build*" | xargs grep -in 'ccache'
12.find和gn联合使用,搜索gn文件,然后对搜索到的结果使用gn format命令
find /home/mmi/master/foundation/multimodalinput/input/ -name "*.gn" | xargs prebuilts/build-tools/linux-x86/bin/gn format

13.VMware磁盘扩展
1)https://blog.csdn.net/weixin_36128337/article/details/116991868
2)pvcreate /dev/sda4
3)pvdisplay
4)vgextend ubuntu-vg /dev/sda4
5)vgdisplay
6)df -hT
7)lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
8)resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

14.linux解压
1)tar -xf 解压文件名.tar
1)tar -zxvf 解压文件名.tar.gz