chown
是一条在Unix系统中用于设置文件所有者和文件关联组的命令。 需要超级用户的权限才能执行此命令。只有超级用户和属于组的文件所有者才能变更文件关联组。非特权用户(非超级用户)如需要设置关联组可能需要使用chgrp命令。
# chown rob:developers strace.log
把strace.log的所有者设置为rob,文件的关联组设置为developers。
find指令的使用
其语法为:find [起始目录] 寻找条件 操作
find /etc -name a.txt 在/etc目录及其子目录里面查找a.txt文件
find -name a.txt 在当前目录及其子目录里面查找a.txt文件(不添加目录则对应当前目录)
find -name april* 在当前目录下查找以april开始的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
grep指令的使用
grep -r -n "要查找的东西" * 在当前目录及子目录下面查找
-c:只输出匹配行的计数。
-i:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
adb指令的使用
安装apk
1.adb remount
2.adb push "你要安装的apk全路径" system/app
或
1.adb install -r "你要安装的apk全路径"
git指令
git配置文件
/etc/gitconfig: 所有用户普遍适用的、系统的,git config --system选项
~/.gitconfig: 只适用该用户, git config --global选项
.git/config当前项目.git目录中,只适用当前项目, .git/config
每一层都覆盖上一层,也就是优先级 .gitconfig < ~/.gitconfig < /etc/gitconfig
下载代码
ssh git@172.16.98.152 列出代码库
git clone git@172.16.98.152:PXA968 FWS810(重命名为FWS810)下载代码
使用Gerrit时代码下载
ssh gerrit gerrit ls-projects 列出有权限访问的所有版本库
git clone gerrit:/MSM8x25-ICS-AP 下载代码MSM8x25-ICS-AP
如果使用git clone git@172.16.98.152:MSM8x25-ICS-AP下载代码 可以使用git config remote.origin.url gerrit:/MSM8x25-ICS-AP 来更改服务器
git push origin HEAD:refs/for/项目名称 提交代码
切换分支
git branch -a 查看这个版本的分支
git checkout -b FWS920_b1 origin/FWS920_b1 创建一个新的分支并切换到新的分支上面
git checkout FWS920 切换到FWS920这个分支下面
git branch -D FWS920 删除FWS920这个分支(不能在该分支下面进行该操作)
提交代码流程
git status 查看修改状态
git add . 提交新添加的所有文件
git commit 代码提交到本地
git pull --rebase 更新本地分支
git push 提交代码
还原修改
git checkout -- 文件整个路径 还原文件
git reset --hard 还原所有修改
git reset --soft HEAD^ 提交commit发现有问题之后还原到未修改之前的状态
删除未被追踪的文件
git clean -df 删除文件和目录(删除git status命令中所有untracked file,包括文件和目录)
git clean -dn 这个命令可以看看有哪此文件和目录会被删
-n 显示将要删除的文件和目录
保存修改
git stash 保存当前修改
git stash list 显示暂存列表
git stash apply 恢复暂存列表最上面的一个
git stash apply stash@2 恢复指定暂存
git stash clear 清除stash
修改配置
git config --global core.editor vim 修改默认文本编辑器
git config --global commit.template $HOME/.gitmessage.txt 修改提交模板
git config --global user.name "John Doe" 配置用户名
git config --global user.email johndoe@example.com 配置邮件地址
对比文件
git difftool "文件名" 和服务器的该文件进行对比(文件名要路径)
git difftool HEAD 直接和服务器代码进行对比(所有代码)
其它
gedit .git/info/exclude 查看修改状态时的过滤文件
git log 查看版本最新状况(谁提交的)
repo指令
切换分支
repo init -m i800v-2050.xml((如果是新建目录,repo init -u gitserver:manifests.git -m i800JB-2050.xml))
repo sync -j8
repo start i800v --all
repo list 可以查看repo所管理的projects
repo status 可以查看本地修改的文件
repo branch 可以查看每一个project所有的分支名称
repo start 创建本地的工作分支,比如:repo start 分支名 --all为所有project创建分支,repo start 分支名 kernel 为kernel project创建分支名
repo abandon 删除分支,用法和start差不多。比如:已经为kernel project创建了i800JB分支,用repo abandon i800JB kernel 命令,可以删除kernel project中的i800JB分支。如果执行repo abandon i800JB --all就会删除所有project上面名字为i800JB的分支。执行完repo abandon后,project会工作在no branch状态,还需手工start一个分支。
repo forall 为所有project执行命令。比如:repo forall -c git tag XXXX_XXX_V1.0_SH 代表为每一个project加入tag
repo init 初始化repo库,-u 代表url,-b代表branch,-m 代表manifest文件。比如:repo init -u gitserver:manifests.git -m i800JB.xml 代表的是从gitserver服务器上的manifests.git库中,选择i800JB.xml作为manifest文件。
这里没有-b,是由于目前所建立的manifests.git库中,仅有一个master分支。没有-b选项,默认是从manifests.git库的HEAD指针处取得manifest文件
如果没有-m选项,则代表使用的默认的manifest文件,默认的文件名称为default.xml
repo overview 查看project里面没有提交的记录。
repo upload 的时候,请用repo upload --re=REVIEW人员(比如zan.wang),系统会自动发邮件告知REVIEW人员,
可以从device/qcom/msm8625/msm8625.mk文件里面看出当前的Project是哪个项目
可以在device/qcom/msm8625/这个目录下面使用git checkout -b H901 phicomm/H901创建分支,比使用repo start H901 --all更容易理解
gcc指令
当你不用任何选项编译一个程序时, GCC 将会建立(假定编译成功)一个名为 a.out 的可执行文件. 例如, 下面的命令将在当前目录下产生一个叫 a.out 的文件:
gcc test.c
./a.out
你能用 -o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out. 例如, 将一个叫 count.c 的 C 程序编译为名叫 count 的可执行文件, 你将输入下面的命令:
gcc -o count count.c
./count
gdb
gcc -g -o tst test.c
编译生成执行文件
gdb tst
启动GDB
(gdb) l
<----- l命令相当于list,从第一行开始例出原码。
enter键
直接回车表示,重复上一次命令
(gdb) break 16 <-------------------- 设置断点,在源程序第16行处。
(gdb) break func <-------------------- 设置断点,在函数func()入口处。
(gdb) info break <-------------------- 查看断点信息。
(gdb) r <--------------------- 运行程序,run命令简写 ,在断点处停住
(gdb) n <--------------------- 单条语句执行,next命令简写。
(gdb) s <--------------------- 单条语句执行如果遇到函数则进入函数体内,step命令简写。
(gdb) c <--------------------- 继续运行程序,continue命令简写。
(gdb) p i <--------------------- 打印变量i的值,print命令简写。
(gdb) finish <--------------------- 退出函数。
(gdb) q <--------------------- 退出gdb。
(gdb) help
List of classes of commands:
aliases -- Aliases of other commands
breakpoints -- Making program stop at certain points
data -- Examining data
files -- Specifying and examining files
internals -- Maintenance commands
obscure -- Obscure features
running -- Running the program
stack -- Examining the stack
status -- Status inquiries
support -- Support facilities
tracepoints -- Tracing of program execution without stopping the program
user-defined -- User-defined commands
Type "help" followed by a class name for a list of commands in that class.
Type "help" followed by command name for full documentation.
Command name abbreviations are allowed if unambiguous.