Platform

Virtual Machine on macosx

Install virtualbox

    brew cask install virtualbox

Download Ubuntu from Tsinghua Image

LTS version

  • 16.04
  • 18.04

Guest Additions CD Image: Device -> Insert Guest Additions CD Image

After installation and restart, turn on Shared Clipboard and Drag and Drop

Disk on macosx

Install unetbootin and download Ubuntu 16.04 iso

Note that directly install Ubuntu 18.04 may cause inbuild monitor fail to work

Install refind on mac (need crsutil disable)

Make a boot USB. Start from it with option held, and install on my Disk. Divide the disk by four parts

  • EFI:
  • Swap:
  • Ext4:/
  • EXt4:/home

After installation complete, open ubuntu on Disk and upgrade it to 18.04

To run Ubuntu on mac, at least three external devices are needed:

  • keyboard
  • mouse
  • network card (for certain network inbuild one fails)

Cloud

Users

useradd newuser
passwd newuser
usermod -s /bin/bash newuser
usermod -d /home/newuser newuser
visudo
# Add below root ALL=(ALL:ALL) ALL
# newuser ALL=(ALL:ALL) ALL

APT

sudo apt update && sudo apt upgrade
sudo apt install openssh-server # Client default installed, server need to be installed
sudo apt install build-essential man gcc-doc git vim
sudo apt install zsh tldr tree tmux ctags wget net-tools curl cmake
sudo apt install flex bison # for compiler
sudo apt install libreadline-dev libsdl2-dev qemu-system-x86 # For hw
sudo apt install libc6-dev-i386 # For c -m32
sudo apt install g++-multilib # For c++ -m32
sudo apt install texlive-full, linux-tools-common, linux-tools-generic, linux-tools-`uname -r`

If apt upgrade fails, try remove the mentioned lock

sudo rm /var/lib/apt/lists/lock

change source

sudo gedit /etc/apt/sources.list

写入如下内容 (以下是 18.04 的,版本不符请上清华镜像

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

Vim

Install with lua

git clone https://github.com/vim/vim
cd vim/src
make distclean
./configure --with-features=huge \
            --enable-rubyinterp \
            --enable-largefile \
            --disable-netbeans \
            --enable-pythoninterp \
            --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ \
            --enable-python3interp \
            --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/ \
            --enable-perlinterp \
            --enable-luainterp \
            --with-luajit \
            --enable-fail-if-missing \
            --with-lua-prefix=/usr/include/lua5.1 \
            --enable-cscope \
            --enable-multibyte \
            --enable-gui=gtk2\
            --prefix=/usr
make
sudo make install

spf13

sh <(curl https://j.mp/spf13-vim3 -L)
(update: curl https://j.mp/spf13-vim3 -L -o - | sh)

sudo apt install fonts-inconsolata

In ~/.vimrc.local

let g:indent_guides_enable_on_vim_startup = 0
set wrap
set tags=./tags;/

Uninstall

sudo mkdir /usr/include/lua5.1/include
sudo cp /usr/include/lua5.1/*.h /usr/include/lua5.1/include/
sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-gui-common
sudo rm -rf /usr/local/share/vim
sudo rm /usr/bin/vim

zsh

prezto

Install

zsh
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

Add the following content to ~/.zshrc

setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

Then change shell (not use sudo, otherwise root shell is changed instead of current one)

chsh -s `which zsh`

After that, if some warning appears, change ~/.zshrc to

source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"

plugin

The plugin in ~/.zpreztorc

zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'git'\
  'history-substring-search'\
  'autosuggestions'\
  'prompt'

update

cd $ZPREZTODIR
git pull
git submodule update --init --recursive

CLI apps config

git

git config --global user.name "zhengzangw"
git config --global user.email "zhengzangw@163.com"
git config --global core.editor vim
git config --global core.excludesfile ~/.gitignore

Tmux

cd
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .

fzf

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

ssh

Config ssh server

sudo gedit /etc/ssh/sshd_config
#PasswordAuthentication yes
sudo /etc/init.d/ssh restart
cd ~
mkdir .ssh

Generate ssh key pair on mac

ssh-keygen -t rsa
scp id_rsa.pub serveraddress:~/.ssh/
cat *.pub >> authorized_keys

Add in mac ssh config

Host alias
    User newuser
    HostName serveraddress
    IdentityFile ~/.ssh/id_rsa

ss

sudo apt install shadowsocks-libev libsodium-dev

The second one is for rc4-md5

Setting at /etc/shadowsocks-libev/config.json, run with nohup sudo ss-local -c /etc/shadowsocks-libev/config.json &

Install Chrome and SwitchyOmega, select sock5 and 127.0.0.1:port.

vscode

Sync Setting

Sync setting by plugin ‘Setting Sync’

  • token: ***
  • gist: ***

Also change following settings:

  • titlebarstyle
  • menubarvisibility

Remote

Use Remote-SSH with ssh

Python

sudo apt -y install python-dev python3-dev
sudo apt install python2.7 python2.7-dev python3.5 python3.5-dev

pip

mkdir .pip
vim .pip/pip.conf

Add following content to .pip/pip.conf

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

or use pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

pip install --upgrade pip

virtualenv

pip install virtualenv virtualenvwrapper
echo "export WORKON_HOME=~/.virtualenvs" >> .bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> .bashrc
exit
source .bashrc
mkvirtualenv ml --python=python3.5

MIPS Cross Compilation

sudo apt install linux-libc-dev-mips-cross libc6-mips-cross libc6-dev-mips-cross binutils-mips-linux-gnu gcc-mips-linux-gnu g++-mips-linux-gnu

Software

  • Language Input: fcitx
  • Vscode
  • Chrome
  • tweaks
    • sudo apt install gnome-shell-extension-autohidetopbar