-
Git工具-二分查找
背景临时接到一个任务需要用到一位调岗同事的脚本,却发现该脚本被删掉不在仓库中了。幸好该仓库用了VCS-Git进行管理,可以通过找到在什么节点被删除从而恢复脚本。但由于经过了一年多的提交,中间掺杂了5K+多个提交记录。git bisect就在我脑子中冒了出来。二分查找二分查找(binary search-又叫:折半查找),是一种在已知有序阵列中搜寻某一特殊元素的高效查找算法,其时间复杂度为O(log2n)。二分法的原理很简单:对有限区间进行对半拆分,确定问题是在节点的前半部分还是后半部分,然...…
-
浅尝`Alpine Docker`
Alpine Linux 是一个面向安全、非常轻量级Linux发行版(整个操作系统镜像一共120M+)。它基于musl libc 和 busybox减小了系统的体积和运行时资源消耗。由于其安全、轻量且功能又相对完善,因此深受开源社区的喜爱。Alpine Docker 镜像继承了 Alpine Linux的这些优势,相比其它 Docker 基础镜像(如 CentOS、Fedora、Ubuntu、Debian),它仅仅只有 5M。因此使用Alpine做出来的容器镜像有以下优点: 镜像体积更小...…
-
如何优雅的使用 Windows Terminal
Windows的命令行向来是以丑著称,Windows Terminal总算是挽救了一点它的颜值。 安装:https://github.com/microsoft/terminal 使用指南:https://docs.microsoft.com/zh-cn/windows/terminal/customize-settings/global-settings 如何给 Windows Terminal 增加一个新的终端添加Git-Bash到Windows Terminal{ // ...…
-
解决 WSL 开机网卡信息变动问题
WSL2 设置私有IP由于WSL 2新的体系结构使用虚拟化的网络组件,每次计算机重启的时候都会重置WSL 2的虚拟网卡,因此每次重启完计算机后WSL2中的IP地址都不一定一样。虽然我们可以通过localhost访问到WSL中的服务,但是当需要配置多个虚拟域名的时候该方法显然就不适用了,此时若要在宿主机中通过虚拟域名访问WSL 2中的网络服务需要每次手动对宿主机的hosts文件修改其IP-Domain映射关系。思考后结合在网上查阅了资料,大致共两个方案: 方法一:通过批处理脚本,启动时自动...…
-
Windows 10默认管理员运行任务
升级Windows到Windows 10之后当我们按快捷键:Windows键+R打开运行发现没有可选项勾选”已管理员模式运行”,输入命令(如:cmd)发现打开的窗口也确实不是管理员模式打开的,对于经常需要进行提权操作的用户来说非常不便。通过管理员模式打开任务、程序的方式有以下几种: 找到应用或其快捷方式所在位置,右键》以管理员身份运行 按快捷键Ctrl+Shift+Esc打开任务管理器,点击:文件》运行新任务,可以打开旧版Windows方式的运行窗口,提供了可选项勾选”以系统管理权限创...…
-
解决 Git Bash 在 windows 下中文乱码的问题
背景中文乱码的根源在于 Windows 基于一些历史原因无法全面支持 UTF-8 编码格式,并且也无法通过有效手段令其全面支持,对于中文,Windows系统默认使用GB2312编码进行处理,而Git默认使用UTF-8。而对于在Windows下喜欢用命令行的朋友,Git Bash是一款不可多得的好工具:安装简单、操作简单、集成部分实用Linux Shell工具。但Git Bash在Windows下中文会乱码的问题的确着实令人头痛。解决Git-Gui 右键设置编码修改gitconfig进入Gi...…
-
WSL2 常用指南
WSL2的逐渐完善,使得在Windows中使用完整内核的Linux变得越来越方便,用户可以在Windows中使用多个不同Linux的发行版。Windows提供了两套命令接口用于管理、操作子系统: wslconfig命令只用于在 Windows 上对其 Linux 的子系统上管理操作 wsl命令提供了比较完整的功能,可在 Windows 上对其 Linux 的子系统进行-配置管理、执行操作等功能查看当前已经注册激活的实例 当你从Windows Store中下载安装了对应的Linux发行...…
-
解决 WSL 开机启动服务
WSL的是一个基于Windows系统的Hyper V服务运行的Linux系统,但没有对应的开机自检程序,因此在WSL中设置服务开机启动是没有用的。因此,通过实现Windows的开机启动项执行一端脚本调用WSL内的服务,从而达到 WSL 开机启动服务的目的。查阅并试验了网上的一些文章,大致分为两类: 通过将VBScript脚本的快捷方式放到C:\Users\{USER}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startu...…
-
强大的测网速工具-speedtest
Speedtest是一款由Ookla团队提供用于测试当前计算机互联网连接速度和性能的官方命令行客户端。该工具会下载、上传、延迟和丢包等互联网连接性能指标并可以将结果进行导出。当然如果是个人电脑也可以直接通过访问Speedtest的官网:https://www.speedtest.net/直接进行测速。安装speedtest以下仅展示Redhat发行版系列的Linux系统安装方式,更多方式请参考:此处# 更新speedtest的镜像信息到本地的yum仓库中,便于使用yum进行安装sudo c...…
-
Install Docker With WSL2
方式一:Docker Desktop+WSL2 运行 DockerDocker Desktop 将 Docker CE、Docker Compose、Kubernets 等软件整合在了一起进行安装,省去了一一安装的烦恼。下载安装Docker Desktop运行 Docker,可以让你在Windows中方便的管理配置Docker Docker for Windows:https://desktop.docker.com/win/stable/Docker Desktop Installer...…
-
Windows Subsystem for Linux
WSL2相较于WSL除了I/O性能有了巨大的改进,最主要的:WSL2 的底层是一个跑在Hyper-V上的完整的Linux系统,而不是像WSL一样是穿着Linux 的外衣和Windows打交道的系统。因此,在WSL2没有出现之前如果要在Windows上玩Docker很多人是不建议的。 因为即使是使用Docker官方的提供的Docker for Windows也是经常出些奇奇怪怪的错误并迟迟得不到解决。 通过虚拟机安装boot2docker.iso,在虚拟出来的Linux系统下玩,但启动虚...…
-
Shell:批量替换Gitlab仓库remote地址
安装shell格式化json工具参考阅读:http://openskill.cn/article/357# 安装yum -y install jq# 使用:将标准输入信息的JSON字符串进行格式化<stdin> | jq .利用GitLab API 获取所有仓库的git分支因为发现直接调用GitLab API获取拥有git仓库,得到的结果不完整,因此此处分开多个组进行获取。GitLab API 文档地址新建一个PRIVATE-TOKEN 点击当前用户头像,进入Setting ...…
-
composer post-autoload-dump error code 255
背景最近迁移服务器,内网信息地址进行了更改,由于发布机仅作为拉取代码,打包作用,因此并未在发布机器上对RMQ、以及部分对内服务地址进行解析,导致composer dump-autoload的时候执行超时报错,返回了错误码 255。Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255触发的场景 如Laravel的文档所说:L...…
-
案例-Shell-文本处理:人人网访问记录分析
背景千橡的人人网每天都会有数以亿计的访问者,每个访问者的访问行为在千橡的服务器中都会留下访问记录。访问记录里有许多信息,其中包含两个字段: 访问者的IP、访问者的用户id。例如, 格式是这样的:>>> cat record.txt10:20 202.114.112.5 3212345310:21 213.89.113.5 3423423410:22 202.114.112.5 3212345310:23 213.89.113.5 3423423410:24 202.114...…
-
Shell 收集
批量重命名:使用管道,通过sed文本替换,实现批量重命名ls *.pdf | grep -F "[天下无鱼][shikey.com]" | sed "s/\[天下无鱼\]\[shikey.com\]//" | xargs -I {} mv [天下无鱼][shikey.com]{} {}for-in 遍历实现#!/usr/bin/bashIFS=$'\n'for file in $(ls *.$1)do newfile=`echo $file | sed "s/$2/$3/g"...…
-
Composer 错误:更新 vendor 提示本地有变更: The package has modified files
背景需要在测试环境维护一个稳定版本的全量项目包。写了一个脚部定时拉取最新的 master 分支代码,并自动更新对应的子模块。由于前期的 .gitignore 文件规范没处理好,因此导致了 composer 自动更新 vendor 的问题一直卡住,导致了 vendor 一直处于原始版本。由于长期没有更新 vendor 目录,导致通过 composer update 的时候,不断有项目仓库跳出下述交互信息 The package has modified files,这对于通过脚部自动更新是极...…
-
Composer错误:out of memory errors
背景本地仓库依赖了很多composer包,执行composer update更新本地的包版本时遇到报错,信息如下:$ composer updateDo not run Composer as root/super user! See https://getcomposer.org/root for detailsLoading composer repositories with package information Warni...…
-
什么是递归
什么是递归程序在运行过程中调用自身,这就叫:递归(recursion)为什么需要递归?通过递归,我们可以将一个复杂的问题,按照一定的规则分解为多个相似的子问题,从而达到解决复杂问题的目的。在编程中,递归算法是理解递归递归的优缺点优点: 简单清晰:我们只需要解决了最简单的子问题,然后不断的重复即可解决最终的复杂问题缺点 运行效率较低,性能差:因此一般来说都应尽量避免使用递归,除非没有更好的算法,或在特定情况下使用 过深的递归容易导致栈溢出:因为每次的调用都需要开辟新的栈空间,过多的递归...…
-
程序运行过程中操作系统对内存的划分
图片内容整理自:https://blog.csdn.net/Evankaka/article/details/44457765!!!注意:此处的划分只是逻辑上的划分,并非物理机上真是的分区状况PHP作用域案例探讨<?phpfunction a(){ global $c; // 声明使用全局变量 $c global $d; // 声明使用全局变量 $d(若外部没有定义则被初始化定义) $d = 222; // 为全局变量 $d 赋值 var_dump($c...…
-
SEO 项目总结
项目情况阶段一:2019/06-2019/08 旧问题修复及数据固化 主要解决了基础数据导致的大量链接404及5001问题不规范 统一规范管理:noindex、robots、alternate、hreflang、canonical标签 基础数据固化处理 SEO 错误链接收集/告警方案 行程路线站开发及优化 内链系统重构:尽量让每个链接都得到曝光机会(广) 成果 主站收录 5K+(原:1.2K,增加了3.8...…