blog
blog copied to clipboard
Blog
# Mac系统如何显示隐藏文件 ## 如何把文件进行隐藏 * 方法一: 重命名 ## 如何显示/隐藏隐藏的文件 * 方法一: 快捷键 ``` c command + shift + . ``` * 方法二: 设置终端 ``` bash defaults write com.apple.finder AppleShowAllFiles -boolean...
原文更新地址 > https://github.com/shellhub/blog/issues/25 Oh-My-Zsh!提高你CLI(Command-line interface )的神奇工具 - Ubuntu教程  我是命令行界面的忠实粉丝......我不喜欢使用我的电脑鼠标!这促使我寻找出色的工具来增强我在CLI上的用户体验,一次偶然的机会机会在YouTube上观看了国外YouTuber使用该工具,促使我对他产生了兴趣.本教程基于Ubuntu Linux,其他操作系统差不多 by the way,关注我的YouTube频道呗 > [https://www.youtube.com/c/CSWikiTech](https://www.youtube.com/c/CSWikiTech?sub_confirmation=1) 以下是oh-my-zsh部分功能 * 命令验证 * 在所有正在运行的shell中共享命令历史记录 * 拼写纠正 * 主题提示(Agnoster,RobbyRussell,......) * 目录历史 * 通过zshenv,zprofile,zshrc,zlogin和zlogout启动/关闭脚本 *...
[YouTube视频教学](https://www.youtube.com/watch?v=YVGWBjgayRc&t=3s) ### [购买高速Shadowsocks账号](https://ss.duyuanchao.me) ### 首先运行Shadowsocks 如使用 `nohup sslocal -c config.json &` 后台运行Shadowsocks,假如你的本地机器运行以下ip和port ``` bash 127.0.0.1 1080 ``` ### 安装proxychains On Debian/Ubuntu: ``` bash apt-get install proxychains ``` On Centos ```...
# v2ray websocket tls nginx 伪装流量科学上网(干货) ## 本教程所需要的工具 * [在线文本编辑器](https://www.editpad.org/) ## 购买vps * [点击优惠注册vultr](https://www.vultr.com/?ref=7133201) * [免费注册Google Cloud](https://console.cloud.google.com/) ## 关闭防火墙 ``` shell systemctl stop firewalld ``` ## 开启Google BBR加速(可选) https://github.com/shellhub/blog/issues/54 #...
写一个专门用于搭建Telegram代理MTProxy的脚本 [https://github.com/shellhub/shellhub/blob/master/proxy/mt_proxy.sh](https://github.com/shellhub/shellhub/blob/master/proxy/mt_proxy.sh) ### 支持版本 * Centos * Debian/Ubuntu ### 如何使用 复制到服务器中自动编译安装 ``` bash wget -N --no-check-certificate https://raw.githubusercontent.com/shellhub/shellhub/master/proxy/mt_proxy.sh && chmod +x mt_proxy.sh && ./mt_proxy.sh ``` 输入用于客服端连接的端口号,可以直接自动生成 ``` bash Input server port...
# 前言 现在网络上已经有很多讲解VPS翻墙的教程,但是鉴于很多是非计算机出生的同学,不要说运行很多从来没有见过的Linux命令行,连链接VPS服务器就已经成为难点,这里没有瞧不起人的意思,这也是写这篇文章原因。 # 教程开始 ## 需要准备 虽然该教程面向纯小白,但是该有的东西还得有,你需要准备如下东西 * 支付工具 无论是`支付宝` `微信` `Visa` `Master` `Bitcoin`等一切能支付的工具 * 上网工具 一台电脑或者智能手机,最好电脑把,手机屏幕太小,操作起来麻烦 * 一个邮箱 QQ邮箱还是Gmail邮箱都OK啦 我相信所有大部分同学都有吧,水了一段文字😄 ## 注册VPS服务器 本教程使用的[Vultr](https://www.vultr.com/?ref=7133201) VPS服务器,[点击注册链接](https://www.vultr.com/?ref=7133201)进行注册一个账号 * 点击网站左上角的`Sign up`进行注册 ...
> 原文地址: https://github.com/shellhub/blog/issues/54  # 给你的VPS开启Google BBR加速 ## TCP拥塞控制 > TCP拥塞控制是传输控制协议(英语:Transmission Control Protocol,缩写TCP)避免网络拥塞的算法,是互联网上主要的一个拥塞控制措施。它使用一套基于线增积减模式的多样化网络拥塞控制方法(包括慢启动和拥塞窗口等模式)来控制拥塞。在互联网上应用中有相当多的具体实现算法。 ## TCP BBR > TCP BBR(Bottleneck Bandwidth and Round-trip propagation time)是由Google设计,于2016年发布的拥塞算法。以往大部分拥塞算法是基于丢包来作为降低传输速率的信号,而BBR则基于模型主动探测。该算法使用网络最近出站数据分组当时的最大带宽和往返时间来创建网络的显式模型。数据包传输的每个累积或选择性确认用于生成记录在数据包传输过程和确认返回期间的时间内所传送数据量的采样率。该算法认为随着网络接口控制器逐渐进入千兆速度时,分组丢失不应该被认为是识别拥塞的主要决定因素,所以基于模型的拥塞控制算法能有更高的吞吐量和更低的延迟,可以用BBR来替代其他流行的拥塞算法,例如CUBIC。Google在YouTube上应用该算法,将全球平均的YouTube网络吞吐量提高了4%,在一些国家超过了14%。 BBR之后移植入Linux内核4.9版本,并且对于QUIC可用。 ## 最新Linux内核安装Google TCP BBR Linux内核4.9以及上默认支持了该算法,直接启用就行...
原文连接 > https://github.com/shellhub/blog/issues/49  # 使用SSH方式登录谷歌云服务器 * 通过网页端登录Google Cloud * 切换到`root`用户 ``` shell sudo su ``` * 修改`root`密码 ``` shell passwd # Changing password for user root. # New password:新密码...
> 原文托管在Github: https://github.com/shellhub/blog/issues/52 # 数据结构与算法之线性表-顺序表实现(C语言版本) ## 前言 数据结构与算法是一个程序员必备的技能之一,而顺序表更是每个程序员在面试过程中要经常被问到的,如Java语言中的`ArrayList`类的底层实现就是使用顺序表实现的,别把顺序表想的有多么高大上,其实就是使用数组实现的一种线性表 ## [什么是线性表](https://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E8%A1%A8) 线性表(英语:Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。 其中: * 数据元素的个数n定义为表的长度 = "list".length() ("list".length() = 0(表里没有一个元素)时称为空表) * 将非空的线性表(n>=1)记作:(a[0],a[1],a[2],…,a[n-1]) * 数据元素a[i](0≤i≤n-1)只是个抽象符号,其具体含义在不同情况下可以不同 一个数据元素可以由若干个数据项组成。数据元素称为记录,含有大量记录的线性表又称为文件。这种结构具有下列特点:存在一个唯一的没有前驱的(头)数据元素;存在一个唯一的没有后继的(尾)数据元素;此外,每一个数据元素均有一个直接前驱和一个直接后继数据元素。 ## 什么是顺序表 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。 ## 顺序表的实现...
> 求解最大公约数和最小公倍数 ### 什么是最公约数 > 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个 ### 什么是最大公倍数 >两个或多个整数公有的倍数叫做它们的公倍数 ## 暴力破解法 ``` c #include void swap(int *pa, int *pb){ int t = *pa; *pa = *pb; *pb = t; }...