Tag Archives: 命令行

SSH 命令的三种代理功能(-L/-R/-D)

ssh 命令除了登陆外还有三种代理功能: 正向代理(-L):相当于 iptable 的 port forwarding 反向代理(-R):相当于 frp 或者 ngrok socks5 代理(-D):相当于 ss/ssr 如要长期高效的服务,应使用对应的专用软件。如没法安装软件,比如当你处在限制环境下想要访问下某个不可达到的目标,或者某个临时需求,那么 ssh 就是你的兜底方案。 正向代理: 所谓“正向代理”就是在本地启动端口,把本地端口数据转发到远端。 用法1:远程端口映射到其他机器 HostB 上启动一个 PortB 端口,映射到 HostC:PortC 上,在 HostB 上运行: HostB$ ssh -L 0.0.0.0:PortB:HostC:PortC user@HostC 这时访问 HostB:PortB 相当于访问 HostC:PortC(和 iptable 的 port-forwarding … Continue reading

Loading

Posted in 未分类 | Tagged | Leave a comment

别让 cd 浪费你的时间

终端下工作最烦躁的就是路径切换,没有自动路径切换的帮助,就像在泥里走路,于是有了各种 autojump / z / fasd 等工具来提升路径切换的效率,今天向大家介绍一个更好用的工具:z.lua,用熟练了以后就像终端里溜冰,路劲切换从此指哪打哪。 z.lua 是一个会学习你使用习惯的 cd 命令,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 Mozilla),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。 正则将按顺序进行匹配,”z foo bar” 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。 特性说明: 性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。 支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。 支持 Fish Shell,Power … Continue reading

Loading

Posted in 随笔 | Tagged | 4 Comments

Nas 系统的虚拟化方案

对搞技术的人来说,Nas 是个理想的玩具,既然是程序员用的 Nas ,自然要专业一点,不能像小白一样买台威联通或者群晖往哪里一放就行,如果这样,就没有必要继续往下读了。 就像有人喜欢买成品车,有人喜欢自己改装车;有人喜欢傻瓜相机,有人喜欢机械相机。如果你喜欢 DIY,想让自己家里的硬件发挥更大用途,让自己的 nas 系统更专业些,那么请继续。 有人说,生命的意义在于奉献;还有人说,生命的意义在于付出;然而对于 Nas 玩家来说,生命的意义只有两个字 — “折腾”。 有人问:“Nas 还能玩出一朵花来?”,答案是:“当然能”,折腾 Nas 第一步就是上虚拟化环境,有这个基础,后面才能更好的搞其他东西。所以今天我们先把 Nas 虚拟化这个纲领性的问题给说清楚说透彻。 Nas 系统为什么要虚拟化? 首先是让一台物理机可以安装多个不同的隔离的操作系统,Nas 很多都是魔改 Linux,一机多用的话,除了可以自由的安装其他主流 Linux 发行版外,你还能装台 Windows 来跑迅雷。 其次,而对于程序员,往往还需要另外一个干净的标准 Linux 发行版作为一个开发/折腾的环境,比如 Ubuntu / Debian / Centos 这些,虚拟化后,你可以自由的折腾你的发行版,通过虚拟机隔离后,你乱折腾自己的开发环境也不会把 Nas 弄挂,把自己的数据弄飞。 最后,资源分配更加灵活,系统/磁盘级别的备份迁移和恢复也可以很方便的实现。

Loading

Posted in 未分类 | Tagged | 1 Comment

KVM 虚拟化环境搭建 – WebVirtMgr

前文《KVM 虚拟化环境搭建 – ProxmoxVE》已经给大家介绍了开箱即用的 PVE 系统,PVE 是方便,但还是有几点问题: 第一:始终是商用软件,虽然可以免费用,但未来版本还免费么?商用的法律风险呢? 第二:黑箱化的系统,虽然基于 Debian ,但是深度改造,想搞点别的也不敢乱动。 第三:过分自动化,不能让我操作底层 libvirt/qemu 的各项细节配置。 PVE 是傻瓜相机,智能又复杂,对小白很友好;WebVirtMgr 是机械相机,简单而灵活。多一个选择始终是好事,何况我们说完 PVE 之后还介绍 WebVirtMgr,那肯定是有它不可代替的优势的。 不管你是在中小公司研究 IT 解决方案,还是搭建自己的 HomeLab,虚拟化是一个绕不过去的砍,现在的服务都不会直接启动在物理机上,成熟的架构基本都是: 物理机->虚拟化->容器 这样的三层架构,也就是说虚拟化是一切服务的基础。通过下面的步骤,让你拥有一套完全开源免费的,属于你自己的,没有任何版权和法律问题的虚拟化环境。 操作系统选择 发行版选择主要以 Debian/Ubuntu LTS Server 为主,二者我并无偏好,选择你趁手的即可。Debian 每两年一个大版本,Ubuntu LTS Server 也是每两年一个大版本。也就是说每年都有一个最新的,他们的支持周期都是五年以上,去年发布的 Debian 9 ,今年是 Ubuntu … Continue reading

Loading

Posted in 未分类 | Tagged | 1 Comment

提高效率从编写 init.sh 开始

有部分人不太愿意定制自己的终端配置,因为:“服务器太多,怎么可能每台都去定制,所以都用默认配置,习惯了就好”。其实道理很简单,算笔账就清楚了,除非你是 SA 每天管理上千台服务器,程序员的话,每天接触的开发服务器也就五台以内。既然 90% 的利益都在那三五台机器上,还在纠结 10% 的事情,这就叫不明智。 还有人担心这 10% 的时间偶尔到裸环境下不适应了,所以拒绝 90% 的时间使用高级配置。这是我听过最荒谬的理由,我天天自己开车上下班,偶尔骑下自行车我也不会忘记怎么骑车。更不因为偶尔需要时怕不会骑了而把汽车卖了每天都坚持骑单车,或者干脆就拒绝学汽车驾驶,拒绝提高自己的车技。我路由器上连 bash 都没有,只有个 busybox 的残缺 shell ,照着理由我要去迁就路由器么?这种说法要不就是看不清楚自己核心利益在哪里,要不就是没体验过汽车快起来可以比单车快几倍。 何况不管是程序员还是 SA,做好配置的同步工作也就行了。如果可以花固定的时间,让终端工作效率提升一倍以上,这种一次性的投资为何不做呢?所以接下来讨论下终端环境下各种配置应该如何管理,如何同步的。

Loading

Posted in 未分类 | Tagged | Leave a comment

KVM 虚拟化环境搭建 – ProxmoxVE

送大家一套完全开源免费的 VmWare / vSphere 的代替方案,代价是稍微动一下手,收获是你再也不需要任何商用付费的虚拟机软件了。KVM 整套解决方案一般分三层: KVM:内核级别的虚拟化功能,主要模拟指令执行和 I/O QEMU:提供用户操作界面,VNC/SPICE 等远程终端服务 Libvirtd:虚拟化服务,运行在 Hypervisor 上提供 TCP 接口用于操作虚拟机的创建和启停 第一个是 Linux 内核自带,后两个是各大发行版自带的标准组件。这里的 qemu 不是原生的 Fabrice 的 qemu,而是定制的 kvm 版本的 qemu 。 你当然可以用 qemu-system-x86 程序写很长的一串参数来启动你的虚拟机,但是这样十分不友好,所以有了 Libvirtd 这个东西,将物理机的所有资源:存储/网络/CPU 管理起来,并且提供统一的服务接口。 那么 KVM + Libvirtd 有几种不同层次的玩法: 初级:在 /etc/libvirtd/qemu … Continue reading

Loading

Posted in 未分类 | Tagged | 1 Comment

WSL 服务自动启动的正确方法

2018年 Windows 10 下的 WSL 已经可以保留后台进程了,从此后,用了十多年的 cygwin 基本失去了存在的价值了。网上有很多 WSL 自动启动服务的方法,但是都有些大大小小的问题,很多又是针对最老的 ubuntu16.04 发行版(输入 bash启动哪个),你如用商店里下载的最新的 WSL 版本 Debian9/Ubuntu18.04 就会出错。 所以正确在 WSL 里自动启动服务的方式有必要记录一下。 创建启动脚本: 进入任意 WSL 发行版中,创建并编辑文件:/etc/init.wsl #! /bin/sh /etc/init.d/cron $1 /etc/init.d/ssh $1 /etc/init.d/supervisor $1 里面调用了我们希望启动的三个服务的启动脚本,设置权限为可执行,所有者为 root,这时候可以通过: sudo /etc/init.wsl [start|stop|restart] 来启停我们需要的服务,接着在 Windows 中,开始-运行,输入: … Continue reading

Loading

Posted in 未分类 | Tagged | 2 Comments

为什么说 zsh 是 shell 中的极品?

(这是之前我在知乎上回答的一个可能对大家有点用处的答案,关于 zsh 的一些演示) 色彩高亮 并不是传统基于正则表达式的色彩高亮,而是真的会判断你输入的是啥的色彩高亮: 白色代表普通命令或者程序,红色代表错误命令,这个很管用,你再一个个字母的敲命令,前面都是红色的,如果敲对了最后一个字母的话,你会看到整条命令连着前面的都变成了白色,代表你敲对了。以前无高亮的时候敲错了都不知道,还要往上翻着左右检查。下面青色的代表内建命令或者 alias (echo 和 ls ),这些都不是正则判断出来的,是真的去检查的。 细心的人会发现非零的错误码,也会高亮显示在最右边(上一条 data命令错误,返回127)。 命令提示 注意,命令提示和补全是两个完全不同的系统,很多时候提示比补全更有用: 你才输入完 “tar”命令,后面就用灰色给你提示 tar 命令的参数,而且是随着你动态输入完每一个字母不断修正变化: 比如你输入到 – 后,没有跟着它上面的提示,而是输入了一个c字母,它马上明白你是要压缩,不是解压,然后随即给出你压缩对应的命令提示。 这个命令提示是基于你的历史命令数据库进行分析的,随着你输入的命令越来越多,提示将会越来越准确和顺手,某些不常输入的命令特别管用,比如偶尔查看下网卡配置: 刚输入完:cat /etc/n 它后面已经猜出你可能要查看网卡配置了,然后马上给出你提示,用不着你 tab 补全半天,你才敲 gc ,它就猜测出你可能想运行 gcc,然后马上给出完整建议:

Loading

Posted in 未分类 | Tagged | 1 Comment