Git同时配置github和gitee

Git同时配置github和gitee 想要同时使用GitHub和Gitee,但是每次输入密码就会很麻烦。为此,本文将介绍 Git 同时配置 github和 gitee 的ssh key #查看git配置 git config --global --list #没配置过的话先配置用户名和邮箱信息 git config --global user.name “username” git config --global user.email “email” #默认没有.ssh目录, ssh-keygen -t rsa -C "xxxxxxx@xx.com" #在windows下会生成.ssh目录 [c盘/用户/用户名/.ssh] 1. 查看ssh文件 cd ~/.ssh** ls 2. 删除之前的.ssh rm -rf id_rsa id_rsa.pub 3. 生成gitee和github 的 SSH Key ssh-keygen -t rsa -C "xxxxxxx@xx.com" -f "id_rsa_github" ssh-keygen -t rsa -C "xxxxxxx@xx.com" -f "id_rsa_gitee" 4. 查看SSH Key cat id_rsa_github.pub** 5. 拷贝 ssh-rsa 开头的 ssh key,然后到github上添加ssh key 6....

February 26, 2023 · 1 min · Leanku

MySQL 运维常用脚本

MySQL 运维常用脚本 1.导出整个数据库 #mysqldump -u 用户名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysql dump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 #mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysql dump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysql dump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql #-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 #A:常用source 命令 #进入mysql数据库控制台, 如 mysql -u root -p mysql>use databasename #然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql #B:使用mysqldump命令 mysqldump -u username -p dbname < filename....

February 3, 2023 · 3 min · Leanku

Vim 常用命令

Vim介绍 Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。百度百科 使用 vim a.php # 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段,以其它任何模式按esc 即可进宪普通模式 i 在当前光标字符前插入 insert a 在当前光标字符后插入 append I 在当前行首插入 Insert A 在当前行尾插入 Append o 在下方开一新行,插入 open O 在上方开一新行,插入 Open r 替代字符,将当前字符替代为紧跟着输入的字符 replace R 进入替代模式,将当前及之后的字符都替代为紧跟着输入的字符串,直到按 `` 返回 Normal 模式 Replace gj 移动到屏幕折行后的下行 gk 移动到屏幕折行后的上行 命令模式是在普通模式下按 : 进入,用于搜索、保存退出等操作。 :w 保存 :w file 另存为文件 :q 退出 :q! 放弃修改退出 :wq 保存修改并退出 移动命令 Vim 的各种移动命令主要是在标准模式下 h 光标左移 j 光标下移 k 光标上移 l 光标右移 0 跳到行首,可以理解为无穷大的...

February 1, 2023 · 2 min · Leanku

10分钟带你了解什么是二进制

二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 百度百科 世界上有10种人:一种是懂得二进制的,另一种是不懂二进制的 上面这是流传在程序员之间很久的一个冷笑话。 是不是get不到梗的笑点? 没有关系,看完本文,你再来看这句话就会会心一笑。 回到过去 让我们假设你回到了初中,这时候你情窦初开。喜欢上了临街的小哥哥(小姐姐),你们俩家的窗户面对面。放寒假的时候,你们约好了某天晚上八点偷偷溜出来约会。但是不能让父母知道,所以你们不能通过打电话方式来通知对方,今晚自己是否能顺利溜出来。为了不让对方白等,你们不得不约定一种新的通信方式。 这种新的通信方式要满足: 安静–不能让父母听到,能悄无声息自然是最好了 易懂–对方看到后能立马知道你要表达的信息 因为住的很近,可以从窗户相互看到对方家里,聪明的你立马想到可以用屋子里吊灯的灯光来进行通信。 你们约定到了八点钟 如果我屋子里的灯亮着,代表我可以顺利溜出去 如果我屋子里的灯不亮,代表我无法顺利溜出去 现在你们就可以用屋子里的灯开关,来表达两种状态 开:能出来 关:不能出来 你们可以悄无声息给对方传达信息,这太完美了! 新的问题 不过过了一段时间你们发现了新问题,有时候,8点钟恰好有事情,可能要推迟半小时才能溜出来。有时候,8点钟事情比较多,可能要推迟1小时才能出来。 现在你们有四种信息要传递 今晚8点钟准时出来 今晚不能出来 今晚8点30能出来 今晚9点能出来 但是一盏灯的开关只能表示两种状态,怎么办才好呢? 聪明的你立马想到,可以再加一盏灯啊!你把书桌上的台灯放到窗前 并且更新了之前的通信方式 台灯关着,吊灯关着–今晚没戏,出不来了 台灯关着,吊灯开着–今晚8点,不见不散 台灯开着,吊灯关着–推迟半小时,今晚八点半才能溜出来 台灯开着,吊灯开着–推迟1小时,今晚9点才能溜出来 哇哦,再一次用自己的聪明才智解决了这个问题。 现在你用两盏灯,来表达四种状态。 一些思考 让我们用符号来重新表述下 我们用数字0表示灯灭 数字1表示灯亮 一盏灯的情况 0 ==> 今晚八点准时出来 1 ==> 今晚八点不能出来 两盏灯的情况 0 0 ==> 今晚没戏,出不来了 0 1 ==> 今晚8点,不见不散 1 0 ==> 推迟半小时,今晚八点半才能溜出来 1 1 ==> 推迟1小时,今晚9点才能溜出来 让我们再来简化一下箭头右边,我们用数字0,1,2,3 分别来代表今晚约会的4种状态 0: 今晚没戏,出不来了 1: 今晚8点,不见不散 2: 推迟半小时,今晚八点半才能溜出来 3: 推迟1小时,今晚9点才能溜出来 现在我们可以把两边都用数字来简化了...

January 31, 2023 · 2 min · Leanku

PHP标准输入与输出

PHP标准输入与输出 一、PHP STDIN、STDOUT、STDERR简介: STDIN、STDOUT、STDERR命令输入输出流,用于向控制台(linux shell终端、windows cmd终端)输入、输出内容,它们默认是已经打开的,可以直接对他们进行读写操作,它们只能在CLI(command-line interface,命令行界面)模式中使用,在Http模式时,它们是未定义的。 而他们的打开副本php://stdin、php://stdout、php://stderr 也无法输出内容到http浏览器,经测试:写入php://stderr的内容将会输入到默认站点的错误日志中,其它两种无任何效果。 STDIN/STDOUT/STDERR简介:原始流流打开副本描述STDINphp://stdin标准输入(standard input),只读,用于从控制台输入内容; STDOUTphp://stdout标准输出(standard output),只写,用于向控制台输出正常信息; STDERRphp://stderr错误输出(standard error),只写,用于向控制台输出错误信息; 官方推荐使用常量 STDIN、 STDOUT 和 STDERR 来代替它们手动打开的副本封装器php://stdin、 php://stdout 和 php://stderr。 二、PHP STDIN用法: PHP语言中"STDIN"用于从控制台读取内容,遇到此常量或者通过fopen()函数打开php://stdin脚本将会等待用户输入内容,直到用户按下回车键提交。 新建文件demo.php <?php echo "请输入内容:"; $input = fgets(STDIN); echo sprintf("输入的内容为: %s\n", $input); $handle = fopen('php://stdin', 'r'); echo "请输入: "; $stdin = fread($handle, 10); //最多读取10个字符 echo sprintf("输入为: %s\n", $stdin); fclose($handle); //php demo.php 运行代码,键盘输入123,输出结果如下 //请输入内容:123 //输入的内容为: 123 //请输入: 456 //输入为: 456 三、PHP STDOUT用法: PHP语言中STDOUT用于向控制台输出标准信息;向此常量、或者向fopen()函数打开的php://stdout写入的内容将直接输出到控制台的标准输出;标准输出的内容可以用过">“或者"1>“重定向到指定地方,比如文件。 <?php fwrite(STDOUT, "STDOUT写入的正常输出;\n"); $stdout = fopen("php://stdout", "w"); fwrite($stdout, "php://stdout写入的正常输出;\n"); fclose($stdout); // php demo....

January 11, 2023 · 1 min · Leanku

服务端基础知识

OSI七层模型 层 作用 注 应用层 为程序提供服务 规范数据格式 表示层 数据格式转换,加密 翻译 会话层 建立和管理会话 没有指定协议 传输层 管理端到端之间的连接 TCP协议、UDP协议 网络层 IP地址和路由 IP地址、ARP协议 数据链路层 链路管理 MAC地址、帧 物理层 提供传输环境 网线、WiFi TCP/IP四层模型 层 包含 应用层 应用层、表示层、会话层 传输层 传输层 网络层 网络层 数据链路层 数据链路层、物理层 ARP协议 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。 TCP/UDP协议 TCP和UDP协议是TCP/IP协议的核心。 TCP 传输协议:TCP 协议是一TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用 TCP三次握手 所谓的“三次握手”:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。 过程 第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。 第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据(可使用抓包工具tcpdump 命令 tcpdump -nn -i eth0 prot 80) TCP四次挥手 对于一个已经建立的连接,TCP使用改进的四次挥手来释放连接(使用一个带有FIN附加标记的报文段)。TCP关闭连接的步骤如下: 第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。 第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。...

December 17, 2022 · 1 min · Leanku

Markdown入门

Markdown 1.Markdown 简介 2.常用语法入门 标题 段落 分割线 列表 引用 强调 辅助线 字体字号 背景色 行内代码 代码块 超链接 图片 Markdown 是什么? Markdown 是一种轻量级标记语言,创始人是约翰・格鲁伯(John Gruber)。它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档”。 —— 维基百科。 常用语法总结 标题 1.在标题文字下方添加标记,连续的三个 “等号”(===) 代表一级标题,连续的三个 “减号”(—)代表二级标题。 2.在标题文字行首增加连续的 “井号” (#) 及空格。1 个 “井号” 代表一级标题,2 个连续 “井号” 代表二级标题,以此类推,最多支持到 6 级标题。 段落 不同于分段换行,不分段换行不是用 p 标签描述段落,而是用 br 标签折断文字。 如果要让文字另起一行而不分段,需在行尾增加两个空格。 分割线 连续的三个「星号 *」,或者连续的三个「减号 -」,或者连续的三个「下划线 _」会被渲染成分割线。 列表 支持有序和无序两种列表,无序列表使用 「星号 “*"」、「加号 “+"」、「减号 “-"」表示,有序列表使用数字定义,如: 1. xxx 2.xxx 3.xxx 等。 引用 使用邮件风格「大括号 >」的引用声明。如果你已了解如何在邮件中引用文章,那代表你也掌握了在 Markdown 文本中引用文字的方法了。其实现方式就是在被引用的文字行开头添加「大于号 >」。 如果需要在块引用内的换行,可以在行尾增加两个连续的空格。 强调 用 「星号 *」或者 「下划线 _」 包裹住,一个符号的时候代表斜体,如 斜体,两个符号的时候代表粗体,如 **粗体**。...

November 19, 2022 · 2 min · Leanku

Markdown进阶

Markdown语法进阶 常用语法总结 原样输出 页内跳转 代码高亮 注释 表格 生成目录 脚注尾注 流程图 饼图 数学公式 Markdown 是什么? Markdown 是一种轻量级标记语言,创始人是约翰・格鲁伯(John Gruber)。它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档”。 —— 维基百科。 常用语法总结 原样输出 1.使用反斜杠\ 如 \斜体 页内跳转 <a id="table1">Table - 1</a> #要跳转的位置,id = 链接位置 [跳转到 Table-1](#table1) #在需要跳转的地方引用,点击即可实现跳转(编辑器中右键打开链接) 代码高亮 代码块后面标注语法类型,即可完成语法的高亮显示。 echo 'hello'; 注释 第一是通过 html 的 <!– –> 标记; 第二可以通过样式隐藏段落内容,即 <div style=“display:none”>;第三是通过 Markdown 自身的解析原理实现。 表格 表格包含三个部分:表头、分割线、数据。 表头 用来对列名对象进行描述,也就是通常所说的列名; 数据 用来展示每行的具体内容,数据是表格的核心; 分割线 用来区分表头和数据,也是 Markdown 中表格定义的最基本语法要求。 竖线 用来定义列,每两个竖线之间为一个单元格元素; 减号 用来定义分割线,也就是分割表头和数据体; 冒号 配合减号使用,用于定义列数据的对齐属性。...

November 19, 2022 · 1 min · Leanku

# Carbon(nesbot/carbon)-- PHP 日期时间利器化

Carbon(nesbot/carbon)– PHP 日期时间利器化 一、Carbon介绍 Carbon 是 PHP 中最流行的 日期时间处理库,基于 PHP 原生的 DateTime 类封装,提供 链式操作、易读 API、时区支持 等强大功能。 特点: 链式调用,语义化强 支持日期时间加减、比较、格式化 支持中文等多语言友好显示 可与 Laravel、Hyperf 等框架无缝集成 官方文档:https://carbon.nesbot.com/docs/ 安装:composer require nesbot/carbon 二、基本使用 2.1 获取当前时间 $now = Carbon::now(); // 当前时间,默认系统时区 echo $now; // 2023-09-28 15:30:12 // 指定时区: $nowShanghai = Carbon::now('Asia/Shanghai'); 2.2 日期创建 $dt1 = Carbon::create(2023, 9, 28, 15, 30, 0); // 年, 月, 日, 时, 分, 秒 $dt2 = Carbon::parse('2023-12-31 23:59:59'); $dt3 = Carbon::today(); // 当天 0:00:00 $dt4 = Carbon::tomorrow(); // 明天 0:00:00 $dt5 = Carbon::yesterday(); // 昨天 0:00:00 2....

November 15, 2022 · 2 min · Leanku

composer

composer Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 一、Composer 基础概念 Composer 是 PHP 的依赖管理工具,它通过定义项目所需的依赖包及版本,自动安装和管理这些依赖,确保项目在不同环境下都能稳定运行。其核心概念主要包括以下几个方面: 1.1 包(Package) 包是 Composer 管理的基本单元,它可以是一个 PHP 类库、框架组件,或是某个功能模块。比如用于 HTTP 请求处理的 Guzzle,以及知名的 PHP 框架 Laravel、Symfony 等,都可以看作是 Composer 包。这些包被发布在 Packagist 等包仓库中,方便开发者获取使用。 1.2 composer.json 与 composer.lock composer.json是项目的依赖配置文件,开发者在其中定义项目所需的依赖包及其版本约束。例如,若要在项目中使用 PHPUnit 进行单元测试,可在composer.json添加 “phpunit/phpunit”: “^9.5” ,表示使用 PHPUnit 9.5 及以上版本,但低于 10.0 版本。​ composer.lock则是锁定依赖包具体版本的文件。当执行composer install或composer update时,Composer 会将实际安装的依赖包版本记录在composer.lock中。下次在其他环境安装依赖时,该文件能确保安装的依赖包版本与之前完全一致,避免因版本差异导致项目出现兼容性问题 。 1.3 包仓库(Repository)​ 包仓库是存储 Composer 包的地方,默认情况下,Composer 使用 Packagist 作为官方包仓库,它汇聚了海量的 PHP 开源包。除了 Packagist,开发者还可以搭建私有包仓库,用于管理内部开发的私有包,或者使用其他公共仓库,拓展包的来源。 packagist仓库地址 二、安装composer #下载安装脚本 - composer-setup.php - 到当前目录。 php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup....

November 15, 2022 · 3 min · Leanku