不幸

一个夏日炎炎的下午,喝着咖啡,耍着电脑,忽然Ubuntu22.04.1的推送顺着WiFi就来了。心想这都推出有一阵子了,应该趋于“老练”,便开端晋级。不幸总是在不经意间来临,就在晋级Firefox的snap时,晋级程序就这么卡住了……先是Firefox的晋级程序卡主,然后整个更新程序卡主。其时的想法:大不了reinstall吧,多次在图形界面中无法重启,最终在指令行中reboot,于是悲惨剧就发生了:电脑再次发动时,提示体系损坏,联络办理员……

挣扎

依照Windows或Mac的惯性思路,遭遇装置进程中意外重启导致的装置失利,能够经过重复装置进程来修正。在官网下载Ubuntu22.04.1的装置程序,并制作为发动盘。引导电脑,挑选reinstall。结果装置程序一个大大的正告贴在我脸上:大致意思是我只有一个分区(自从不用FAT32文件体系后就再没分区),装置程序将会删去一切文件,并格式化磁盘……眼前一黑……

数分钟后,我接受了实际。挑选直接用U盘发动Ubuntu最小体系,挂载电脑的SSD,先把工程文件夹全部打包

tar -vzcf ./backup.tar.gz ./Engineerings

假如不打包也能备份,可是碎片文件过多(170万个文件),这个备份和康复进程可能需求数个小时。我挑选先压缩,然后备份压缩包。打包进程大约过了半小时,然后将打包文件(7G)仿制到移动SSD中。稳妥期间,再将文件扔到苹果体系中检查是否有错。

新生

挑选直接装置体系,挑选不要运用在线更新(这样装置进程会更快),不多久就装好了,再连上WiFi,更新体系。先说说第一眼感触:20和22的不同不大,GUI的确漂亮一些(但有限)。不知道20LTS的一些老Bug是否有被修正,这可能需求一些时日来体会了。以下是关于装置软件和装备体系的备忘,有爱好的同学能够拿去参考。经过一段时间的摸索,总算将体系装置完毕。趁便整理了整个装置与装备进程,算是(3年前)Ubuntu18开发环境的一个晋级吧。

根底

软件源

APT

先将软件库替换到国内的镜像服务器(以下是阿里云镜像),由于某些原因,假如不改动源的设置,可能会形成一些影响:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/http://cn.archive.ubuntu.com/https://mirrors.aliyun.com/g' /etc/apt/sources.list
# 更新
sudo apt update && sudo apt upgrade -y

Ubuntu在国内现已树立了镜像,即便是不替换源,速度也不至于像从前那样龟速,比较显著的感触在Ubuntu商店现已比以前快很多,然而这个国内并没有三方镜像(可能时由于软件总体仍是很糟糕,没人乐意去做吧)。

Nala

Nala是APT的外壳,比较apt有更漂亮的体现(字符界面),并能够更便利地装备镜像地址。经过履行:

sudo nala fetch

nala会跑完500多个镜像服务器,并列出响应速度最快的前16个服务器,我们能够挑选一个或许多个(多个就用空格隔开)。其余操作根APT共同,例如installupdateupgrade。假如选用Nala作为软件办理,那么下文中的apt指令都改为nala即可。

# 增加 Nala 源
echo "deb https://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
# 更新原生仓库,并装置Nala
sudo apt update && sudo apt install nala -y
# Nala 探测最快的镜像地址
sudo nala fetch

常用类库与根底东西

  • 常用的编译东西
  • git / zsh / curl / wget:阿里云的code.aliyun.com服务加强了git基于ssh-rsa的认证,所以需求设置特定的装备文件,不然不然会形成无法git账户无法ssh连接
  • neovim:经常会在字符界面中做一些文件小改动的操作,neovim十分合适。
  • oh-my-zsh / power line 10k:颜值即正义(假如需求这个,先装置下文的Nerd字体,并设置指令行的默许字体为Nerd系列,再回到这一步)。
  • OpenSSH-Server:偶然会把电脑留在公司,但又忽然像要某个文件……
  • 压缩与解压缩
  • 其他东西:tmux:分屏,tree:目录检查
sudo apt install make gcc libtool libtool-bin autoconf automake cmake g++ pkg-config -y
sudo apt install git zsh curl wget -y
ssh-genkey
# 设置 .ssh/config 文件,Host还能够用 * 代替
tee ~/.ssh/config <<-'EOF'
Host code.aliyun.com
    User git
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa
EOF
sudo apt install neovim
# oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Change default shell to zsh
chsh -s $(which zsh) 
# power line 10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
# ssh server
sudo apt install openssh-server
# 压缩与解压缩
sudo apt install 7zip unrar zip unzip
# 分屏
sudo apt install tmux tree

输入法

现在搜狗输入法与Ubuntu22仍是有一点兼容性问题:假如不运用zsh作为默许shell仍是能够挑选搜狗输入法,不然fcitx程序会无法发动搜狗输入法。解决办法现在只能运用体系自带的智能拼音。

搜狗拼音

搜狗输入法。假如在装置时时区(Timezone)挑选国内,则直接从第4步开端:

  1. Settings -> Region & Language -> Manage Installed Languages;

Ubuntu 22.04.1 LTS Desktop 生产力环境树立

  1. Install / Remove Languages,第一次敞开会装置依靠;
  2. 然后勾选Chinese (Simplified);
  3. 装置fcitx > sudo apt install fcitx -y(–fix-missing)
  4. 第1步的方式翻开言语支撑,Keyboard挑选输入结构 Fcitx4
    Ubuntu 22.04.1 LTS Desktop 生产力环境树立
  5. 删去ibus输入法 sudo apt remove --purge ibus
  6. 装置搜狗输入法sudo dpkg -i ~/Downloads/sogoupinyin_4.xxx.deb
  7. 装置依靠 sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 libgsettings-qt1
  8. 重启体系,并右上角看到键盘图标
    Ubuntu 22.04.1 LTS Desktop 生产力环境树立
  9. 挑选Configiure,进行装备
  10. Input Method Configuration对话框的下面,点+
  11. 弹出Add input method对话框,去掉默许选中的Only Show Current Language选项,在查找框中输入sogou
  12. 一路OK和封闭。
智能拼音
  1. Settings -> Region & Language – > Manage Installed Languages
  2. 保证有汉语(中国)现已装置,没有装置点 Install / Remove Languages 增加
  3. 保证Keyboard input method system是IBus
  4. Settings -> Keyboard -> Input Sources 增加
  5. 挑选Chinese,在子选项中挑选 Chinese (Intelligent Pinyin)

Chrome阅读器

没啥好说的,官方网站下载,登录账号后一切插件会主动同步,以下是我的常用插件:

ID 称号 描述
poahndpaaanbpbeafbkploiobpiiieko Display #Anchors 显现网页锚点
mihcahmgecmbnbcchbopgniflfhgnkff Google Mail Checker Gmail邮箱检测
oldceeleldhonbafppcapldpdifcinji Grammar & Spell Checker 英语语法与拼写检测
chklaanhfefbnpoihckbnefhakgolnmc JSONVue 检测纯JSON数据并格式化
mooikfkahbdckldjjndioackbalphokd Selenium IDE 前端测试
dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey 油猴
cjpalhdlnbpafiamejdnhcphjbkeiagm uBlock Origin 广告屏蔽(有时候它会用力过猛)
nhdogjmejiglipccpnnnanhbledajbpd Vue.js devtools VUE 程序调试
gppongmhjkpfnbhagpmjfkannfbllamg Wappalyzer 剖析网站采用哪些技术栈

字体

开发者常用Nerd Fonts和Mono等宽字体,还有这里

github.com/ryanoasis/n…

www.nerdfonts.com/font-downlo…

字体文件(ttf)下载后,直接用体系自带的Fonts Manager翻开并装置到体系中,也能够手动装置(我认为手动装置更快,复制到相关目录,履行整理缓存即可)

sudo mkdir /usr/local/share/fonts/somefonts
sudo cp ~/Downloads/fonts.ttf /usr/local/share/fonts/somefonts
# 刷新字体库缓存,只有这样才能在不重启的状况下,在一些编辑器中看到体系中现已装置(仿制)的字体
fc-cache -f -v

常用中文字体有:

  • 阿里巴巴普惠体(免费,漂亮)
  • 微软雅黑、苹果苹方(商业字体)

私有云(ownCloud)

curl https://download.owncloud.com/desktop/ownCloud/stable/latest/linux/Ubuntu_22.04/INSTALL.sh | sudo bash

直接能够完结下载和装置,就是那个gpg证书版别老了,每次会有提示。

开发环境

既然是程序员的电脑,自然离不开开发环境。我首要从事Web全栈程序开发,从服务器的数据库到前段的CSS都有涉及。其他一方面,除了开发作业外,有许多优秀的东西是源码下载运用的,所以需求相关的言语环境作为支撑。

  • NodeJS:建议运用nvm办理东西以及nrm的类库源办理,一台电脑上一起装置多个NodeJS版别
  • Python:同样,运用anaconda 能够办理多个python版别库,还附带了常用的python东西箱
  • Docker:直接用官方提供的装置脚本,并一起装置docker-compose
  • 其他开发言语:Go / Ruby / Rust / Lua
  • Java JRE
# 多版其他NodeJS办理东西 -> nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# 当时Node下装置镜像源,注意切换Node版别后还要重新装置和设置
npm i -g npm nrm
# [] Python 从 https://www.anaconda.com/ 下载最新版 anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh | bash
curl -sSL https://get.docker.com/ | sh
# 增加Docker的普通用户权限,更新后需求重启
sudo usermod -aG docker $USER
# 装置docker-compose
pip3 install pyqt5 pyqtwebengine pathlib docker-compose
# 修正Docker的国内镜像,引荐运用阿里云的镜像(每个账户能够有一个免费镜像)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://****.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# Go https://go.dev/dl/ 找到最新版
GO_LATEST=1.19.linux-amd64
wget https://go.dev/dl/go${GO_LATEST}.tar.gz -O ~/Downloads/go.tar.gz
sudo tar -C /usr/local -xzf ~/Downloads/go.tar.gz
# 需求参加到装备中
export PATH=$PATH:/usr/local/go/bin
# ruby
sudo apt install ruby-full -y
# Rust 挑选默许装置(直接回车)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Lua https://www.lua.org/download.html 找到最新版
LUA_LATEST=5.4.4
wget http://www.lua.org/ftp/lua-${LUA_LATEST}.tar.gz -O ~/Downloads/lua.tar.gz
tar zxf lua.tar.gz
cd lua-${LUA_LATEST}
make linux test
sudo make install
# Java JRE/JDK 二选一
sudo apt install default-jdk
sudo apt install openjdk-18-jdk

图形界面东西

有些东西能够经过snap装置,由于Ubuntu预装了Snapcraft,能够直接用。假如没有的,则先装置snapd

  • VSCode:程序员第一神器 ,能够直接从官网下载deb包文件,但缺陷是每次晋级都得去官网下载(Ubuntu下不像Windows或Mac静默下载重启更新),所以最好是用apt装置,每次update能够附带着一起晋级了,下载速度也快。需求手动增加gpg证书和装置包源。
  • XMind,思维导图东西,几年的进化现已有用十分漂亮的界面,且免费版别现已足够日常运用。
  • Marktext:Markdown编辑器
  • GIMP [Snap]:Linux下的Photoshop
  • VLC [Snap]:卡片必备
  • Redis Desktop Manager [Snap]:redis的GUI客户端
  • DBeaver:支撑干流的联系型数据库的GUI客户端,免费版也足够用
  • Studio 3T:Java开发的MongoDB客户端,前不久开放免费运用(30天后限制功能也能用),代替Robo 3T
  • Sublime:图形界面下,纯文本文件备用编辑器
  • FileZilla:SSH或FTP复制文件仍是很便利的
  • aMule:电驴下载东西
  • Darktable[Snap]:图片阅读东西
  • Kazam:录屏软件
  • bleachbit:体系整理东西
  • draw.io:草图绘制东西
  • Angry IP Scanner:局域网地址扫描东西
# VSCode 下载并生成证书,主动更新
wget -O- https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor | sudo tee /usr/share/keyrings/vscode.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/vscode.gpg] https://packages.microsoft.com/repos/vscode stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update && sudo apt install code -y
sudo snap install vlc redis-desktop-manager gimp darktable darwio
# Studio 3T https://studio3t.com/download/ 下载
# wget https://download.studio3t.com/studio-3t/linux/2022.7.2/studio-3t-linux-x64.tar.gz -o ~/Downloads
tar -C ~/Downloads -xzf ~/Downloads/studio-3t-linux-x64.tar.gz
bash ~/Downloads/studio-3t-linux-x64.sh
# Sublime
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sublimetext-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/sublimetext-keyring.gpg] https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt update && sudo apt install sublime-text -y
# FileZilla
sudo apt install amule filezilla kazam bleachbit -y

主题与扩展

Ubuntu拥有不逊于苹果的漂亮和可定制特性,依据个人的喜好调教作业环境能够进步不少作业效率。

扩展

  • Blur my shell:super+A 的那个luanch pad 的布景改为模糊(而不是纯色)
  • cpufreq:gnome左上显现当时CPU频率,第一次点击图标装置功能设置东西。此刻能够删去调体系自带的功能设置irqbalanc。记住将电脑功能改为平衡形式balance
  • caffine:制止体系进入休眠形式
  • TopHat:体系资源运用监控。需求其他装置gir1.2-gtop-2.0

主题

从Gnome-look找自己喜欢的主题包,事前装置gnome-tweaks / gnome-shell-extensions,经过extension-manager 敞开user-theme。以Orchis为例(办法迥然不同):

  1. 克隆主题源代码到本地
  2. 在源代码目录中履行install,此刻脚本会将所需求的以来选项和文件都处理完结

第二种办法(全手动)

  1. 在主目录下(~/)树立两个隐藏目录.themes.icons
  2. 下载主题资源包,解压缩到对应的目录中
  3. 翻开tweak挑选对应的主题

引荐关注必应墙纸,每天都会更新bing上的美图,看中后能够直接作为桌面布景运用。

# gnome 扩展办理东西
sudo apt install gnome-shell-extension-manager
# gnome 主题办理
sudo apt install gnome-tweaks gnome-shell-extensions chrome-gnome-shell -y

指令行东西

  • htop 监控
  • neofetch:夸耀用体系概览信息
  • preload :剖析用户习气,在重启电脑后预加载应用程序,完结秒开程序的作用
sudo apt install htop neofetch preload -y

Windows 虚拟机

Linux现已能够完结大部分的作业,可是还不是全部。有些专门的软件或许只能在Windows操作体系下运行,面临这种状况,能够挑选VirtualBox+Windows7的组合。

www.virtualbox.org/wiki/Linux_…

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian jammy contrib" | sudo tee /etc/apt/sources.list.d/virtual-box.list
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg
sudo apt update && sudo apt --fix-broken install && sudo apt install virtualbox-6.1

除了非得运行Windows的程序所要运用到虚拟机外,其实大部分作业需求能够用Android模拟器

环境设置

依据自己的运用习气调整体系的风格:

  • 调整dock位置(屏幕下方居中)并设置隐藏(扩展显现面积);
  • Theme的根底颜色
  • 十分好用的桌面切换方便键:Ctrl+Alt+左右方向键:快速切换作业桌面。Ctrl+Shift+Alt+左右方向:将当时窗口带到新作业区
  • 方便键设置 Settings -> Keyboard -> Keyboard Shortcuts,以下仅供参考:
    1. Launchers:翻开指令行 Super+`,文件夹F2,计算器F3,阅读器F1,翻开设置F12
    2. Navigation:隐藏一切窗口(显现桌面)Super+M
    3. Custom Shortcuts:设置其他常用程序
  • 敞开日落护眼形式:settings-> displays->Night Light
  • 设置随机发动软件(图形界面,GNOME)Super+A,输入startup
  • 移除不用的软件包:sudo apt autoremove
  • 运行.AppImage文件:sudo apt install libfuse2然后在文件的权限中挑选履行即可双击翻开。
  • 设置Termianl为半透明布景(透过界面能看到后面的窗口,有些场景下十分好用)
  • 笔记本电脑:敞开电池百分比显现
  • 假如是高分辨率屏幕,则需求敞开更细节的缩放比例,默许状况下只有成倍增加,敞开后能够25%一档调整。
  • 设置头像和敞开指纹
  • 设置一些指令行下的方便指令,如:检查各分区剩余空间,检查ip地址,从指令行中仿制到剪切板;
  • 将体系一起翻开文件数量调高到26万
# .zshrc 参加缩写装备,常用指令
# 检查各分区的剩余空间
alias df='df -h -x squashfs -x tmpfs -x devtmpfs -x overlay'
# 检查网络IP地址(ipv4)
alias ip='ip -4 -br address'
# 指令行下的仿制到粘贴板
alias cc='xclip -sel clip < '
# 简化docker容器输出标格
alias dps='docker ps --format "{{.ID}}t{{.Status}}t{{.Ports}}t{{.Names}}"'
# 一起翻开文件数
sudo echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -w vm.max_map_count=262144

一些备忘

有些软件需求手动装置,并指定查找路径。可是这些软件又不会在desktop的软件中呈现,这是就需求略微操作

  1. $HOME/.local/share/applications/ 中创立.desktop文件,具体创立方式随便找个其他文件照猫画虎即可。
  2. 履行指令 update-desktop-database $HOME/.local/share/applications/更新

修正应用程序相关,mime文件类型,在:/usr/share/applications/default.list

桌面程序发动一般更新在:$XDG_DATA_DIRS/applications

总结

作为首要用于开发的电脑,毫不夸张地说,Ubuntu要比Windows强不少。且不谈开发环境无限接近服务器(用WindowsServer就当我没说),程序的编译速度(C言语编译ESP32源代码,相差3倍)、文件体系与文本的兼容性都要强于Windows。可供挑选的软件十分丰富,不管是ARM、AMD64或X86的架构,假如会自行编译,几乎畅通无阻。假如习气用指令行,那种精准的指令操作以及强壮的脚本编列会让你再也回不去(图形界面)。

略有缺乏的地方首要体现在国内的一些软件。例如会议软件,微信等。不过腾讯会议和钉钉有Linux版别可供下载。真实不幸还能够凭借虚拟技术和WINE来补偿缺陷。一定要说Linux最大的缺陷,就是游戏:现在能够用STEAM,但其中大部分游戏没Linux版别,就彻底无法运行了。

有相当多的开发者在Windows10/11中装置WSL(1或许2)包含我,但仍是受制于Windows的功能需求,会被“吃掉”不少资源。假如Linux优化够好,能够让一台7年前的简便笔记本电脑仍可执役,换成Windows怕是只能码字。

Ubuntu 22.04.1 LTS Desktop 生产力环境树立

Ubuntu 22.04.1 LTS Desktop 生产力环境树立