Random Posts
Tags
Categories
Recent Comments
- 小肥 on GDB 从裸奔到穿戴整齐
- flandre on 异步事件模型的 Self-pipe trick
- inv on 异步事件模型的 Self-pipe trick
- skywind on 异步事件模型的 Self-pipe trick
- skywind on 异步事件模型的 Self-pipe trick
Links
Meta
Tag Archives: 命令行
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
提高效率从编写 init.sh 开始
有部分人不太愿意定制自己的终端配置,因为:“服务器太多,怎么可能每台都去定制,所以都用默认配置,习惯了就好”。其实道理很简单,算笔账就清楚了,除非你是 SA 每天管理上千台服务器,程序员的话,每天接触的开发服务器也就五台以内。既然 90% 的利益都在那三五台机器上,还在纠结 10% 的事情,这就叫不明智。 还有人担心这 10% 的时间偶尔到裸环境下不适应了,所以拒绝 90% 的时间使用高级配置。这是我听过最荒谬的理由,我天天自己开车上下班,偶尔骑下自行车我也不会忘记怎么骑车。更不因为偶尔需要时怕不会骑了而把汽车卖了每天都坚持骑单车,或者干脆就拒绝学汽车驾驶,拒绝提高自己的车技。我路由器上连 bash 都没有,只有个 busybox 的残缺 shell ,照着理由我要去迁就路由器么?这种说法要不就是看不清楚自己核心利益在哪里,要不就是没体验过汽车快起来可以比单车快几倍。 何况不管是程序员还是 SA,做好配置的同步工作也就行了。如果可以花固定的时间,让终端工作效率提升一倍以上,这种一次性的投资为何不做呢?所以接下来讨论下终端环境下各种配置应该如何管理,如何同步的。
千万别混淆 Bash/Zsh 的四种运行模式
Bash/Zsh 有四种不同运行模式,你的 bash 配置写错地方的话,不但会拖慢 bash 的速度,还会发生明明写了登陆配置但是就是没生效的情况。 第一个维度:interactive mode / non-interactive mode Bash 的 交互模式(interactive mode) 是指你直接输入: bash 以后 bash 出现一个 “$>” 的 PROMPT,等待用户不断的输入指令,输入 “exit” 或者按了 CTRL+D 才会结束。你 ssh 登陆到一台电脑,或者命令行下面打 bash ,后面没有参数的话,进入的都是交互模式。 而 非交互模式(non-interactive mode) 是指你用 bash 运行一个命令或者脚本,运行完 bash 就退出那种: bash … Continue reading
自带语法高亮的 cat – ccat
cat 源代码时如果带上语法高亮,会不会让工作效率更高一些呢?我们来做一个吧: function ccat() { local style=”monokai” if [ $# -eq 0 ]; then pygmentize -P style=$style -P tabsize=4 -f terminal256 -g else for NAME in $@; do pygmentize -P style=$style -P tabsize=4 -f terminal256 -g “$NAME” done fi } … Continue reading
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
Nano 编辑器可以做些什么?
终端下如果你不喜欢 Vim/Emacs 的话,Nano 是一个不错的选择,它是一个真正意义上的跨平台编辑器,基本上在所有 Linux 发行版上都默认自带 Nano,并且有 Windows 版本。 不少初学 Linux 都很喜欢用 Nano,但是我发现他们很多都是在裸用,既没配置,也一直在用一些比较低效的操作方法。 Q:下面的帮助占三行,很碍眼,能否隐藏? 可以在编辑时使用 ALT+x 就可以切换下面的帮助信息,或者在你的 ~/.nanorc 里面加一行: set nohelp 效果如下图: 恩,那两行恶心的帮助已经被我们去掉了,需要时还可以用 ALT+x 把它切换回来。 Q:如何打开语法高亮? 有的 Linux 发行版自带了 /etc/nanorc 文件,里面定义了语法高亮,而另外一些系统可能没有这个定义,你需要在 ~/.nanorc 中加一行: include “/usr/share/nano/*.nanorc” 各种语言的语法文件一般位于:/usr/share/nano/ 下面,设置前先确认一下。 Q:怎么编辑 ~/.nanorc,常用设置有哪些? 常见的 … Continue reading
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
为什么说 zsh 是 shell 中的极品?
(这是之前我在知乎上回答的一个可能对大家有点用处的答案,关于 zsh 的一些演示) 色彩高亮 并不是传统基于正则表达式的色彩高亮,而是真的会判断你输入的是啥的色彩高亮: 白色代表普通命令或者程序,红色代表错误命令,这个很管用,你再一个个字母的敲命令,前面都是红色的,如果敲对了最后一个字母的话,你会看到整条命令连着前面的都变成了白色,代表你敲对了。以前无高亮的时候敲错了都不知道,还要往上翻着左右检查。下面青色的代表内建命令或者 alias (echo 和 ls ),这些都不是正则判断出来的,是真的去检查的。 细心的人会发现非零的错误码,也会高亮显示在最右边(上一条 data命令错误,返回127)。 命令提示 注意,命令提示和补全是两个完全不同的系统,很多时候提示比补全更有用: 你才输入完 “tar”命令,后面就用灰色给你提示 tar 命令的参数,而且是随着你动态输入完每一个字母不断修正变化: 比如你输入到 – 后,没有跟着它上面的提示,而是输入了一个c字母,它马上明白你是要压缩,不是解压,然后随即给出你压缩对应的命令提示。 这个命令提示是基于你的历史命令数据库进行分析的,随着你输入的命令越来越多,提示将会越来越准确和顺手,某些不常输入的命令特别管用,比如偶尔查看下网卡配置: 刚输入完:cat /etc/n 它后面已经猜出你可能要查看网卡配置了,然后马上给出你提示,用不着你 tab 补全半天,你才敲 gc ,它就猜测出你可能想运行 gcc,然后马上给出完整建议: