
s2: 实用工具
涛歌依旧
毕业后就职于华为和腾讯
展开
-
git 删除本地分支和远端分支的命令
最近,居然差点忘了git 删除本地分支和远端分支的命令,究竟是什么原因呢?说白了,就是界面点击太多了,点点点后,就忘了命令了,来备忘一下:1. 删除远端分支(慎用)git push origin --delete BranchName2. 删除本地分支git branch --delete BranchName...原创 2022-06-19 23:27:30 · 649 阅读 · 0 评论 -
如何让recv有点脾气?
大家好,我是涛哥。今天,我们来聊聊TCP网络编程中的recv函数。我们知道,recv是一个阻塞的函数,没有收到数据的时候,会傻傻地等待数据。那么,怎么让recv函数有点脾气,而不傻傻地等待呢?select函数可以顶上。接下来,我们实战一下,加深对网络编程的理解。 涛哥手绘一.没脾气的recv函数当recv函数没脾气时,仅会傻傻地等待,直到地老天荒。我们看下服务端程序,并先让服务端...原创 2022-02-13 21:46:48 · 412 阅读 · 0 评论 -
漫话Redis源码之一
static void (*zmalloc_oom_handler)(size_t) = zmalloc_default_oom;/* Try allocating memory, and return NULL if failed. * '*usable' is set to the usable size if non NULL. */void *ztrymalloc_usable(size_t size, size_t *usable) { ASSERT_NO_SIZE_OVERFL.原创 2021-11-21 22:50:51 · 1745 阅读 · 0 评论 -
漫话Redis源码之二
/* Decode the encoded length pointed by 'p' */static unsigned int zipmapDecodeLength(unsigned char *p) { unsigned int len = *p; if (len < ZIPMAP_BIGLEN) return len; memcpy(&len,p+1,sizeof(unsigned int)); memrev32ifbe(&len...原创 2021-11-21 22:53:30 · 818 阅读 · 3 评论 -
mac securecrt记住密码的方法
刚安装securecrt时,每次都需要输入密码,挺烦的。 如下方式可以避免重复输入密码: 菜单preferences--general,找到mac options。然后去掉Use KeyChain选项,这样每次连接服务器后就会自动保存密码了。不同的版本可能这个选项的位置不同,只要记住勾选掉Use keyChain选项就可以了。...原创 2020-07-05 10:42:39 · 3654 阅读 · 1 评论 -
go程序中执行命令------类似于C/C++的system
看程序:package mainimport ( "fmt" "os/exec")func test() { cmd := exec.Command("sh", "-c", "nslookup www.baidu.com") bytes, err := cmd.Output() if err != nil { f...原创 2018-10-13 08:49:01 · 7082 阅读 · 1 评论 -
Mac - SecureCRT安装(试了一下,靠谱)
转载地址:https://blog.youkuaiyun.com/sdoyuxuan/article/details/78745411 第一步下载 SecureCRT安装包和破解脚本下载 http://pan.baidu.com/s/1c1D5Ala 破解脚本 securecrt_mac_crack.pl安装包scrt-7.3.7-1034.osx_x64.dmg ...转载 2018-10-02 21:50:43 · 14869 阅读 · 8 评论 -
用go来玩buf---hex的转换
buf---hex的转换很常见, 来用go练练手:package mainimport ( "fmt" "encoding/hex")func main(){ sli := []byte("abc") str := hex.EncodeToString(sli) fmt.Printf("%T\n", sli) fmt.Prin...原创 2018-08-25 20:11:33 · 5474 阅读 · 1 评论 -
lsof | grep deleted 处理磁盘已满但找不到对应的大文件的问题
遇到这样一个问题: df -h查磁盘满了, 但又找不到的大文件, 什么原因? 百思不得其解, 于是请教。 原来,进程打开了一个大文件, 被删除后, 并没有释放。 重启进程后, 才释放。 用lsof | grep deleted查一下即可知道是哪个进程。 原来如此。...原创 2018-06-13 23:07:10 · 30259 阅读 · 18 评论 -
利用linux的dd命令生成指定大小的文件
有时候需要文件来测试,需要把文件设置为指定大小,在linux中很容易搞起:ubuntu@VM-0-15-ubuntu:~/taoge/cpp$ dd if=/dev/zero of=zeroFile bs=1K count=11+0 records in1+0 records out1024 bytes (1.0 kB, 1.0 KiB) copied, 0.000238263...原创 2018-06-12 23:40:22 · 12689 阅读 · 2 评论 -
在awk中执行system命令------太有用了
有这样一个临时需求: 在a.txt文件中有一万行字符串, 而二进制文件test能解密任何一行, 格式为./test decrypt xxx, 现在要把a.txt的所有行解密出来, 存放在b.txt, 怎么搞? 我一开始的思路是: 写程序逐行读取a.txt, 然后在程序中循环执行system("./test decrypt xxx"), 看看, 这是多个SB的事情啊。 为什么不原创 2017-12-05 19:23:38 · 19326 阅读 · 8 评论 -
csdn博客栏目装修大全------如何植入“微信打赏”、“微信公众号”等
转载地址: http://blog.youkuaiyun.com/xmtblog/article/details/50600953 过年了,各公司都在晒年终奖、办年会。据说小米公司年会中,有免费装修房子的。我们这些可怜的程序员只能想办法装修装修自己的csdn博客了。那么作为csdn的一个忠实用户,今天我教大家如何免费的对自己的csdn博客进行装修。转载 2017-09-03 20:05:34 · 8411 阅读 · 2 评论 -
非常好用的php在线工具 http://www.dooccn.com/php/ (还包括其它很多语言, 棒棒哒!)
推荐一款非常好用的php在线工具 http://www.dooccn.com/php/, 如下:原创 2017-08-05 19:30:37 · 17610 阅读 · 7 评论 -
用linux curl命令来测试http/https各部分(dns,tcp,ssl等)的耗时
来看下如下linux命令:curl -X POST -w '\n\n time_namelookup: %{time_namelookup} time_connect: %{time_connect} time_appconnect: %{time_appconnect} time_pretransfer: %{time_pretran...原创 2018-10-13 08:43:12 · 17199 阅读 · 2 评论 -
解决`向github提交代码是老要输入用户名密码`的问题 (试了一下,靠谱)
转载地址:https://blog.youkuaiyun.com/itkingone/article/details/77538333 在命令行输入命令:git config --global credential.helper store☞ 这一步会在用户目录下的.gitconfig文件最后添加: [credential] helper = store现在push你的...转载 2018-10-19 20:52:08 · 7186 阅读 · 1 评论 -
go的依赖包管理方式: 1. go get 2. dep/vendor 2. go mod
不太喜欢写C/C++的makefile 来说说go的依赖包管理的几种方式: 1. go get xxx (官方) 拉下来的包会放在GOPATH/src目录下,如果没有src,那么会生成src目录, 简单。 2. dep/vendor(准官方,非官方) 要求项目工程的目录必须位于GOPATH/src目录或者其子...原创 2019-08-30 22:36:08 · 4665 阅读 · 10 评论 -
SecureCrt的Command(Chat) Window向多个窗口发相同命令
SecureCrt的Command(Chat) Window可以同时向多个窗口发相同命令, 在处理多机器操作时,挺有用的:原创 2019-06-28 23:01:09 · 4443 阅读 · 1 评论 -
Validate branches Cannot Create: This merge request already exists
在gitlab提交代码进行merge request, 碰到: 具体原因: 此次合并请求已经被别人提交过了(尚未merge进去) 处理方法: 先处理之前提交过的merge request...原创 2019-08-10 07:49:32 · 13525 阅读 · 2 评论 -
我常用的linux命令大全
本文介绍我常用的linux命令大全。知识和经验在于积累和总结。1. cd cd / 切换到根目录 cd 或者cd ~ 切换到当前用户主目录, 其中~表示用户主目录 cd .. 切换到上级目录 cd ../.. 切换到上上级目录 cd /mnt/sdcard 切换到/mnt/sdcard目录...原创 2014-05-02 23:52:48 · 9487 阅读 · 8 评论 -
git常用命令持续更新中
git常用命令备忘, 遇到一个记一个,不断更新ing 0. git clone xxx 克隆远端代码到本地(一般只在第一次执行) 1. 远端创建新分支后,更新远端分支列表到本地: git remote update origin --prune 另外,如果远端新建了一个分支testBranch, 而本地没有这个分支,可以通过如下命令更新: git checkout -btestBranch ori原创 2018-12-22 08:38:41 · 4888 阅读 · 9 评论 -
git 切换分支时会把未add或未commit的内容带过去
git 切换分支时会把未add或未commit的内容带过去, 这一点值得注意。 为什么呢? 因为未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于所有分支而言, 工作区和暂存区是公共的。 要想在分支间切换, 又不想又上述影响, 怎么办呢? git stash搞起。要注意,在当前分支git st...原创 2018-11-24 21:12:58 · 24058 阅读 · 26 评论 -
sublime text 如何在新标签中打开文件
每次打开Sublime文件,在tab中总是先关掉了旧文件, 烦人。查资料, 是说需要修改open_files_in_new_window, 试了一下, 不生效。 后来才发现, 应该修改preview_on_click为false. 步骤如下: 进入Sulime的Preferences, 然后去Settings中修改preview_on_click为false(左边无...原创 2018-11-04 20:44:31 · 6890 阅读 · 6 评论 -
按大小统计目录、文件大小的命令:du -a --max-depth=1 | sort -rn | awk '{print $2}' | xargs du -sh
你肯定会遇到这样的时候, linux机器上的磁盘太满了, 想删除一些没用的。 好, 那先用df -h命令查下磁盘情况。 问题是, 怎么知道哪些目录占据了较大的空间呢? 直接用 du -a --max-depth=1 | sort -rn | awk '{print $2}' | xargs du -sh 搞起吧! 解释下: du原创 2017-03-21 22:47:41 · 13177 阅读 · 2 评论 -
sort | uniq -c | sort -rnk 1 在数据统计中的重要用途------按频率排序
我们来看看a.txt文件:taoge@localhost Desktop> cat a.txt1234561111456123123123taoge@localhost Desktop> 先对其排序(按串排序):taoge@localhost Desktop> cat a.txt | sort1111112312312323456456原创 2016-11-20 13:02:59 · 25397 阅读 · 6 评论 -
awk、sort等命令搞定几十行代码C++做的事------用好工具, 事半功倍
在后台开发中, 经常遇到服务波动的情况, 一般来说, 在监控系统中可以看到这种波动, 那是否与我们机器上的错误log对应起来了呢? 我们有必要对机器上的错误log进行统计! 规范log中一般会有时间, 假设时间格式为: xxx[2016-11-20 hh:mm:ss]yyy, 那么怎样统计错误log是否集中在某以时间段呢? 写个C++程序吧: 结果:原创 2016-11-20 12:35:19 · 8009 阅读 · 3 评论 -
强烈推荐www.wikipedia.org英文版
那一年, 有个概念一直搞不懂, 后来师姐建议我在www.wikipedia.org上搜索, 并看英文版, 我当时用了, 果然很快就搜索到了自己要想的东西, 而且非常准确。 最近在写一些与gdb调试core有关的问题, 于是想看看www.wikipedia.org的英文版上是怎么介绍了, 搜了一下之后, 发现相当准确, 相当靠谱。 仅从语言的角度来看, 英语更加严谨, 更适合准确表原创 2015-11-15 10:44:16 · 29489 阅读 · 4 评论 -
linux学习与实战:https://www.shiyanlou.com (不需要你有linux机子, 也不需要安装linux虚拟机)
那一年,为了学习几个简单的linux命令, 学学gcc编译, 还专门倒腾了个虚拟机, 各种安装, 各种egg疼, 痛苦的经历历历在目。 今天, 我来推荐一个在线学习linux的网站, 希望对初学者有用。 先说明一下, 不需要注册哈。 方法是:登录qq, 然后登录https://www.shiyanlou.com网站(登录该网站的时候, 可以以qq方式进行登录, 这样就不用注册了原创 2015-09-20 16:19:22 · 11406 阅读 · 3 评论 -
利用netstat和awk命令来统计网络socket的状态
利用netstat和awk命令来统计网络socket的状态, 话不多说, 直接上菜:原创 2017-07-01 16:00:36 · 7929 阅读 · 1 评论 -
“救命的” svn up -r xxx
某某说, 大家要经常更新代码, 以便尽早发现配置库中代码的异常。 我们知道, 当项目组人数稍多, 提交代码时候,如果没有遵循严格的本地构建, 势必会将错误代码提交到配置库中, 或者漏提交一些文件。 事实上, 大家也经常搞错, 配置库中的代码也经常有问题, 这样的话, 如果常常更新, 错误的代码就进入了自己的工作目录, 非常影响自己的工作效率。 在这一点上,我是深有体会的。 遇原创 2014-12-18 00:17:31 · 10588 阅读 · 1 评论 -
大餐分享: Windows环境下学习linux的命令行,编辑器vim, 脚本和Git的绝佳工具---msysGit(才十几M)
之前介绍过Windows下的msysGit工具, 很强大, 现在来总结一下其功能:原创 2014-08-10 19:17:04 · 8668 阅读 · 1 评论 -
在Windows下如何练习Linux下的vim? (为即将步入IT行业的兄弟和妹子介绍一个工具)
搞linux开发的人都应该清楚,原创 2014-08-10 18:33:46 · 10886 阅读 · 1 评论 -
Source Insight : 程序员最得心应手的代码阅读和编辑工具(高效)
很多人搞不清代码文件与工程文件的关系,这个我就不想多说了。我只想推荐一款程序员必备的代码阅读和编辑工具:Source Insight. 没有装Source Insight的程序员,赶快装一个,体验一下吧。 Source Insight很强大,几乎没有它做不到的,只有你想不到的。找几个代码文件,然后Add Tree一下,就建立了代码文件对应的Source Insight工程文件,后缀名为.原创 2013-10-19 23:28:18 · 9081 阅读 · 1 评论 -
Notepad++ 是程序员的必备利器之一
Notepad++是一款及其强大而又及其简洁的编辑器。只要你能想得到,只要你需要,只要客观上可以实现的功能,它都有,还犹豫什么呢?赶快用吧,如果遇到你需要但你没有用过的功能,赶快查阅,Notepad++肯定提供了。原创 2013-10-19 22:41:12 · 10000 阅读 · 1 评论 -
程序员没用过Beyond Compare?你out了
Beyond Compare是一款“差异比较”的利器,做程序开发的人,怎能不用这个东西?下面来简单实验一下几个基本操作。(假设文件夹a在左, b在右侧) 1. 在a文件夹中建立a.txt, 输入hello world, 在b文件夹中建立b.txt, 输入hello, 建立c.txt, 输入world, 然后利用beyond compare来比较文件a和b的差异。原创 2013-10-02 22:18:21 · 9482 阅读 · 0 评论 -
已经两次被Source Insight中调用关系的自动跳转功能给坑了, 每次浪费较长时间
已经两次被Source Insight中调用关系的自动跳转功能给坑了, 每次浪费较长时间。 在本文中, 我要强调: 虽然Source Insight很方便, 但有时候不可太相信其指示的自动跳转调用关系。 大家应该有这个印象, 在Source Insight中, 经常跟踪代码调用关系, 有时候跳转一下, 会弹出好几处的被调用地方供我们选择, 此时Source Insight茫然原创 2015-11-28 09:30:02 · 15164 阅读 · 6 评论 -
利用svn的blame功能查出代码的每一行是谁写/改的
以前我还没有用过svn的blame功能, 但最近看到一哥们用, 我才发现自己一直不会这个重要的小功能。 blame的意思是责怪, 实际上就是追责咯, 它可以查出代码的每一行是谁写/改的。 咱们以Windows上的Tortoise SVN为例来使用svn的blame功能: Step1: 鼠标选中svn下载的某文件 Step2: 进入Tortois原创 2015-12-06 23:14:34 · 26454 阅读 · 12 评论 -
博客导出工具------牛逼
转载地址:http://blog.youkuaiyun.com/blogdevteam/article/details/27084771 备注: 我试用了一下, 牛逼。 有很多朋友在遇到一些好博客文章的时候,都想把它们下载到电脑上,转换成某些格式的文档,以方便存储、阅读。 研发就这些需求,特开发了C#版【博客导出工具】。希望可以帮到大家~转载 2015-12-12 13:06:49 · 9110 阅读 · 2 评论 -
log调试利器------__TIME__, __FILE__, __FUNCTION__, __LINE__, __VA_ARGS__搞起
来来来, 一起写个比printf更详细的log api接口:#include #include #include using namespace std;#define DEBUG_LOG(...) debug_log("DEBUG", __TIME__, __FILE__, __FUNCTION__, __LINE__, __VA_ARGS__)void debug_log(原创 2016-11-13 00:49:59 · 8756 阅读 · 0 评论 -
平时积累的重要性
为什么要积累?大话扯多了没有意思, 说说小话吧。 晚上11点的时候, 同事反馈一个问题, 外网有几个用户投诉了, 要赶紧看看。 看了一下, 是个概率行问题。 根据现有流水和log, 有一个地方需要确认, 貌似只能看代码了? 而我是不太喜欢这么做的, 鉴于代码只是本地操作, 那就拷贝出来测试吧。 但是, 其中会用到我之前写的一个函数:void unixTime2Str(int原创 2016-10-31 07:41:22 · 9700 阅读 · 1 评论 -
svn中的revert和update
转载地址:http://blog.youkuaiyun.com/njuitjf/article/details/7546189 svn中的revert和update今天有人问到revert和update的问题。刚开始还真被问住了。因为感觉revert和update都可以将本地的copy更新到以前的一个版本,会有什么不同呢?查了些资料,并做了个试转载 2016-08-07 22:50:51 · 11272 阅读 · 1 评论