September 25, 2019
WSL无缝使用windows的Vagrant
同时安装windows和wsl下的linux版本的vagrant,配置环境变量就可以使用。linux下vagrant的好处很多,首先文件的换行和权限的烦恼没有了,然后可以使用一些revision工具,例如ansible,在vagrantfile初始化的时候带来很多好处
下载地址:https://www.vagrantup.com/downloads.html
Windows下安装就直接exe了
Linux我的是Ubuntu,因此就下官网的deb包
dpkg -i vagrant_amd64.deb
需要在Linux的Home目录下的
.bashrc
或者.zshrc
添加以下行,这样可以把windows的路径转换成WSL里的Linux路径:
export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS=“1”
- 大功告成,在
wsl
输入vagrant
,如果出现帮助信息就说明配置成功了
PS: 需要注意的是,wsl里的vagrant,不能读取Linux下的Vagrantfile
,需要Vagrantfile存在于windows文件系统,因为本质上vagrant还是在windows上执行,调用Virtualbox等虚拟机的SDK,也就是说你的Vagrantfile,必须位于类似于\mnt\c\
这样的windows挂载盘符目录下。
May 7, 2019
Windows在Hyperv安装Centos7并配置网络
Hyper-V安装Centos,网卡选择Hyper-V的Default Switch。 Default Switch默认是可以连接外网的,如果是windows机器不用配置直接可以联网,但是Linux不行,原因是网卡eth0默认没有配置dhcp:
可以通过以下几部配置:
编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
,修改以下三项:DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
编辑
/etc/sysconfig/network
, 替换server-name.company.lan为你的主机名:NETWORKING=yes HOSTNAME=server-name.company.lan
重启network服务:
$ systemctl restart network
确认网络是否网络正常,正常的话重启,再次确认:
$ nslookup bing.com
参考: https://unix.stackexchange.com/questions/17436/centos-on-hyperv-eth0-not-in-ifconfig
August 28, 2018
putty + tmux多窗口可用配置
putty的执行命令填入如下命令,tmux名称同session名称,以便开多个putty窗口时候识别
$ tmux new -A -s {session_name}
添加.tmux.conf配置
echo " ########################################## # STATUS BAR set -g status-keys vi set -g status-interval 1 set -g status-attr bright set -g status-fg white set -g status-bg black set -g status-left-length 20 set -g status-left '#[fg=green][#[fg=red]#S#[fg=green]]#[default]' set -g status-justify centre set -g status-right '#[fg=green][ %m/%d %H:%M:%S ]#[default]' setw -g window-status-current-format '#[fg=yellow](#I.#P#F#W)#[default]' setw -g window-status-format '#I#F#W' ########################################## # TERMINAL EMULATOR TITLES set -g set-titles on set -g set-titles-string \"#(tmux ls | awk -F: '{print $1}' | xargs | sed 's/\ / | /g')\" # Scroll History set -g history-limit 30000 # Set ability to capture on start and restore on exit window data when running an application setw -g alternate-screen on # Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access. set -s escape-time 50 " > .tmux.conf
(可选)Shell标题控制, 在.profile文件里添加
February 1, 2018
Windows安装MSys32配置Git等开发环境并集成VSCode
在不久之前发现了Msys2,基于Cygwin但是却又有一个让我觉得无比美好的包管理器Pacman(和Arch Linux的一样),于是决定试试。但是真的用于Windows的终端还有很多麻烦的地方要解决,主要是以下几点:
- Git的ssh_keygen配置,你和windows自己的CMD里的ssh_keygen能否共用
- Msys用的换行符是和Linux一样的LF,而Windows的是CRLF
- Python能不能直接用Windows的Python而不用模拟Unix环境的Python(有很多的bug)
- 能否和我目前用的最多的VSCode编辑器无缝集成
经过一段时间的研究,每个问题都得到了很好的解决,目前来讲非常的完美,在这里分享一下:
下载并安装 Msys2
安装和配置
git
, 配置在windows上check出crlf格式文本,提交lf格式:2.1 安装git:
$ pacman --needed -S bash pacman msys2-runtime git
2.2 修改git处理回车的方式:
$ git config --global core.autocrlf true
修改Home目录路径, Msys2默认的Home目录是Mingw64的/home/username, 但是我希望使用windows的Home目录/c/Users/username. 方法是编辑
/etc/nsswitch.conf
, 并修改$ db_home: windows
Install Python & Pip (直接用windows的Python就好,用Mingw64的Python反而可能会有很多问题)
让VSCode里的继承终端(VSCode Integrated Terminal)使用Msys2,在VSCode的settings里加入以下内容:
{
"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe",
"terminal.integrated.shellArgs.windows": [
"--login",
],
"terminal.integrated.env.windows": {
"CHERE_INVOKING": "1",
"MSYSTEM": "MINGW64",
"MSYS2_PATH_TYPE": "inherit",
},
}
参考:
October 24, 2017
Windows上编译vim文件导航跳转插件command-t
用Bundle在Windows平台上配置成功了以后,绝大多数插件都已经可以使用,但是唯独强大的文件导航Command-T因为Ruby开发的插件,需要手动编译。
官方文档写的安装编译过程代码大概是这样的,我省去了使用bundle的安装过程:
$ cd ~/vim\bundle\command-t\ruby\command-t\ext\command-t>
$ ruby extconf.rb
$ make
要完成这些肯定得装ruby和make,网上的绝大多数答案也都已经过期,说的是vim7.4左右的版本,而现在已经是vim 8.0。于是只好自己探索。
windows的ruby是一个特殊的安装包,和Ruby的官网都分开,网址是RubyInstaller for windows。
可供下载的版本从2.0.0-p648到2.4.2-2版本。
我从高版本开始尝试,安装2.4.2-2,安装成功并设置好windows环境变量,开始编译。结果发现报错 You have to install development tools first.
. 于是我在官网发现了DEVELOPMENT KIT
可以下载,但是居然只支持(Ruby 2.0 到 2.3),只好重新安装了Ruby 2.3, 并且按照官网development tools。
假设Ruby 安装到 C:\Ruby22-x64, 配置PATH环境变量。然后将Development tools 就解压到 C:\Ruby22-x64\DevKit, 然后进入该目录执行
$ ruby dk.rb init
成功后再执行
$ ruby dk.rb install
接着进入~/vim\bundle\command-t\ruby\command-t\ext\command-t>
文件夹,执行ruby extconf.rb
命令,发现ruby执行成功了,用choco安装make并执行make一切都顺利。
但是进入vim一按command-t的快捷键报错,报错内容是:
command-t.vim could not load the C extension
Please see INSTALLATION and TROUBLE-SHOOTING in the help
Vim Ruby version: 2.2.6
Expected version: 2.3.3
也就是vim内置的ruby版本和这个版本不匹配,看来我确实遗漏了vim内置版本的问题。于是继续降级到Ruby 2.2, 结果居然还是报错。报错内容依旧是You have to install development tools first.
然而我明明已经安装了development tools.
October 22, 2017
windows的包管理Chocolate和vim.Vundle
Windows的开发环境一直都会让人比较头疼,一般解决方法有用Cygwin等模拟Linux的环境,Windows 10又自带了Ubuntu On Windows 10的环境。但是都或多或少有点问题,例如Cygwin的文件目录和windows分离,Ubuntu On Windows 10不能用Nodejs,打开X应用比较麻烦,只能用终端等。
经过很多尝试,我认为最友好的环境还是windows原生的环境,只是你需要偶尔告别命令行搜索某些应用需要的依赖,依次安装,这样其实绝大多数的开发环境都是可以部署的。不过还是有工具可以帮助我们,例如Windows其实也有一个类似apt-get或者Homebrew的包管理工具,叫做Chocolate.
安装Chocolate只要在Powershell里写这行代码即可:
Set-ExecutionPolicy Bypass; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安装包的方法是choco install <package_name>
但是这个命令必须用admin权限的powershell来执行。于是想是不是有个windows的sudo
,结果一查还真的有,而且可以用chocolate安装。于是admin执行powershell并运行了choco install sudo
就安装好了。以后只要在普通用户的powershell执行sudo choco install <package_name>
即可了。
我用choco安装了git
, vim
, python
,curl
,wget
等工具,安装后powershell可以执行不少的类似linux的命令了。
但vim是裸奔状态,如果我直接把以前配置的.vimrc文件拿过来,显然用不来,甚至连Vundle包管理都用不来。Vundle的官方文档有windows上配置的方法就是把:
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
改成
set rtp+=$HOME/.vim/bundle/Vundle.vim/
call vundle#begin('$HOME/.vim/bundle/')
然后再执行vim +BundleInstall +qall
就好了。
October 22, 2015
Windowss上利用babun, tmux, zsh高度定制shell
深刻和彻底的切换到linux平台后,深切的感受到linux平台对程序员带来的便利。因此日常环境已经不再使用windows啦,奈何博主虽然是个穷逼,然而却舍得钱买一堆电脑,所以没事还是会折腾下windows,毕竟娱乐还是需要的。
之前折腾过cygwin好一阵子,最终还是觉得真的搬到开发环境确实有很多麻烦的地方,不过现在既然为了娱乐又有一台没有装任何开发环境的win10,那就娱乐一下好了。
1) 安装和配置babun
首先可以装一个定制得非常好的cygwin shell, 那就是babun, 已经默认为你装好并配置了cygwin环境下的zsh,用起来可比普通的shell爽多了。另外有个强大的包管理器,pact命令,用起来很像rpm和apt之类的,非常方便。例如要装tmux, 那么就执行
pact install tmux
就可以成功安装了。 不过值得注意的是pact默认用的是kernel.org的镜像,国内访问非常慢,这时通过help发现有个–mirror的参数,可以手动指定成163的:
pact --mirror http://mirrors.163.com/cygwin/ install tree
不过每次要输入这个太麻烦,可以用alias, 在home目录下新建一个.bash_aliases的文件,输入alias pact=‘pact –mirror http://mirrors.163.com/cygwin/'这样下次就不需要再输–mirror了。
2) 安装和配置tmux
OK第一步装babun已经完成,接下来装tmux,也非常easy,其实上面已经介绍过了
pact install tmux
然后就可以用了,输入tmux, 下面就有了一个标签栏,tmux默认的前缀按键是Ctrl+B,然后再按另一个键,随便举几个例子:
- Ctrl+b c 创建标签
- Ctrl+b n 下一个标签
- Ctrl+b p 上一个标签
- Ctrl+b d 分离session,但并没有退出,而是在后台运行,如果要重新链接,输入tmux a
- Ctrl+b ? 查看帮助
tmux非常强大,甚至有分屏这样的操作,具体可以在帮助里看。重要的是我们现在已经可以只打开一个窗口,就在几个window之前切换了。
OK, 看起来非常不错,但是用过vim的同学知道,Ctrl+b是向下翻页的按键啊,所以我想把前缀按键换成Ctrl+a怎么办, 还是配置文件,linux的一切都是配置文件。 在Home目录创建一个.tmux.conf文件,输入以下内容:
unbind C-b
set -g prefix C-a
bind C-a send-prefix
如果你的tmux已经打开,你想重载配置,怎么操作呢? 前缀Ctrl+b :然后标签栏就会出现一个冒号,输入
source-file ~/.tmux.conf
回车,好了,此时前缀应该就已经变成了Ctrl+a了