ubuntu一些好用的开发工具及其配置

1 终端模糊搜索fzf

https://github.com/junegunn/fzf
输入某命令,比如 conda ,按下ctrl+R,会显示和该命令匹配的历史命令的列表
在这里插入图片描述
有了这个工具再也不用记忆太复杂的命令,只需要知道大概几个单词,输入即可搜索。
其搜索源来自于 vim ~/.zsh_history, 这个文件被fzf工具创建,其会记录所有terminal输入过的命令。

2 bash的最佳替代品 —— Oh-My-Zsh

https://github.com/zeus911/blog-3/blob/master/others/install-and-use-oh-my-zsh.md

3 GitHelper私货工具

文件1:git_helper.py

import click
import subprocessdef run_git_command(*args):subprocess.run(['git', *args])@click.group()
@click.option('--helper', is_flag=True, help='Display help information')
def git_helper(helper):if helper:click.echo('Usage:')click.echo('start <branch_name> --remote_branch=specific_remote_branch_name: ''Fetches the specified remote branch, then creates a local branch with this name based'' on the fetched branch. If remote_branch is not specified, it defaults to master.')click.echo('sync --remote_branch=specific_remote_branch_name: Rebases the current local ''branch onto the specified remote branch. If not specified, defaults to rebase onto ''master.')returndef fetch(remote_branch):run_git_command('fetch', 'origin', remote_branch)@git_helper.command()
@click.argument('branch_name')
@click.option('--remote_branch', default='master',help='Specify the remote branch, default is master')
def start(branch_name, remote_branch):fetch(remote_branch)run_git_command('checkout', '-b', branch_name, f'origin/{remote_branch}')@git_helper.command()
@click.option('--remote_branch', default='master',help='Specify the remote branch, default is master')
def sync(remote_branch):fetch(remote_branch)run_git_command('rebase', f'origin/{remote_branch}')if __name__ == '__main__':git_helper()

文件2:git_helper.sh

#!/usr/bin/zsh
alias git_helper="python /path/to/git_helper.py"alias g_sync="git_helper sync"
alias g_start="git_helper start"alias g_delete='git branch -D'
alias gst='git status'
alias gsc='git add . && git commit'
alias gc='git checkout'
alias gb='git branch --list | cat'

在.bashrc或者.zshrc中添加

source path/to/git_helper.sh

使用方法

  • 创建分支
# 将会以{REMOTE_BRANCH_NAME}为base,在本地创建一个名字为{YOUR_BRANCH_NAME}的与其相同的分支。如果不指定--remote_branch参数,将默认以远程master为base创建本地分支。
g_start YOUR_BRANCH_NAME --remote_branch REMOTE_BRANCH_NAME
  • 同步分支Sync或者说rebase当前分支
# 将当前所在分支sync到指定的{REMOTE_BRANCH_NAME}分支上(本质是rebase),如果不指定默认sync到master分支
g_sync --remote_branch REMOTE_BRANCH_NAME
  • 其他简单命令
g_delete YOUR_BRANCH_NAME # 删除指定分支(不能删除当前分支)
gst # 相当于 git status
gsc # 相当于 git add . && git commit
gc YOUR_BRANCH_NAME # 切换到指定分支,相当于 git checkout
gb # 列出当前所有分支

借助g_start, g_sync, gsc, gc 这四个命令即可覆盖99%的git日常使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3267852.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

基于SVPWM的霍尔传感器FOC实现过程

FOC算法笔记 起源&#xff1a;使用ST WorkBench配置的HALL BLDC控制算法抖动严重。 ST的电机控制算法&#xff0c;代码非常高端大气&#xff0c;值得学习。 HAL库与LL库混用&#xff0c;效率很高。很多中断回调都直接重写了&#xff0c;没有使用HAL库那一套。 只是好多地方…

JavaScript关键词

JavaScript 关键词 JavaScript 语句常常通过某个关键词来标识需要执行的 JavaScript 动作。 下面的表格列出了一部分将在教程中学到的关键词&#xff1a; 关键词 描述 break 终止 switch 或循环。 continue 跳出循环并在顶端开始。 debugger 停止执行 JavaScript&…

matplotlib 画图函数,最常用的

并排显示2个图片 import os import numpy as np from PIL import Image import matplotlib.pyplot as pltimage1 Image.open(a.png) image2 Image.open(a2.png)# Create a figure with two subplots (1 row, 2 columns) fig, axes plt.subplots(1, 2, figsize(10, 5))# Di…

双非二本毕业生如何进入嵌入式系统领域?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 二本的话学历上会吃点亏…

docker Docs相关使用文档链接

Docker Docshttps://docs.docker.com/ docker compose | Docker Docshttps://docs.docker.com/reference/cli/docker/compose/docker | Docker Docshttps://docs.docker.com/reference/cli/docker/

axios请求大全

本文讲解axios封装方式以及针对各种后台接口的请求方式 axios的介绍和基础配置可以看这个文档: 起步 | Axios中文文档 | Axios中文网 axios的封装 axios封装的重点有三个&#xff0c;一是设置全局config,比如请求的基础路径&#xff0c;超时时间等&#xff0c;第二点是在每次…

MySQL零散拾遗(四)--- 使用聚合函数时需要注意的点点滴滴

聚合函数 聚合函数作用于一组数据&#xff0c;并对一组数据返回一个值。 常见的聚合函数&#xff1a;SUM()、MAX()、MIN()、AVG()、COUNT() 对COUNT()聚合函数的更深一层理解 COUNT函数的作用&#xff1a;计算指定字段在查询结果中出现的个数&#xff08;不包含NULL值&#…

PostgreSQL 中如何重置序列值:将自增 ID 设定为特定值开始

我是从excel中将数据导入&#xff0c;然后再通过sql插入数据&#xff0c;就报错。 需要设置自增ID开始值 1、确定序列名称&#xff1a; 首先&#xff0c;需要找到与的增字段相关的序列名称。假设表名是 my_table 和自增字段是 id&#xff0c;可以使用以下查询来获取序列名称…

H264编码标准环路滤波原理

方块效应产生原因 原因 1&#xff1a;最重要的一个原因是基于块的帧内和帧间预测残差的 DCT 变换。变换系数的量化过程相对粗糙&#xff0c;因而反量化过程恢复的变换系数带有误差&#xff0c;会造成在图像块边界上的视觉不连续。原因 2&#xff1a;其次原因自于运动补偿预测。…

元素标签的attr属性的巧妙利用(值得收藏)

前言 需求如图&#xff1a; 虽然可以通过一个标签&#xff0c;直接赋值&#xff0c;然后通过定位也能实现需求;但是另一种方式更巧妙&#xff0c;有时候可以通过少量代码实现多样的需求&#xff0c;把一个元素展示在盒子上的方法&#xff0c;通过使用元素的attr属性&#xf…

【漏洞复现】APP分发签名系统index-uplog.php存在任意文件上传漏洞

漏洞描述 APP分发签名系统index-uplog.php存在任意文件上传漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵…

刷题了:232.用栈实现队列| 225. 用队列实现栈 |20. 有效的括号 | 1047. 删除字符串中的所有相邻重复项

232.用栈实现队列 题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/description/ 文章讲解:https://programmercarl.com/0232.%E7%94%A8%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97.html 视频讲解:https://www.bilibili.com/video/BV1nY4y1w7VC/?sp…

[Meachines] Lame smbd3.0-RCE

信息收集 IP AddressOpening Ports10.10.10.3TCP:21,22,139,445,3632 $ nmap -p- 10.10.10.3 --min-rate 1000 -sC -sV 21/tcp open ftp vsftpd 2.3.4 |_ftp-anon: Anonymous FTP login allowed (FTP code 230) | ftp-syst: | STAT: | FTP server status: | …

k8s v1.30 完整安装过程及CNI安装过程总结

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

union的特性和大小端

一、union在c和c语言中的特性 1.共享内存空间&#xff1a;union的所有成员共享同一块内存空间。意味着在同一时刻&#xff0c;union 只能存储其成员 中的一个值。当你修改了union中的一个成员&#xff0c;那么其它成员的值也会被改变&#xff0c;因为它们实际上都是指向同一块…

【Blockly图形化积木编程二次开发学习笔记】5.自动保存与恢复

文章目录 引用使用 引用 <script src"./blockly/appengine/storage.js"></script>使用 <script>window.setTimeout(BlocklyStorage.restoreBlocks, 0); // 从本地存储中恢复块BlocklyStorage.backupOnUnload(); // 用户离开页面时自动将块备份到…

Reactor 模型 和 Proactor 模型

在网络IO设计中&#xff0c;有两种高性能模型&#xff1a;Reactor模型和Proactor模型。 Reactor基于同步IO模式&#xff0c;Proactor基于异步IO模式。 不过&#xff0c;无论是 Reactor&#xff0c;还是 Proactor&#xff0c;都是一种基于「事件分发」的网络编程模式&#xff0…

MOZHE SQL手工注入漏洞测试(MySQL数据库)

主界面URL没有参数&#xff0c;无法判断是否有注入点 点击公告 【浏览器不便于查看返回包可以用burp】 测试URL 参数后加上单引号&#xff0c;报错&#xff0c;说明存在注入点 http://124.70.64.48:40021/new_list.php?id1 获取表列数 order by 4 返回200 order by 5 …

怎样在 Nginx 中配置基于请求客户端输入方式的路由?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 怎样在 Nginx 中配置基于请求客户端输入方式的路由一、Nginx 路由的基础概念二、理解客户端输入方式三、基于用户代理的路由配置四、基于请求头的路由配置五、基…

MATLAB基础:数组及其数学运算

今天我们继续学习MATLAB中的数组 我们在学习MATLAB时了解到&#xff0c;MATLAB作者秉持着“万物皆可矩阵”的思想企图将数学甚至世间万物使用矩阵表示出来&#xff0c;而矩阵的处理&#xff0c;自然成了这门语言的重中之重。 数组基础 在MATLAB中&#xff0c;数组是一个基本…