Git、Shell 
孔子:学而不思则罔,思而不学则殆
Linux命令 
| 命令 | 命令说明 | 
|---|---|
| !? | 匹配最近执行的命令例如!?find | 
| alias | 复杂命令创建别名_例如alias ll='ls -l' | 
| cp -Lvr / htop | 复制时遇到软链接复制真实位置 | 
| history / which * | 历史命令记录、搜索执行文件所在路径 | 
| tar [-zcvf | -zxvf] *.tar.gz | 打包解包压缩文件*为文件名c为.gz格式 | 
| ifconfig/ip addr show | 本机IP地址查看eth0、hostname -I也可以 | 
bash
dd if=/dev/zero of=./1.bin			#可用于查看读写速度
tar -zchvf *.tar.gz --hard-dereference dir		#软链接转原文件
tr -cd 'A-Za-z0-9' </dev/urandom | head -c16	#取随机数16位Or7
for i in $(seq 10); do m=$(expr $i + 10); echo $m; done		#计算
ps aux | sort -k4,4nr | head -n 10 | awk '{print $1"\t"$2"\t"$4}'Windows 
| 命令 | 命令说明 | 
|---|---|
| where * | 加命令、查看命令路径 | 
| shutdown -s -t 60 | Windows延迟60秒关机 | 
| net use * /del /y | 重置网络映射 | 
| netsh winsock reset | Windows重置winsock | 
| tracert * | 路由跟踪命令*为网址 | 
| arp -a | 查询局域网设备及Mac地址[需通信过] | 
| netstat -ano | findstr "5037" | 查看端口使用情况、这里查看的是adb端口 | 
| taskkill /f /im adb.exe | 结束进程、/im+进程名、/pid+进程id | 
点击查看ADB进程清理工具
bash
@echo off 
color a
title Adb Occupy Clear By manosP
echo ---------------------------
echo Detecting Adb Ports...
for /F "usebackq tokens=5" %%a in (`"netstat -ano | findstr "5037""`) do (   
	if not "%%a" =="0" call :ReleasePort %%a
)
echo ---------------------------
echo adb Occupy Clear Success
echo ---------------------------
pause
exit
:ReleasePort
TASKKILL /f /PID %1- 批处理%~字符
在批处理文件中,%i表示第i个命令选项,i可以取值从1到9
| 命令 | 命令说明 | 命令 | 命令说明 | 
|---|---|---|---|
| %~0 | 取文件名[名+扩展名] | %~x0 | 只取文件扩展名 | 
| %~f0 | 取全路径 | %~s0 | 取缩写全路径名 | 
| %~d0 | 取驱动器名 | %~a0 | 取文件属性 | 
| %~p0 | 只取路径[不包驱动器] | %~t0 | 取文件创建时间 | 
| %~n0 | 只取文件名 | %~z0 | 取文件大小 | 
点击查看使用案例
bash
@echo off
color f5
title [File Attrib]--manosP
echo 无后缀名: %~n1 
echo 有后缀名: %~nx1 
echo 绝对路径: %1 
echo 短路径名的绝对路径: %~s1 
echo 驱动器和路径: %~dp1 
echo 驱动器: %~d1 
echo 路径: %~p1 
echo 文件属性: %~a1 
echo 日期/时间: %~t1 
echo 文件大小: %~z1
echo.
echo. 
pause- WSL使用
bash
wsl --list --online								#查看版本
wsl --install Debian							#安装Debian
Debian config --default-user root				# 配置WSL Root用户
net stop LxssManager ; net start LxssManager	# 停止并启动WSL服务Git使用 
- 初次使用
Github Config SSH
bash
ssh-keygen -t rsa -b 8192 -C "xxx@qq.com"		#ssh生成密匙  
default cat ~/.ssh id_rsa.pub Copy Github		#复制公匙到Github Setting  
ssh -T git@github.com							#验证是否成功
git config --global user.name "xxx"				#全局Config
git config --global user.email xxx@qq.com		#全局Config| 命令 | 命令说明 | 
|---|---|
| git init | 初始化Git本地仓库 | 
| git status | 查看仓库提交状态 | 
| git add [文件名] | 添加文件到缓存区、add . 所有文件 | 
| git diff --name-status | 对比所有~文件以及文件夹PS:仅文件名 | 
| git rm [文件名] | 删除文件 | 
| git commit -a -m * | 提交本地更新 *为描述信息 | 
| git push / git pull | 推送或拉取关联线上仓库-f强制 | 
| git clone [--recurse-submodules] [Url] | 拉取github项目、深度--depth 1 | 
- 常用命令
| 命令 | 命令说明 | 
|---|---|
| git branch | 分支操作-a所有分支 -d删除分支 -M重命名 +分支名新建 | 
| git checkout | 切换分支或commit git checkout HEAD 回到最新提交 | 
| git checkout --orphan local | 新建孤立分支没有历史commit | 
| git remote -v | 远程仓库信息Url | 
| git remote rm origin | 删除远程仓库.名 | 
| git rev-list --count --all | 所有提交的commit数量 HEAD | 
| git push origin --delete | 删除远程分支 +远程分支名 | 
| git push -u origin local | 推送本地分支到远程local 加-u与远程分支建立关联 | 
| git log | git reflog | commit日志查看、reflog包含HEAD记录和删除的commit | 
| git reset | reset --mixed | 同样效果、撤销commit及add在缓存区的文件取消暂存 | 
| git reset --soft HEAD^ | 撤销commit、^上个版本^^上2个版本、~n N个commit | 
| git reset --hard HEAD~2 | 撤销2个commit、包含git add .以及所以代码改动回退 | 
| git rm --cached -r * | 文件名或.所有-r递归清除 -f强制删除 --cached暂存区 | 
- 补丁命令
| 命令 | 命令说明 | 
|---|---|
| git diff >> xx.patch | 生成补丁文件git status > x.patch类似 | 
| patch -Np1 --dry-run < xx.patch | 应用补丁-f强制-s静默--dry-run检查并不应用 | 
| patch -d dir -Np1 -f < xx.patch | -d指定工作目录-N文件不存在也尝试应用-R撤销 | 
| git format-patch <r1>..<r2> | 两个之间生成、-1 <r1>单个commit、<r1>某commit以来的修改 | 
diff
# -p0-->a -p1-->frameworks p1忽略第一个目录名
--- a/frameworks/base/services/core/Android.bp
+++ b/frameworks/base/services/core/Android.bp- 模块命令
| 命令 | 命令说明 | 
|---|---|
| git submodule status | 查看项目子模块状态 | 
| git submodule add url localpath | 项目添加子模块 子模块的模块使用init update | 
| git submodule update / deinit | 切换后commit后更新子模块 / 删除 | 
| git submodule update --init --recursive | 已经clone的项目可以下载子模块 | 
- 其他命令
bash
git clone -c core.symlinks=true url		#临时增加参数
git config --global core.symlinks true	#配置全局参数
git restore    #撤销缓存区修改 需要加路径 .当前目录 --staged 撤销目录
git remote set-url origin git@github.com:User/OTA.git	#https To SSH大小判断 
| Linux | 说明 | Windows | 说明 | 
|---|---|---|---|
| -eq | 等于 | EQU | 等于 | 
| -ne | 不等于 | NEQ | 不等于 | 
| -le | 小于或等于 | LEQ | 小于或等于 | 
| -ge | 大于或等于 | GEQ | 大于或等于 | 
| -lt、-gt | 小于、大于 | LSS、GTR | 小于、大于 | 
终端颜色 
- Linux终端echo命令输出彩色显示结果
- 使用方法如下,36m替换为需要的代码
sh
echo -e "\033[36m 天蓝颜色字 \033[0m"| 代码 | 作用 | 代码 | 作用 | 
|---|---|---|---|
| 30m | 黑色字 | 40;37m | 黑底白字 | 
| 31m | 红色字 | 41;37m | 红底白字 | 
| 32m | 绿色字 | 42;37m | 绿底白字 | 
| 33m | 黄色字 | 43;37m | 黄底白字 | 
| 34m | 蓝色字 | 44;37m | 蓝底白字 | 
| 35m | 紫色字 | 45;37m | 紫底白字 | 
| 36m | 天蓝色 | 46;37m | 天蓝底白字 | 
| 37m | 白色字 | 47;37m | 白底黑字 | 
| 代码 | 作用 | 代码 | 作用 | 
|---|---|---|---|
| 0m | 关闭属性 | nA | 光标上移n行 | 
| 1m | 设置高亮度 | nB | 光标下移n行 | 
| 4m | 下划线 | nC | 光标右移n行 | 
| 5m | 闪烁 | nD | 光标左移n行 | 
| 7m | 反显 | y;xH | 设置光标位置 | 
| 8m | 销隐 | s | 保存光标位置 | 
| 2J | 清屏 | u | 恢复光标位置 | 
| ?25l | 隐藏光标 | 30m或40m | 设置前景或背景色 | 
| ?25h | 显示光标 | K | 清除从光标到行尾的内容 |