u 盘准备
从 下载页面 选择下好 iso 文件, 插入 u 盘
使用 dd 命令刻录
dd if=boot.img of=/dev/sdx bs=4M
进入 live 环境
联网
dhcpcd
判断网络连接是否正常:
ping www.baidu.com
分区
建两个分区, 一个 300 M 大小的 EFI 分区,格式是 Fat32, 用于挂载 /boot, 一个 格式 ext4 ,用于挂载根目录
fdisk -l
fdisk -l /dev/sdb
d
d
n
+300M
t
1
n
格式化
mkfs.fat -F32 /dev/sdb1
mkfs.ext4 /dev/sdb2
挂载
mount /dev/sdb2 /mnt
mkdir /mnt/boot
mount /dev/sdb1 /mnt/boot
设置镜像源
vim /etc/pacman.d/mirrorlist
# 在 china 下
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch
sudo vim /etc/pacman.conf
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
密钥
# 下载密钥链
sudo pacman -S archlinuxcn-keyring
# 更新密钥
sudo pacman-key --refresh-keys
# 重新加载相应的签名密钥
sudo pacman-key --init
sudo pacman-key --populate
# 清除pacman 的缓冲文件
sudo pacman -Scc
# 更新系统
sudo pacman -Syu
安装基本包
pacstrap /mnt base base-devel linux linux-firmware dhcpcd
生成挂载表
genfstab -L /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
切换系统
arch-chroot /mnt
设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
提前安装必须软件包
pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager
本地化
vim /etc/locale.gen
zh_CN.UTF-8 UTF-8
zh_HK.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
en_US.UTF-8 UTF-8
locale-gen
vim /etc/locale.conf
LANG=en_US.UTF-8
设置系统为中文
vim $HOME/.xinitrc
# 在 exrc i3 前
export LC_ALL=zh_CN.UTF-8
设置主机名
vim /etc/hostname
ENIAC
配置 hosts
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 ENIAC.localdomain ENIAC
# 有些网站被 ban 了,或想加快速度,如 github.com
# 可到 https://www.ipaddress.com/ 查询 ip 后添加
#也可以使用别人弄好的成品
#如
https://github.com/googlehosts/hosts.git && cd hosts/hosts-files
sudo cp /etc/hosts /etc/hosts.bakup
sudo cp hosts /etc/hosts
配置 DNS
sudo vim /etc/resolv.conf
# 添加
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 198.153.192.1
nameserver 198.153.194.1
nameserver 208.67.222.222
nameserver 208.67.220.220
sudo chattr +i /etc/resolv.conf
systemctl restart NetworkManager.service
设置 Root 密码
passwd
启用微码更新
pacman -S intel-ucode
sudo grub-mkconfig -o /boot/grub/grub.cfg
安装Bootloader
pacman -S os-prober ntfs-3g
pacman -S grub efibootmgr
grub-install --efi-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
重启
exit
umount /mnt/boot
umount /mnt
reboot
连接网络
dhcpcd
更新系统
sudo pacman -Syu
更新系统时间
timedatectl set-ntp true
timedatectl status
新建用户
useradd -m -G wheel edte
passwd edte
设置用户权限
pacman -S sudo
vim /etc/sudoers
%wheel ALL=(ALL)ALL
安装显卡驱动
# 查询显卡
lspci | grep -i vga
# 然后找到对应的驱动名称
# 我这里是 750Ti, 不使用 nvidia 驱动,我使用了一段时间,问题有点多
# 换为 nouveau 了
sudo pacman -S xf86-video-nouveau
# 将 xorg.conf 文件中 的 Driver 行中的 nvidia 改为 nouveau
# 实际我使用过程中,没有这个文件,也没有什么影响(展示)
# 使用这个命令查看使用的是什么驱动
sudo lshw -c video | grep configuration
安装显示服务
sudo pacman -S xorg xorg-xinit xorg-server xorg-apps
安装窗口管理器
pacman -S i3-gaps
启动窗口管理器
echo exec i3 >> ~/.xinitrc
# 自动登录
vim ~/.bash_profile
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec startx
fi
# 手动登录
startx
# 注意,这里有个坑,不要使用 root 用户登录,sudo startx 也不行
# 否则进入之后一些软件是不支持使用的
i3 配置
# 键 - 意义
# $mod - win
# $alt - alt
# $ctrl - Ctrl
# Escape - ESC
# Return - return
# Space - space
# Shift - Shift
#
#
# 程序启动时加载
# exec or exec_always
# 主键
set $mod Mod4
set $alt Mod1
set $ctrl Control
# 关闭焦点所在程序
bindsym $alt+Escape kill
# 移动程序
bindsym $mod+h move left
bindsym $mod+j move down
bindsym $mod+k move up
bindsym $mod+l move right
# 改变浮动状态
bindsym $mod+space floating toggle
# 去除i3的标题栏
new_window none
new_float normal
hide_edge_borders both
# 重启 i3
bindsym $mod+Shift+e exit
# 终端
bindsym $mod+Return exec i3-sensible-terminal
# 浏览器
bindsym $mod+p exec chromium
# rofi 配置
# rofi 是一款程序启动器
# 可以启动程序和更换程序
bindsym $mod+i exec rofi -show window
bindsym $mod+o exec rofi -show run
# 壁纸设置
# --bg-fill 是设置大小,自动填充满屏幕
# --randomize 是随机,下面表示随机播放壁纸
exec feh --randomize --bg-fill ~/pictures
# 设置一张壁纸
#exec feh --bg-fill /home/edte/Downloads/b65735e8ba5f0dd3f89aaf3cd8cd6be9_720w.jpg
# 设置透明化
exec_always compton -b
# 设置文件管理器
bindsym $mod+e exec thunar
# markdown 编辑器
bindsym $mod+u exec typora
# 全屏/取消全屏
bindsym $mod+Escape fullscreen toggle
# 配置工作区
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# 切换工作区
bindsym $alt+Tab workspace next
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# 将焦点所在程序移动到对应工作区
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
安装中文字体
pacman -S wqy-microhei wqy-zenhei ttf-dejavu
主题
# lxappearance 是一个主题修改 UI
sudo pacman -S lxappearance
# arc 是一个界面主题, numix 是图标
sudo pacman -S arc-gtk-theme numix-icon-theme-git
终端模拟器
pacman -S konsole
vim $HOME/.config/i3/config
# 终端
bindsym $mod+Return exec i3-sensible-terminal
程序启动器
pacman -S rofi
# 生成配置列表
# rofi 配置
# rofi 是一款程序启动器
# 可以启动程序和更换程序
vim $HOME/.config/i3/config
bindsym $mod+z exec rofi -show window
bindsym $mod+d exec rofi -show drun
窗口透明工具
pacman -S compton
vim $HOME/.config/i3/config
exec_always compton -b
安装状态栏
# polybar 是一个状态栏工具
# polybar 的配置文件在 $HOME/.config/polybar
# 此目录下有两个文件,一个 launch.sh 用于启动 polybar
# 一个 config 文件是配置文件
# 安装 polybar
yay -S polybar-git
# 配置
install -Dm644 /usr/share/doc/polybar/config $HOME/.config/polybar/config
# 配置安装脚本
vim ~/.config/polybar/launch.sh
# 输入
killall -q polybar
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
polybar example
# 给权限
chmod + ~/.config/polybar/launch.sh
# 配置状态栏
vim vim ~/.config/polybar/config
输入
https://github.com/Kuari/i3-wm-config/blob/master/.config/polybar/config
# 开机自动启动
vim $HOME/.config/i3/config
exec . ~/.config/polybar/launch.sh
联网管理
systemctl enable dhcpcd
壁纸设置
pacman -S feh
vim $HOME/.config/i3/config
# 壁纸设置
# --bg-fill 是设置大小,自动填充满屏幕
# --randomize 是随机,下面表示随机播放壁纸
exec feh --randomize --bg-fill ~/picture
# 设置一张壁纸
exec feh --bg-fill ~/image.file
输入法
# 安装
sudo pacman -S fcitx fcitx-qt5 kcm-fcitx fcitx-cloudpinyin fcitx-libpinyin fcitx-configtool
# 配置文件
sudo vim $HOME/.xinitrc
# 在 exrc i3 上方输入
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
fcitx
# 重启
reboot
# 配置
输入法,云拼音,壁纸,字典,剪切班,快捷键
安装浏览器
pacman -S chromium
vim $HOME/.config/i3/config
bindsym $mod+q exec chromium
shell 配置
# zsh 是一个不错的 shell
pacman -S zsh
# oh-my-zsh 是一个 方便配置 zsh 的工具
# 安装 oh-my-zsh
sudo git clone https://github.com/ohmyzsh/ohmyzsh.git
cd /ohmyzsh/tools
./install.sh
# 安装插件
# zsh-autosuggestions 是一个自动补全命令工具
# 如 曾经输入 ps -aux | grep abc
# 现在要输入类似命令,那么直接输入 ps ,就会把 ps -aux | grep abc 后的命令灰色表示出来
# 可以直接 右方向键补全这个命令
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# zsh-syntax-hightlighting 是一个不错的高亮工具,当命令正确时为 绿色,错误为红色
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# z.lua 是一个目录跳转工具,常用于跳转常用的复杂目录
# 比如曾经使用过 cd $HOME/blog/myback/hello
# 那么只需直接 z 目录中的一部分,当然最好是特殊的地方
# 如此处可直接 z hello
sudo pacman -S lua
git clone https://github.com/skywind3000/z.lua.git ~/.oh-my-zsh/plugins/z.lua
# zsh-history-substring-search 是一个历史查询命令
# 比如 曾经输入过 cd / 和 cd ~
# 现在 输入 cd ,然后 用上下反向键控制,就会补全历史中以 cd 开头的命令
git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search
# thefuck 是一个智能匹配上一个命令类似的工具
# 常用于命令输入错误后使用
# 如输入 pythoj
# 然后 fuck
# 就会自动到 python
sudo pacman -S thefuck
# hstr 是一个查询历史命令的工具,是 ctrl+r 的替代品,有时候有一些复杂的命令
# 使用上面的方法找不到时,就要使用这个命令了
# 输入 hstr
# 然后输入命令,在使用方向键查找
yay -S hstr-git
# sudo 是一个很不错的工具
# 当忘记输入 sudo 后
# 可以双击 ESC 使用 sudo 命令执行上一命令
# 这个插件是 oh-my-zsh 自带的
# 配置
sudo vim ~/.zshrc
# 输入
export ZSH="/home/edte/.oh-my-zsh"
ZSH_THEME="ys"
# plugins
plugins=(
zsh-history-substring-search
sudo
# 使用 x 解压
extract
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
eval "$(lua /home/edte/.oh-my-zsh/plugins/z.lua/z.lua --init zsh)"
eval $(thefuck --alias)
alias setproxy="export ALL_PROXY=socks5://127.0.0.1:1080"
alias unsetproxy="unset ALL_PROXY"
alias getip="curl -i httpbin.org/get"
alias install='sudo pacman -S'
alias remove='sudo pacman -Rs'
alias upgrade='sudo pacman -Syu'
alias push='/home/edte/.config/git-push.sh'
# 生效
source ~/.zshrc
# 推荐一个工具,经常强制重启会遇到的问题
# corrupt history file/home/xxx/.zsh_history
sudo npm install -g zsh_history
zsh_history
文件管理器
# thunar 是一个有 ui 的轻亮级文件管理器
pacman -S thunar
# 配置快捷键
vim $HOME/.config/i3/config
bindsym $mod+e exec thuna
# ranger 是一个 cli 文件管理器
# 用于查看图片比较方便
# feh 也可以查看图片,但是查看多个图片时,比较慢
sudo pacman -S ranger
使用代理上网
# arch 下 ssr 没有图形化程序, ssr-eletrion 有兼容问题,只能使用命令行
# v2ray 可以使用 qv2ray
# ss 一般使用 shadowssocks-qt5
# 这里提供 ss 教程
# 安装
sudo pacman -S shadowsocks-qt5
# 配置
# 打开后配置即可
# 终端使用代理, 这里是设置全局代理,端口自己改
export ALL_PROXY=socks5://127.0.0.1:1080
# 取消
unset ALL_PROXY
# 测试,看 ip 变了没
curl -i httpbin.org/get
# 为方便使用,可以 alias 一下
sudo vim $HOME/.zshrc
alias setproxy="export ALL_PROXY=socks5://127.0.0.1:1080"
alias unsetproxy="unset ALL_PROXY"
alias getip="curl -i httpbin.org/get"
source $HOME/.zshrc
# 浏览器使用代理, 我使用的是 chromium
# chromium 不支持 i3, 需要借助插件 Proxy SwitchyOmega
# 下载插件
https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?hl=zh-CN
# 设置
# 在情景模式中
# 设置 proxy 为 127.0.0.1 和 1080 ,端口自己改
# 设置 auto switch 为 规则列表规则
# (按照规则列表匹配请求) 设置为 proxy
# 默认情景模式 设置为 直接连接
# 规则列表设置 选择 AutoProxy
# 然后在 规则列表网址 中输入 https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
# 这个网站是 gfw ban 的站点
# 然后更新情景模式,再点插件图标,选择 suto switch 即可
# 设置的原理也好理解,即在打开一个网站后,先判断这个站点在不在我们刚输的 规则列表网址中
# 如果在,那么使用代理,否则直接连接,要判断是否使用了代理
# 可以在打开站点后点击插件图标,即可看见
# 参考 https://www.flyzy2005.com/tech/switchyomega-proxy-server/
# 也可以临时使用插件 集装箱 或谷歌上网助手
googlehelper.net
one.newday.me
版本控制系统
sudo pacman -S git
# 配置 github
git config --global user.name "edte"
git config --global user.email "zzzzip6@gmail.com"
# 安装 keygen
sudo pacman -S openssh
ssh-keygen -t rsa -C "zzzzip6@gmail.com"
cat $HOME/.ssh/id_rsa.pub
# 使用脚本自动 push
# 需要使用到 expect 命令
sudo pacman -S expect
sudo vim $HOME/.config/git-push.sh
# 输入
#! /usr/bin/expect
spawn git push origin master
expect "*Username*"
send "edte\r"
expect "Password"
send "your password\r"
cd ~
interact
# 设置 alias
sudo vim $HOME/.zshrc
alias push='/home/edte/.config/git-push.sh'
source $HOME/.zshrc
# 以后直接在 git 目录 push 即可
go 语言开发环境
sudo pacman -S go jdk goland
c 语言开发环境
sudo pacman -S cmake clion
简洁的帮助文档
# tldr 是 man 的替代品
sudo pacman -S tldr
# 更新缓存
tldr --update
# 本地缓存在 $HOME/.cache/tldr
# 其他可查看 https://s0pypi0org.icopy.site/project/tldr/
markdown 编辑器
sudo pacman -S typora
vim $HOME/.config/i3/config
bindsym $mod+1 exec typora
vim
sudo pacman -S vim
git clone https://github.com/spf13/spf13-vim.git
cd spf13-vim
./bootstrap.sh
终端复用器
# terminal multiplexer 就是支持在一个 terminal 里打开多个 session 的工具,当然也支持其他功能。
sudo pacman -S tmux
# 一个优秀的教程 https://www.ruanyifeng.com/blog/2019/10/tmux.html
磁盘使用分析工具
# ncdu 是 du 的替代品,无需如 du 一样使用许多命令,直接是输入 ncdu 即可
sudo pacman -S ncdu
ncdu
回收站
# Trash 是一个回收站命令,也就是把文件/目录移动到特定目录
# trash-put: 删除文件和目录(仅放入回收站中)
# trash-list :列出被删除了的文件和目录
# trash-restore:从回收站中恢复文件或目录 trash.
# trash-rm:删除回收站中的文件
# trash-empty:清空回收站
# 回收站对应的目录是 $HOME/.local/share/Trash
sudo pacman -S trash-cli
grep 替代品
# grep 是一个使用正则表达式查询的工具
# 而 rg 则是其替代品, rg 更加迅速
pacman -S ripgrep
cat 替代品
sudo pacman -S bat
文件搜索工具
sudo pacman -S fzf
find 替代品
sudo pacmsn -S fd
ls 命令增强
sudo pacman -S exa