概述
所謂工欲善其事必先利其器,搭環(huán)境往往是開發(fā)過程中卡出很多初學者的攔路虎。
對于很多老鳥來說,很多東西都已經習慣成自然,也就沒有刻意和初學者說。但對于很多初學者,卻是受益良多。
這個系列,先從操作系統(tǒng)開始,記錄一些在開發(fā)中常用的工具和小技巧
操作系統(tǒng)
.NET 和 iOS 開發(fā)請繞路,這里主要針對的Linux。目前很多開發(fā)都需要一臺Linux環(huán)境來進行編譯,調試等等。然而公司發(fā)給大家的一般都是win的電腦。
考慮到各種安全策略的限制,還沒發(fā)直接安裝Linux系統(tǒng),若干年前,只能通過Virtualbox等軟件來安裝虛擬機,來曲線救國。
后來有了Microsoft 的Hyper-V 等技術,方便了虛擬機的安裝,但終究是要在不同的系統(tǒng)之間來回切換的,還是不是很方便。那么有什么方法可以在windows 下操作linux呢?
當然有了,不得不提當前Linux最優(yōu)秀的發(fā)行版本,Windows 的 Subsystem Linux(WSL)!!!
曾幾何時,WSL 還只能支持命令行操作,在WSL中使用GUI 應用,還需要另外配置RDP?,F在,已經進化到自帶RDP協(xié)議Run Linux GUI apps on the Windows Subsystem for Linux,只需要一個命令,就可以在WSL中使用IDEA敲代碼, 然你感受絲般順滑(真的,不信的去試下在WSL打開IDEA和Win 下打開IDEA的速度)。
支持各類Shell 命令(再也不用在Git Bash 里敲命令了,太爽了)。
安裝WSL 也極其簡單, 參照這里Install Linux on Windows with WSL
- 檢查當前操作系統(tǒng),需要Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11, 不滿足條件的請升級,如果硬件不夠不能升級的,請打公司老板或者IT一頓。(老子10年前的i5 都能升級,連這個硬件都沒有,還搞什么開發(fā)???)
- 進入PowerShell, 查看可安裝版本
(base) PS C:\Users\Administrator> wsl --list --online
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE Tumbleweed
- 選取所需版本,并進行安裝,(我習慣ubuntu了,就安裝了最新的ubuntu)
wsl --install -d Ubuntu-22.04
- (可選)切換WSL 版本,新系統(tǒng)的WSL 一般是v2, 如果是v1 可以切換為v2。兩者主要是IO上有些性能差距,做一些特定方向的測試時可能會有影響,個人實際開發(fā)中一直使用v2,感覺良好。具體差異對比見Comparing WSL Versions
wsl --set-version Ubuntu-22.04 2
然后就是進入系統(tǒng),設置用戶名,密碼這些,和正常安裝ubuntu一樣。
- (可選)安裝Windows Terminal
Terminal工具大家挑個自己順手的就行,都能連WSL。 如果沒有,這里安利下Windows Terminal,畢竟一家的產品,集成的比較好。非運維的話,日常用足夠了。
setup
1. (可選)換源
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
EOF
sudo apt-get update -y
sudo apt-get upgrade -y
2. 安裝常用lib
sudo apt-get install vim -y # nano用不慣,替換為vim
sudo apt-get remove nano -y
sudo apt-get install curl -y
sudo apt-get install git -y
sudo apt-get install iputils-ping net-tools -y
sudo apt-get install sshpass -y
sudo apt-get install zip unzip -y
sudo apt-get install git -y
sudo apt-get install openssh-server -y
sodu apt-get install jq -y
3. 安裝zsh 和 oh-my-zsh
# install zsh
sudo apt install zsh -y
chsh -s $(which zsh)
## verify
zsh --version
# install oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
## 國內
# sh -c "$(wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh -O -)"
# set oh my zsh theme
##vi .zshrc
##ZSH_THEME="afowler"
## 更多主題參見 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
## plugins 自動補全和加亮
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
## 更多插件,查看 https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins
## plugin 配置
#vi .zshrc
#plugins=(git
#zsh-autosuggestions
#zsh-syntax-highlighting
#)
4. 安裝SDKMAN
SDKMAN 是一個 SDK 管理工具, 可以管理多個JDK版本。 除了JDK外,還支持Scala, Groovy 等SDKs
curl -s "https://get.sdkman.io" | bash
sdk install java 8.0.382-amzn
sdk install java 11.0.20-amzn
sdk install java 17.0.8-amzn
sdk install gradle 8.2.1
sdk install maven 3.9.4
sdk install scala 3.3.0
5. 安裝nvm, node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
nvm install latest
npm install --global yarn
#(可選)換源
nvm npm_mirror https://npmmirror.com/mirrors/npm/
nvm node_mirror https://npmmirror.com/mirrors/node/
6. anaconda
sudo apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 -y
wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh # 從這 https://repo.anaconda.com/archive/替換為你需要的版本
sh Anaconda3-2022.05-Linux-x86_64.sh # 一路yes
# (可選)換源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/simpleitk
conda config --remove-key channels # 建議刪除defaut的默認源(推薦) 或者 vi ~/.condarc
conda config --set show_channel_urls yes
conda info
# 創(chuàng)建python 環(huán)境
conda create -n mypython python=3.10.3
7. docker
# 一鍵安裝docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo systemctl start docker
docker version
# 設置Docker 自啟動
systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service
# 關閉docker 服務自啟動
systemctl disable docker.service
# 添加docker 用戶組
sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker
sudo systemctl restart docker
docker ps
8. 安裝vscode, idea等
wsl 已經繼承了RDP 協(xié)議,可以直接在wsl里面起這些有UI的應用
# 查看有哪些可用的
sudo snap search chrome
# 安裝
sudo snap install --classic code
sudo snap install firefox
sudo snap install pycharm-community
sudo snap install intellij-idea-community
# 啟動的話,只需要 snap run firefox
支持中文
# 安裝中文語言包
sudo apt install language-pack-zh-hans
# 設置中文為默認語言 選擇en_US.UTF-8和zh_CN.UTF-8, 選擇zh_CN.UTF-8為默認語言
sudo dpkg-reconfigure locales
# REF: https://blog.csdn.net/weixin_43589764/article/details/124327175
9. kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
10. all in one script
針對自己的需求,可以把常用的寫進一個腳本里,這樣換環(huán)境的話,就能一鍵setup了。
這是我常用的setup_in_one_script_ubuntu…sh文章來源:http://www.zghlxwxcb.cn/news/detail-665378.html
11. 配置.zshrc
因為用了zsh, 有些調整需要改下.zshrc 才生效。
還有snap 啟動應用這些,可以寫一些alias,更加方便文章來源地址http://www.zghlxwxcb.cn/news/detail-665378.html
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="robbyrussell"
plugins=(git
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
# conda
export PATH=/home/miao18/anaconda3/bin:$PATH
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/miao18/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/miao18/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/miao18/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/miao18/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
conda activate spider
# nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# alias
alias pycharm="snap run pycharm-community"
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
到了這里,關于搭建開發(fā)環(huán)境-操作系統(tǒng)篇(一鍵搭建開發(fā)環(huán)境)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!