野声

Hey, 野声!

谁有天大力气可以拎着自己飞呀
twitter
github

安裝 Arch WSL 並配置

用 windows 寫程式碼最想吐槽的就是 cmd 了!WSL 真的就是吾等救星。
之前使用的是商店裡的 Ubuntu WSL ,沒感覺到有啥不好的,然鵝試了 Arch WSL 以後,能體會到 Ubuntu WSL 的龜速...
Arch WSL 真的是秒開哦~
連結拿去:
yuk7/ArchWSL

下載安裝 Arch WSL#

這裡是作者的安裝教程:https://github.com/yuk7/ArchWSL/wiki

我選擇的是傳統方式安裝(不使用 AppX 方式):

  1. Release 下載最新版的 Arch.zip
  2. 解壓到 C 盤根目錄,(一定要在 C 盤,其他位置也可以),但是你要有該目錄的讀寫權限,所以不能放到 Program Files 等目錄中。
  3. 雙擊解壓好的 Arch.exe 進行安裝,這個 .exe 的名字 就是要創建的 WSL 實例的名字,改不同的名字就能創建多個 Arch WSL。

安裝好之後,進行配置。

配置軟體倉庫#

Arch Linux 軟體倉庫國內鏡像#

編輯 /etc/pacman.d/mirrorlist,裡面有註釋了的 China 的鏡像,選一個你喜歡的取消註釋就可以了。
然後更新軟體包快取,執行: pacman -Syyu

其他跟鏡像有關的可以看這裡:

https://wiki.archlinux.org/index.php/Mirrors_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

添加 ArchlinuxCN 源#

Arch Linux 中文社區倉庫 是由 Arch Linux 中文社區驅動的非官方用戶倉庫。包含中文用戶常用軟體、工具、字型 / 美化包等。

官方倉庫地址:http://repo.archlinuxcn.org

這裡我使用的是騰訊的鏡像: http://mirrors.cloud.tencent.com/archlinuxcn/

使用方法:
/etc/pacman.conf 文件末尾添加以下兩行:

[archlinuxcn]
Server = https://mirrors.cloud.tencent.com/archlinuxcn/$arch

之後安裝 archlinuxcn-keyring 包導入 GPG key:

pacman-key --init
pacman-key --populate
pacman -Syy && pacman -S archlinuxcn-keyring

安裝 AUR 助手 yay#

Arch User Repository(常被稱作 AUR),是一個為 Arch 用戶而生的社區驅動軟體倉庫。Debian/Ubuntu 用戶的對應類比是 PPA。

AUR 包含了不直接被 Arch Linux 官方所背書的軟體。如果有人想在 Arch 上發布軟體或者包,它可以通過這個社區倉庫提供。這讓最終用戶們可以使用到比默認倉庫裡更多的軟體。

所以你該如何使用 AUR 呢?簡單來說,你需要另外的工具以從 AUR 中安裝軟體。Arch 的包管理器 pacman 不直接支持 AUR。那些支持 AUR 的 “特殊工具” 我們稱之為 AUR 助手。

我們想從 AUR 倉庫中安裝東西時,就需要 AUR 助手,這裡推薦 yay
Jguer/yay

pacman -S yay

安裝完 yaygit 也會被一起裝好。

檢查本地軟體包的更新:

yay

換成國內 AUR 源:

# yay --save --aururl [url]
yay --save --aururl https://aur.tuna.tsinghua.edu.cn

yay 的配置文件路徑:~/.config/yay/config.json

查看 yay 配置:

yay -P -g

查看 yay 幫助:

man yay

創建 Arch 普通用戶#

剛安裝好的 Arch 是 root 用戶,為了不至於權限太大誤傷系統,可以先創建一個普通用戶。

添加一個用戶:

useradd -m artin
# -m 參數能幫助創建 /home/artin

設置用戶密碼:

passwd artin

在下一步之前,可以先把系統默認編輯器設置成 vim,個人覺得還是比 vi 和 nano 好用多了...

export EDITOR=vim;

你也可以設置成自己喜歡的編輯器。

讓用戶可以執行 sudo 命令,這一步不能省略。
使用如下系統自帶命令修改 sudoers 文件。

visudo

在裡面添加這一行即可:

artin ALL=(ALL) ALL

36b5901fa80f.png

這裡我只把自己的用戶名寫進去了,你也可以設置一個用戶組的權限,然後將你的用戶加入到該用戶組。

切換 WSL 默認用戶#

在 cmd 中打開你的安裝目錄:

c8979e233688.png

執行:

Arch.exe config --default-user artin

玩轉 Arch WSL#

然後就是一些我自己喜歡的配置啦。

pacman 使用方法#

ArchLinux 必備命令記錄 (manjaro) - weixin_42408100 的博客 - CSDN 博客
https://blog.csdn.net/weixin_42408100/article/details/82526087

| 常用命令 | 解釋 |
| -------------------------- | ------------------------------------------------ | ---------------------- |
| pacman -Sy abc | 和源同步後安裝名為 abc 的包 |
| pacman -S abc | 從本地數據庫中得到 abc 的信息,下載安裝 abc 包 |
| pacman -Sf abc | 強制安裝包 abc |
| pacman -Ss abc | 搜索有關 abc 信息的包 |
| pacman -Si abc | 從數據庫中搜索包 abc 的信息 |
| pacman -Syu | 同步源,並更新系統 |
| pacman -Sy | 僅同步源 |
| pacman -R abc | 刪除 abc 包 |
| pacman -Rc abc | 刪除 abc 包和依賴 abc 的包 |
| pacman -Rsn abc | 移除包所有不需要的依賴包並刪除其配置文件 |
| pacman -Sc | 清理 /var/cache/pacman/pkg 目錄下的舊包 |
| pacman -Scc | 清除所有下載的包和數據庫 |
| pacman -Sd abc | 忽略依賴性問題,安裝包 abc |
| pacman -Su --ignore foo | 升級時不升級包 foo |
| pacman -Sg abc | 查詢 abc 這個包組包含的軟體包 |
| pacman -Q | 列出系統中所有的包 |
| pacman -Q package | 在本地包數據庫搜索 (查詢) 指定軟體包 |
| pacman -Qi package | 在本地包數據庫搜索 (查詢) 指定軟體包並列出相關信息 |
| pacman -Q | wc -l | 統計當前系統中的包數量 |
| pacman -Qdt | 找出孤立包 |
| pacman -Rs $(pacman -Qtdq) | 刪除孤立軟體包(遞歸的,小心用) |
| pacman -U abc.pkg.tar.gz | 安裝下載的 abs 包,或新編譯的本地 abc 包 |
| pacman-optimize && sync | 提高數據庫訪問速度 |

安裝網路相關的工具#

參考 http://www.linuxdiyf.com/view_218403.html
安裝 archlinux 以後沒有 ifconfig, route, nslookup 等命令

  • ifconfig、route 在 net-tools 中
  • nslookup、dig 在 dnsutils 中
  • ftp、telnet 等在 inetutils 中
  • ip 命令在 iproute2 中
pacman -S net-tools dnsutils inetutils iproute2

配置基本環境#

安裝 fakeroot、binutils 等打包基本工具

pacman -S base-devel

我這裡會提示 fakeroot 被 ignore 了,因為 /etc/pacman.conf 裡寫了~

不輸入數字的話默認會安裝 base-devel 裡的所有包。

安裝配置 zsh#

安裝 zsh 和 oh-my-zsh#

zsh 又好看又好用又強大~

先將代理設置為我本地的代理鏈接,因為等下 oh-my-zsh 的腳本會從 github 下載東西,國內下的慢~

export ALL_PROXY="http://127.0.0.1:7890"
export all_proxy="http://127.0.0.1:7890"

先安裝 zsh,再裝 oh-my-zsh

在終端執行:

sudo pacman -S zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

配置 alias#

之後要經常修改 zsh,先配置幾個方便、快捷的 alias。

編輯 ~/.zshrczsh 的配置文件。

vim ~/.zshrc

在文件的最後幾行加上:

alias vizsh="micro ~/.zshrc"
alias ohmyzsh="micro ~/.oh-my-zsh"
alias rezsh="source ~/.zshrc"

這裡的 micro 是我在用的編輯器:

zyedidia/micro

你可以改成你喜歡的, whatever.

保存後要在終端裡激活一下 zsh 的配置文件:

source ~/.zshrc

即可~

配置 PATH 變量#

WSL 中的環境變量會來自 Windows 系統,所以如果你兩邊都裝了 npm 或者 python,可能會引起各種報錯...

b8ea5455abef.png

所以手動的精簡一些環境變量,從上面這個圖中拿下來一點就好啦。

編輯 ~/.zshrc

vizsh

添加:

export PATH="$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export PATH="/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$PATH"
# 添加 `c/WINDOWS/system32` 這些目錄是為了支持在 `vscode` 的 `remote-wsl`。
export PATH="/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:$PATH"
# 為了使用 vscode 的 `code .`
export PATH="/mnt/c/Users/withw/AppData/Local/Programs/Microsoft VS Code/bin:$PATH"

這裡的都是我需要的,你可以根據自己的需要來判斷用什麼。

2d667f7ba442.png

zsh 的其他的一些配置#

配置 oh-my-zsh 的自帶幾個插件:

找到下面這一行,填入即可。

plugins=(git npm node history)

配置 zsh「不匹配通配符」:
這個蠻有用的,比如想用 find *.txt 的時候。

setopt no_nomatch

設置幾個順手的函數:

proxy () {
    export ALL_PROXY="http://127.0.0.1:7890"
    export all_proxy="http://127.0.0.1:7890"
    http --follow -b https://api.ip.sb/geoip
}

unpro () {
    unset ALL_PROXY
    unset all_proxy
    http --follow -b https://api.ip.sb/geoip
}

# 參考自:  
# 來源:Ubuntu「一鍵」設置代理 | Sukka's Blog  
# 連結:https://blog.skk.moe/post/enable-proxy-on-ubuntu/

ip_ () {
    http --follow -b https://api.ip.sb/geoip
}

git-config() {
    echo -n "Please input Git Username: "
    read username
    echo -n "Please input Git Email: "
    read email
    echo -n "Done!"
    git config --global user.name "${username}"
    git config --global user.email "${email}"
}
# 參考自:  
# 連結:https://github.com/SukkaW/dotfiles

上面的腳本中的 http 命令來自 httpie
安裝:

pacman -S httpie

在 VSCode 中使用 WSL#

待補充

更多優化配置#

可參考知乎這篇:利用 WSL 打造 Arch 開發環境

大概就先寫這麼多吧~

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。