Git、Shell
孔子:学而不思则罔,思而不学则殆
Linux命令
命令 | 命令说明 |
---|---|
!? | 匹配最近执行的命令例如!?find |
alias | 复杂命令创建别名_例如alias ll='ls -l' |
cp -Lvr | 复制时遇到软链接复制真实位置 |
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 | 清除从光标到行尾的内容 |