主頁 > 作業系統 > 程式員的 Ubuntu 19.10 配置與優化指南

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

2020-09-22 09:15:34 作業系統

轉載請注明原文地址:程式員的 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

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

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

GRUB_GFXMODE=1920x1080x32

[可選] 修改 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/ 目錄下的 ubuntu-dock 擴展(該擴展會與 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 鏈接串列

  • 書架
  • 命令方塊
  • 作業臺
  • Fabric
  • Forge
  • 熔爐
  • 草方塊

/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

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/103610.html

標籤:Linux

上一篇:求問各位大佬replace替換word(.docx)后出現圖片消失的問題怎么解決

下一篇:CentOS7配置本地yum源和在線yum源

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more