程式員的 Ubuntu 19.10 配置與優化指南

来源:https://www.cnblogs.com/leviatan/archive/2020/04/14/12701974.html
-Advertisement-
Play Games

轉載請註明原文地址: "程式員的 Ubuntu 19.10 配置與優化指南" 0x00 環境 CPU: Intel Core i9 9900k GPU: GeForce RTX 2070 SUPER RAM: DDR4 16GBx2 OS 1: Ubuntu 19.10 eoan OS 2: Win ...


轉載請註明原文地址:程式員的 Ubuntu 19.10 配置與優化指南

0x00 環境

CPU: Intel Core i9-9900k

GPU: GeForce RTX 2070 SUPER

RAM: DDR4 16GBx2

OS 1: Ubuntu 19.10 eoan

OS 2: Windows 10 1909

Disk 1: Samsung SSD 970 EVO Plus 500GB - GUID Partition Table(/dev/nvme0n1)

Disk 2: ST4000VX007-2DT166 - GUID Partition Table(/dev/sda)

Disk 3: Samsung SSD 850 EVO M.2 250GB - GUID Partition Table(/dev/sdb)

Ubuntu Partition 1: 1G - Ext4 - /boot/ - 邏輯分區(/dev/sdb1)

Ubuntu Partition 2: 2G - Swap - swap - 邏輯分區(/dev/sdb2)

Ubuntu Partition 3: 40G - Ext4 - /home/ - 邏輯分區(/dev/sdb3)

Ubuntu Partition 4: 206G - Ext4 - / - 主分區(/dev/sdb4)

0x01 前言

閱讀順序

強烈建議先仔細閱讀一遍本文,瞭解註意事項及大概流程後,再應用到實際部署中

開發環境

本文中配置的開發環境主要面向 web 開發及運維,主要包括 NodeJs, Go, Nginx, PHP, MySQL, Python

由於 C 的開發環境筆者主要依靠 VSCode + gcc + gbd,每個人有不同的配置習慣且不同需求的環境相差較大,這裡不做詳細描述

本機配置

本文所有操作基於 Win10 + Ubuntu 雙系統,先安裝 Win10,再安裝 Ubuntu。安裝 Ubuntu 時使用單塊硬碟(Disk 3)配置分區,將 Ubuntu 引導系統放在 Windows Boot Manager(/dev/nvme0n1p2),也就是 Windows 的 EFI 分區中,安裝完成後該分區將作為引導分區被掛載到 /boot/efi/ 目錄

如果不使用雙系統

單獨安裝 Ubuntu 或在虛擬機中安裝,並不影響本文中大部分操作,唯一需要註意的是不需要在 Grub 中調整引導順序

為什麼使用 Ubuntu 19.10

在所有 Linux 發行/衍生版本中,Ubuntu 是唯一適合日常開發使用,環境較為成熟,社區論壇較多,軟體支持全面並且符合用戶操作習慣的版本

在筆者嘗試安裝 Ubuntu 19.04 的過程中,發現部分硬體打不上驅動,導致了安裝後有很多關於底層驅動的操作不適合普通用戶,並且 19.10 與 19.04 差距並不大,很多適用於 19.04(disco) 的軟體源同樣也適用於 19.10(eoan),所以最後選擇了 Ubuntu 19.10

有哪些用戶

文中主要涉及三個用戶

  • root
    • 根用戶,在系統中擁有最高許可權
  • user
    • 系統用戶,筆者使用的用戶名是 simonriley ,文中為便於辨認使用 user 代替
  • www-data
    • 大部分 web 服務使用的用戶,由 Nginx 或 PHP-FPM 自動創建,只有 web 服務需要使用該用戶

用戶與系統環境變數配置

按照筆者的習慣,為保證 rootuser 使用相同的環境,/root/ 目錄下 .bashrc.dircolors.condarc 三個配置文件均使用 /home/user/ 目錄下同名文件的軟連接

實際部署中發現 root 用戶可能不會從 /etc/profile 讀取環境變數配置,所以在 .bashrc 中添加如下配置

source /etc/profile

註意:在 .bashrc 配置中,為保證後續添加的配置不會被覆蓋,預設將新增的配置寫在該行下麵

文件許可權配置

使用軟體包管理器安裝的包,管理器會自動配置許可權,但有些包是我們手動下載並配置的,例如 /usr/local/node/ 目錄,對於這類包,建議在配置完成後使用下麵的命令手動將其許可權修改為 user

sudo chown user:user -R /usr/local/node/

在終端中使用的用戶

終端預設使用的用戶是 user ,但實際操作中會遇到很多需要使用 root 許可權的命令,在本文中調用該許可權的方式為 sudo <command>

註意:在對系統沒有足夠瞭解的情況下不建議直接使用 root 用戶操作,即使足夠瞭解也請先確認自己知道每一步操作的作用和可能造成的後果。使用 root 用戶進行操作所造成的任何損失(包括但不限於文檔資料損壞或丟失及硬體損壞)筆者不承擔任何責任

如果您認為自己有一定 Linux 操作知識,也可以直接使用 sudo -s 切換到 root 用戶進行操作,只要保證創建一些需要從桌面啟動的文件/文件夾時能夠將其許可權設置為 user ,或出現許可權問題能夠通過查看和理解錯誤輸出及時意識到問題所在即可

註意:在對系統沒有足夠瞭解的情況下不建議直接使用 root 用戶操作,即使足夠瞭解也請先確認自己知道每一步操作的作用和可能造成的後果。使用 root 用戶進行操作所造成的任何損失(包括但不限於文檔資料損壞或丟失及硬體損壞)筆者不承擔任何責任

文中有些文件名為什麼和我下載的不一樣

文中下載的有些文件名是帶有版本號的,例如 software-1.12.1.tar.gz,這裡所有版本號均使用 “x” 代替:software-x.xx.x.tar.gz

配置的應用及重啟

文中很多配置在完成後需要重啟才會被應用,為減少重啟次數,本文將所有重啟應用的配置都放在 0x02 步驟中,完成該步驟後只需重啟一次

0x02 安裝後保證系統能夠正常使用

系統使用 RTC 時間

Ubuntu 安裝完成後會出現系統時間與硬體時間不同步的情況,導致 Windows 時間不正確,Windows 端無法進行加密相關的驗證

timedatectl set-local-rtc 1 --adjust-system-clock

更換國內軟體源

軟體源分別來自 TUNA(清華大學 TUNA 協會 創建的 清華大學開源軟體鏡像站)和 OPSX(阿裡雲 創建的 阿裡巴巴開源鏡像站

編輯 /etc/apt/sources.list

刪除原本的源,添加如下

## TUNA

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse

## OPSX

deb http://mirrors.aliyun.com/ubuntu/ eoan main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ eoan main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ eoan-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ eoan-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ eoan-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ eoan-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ eoan-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ eoan-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ eoan-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ eoan-backports main restricted universe multiverse

更改完成後檢查所有軟體包的更新並升級

sudo apt update
sudo apt upgrade

使 rootuser 配置同步

/home/user/ 目錄下的配置建立到 /root/ 目錄的軟鏈接

sudo ln -sf /home/user/.bashrc /root/
sudo ln -sf /home/user/.dircolors /root/

安裝常用軟體包

sudo apt install curl git htop fcitx-googlepinyin gnome-tweak-tool gnome-shell-extensions chrome-gnome-shell vim hwinfo
軟體包 用途
curl 基於 URL 的文件傳輸/請求模擬
git GitHub 命令行客戶端
htop 進程管理
fcitx-googlepinyin Google 拼音輸入法
gnome-tweak-tool Gnome 優化工具
gnome-shell-extensions Gnome 擴展管理
chrome-gnome-shell Chrome 的 Gnome 擴展管理插件
vim 基於命令行的文本編輯器
hwinfo 查看硬體信息

安裝語言支持並修改輸入法

從應用菜單中找到 語言支持 ,打開後會提示 系統中安裝的語言支持不完整 ,點擊 安裝 ,等待安裝完成

安裝完成後,將鍵盤輸入法系統更改為 fcitx

此時輸入法修改並不會立即生效

0x03 優化顯示

優化 Grub 顯示

Grub 實際的配置文件是由多個配置自動生成的,所以這裡需要修改多個文件

修改 Grub 解析度

Grub 預設會使用硬體能夠輸出的最小解析度,導致 Grub 界面模糊

查看顯卡在 Grub 中能夠輸出的解析度

sudo hwinfo --framebuffer

筆者該命令的輸出中,最大解析度 1920x1080,實際使用中可能會出現更高的解析度

/etc/default/grub 中修改 Grub 顯示解析度為剛纔查詢到的最大解析度

GRUB_GFXMODE=1920x1080

[可選] 修改 Grub 中顯示的操作系統順序

/etc/grub.d/ 目錄中存放的是 Grub 能夠引導的操作系統的配置文件,按照 啟動順序_操作系統名 生成實際的啟動順序

這裡由於筆者習慣,需要將第一啟動項修改為 Windows,直接將 30_os-prober 前的數字改到小於 10_linux 即可

註意:該目錄下有一些需要在所有操作系統前啟動的配置,例如 00_header05_debian_theme,修改的數字要大於這些

為 Grub 安裝主題

grub2-themes - GitHub 下載 Release 包

解壓後運行 install.sh,通過參數選擇主題及支持的解析度,具體請參考上面的 GitHub 項目主頁

這裡安裝的是 vimix 主題

sudo ./install.sh --vimix

修改 Grub 背景顏色

雖然已經設置了 Grub 主題,但實際上它只是在預設的紫色背景上顯示了一張圖片進行覆蓋,當選擇操作系統退出 Grub 後,有些主板仍然會顯示預設的紫色背景

這可能導致啟動系統時屏幕出現 黑 -> Grub -> 黑 -> 紫 -> 黑 -> OS ,影響美觀,所以這裡將背景修改為黑色

編輯 /usr/share/plymouth/themes/default.grub 文件,將原本的腳本註釋並寫入新的

#if background_color 79,25,76,0; then
if background_color 0,0,0; then

應用以上 Grub 更改

上面說過 Grub 的配置是由多個文件生成的,系統提供了升級 Grub 重新生成配置文件的命令

update-grub

優化終端顯示

修改終端配色

這裡先修改 /home/user/ 目錄下的 .bashrc.dircolors,然後在 /root/ 目錄下建立軟鏈接,確保能夠同步

~/.bashrc 中註釋掉如下配置

#if [ "$color_prompt" = yes ]; then
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
#unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#    ;;
#*)
#    ;;
#esac

並添加如下配置

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[38;5;39m\]\w\[\033[00m\]\$ '

但此時使用 ls 命令顯示的文件夾顏色較深,使用下麵的命令修改

dircolors -p > ~/.dircolors
sed -ie 's/DIR 01;34/DIR 38;5;39/g' ~/.dircolors

優化 Terminal 視窗顯示

Ctrl + Alt + T 打開 Terminal 視窗

  • 右上角設置

    • 配置文件首選項
  • 常規

    • 關閉 啟用菜單快捷鍵(影響 htop 退出)
  • 配置文件

    • 未命名
      • 文本
        • 文本外觀
          • 終端起始尺寸 14040
      • 顏色
        • 文本和背景顏色
          • 關閉 使用系統主題中的顏色
          • 內置方案 -> Tango 暗色
          • 關閉 使用系統主題的透明度
          • 開啟 使用透明背景 ,將其調整為約 15%
      • 滾動
        • 關閉 回滾限制到 10000 行

0x04 日常使用優化

修改用戶 home 目錄下文件夾名為英文

由於日常使用終端使用的都是英文,切換到中文目錄中比較麻煩,並且中文可能會導致一些問題

註意:該步驟所有命令使用 user 用戶操作

通過以下命令修改系統語言

export LANG=en_US

更新 GTK 語言

xdg-user-dirs-gtk-update

彈出 Update standard folders to current language? 對話框,選擇 Update Names

一下命令將系統語言重新修改為中文

export LANG=zh_CN

此時該步驟並未結束,重啟後會提示 將標準文件夾更新到當前語言嗎? ,先選擇 不要再次詢問我 ,再點擊 保留舊的名稱

重啟

以上大部分更改都是重啟後才被應用,為減少重啟次數,本文先完成以上所有配置,至此重啟一次即可

註意:此時重啟後預設啟動項是 Windows

0x05 桌面優化

卸載不需要的軟體

打開 Ubuntu 軟體

卸載如下軟體包

  • AisleRiot 紙牌游戲
  • Amazon
  • GNOME 掃雷
  • GNOME 數獨
  • GNOME 麻將牌
  • Firefox 網路瀏覽器

或者您習慣使用 Firefox 瀏覽器可以留下它,但強烈推薦您使用 Chrome 瀏覽器

安裝 Chrome 請參考步驟 0x07

卸載預裝擴展

刪除 /usr/share/gnome-shell/extensions/ 目錄下所有擴展(Dash to Dock 擴展與某個預裝擴展會產生衝突導致安裝失敗)

Alt + F2,輸入 r 並回車重載桌面

在 Chrome 中安裝擴展

在 Chrome 中安裝 GNOME Shell integration 擴展

安裝完成後訪問 Gnome Extensions

進入擴展頁面後開啟擴展即可自動安裝,在 優化 應用中可以管理擴展

推薦如下擴展

  • User Themes
  • Dash to Dock
  • Top Icons Plus

Top Icons Plus 擴展需要使用包管理器安裝

sudo apt install gnome-shell-extension-top-icons-plus

安裝 Gnome Shell 主題

訪問 Gnome Look - Gnome Shell Themes 下載更多,各主題安裝方式可能不同,請參考主題頁面

推薦 Flat-Remix 主題

sudo add-apt-repository ppa:daniruiz/flat-remix
sudo apt update
sudo apt install flat-remix-gnome

安裝圖標主題

推薦 Paper 圖標主題

sudo add-apt-repository -u ppa:snwh/ppa

該源中並不包含 Ubuntu 19.10(eoan),但 Ubuntu 19.04(disco)的主題包也可以應用在 19.10 中,這裡手動更改版本

編輯 /etc/apt/sources.list.d/snwh-ubuntu-ppa-eoan.list

將鏈接後的 eoan 修改為 disco

更新軟體包列表並安裝圖標主題

sudo apt update
sudo apt install paper-icon-theme

修改 Gnome 桌面設置

打開 Gnome Tweak Tool(優化)

  • 外觀
    • 主題
      • 應用程式 -> Adwaita-dark
      • 圖標 -> Paper
      • Shell -> Flat-Remix-Darkest-fullPanel
  • 開機啟動程式 -> 添加 Clash

配置 Dash to dock 擴展

打開 Gnome Tweak Tool(優化)

  • 擴展

    • 配置 Dash to dock
  • 位置和大小

    • 智能隱藏設置
      • 自動隱藏
        • 開啟 在全屏模式下啟用
      • 避開視窗 -> 選擇 僅最大化視窗
  • 啟動器

    • 開啟 隔離工作區
  • 外觀

    • Customize windows counter indicators -> Dashes
    • 自定義透明度 -> 固定
      • 20%

Alt + F2,輸入 r 並回車重載桌面

0x06 開發環境安裝及配置

[可選] Clash 或 ClashR

下載 Clash 各組件

如果您有服務商或自建節點,該步驟將幫助您使用 Clash 或 ClashR 連接 Vmess 及 SSR 節點

該步驟使用 Clash 舉例,ClashR 相同

Clash - GitHub 下載 Release 包

註意:下載 clash-linux-amd64-vx.xx.x.gz 格式的包

或在 ClashR - GitHub 下載 Release 包

註意:下載 clashr-linux-amd64-vx.xx.x.x.gz 格式的包

解壓後重命名為 clashclashr 並賦予執行許可權

mv clash-linux-amd64-vx.xx.x clash
chmod +x clash

maxmind-geoip - GitHub 下載 Country.mmdb 文件,該文件提供基於 IP 的定位

Clash GitHub 源碼 中下載 Clash 的 Logo,作為桌面圖標

在您的服務商處下載 Clash 或 ClashR 節點列表,並更名為 config.yaml

將以上四個文件放到 /usr/local/clash/ 目錄中

啟動腳本

該腳本實現了以下功能

  • 檢查正在運行的 Clash 客戶端並關閉
  • 為 Clash 生成運行日誌
  • 啟動新的 Clash 客戶端
  • 每次啟動時檢查日誌是否超過 15 份,超出刪除

在該文件夾下建立 Clash 的啟動腳本 clash_startup.sh

註意:腳本中變數值根據實際情況配置

#!/bin/bash
CLASH_APP_NAME="clash"
CLASH_APP_PATH="/usr/local/clash"
CLASH_CONFIG_PATH="/usr/local/clash"
CLASH_LOG_PATH="/usr/local/clash/log"
LOG_DATE=$(date +'%Y%m%d')
CHECK_CLASH_PID=$(ps aux | grep "./$CLASH_APP_NAME -d $CLASH_CONFIG_PATH" | grep -v grep | awk '{print $2}')

mkdir -p $CLASH_LOG_PATH

LOG_NUM=$(ls -lR $CLASH_LOG_PATH | wc -l)
LOG_NUM_MAX=15

if [ -n "$CHECK_CLASH_PID" ]; then
    for clash_pid in $CHECK_CLASH_PID; do
        kill -9 $clash_pid
    done
fi

cd $CLASH_APP_PATH && nohup ./$CLASH_APP_NAME -d $CLASH_CONFIG_PATH 2>&1 >>$CLASH_LOG_PATH/$CLASH_APP_NAME-$LOG_DATE.log &

if [ $LOG_NUM -gt $LOG_NUM_MAX ]; then
    for i in $(seq 1 $(($LOG_NUM-$LOG_NUM_MAX))); do
        log_old=$(ls $CLASH_LOG_PATH | sort -n | head -1)
        rm -f $CLASH_LOG_PATH/$log_old
    done
fi

為腳本添加執行許可權

chmod +x clash_startup.sh

Clash 桌面圖標

/usr/share/applications/ 目錄中 創建 Clash 桌面圖標文件 clash.desktop 並寫入如下配置

註意:配置值根據實際情況填寫

[Desktop Entry]
Version=1.0
Name=Clash
GenericName=Clash
Comment=Clash
Exec=/usr/local/clash/clash_startup.sh
Terminal=false
Icon=/usr/local/clash/logo.png
Type=Application
Categories=Network

Clash 管理界面的桌面圖標

/usr/share/applications/ 目錄中 創建 Clash 管理界面的桌面圖標文件 clash-panel.desktop 並寫入如下配置

註意:配置值根據實際情況填寫

註意:該配置是使用 Chrome 打開 http://clash.razord.top/,如果使用其他瀏覽器,將 Exec 項的值修改為您使用的瀏覽器打開指定鏈接的命令即可

[Desktop Entry]
Version=1.0
Name=Clash Panel
GenericName=Clash Panel
Comment=Clash admin GUI
Exec=/usr/bin/google-chrome-stable http://clash.razord.top/
Terminal=false
Icon=/usr/local/clash/logo.png
Type=Application
Categories=Network

配置系統和應用代理

Clash 預設使用 7890 埠進行 HTTP/HTTPS 代理,使用 7891 埠進行 SOCKS5 代理

系統設置 -> 網路 -> 網路代理 -> 手動 ,設置為如下值

HTTP 代理 127.0.0.1 7890
HTTPS 代理 127.0.0.1 7890
Socks 主機 127.0.0.1 7891

此時即可配置應用代理為以上對應的地址和埠實現代理(Chrome 預設使用系統的配置)

配置命令行代理

但有些命令行不使用 Gnome 中設置的代理,可以通過軟體包 Proxychains 設置

sudo apt install proxychains

編輯 /etc/proxychains.conf

註釋掉最後一行的 socks4 配置,添加 socks5 配置

#socks4  127.0.0.1 9050
socks5 127.0.0.1 7891

使用方法

proxychains <command>

測試

proxychains curl google.com

MySQL 8.0

官網 下載安裝包

註意:該安裝包的作用是將 MySQL 官方源列表安裝到本地,並非直接安裝 MySQL

點擊 Download 後在跳轉的頁面中選擇 No thanks, just start my download

下載完成後使用 apt 安裝

sudo apt install ./mysql-apt-config_0.8.15-1_all.deb

在彈出的 mysql-apt-config 中選擇 OK

安裝完成後更新軟體包列表並安裝 mysql-server

註意:建議先使用 apt show mysql-server 查看包信息,確認 APT-Source 項為 MySQL 官網(repo.mysql.com)

sudo apt update
sudo apt install mysql-server

根據提示輸入 MySQL root 用戶的密碼

註意:該用戶是 MySQL 的根用戶,與系統 root 用戶不同

Select default authentication plugin 中有以下兩個選項,如果想使用新版加強的密碼加密插件,可以選擇第一個。想使用 5.x 版本的認證方法,選擇第二個。他們的區別主要在於對密碼強度的要求

Use Strong Password Encryption (RECOMMENDED)
Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)

這裡建議選擇第二個,在實際測試中發現第一項可能導致某些客戶端無法登錄的問題

Anaconda3

Anaconda 是一個很方便的 Python 包和虛擬環境管理器,詳情請參考 Anaconda Doc

安裝 Anaconda3

TUNA 下載 Anaconda3-xxxx.xx-Linux-x86_64.sh 格式的安裝腳本

賦予執行許可權並安裝

chmod +x Anaconda3-xxxx.xx-Linux-x86_64.sh
./Anaconda3-xxxx.xx-Linux-x86_64.sh

安裝過程中會詢問安裝位置,填寫為 /usr/local/anaconda3 即可

安裝最後一步會詢問 Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no]

建議輸入 yes

更換為 TUNA 源

換 TUNA 源

首先使用 user 用戶執行 conda config --set show_channel_urls yes 命令生成配置文件

修改 user 用戶 home 目錄下的 .condarc 文件為如下

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

root 用戶 home 目錄下建立軟連接

sudo ln -sf /home/user/.condarc /root/

Anaconda 預設使用 Python 3.7,但實際開發中多使用 Python 3.6

清除索引緩存並將當前 conda 環境下 python 版本替換為 3.6

conda clean -i
conda install python=3.6

Java SE 8u241

截至目前(2020年4月12日),Oracle 發佈的最新 Java SE 版本為 14,但為了相容舊項目以及其他應用,這裡仍然選擇安裝配置 Java SE 8u241

訪問 Java 官網

點擊 Java SE Development Kit 8u241 下的 Linux x64 Compressed Archive 右側鏈接下載

在彈出的對話框中選中 I reviewed and accept ... ,然後點擊 下載

在跳轉的頁面中登錄 Oracle 帳號

解壓後將其移動到 /usr/local/ 目錄下

編輯 /etc/profile 文件,增加如下配置

export PATH=$PATH:/usr/local/jdk1.8.0_241/bin

export JAVA_HOME=/usr/local/jdk1.8.0_241
export JRE_HOME=/usr/local/jdk1.8.0_241/jre

Go

訪問 GoLang 官網

點擊 Linux 開始下載

解壓後移動到 /usr/local/ 目錄下

/etc/profile 中添加以下配置

export PATH=$PATH:/usr/local/go/bin

export GOROOT=/usr/local/go
export GOPATH=/usr/local/go/src

NodeJs

安裝 NodeJs

訪問 NodeJs 官網

點擊 長期支持版 開始下載

解壓後重命名為 node 並移動到 /usr/local/ 目錄下

/etc/profile 中添加以下配置

export PATH=$PATH:/usr/local/node/bin

安裝 cnpm

由於 npm 官方源位於國外,這裡安裝 cnpm,使用淘寶源進行 nodejs 包管理,在之後的使用中可以直接使用 cnpm 替換 npm

npm install -g cnpm --registry=https://registry.npm.taobao.org

PHP 7.3

安裝 PHP 7.3

sudo apt install php7.3-fpm

使 FastCGI 監聽埠

FastCGI 預設監聽 /run/php/php7.3-fpm.sock 文件,按照習慣這裡修改為監聽 9000

/etc/php/7.3/fpm/pool.d/www.conflisten 的值修改為 9000

Nginx

安裝 Nginx

sudo apt install nginx

配置 Nginx 解析 PHP

編輯 /etc/nginx/site-enabled/default,在 server {} 塊中添加如下配置

location ~ \.php(.*)$ {
    fastcgi_pass         127.0.0.1:9000;
    fastcgi_index        index.php;
    fastcgi_split_path_info    ^(.+\.php)(.*)$;
    fastcgi_param        PATH_INFO  $fastcgi_path_info;
    fastcgi_param        SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param        PATH_TRANSLATED  $document_root$fastcgi_path_info;
    include              fastcgi_params;
}

替換將 server {} 塊中的 index 配置替換為如下

index index.php index.html index.htm;

使用以下命令重啟 Nginx 和 php-fpm

systemctl restart nginx
systemctl restart php7.3-fpm

訪問 http://127.0.0.1/ 測試 Nginx 是否配置成功

Nginx 的 web 根目錄預設位於 /var/www/html/ 目錄,在該目錄下創建 index.php 文件,寫入如下代碼並訪問 http://127.0.0.1/ 測試 php 可用性

<?php
phpinfo();
?>

測試完成後刪除 index.php 中的內容

0x07 應用安裝及配置

Chrome 瀏覽器

下載 Chrome 並安裝

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

Free Download Magager 5

FDM5 是一個開源下載器

訪問 FDM5 官網 下載安裝包

sudo apt install ./freedownloadmanager.deb

在 Chrome 中安裝 Free Download Manager 擴展,可接管瀏覽器下載行為

Sarasa Term SC 字體

這是一個開源的等寬字體,中文名為 更紗黑體 ,該字體可以解決在 Chromium 內核中等寬字體渲染錯誤導致不等寬的問題(例如 YaHei Consolas Hybrid 在 VSCode 中)

雖然這個字體一開始用會覺得很奇怪,用習慣了還挺好看

訪問 Sarasa GitHub 下載 sarasa-gothic-ttf-x.xx.x.7z 格式的 Release 包

註意:該字體包中包含了多種字體,我們只需要雙擊 sarasa-term-sc 開頭的字體並點擊右上角 安裝 即可

MySQL Workbench

sudo apt install mysql-workbench

VSCode

安裝 VSCode

訪問 VSCode 官網 點擊 .deb 開始下載

sudo apt install ./code_x.xx.x-xxxxxxxxxx_amd64.deb

插件推薦

  • Chinese (Simplified) Language Pack for Visual Studio Code
  • C/C++
  • ESLint
  • Markdown All in One
  • markdownlint
  • Polacode
  • Project Manager
  • Python
  • Remote Development
    • Remote - Containers
    • Remote - SSH
    • Remote - SSH: Editing Configuration Files
    • Remote - WSL
  • Todo Tree

將以下配置寫入 setting.json(VSCode 的用戶配置文件)

{
    "editor.fontFamily": "Sarasa Term SC",
    "editor.mouseWheelZoom": true,
    "editor.fontSize": 16,
    "todo-tree.tree.showScanModeButton": false
}

網易雲音樂

訪問 網易雲音樂官網

右上角 下載全部客戶端 -> Linux版 -> ubuntu 18.04(64位)

sudo apt install ./netease-cloud-music_x.x.x_amd64_ubuntu_xxxxxxxx.deb

VLC

開源播放器

sudo apt install vlc

FileZilla

開源 FTP 客戶端

sudo apt install filezilla

Telegram

加密即時通訊

sudo apt install telegram-desktop

Postman

HTTP 請求模擬/測試

安裝 Postman

訪問 Postman 官網,點擊 Download 下載

將解壓後的文件夾移動至 /usr/local

Postman 桌面圖標

/usr/share/applications/ 目錄下為其建立桌面圖標 postman.desktop 並寫入如下配置

[Desktop Entry]
Version=1.0
Name=Postman
GenericName=Postman
Comment=Postman
Exec=/usr/local/Postman/Postman
Terminal=false
Icon=/usr/local/Postman/app/resources/app/assets/icon.png
Type=Application
Categories=Development

修改 Postman 工作目錄

Postman 預設將工作文件放在用戶 home 目錄下且不隱藏

這裡將 settings -> General -> WORKING DIRECTORY -> Location 修改為 /home/user/.postman/ 目錄

Meld

開源文件/文件夾 Diff + Merge 工具

sudo apt install meld

HMCL

Minecraft 第三方啟動器

註意:確保本地配置了 jdk 環境且 java 命令可用

安裝 HMCL

訪問 HMCL 官網 下載 .jar

下載後將其重命名為 HMCL.jar

創建啟動腳本

創建啟動腳本 hmcl.sh,便於桌面調用

#!/bin/bash
HMCL_PATH="/usr/local/minecraft"
HMCL_NAME="HMCL.jar"

cd $HMCL_PATH && java -jar $HMCL_NAME

賦予其執行許可權

chmod +x hmcl.sh

下載 logo 並將其重命名為 logo.png

Logo 來自 HMCL 官方 Github 的資源目錄,同級目錄下有其他 Logo 可供使用,以下為可用的 Logo 鏈接列表

/usr/local 目錄下建立 minecraft 文件夾,將 HMCL 的 jar 包,啟動腳本和 logo.png 移動到該目錄中

HMCL 桌面圖標

/usr/share/applications/ 目錄下為其建立桌面圖標 hmcl.desktop

[Desktop Entry]
Version=1.0
Name=HMCL
GenericName=Hello Minecraft! Launcher
Comment=A Minecraft Launcher which is multi-functional, cross-platform and popular
Exec=/usr/local/minecraft/hmcl.sh
Terminal=false
Icon=/usr/local/minecraft/logo.png
Type=Application
Categories=Game

修改下載緩存位置

啟動器設置 -> 文件下載緩存目錄 修改為 /usr/local/minecraft/.minecraft/ 目錄

註意:需要將 HMCL 下載源修改為官方源才能正常安裝 fabric

Jetbrains 系列 IDE

這裡使用 idea 舉例

訪問 JetBrains 官網,頂部 Tool 選擇要下載的 IDE,跳轉後點擊 Download ,下載 UltimateProfessional 版本

解壓後將其放在 /usr/local/ 目錄下,其可執行程式一般位於 ide文件夾/bin/ 目錄下,例如 idea/bin/idea,使用 user 用戶運行,在配置過程中會自動創建桌面圖標,無需用戶配置

開始配置前請務必參考 知了 Blog


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • c 8引入了新特性:“可為空引用”( "詳情" ),這個功能個人覺得挺好的,能夠非常明確的表現程式設計者的意圖,編譯器能夠進行檢查,盡最大可能減小NullReferenceException錯誤。 如果是新項目,那麼上手很簡單,一點點搭建起來,遇山開山,遇河渡河。但是對於我這種手頭上的項目大多都是以 ...
  • 前言:新的的封裝類,增加了單元格映射深度更新和讀取的功能,預留了標題映射的深度更新介面待擴展。。。(以後有時間和精力再完善吧) 【深度更新】:我這裡定義的深度更新策略,指的是:假如我們需要讀取一組單元格的映射數據為一個對象,但是有不止一組這樣的單元格數據對象,且這些對象的單元格位置排列是有規律的! ...
  • 解決NET Core發佈iis項目覆蓋原有的項目時"另一個程式正在使用此文件,進程無法訪問" 現在net core運用的多了,一系列的問題接踵而來,更新項目發佈到iis時就有一個坑。 應急辦法是直接停站點進行發佈。 但是這樣做會導致,部署項目停的時間過長,網站暫時沒法訪問。(項目發佈完成後記得“啟動 ...
  • 1. 創建新項目-ASP.NET Core Web 應用程式 2. 3. 右鍵項目-管理 NuGet 程式包(N)... 4. 搜索 Pomelo.EntityFrameworkCore.MySql 安裝 5. 在appsettings.json文件添加 資料庫連接字元串 "AllowedHosts ...
  • 本文介紹通過C#程式代碼來添加OLE對象到PPT幻燈片的方法。這裡以將Excel文檔為對象插入到PPT幻燈片中的指定位置;添加時,將Excel中的單元格範圍保存為圖片,將圖片以嵌入的方式添加到幻燈片,添加成功後,可通過雙擊圖片來編輯、打開等動作對Excel源文檔進行操作。 使用工具:Free Spi ...
  • 1、在此次先進行定義 public static AOC aoc = null; aoc = this; 2、在窗體中寫入 Control.CheckForIllegalCrossThreadCalls = false; private void Form1_Load(object sender, ...
  • System.Net.Http.Json Json的序列化和反序列化是我們日常常見的操作,通過 System.Net.Http.Json 我們可以用少量的代碼實現上述操作.正如在github設計文檔中所描述 Serializing and deserializing JSON payloads fr ...
  • 在Linux上進行上傳下載時很容易就會用到壓縮和解壓操作,其中用的較多的算是tar命令了,其他命令也可以瞭解下。 gzip/gunzip命令gzip 文件:以.gz格式壓縮文件。壓縮完成後文件名預設是以.gz結尾的(但是註意Linux中是沒有尾碼名一說的)。gunzip 壓縮文件:解壓.gz格式的壓 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...