記録 Linux Mint インストール後によく行ういくつかのアクション、長期的に更新。明示的に指摘されない限り、コマンドは apt でパッケージ管理を行うほとんどのディストリビューションで使用できるはずです。知識が浅いのでバグを見つけることを歓迎します。
リポジトリの変更#
デフォルトのリポジトリは一般的に海外のもので、リポジトリを変更するとかなり速くなります。Mint は apt リポジトリを管理する GUI を提供しています。
スタートメニューで Software Sources
を検索
パスワードを入力
Main と Base について、現在のリポジトリをクリックしてすべてのリポジトリリストを表示します。デフォルトは geoip で大まかな距離順に並んでいるはずです。
Tuna を盲目的に選択することもできますし、少し待って速度テストの結果を見てどれが速いかを確認してからダブルクリックで選択することもできます。
2 つのリポジトリを変更したら、下の Ok をクリックして apt キャッシュを再生成します。
ソフトウェアを更新
sudo apt update # 先ほどのokをクリックしたのはこのステップです、スキップできます
sudo apt upgrade
中国語入力法#
スタートメニューで Input method
を検索
左側の簡体字をクリックし、指示に従って実行します。
Install をクリックし、ポップアップのダイアログに従ってソフトウェアをインストールします。完了後、上部の入力法フレームワークを Fcitx に切り替えます。
ログアウトして再ログインします。 Fcitx Configuration
を検索して実行します。
左下の + をクリックし、Only Show Current Language
のチェックを外し、pinyin を検索して Pinyin をクリックし、Ok で確定します。その後、Ctrl+Space で入力法を切り替えることができます。
よく使うコマンドラインプログラム#
- vim:コマンドラインでテキストを編集する、vi よりも直感的に使える
- git:バージョン管理
- htop:プロセス、CPU、メモリの状態などを監視、個人的には一般的にデフォルトで付属している top よりも見やすい
- nload:ネットワーク速度、トラフィックを監視
- aria2:複数のリモート、マルチプロセス(またはスレッド、はっきりしないが、いずれにせよ)でダウンロードを加速
- jq:コマンドラインで json を解析
- xclip:コマンドライン <-> クリップボード
sudo apt install vim ...
- rclone:コマンドラインとクラウドストレージ間でファイルを同期
sudo -v ; curl https://rclone.org/install.sh | sudo bash
ターミナル#
よく使うスクリプト#
以下の方法で bash にいくつかのよく使うスクリプトを追加できます:
vim ~/custom # 以下のよく使うスクリプトを貼り付けて保存
# rcスクリプトの末尾にcustomスクリプトをsourceし、毎回ログイン時に実行
echo "source ~/custom" >> ~/.bashrc
echo "source ~/custom" >> ~/.zshrc
よく使うスクリプト ~/custom
# コマンドラインでプロキシをオン/オフする(clashのデフォルトアドレス)
# px/upxコマンドでコマンドラインプロキシをオン/オフ、効果があるのは使用するソフトウェアが以下のコマンドライン環境変数に従う場合
px() {
proxy_addr=http://127.0.0.1:7890
export https_proxy=$proxy_addr http_proxy=$proxy_addr all_proxy=$proxy_addr
}
upx() {
unset http_proxy https_proxy all_proxy
}
# 日付をクリップボードにコピー
cdate() {
xclip -r -sel clip <<< $(date '+%b %d, %Y')
}
# gitのadd、commit、pushを完了する
# gitp {commit message}
gitp() {
git add *; git commit -m $1; git push
}
# githubプロジェクトの最新リリースバージョン番号を取得
# ghlrv VSCodium/vscodium
ghlrv() {
version=$(curl -sL https://api.github.com/repos/$1/releases/latest | jq -r ".tag_name");
echo $version;
}
# jekyllで新しいブログmdを作成し、基本情報テンプレートを記入
function nb() {
local cur_date=$(date +%F)
local cur_time=$(date +%T)
local local_utc_offset=$(date +%z)
local title=$*
file="$cur_date-"${title// /-}".md"
content="---
layout: post
title: \"$title\"
permalink: /:title/
date: $cur_date $cur_time $local_utc_offset
categories:
tags:
pin: false
published: false
---
"
if [ ! -f "$file" ]; then
echo "$content" >> $file
echo "ブログ投稿が作成されました: $title"
else
echo "ERROR: 同じタイトルのブログ投稿が既に存在します、新しいタイトルを試してください"
fi
}
# よく使うコマンドのエイリアス
alias mamba=micromamba
alias conda=micromamba
alias vscode=/usr/bin/code
alias code=codium
alias pa='pre-commit run --all-files'
# -c:順番にダウンロードされたファイルの再開(ブラウザでダウンロードしたものなど)
# -x:最大接続数を許可
# -s:目標接続総数、aria2はサーバー側の最大接続数を厳密に尊重します。サーバーが最大で2つの接続を作成すると言った場合、ここで16を指定しても最終的には2つの接続が作成されます。
# 最終的に作成される接続数は -x、-s、サーバーが許可するものの中で最小のものと理解できるはずです
alias down='aria2c -c -x 16 -s 16 '
alias rclone='rclone --order-by name,desc --transfers=32 --progress'
alias nload='nload -u M' # デフォルトはByte単位、MB単位の方が見やすい
alias idea='cd ~/Desktop/software/idea*/bin/; ./idea.sh'
zsh#
sudo apt install -y zsh
cat /etc/shells # 利用可能なすべてのシェルをリスト
chsh -s /bin/zsh # zshに切り替え
# ohmyzshをインストール
px # githubusercontentがブロックされている可能性があります
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
upx
xfce4-terminal#
ターミナルに以下の機能 / 特性があることを望みます:
- 選択したらすぐにコピー
- 無限ロールバック:出力が多いと消えない
- 不安全なペーストのポップアップ:一方では即座にペーストして実行されず、また GUI でスクリプトを修正する方がコマンドラインよりも少し便利
- Quake Mode:ホットキーで画面上部から下に引き出すターミナルウィンドウを呼び出す
- 軽量で依存関係が少ない
xfce4 は上記を非常によく満たしていると感じます。
インストール:
doas apt install xfce4-terminal
xfce4-terminal --drop-down
コマンドにホットキーをバインドします。xfce デスクトップで keyboard を検索し、Application Shortcuts で設定します。
プログラミング言語#
Python#
micromamba をインストールし、清華源を設定します。
px # githubusercontentがブロックされている可能性があります
"${SHELL}" <(curl -L micro.mamba.pm/install.sh)
cat <<EOF >> ~/.condarc
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- 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
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
EOF
cat <<EOF >>~/.config/pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
EOF
upx
Java#
デフォルトの Java バージョンをインストール
sudo apt install default-jdk # デフォルトのJavaバージョンをインストール
指定した Java バージョンをインストールすることもできますが、Mint が提供するものはおそらく最新バージョンではありません。
apt-cache search openjdk- | grep -P "jdk " # aptが提供するすべてのJavaバージョンを検索
doas apt install openjdk-[version]-jdk # 指定したバージョンをインストール
Java バージョンを切り替える
sudo update-alternatives --config java
最新の Java をインストール:
- oracle java downloadsから jdk deb パッケージをダウンロード
- インストール:
doas apt install ./jdk-[version]_linux-x64_bin.deb
インストールが完了したら、update-alternatives が認識できるはずです。
エディタ / IDE#
IDEA#
Flathub に Idea がありますが、インストールとダウンロードがかなり大きくなると感じます。Flathub はコンテナスタイルのため、使い勝手もあまり良くありません。
https://www.jetbrains.com/idea/download/?section=linux
Intellj の公式サイトからダウンロードし、Ultimate は有料ソフトウェアで 30 日間の試用があります。下にスクロールすると Community Edition が無料です。
ダウンロードが完了したら、解凍し、解凍したルートディレクトリから ./bin/idea.sh
コマンドを実行して起動します。
ウェルカム画面で idea をスタートメニューに追加できます。
キー配置の変更#
最も便利なのは、キーを変更できるメカニカルキーボードを購入することです。
私は Caps と Tab を切り替えるという 2 つの習慣的な変更があります。右のスペースを j/k->Home/End に変更します。2 つ目は分割スペースのキーボードでは実現が難しいと感じ、主に最初の研究をしました。
大きく分けて 2 つの方案があります:
- xorg エコシステム下のソフトウェア:(おそらく)利点は効率が高く、新しい依存関係が少ない;欠点は実装があまり便利でなく、wayland をサポートしていない
- その他のソフトウェア:利点は便利で、選択が正しければ一度で成功することが非常に簡単;欠点は依存関係が多く、バックグラウンドで実行する必要がある
最初の方案は半日研究して、次のコマンドを覚えました:キーボードを us レイアウトにリセットする
setxkbmap -layout us
第二の方案は比較的多く、参考:https://medium.com/@canadaduane/key-remapping-in-linux-2021-edition-47320999d2aa
Input Remapper は Caps と Tab の交換を一度で成功させました。インストール時に約 200MB の Python 依存関係がありますが、設定は非常に簡単で、機能も豊富に見えます。最良の選択ではないと感じますが、十分に良いです。
version=$(ghlrv sezanzeb/input-remapper)
down https://github.com/sezanzeb/input-remapper/releases/download/${version}/input-remapper-${version}.deb
sudo apt install ./input-remapper-${version}.deb
rm input-remapper-${version}.deb
よく使うソフトウェア#
Codium#
Codium は Microsoft VSCode の FOSS ビルドです。
version=$(ghlrv VSCodium/vscodium)
down https://github.com/VSCodium/vscodium/releases/download/$version/codium_${version}_amd64.deb
doas apt install ./codium_${version}_amd64.deb
rm codium_${version}_amd64.deb
よく使うプラグイン
- akamud.vscode-theme-onedark
- ms-python.python
ブラウザ#
(個人的な理解に基づく)プライバシー保護 / フィンガープリンティングの程度が高い順に並べます。
Tor Browser:https://www.torproject.org/download
mkdir -p ~/Desktop/software
cd ~/Desktop/software
px
# binとsigのURLを解析
tor_versions=$(curl -s https://aus1.torproject.org/torbrowser/update_3/release/downloads.json)
bin_url=$(echo $tor_versions | jq -r '.downloads.linux64.ALL.binary')
sig_url=$(echo $tor_versions | jq -r '.downloads.linux64.ALL.sig')
# jq -r # "なしの生出力
wget $bin_url
tar -xvf tor-browser-linux64-*_ALL.tar.xz
rm tor-browser-linux64-*_ALL.tar.xz
cd tor-browser
./start-tor-browser.desktop --register-app
upx
Mullvad Browser: https://mullvad.net/en/download/browser/linux
mkdir -p ~/Desktop/software
cd ~/Desktop/software
px
wget https://mullvad.net/en/download/browser/linux64/latest
tar -xvf latest
rm latest
cd mullvad-browser
./start-mullvad-browser.desktop --register-app
upx
Libre Wolf:https://librewolf.net/installation/
sudo apt update && sudo apt install -y wget gnupg lsb-release apt-transport-https ca-certificates
distro=$(if echo " una bookworm vanessa focal jammy bullseye vera uma " | grep -q " $(lsb_release -sc) "; then echo $(lsb_release -sc); else echo focal; fi)
wget -O- https://deb.librewolf.net/keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/librewolf.gpg
sudo tee /etc/apt/sources.list.d/librewolf.sources << EOF > /dev/null
Types: deb
URIs: https://deb.librewolf.net
Suites: $distro
Components: main
Architectures: amd64
Signed-By: /usr/share/keyrings/librewolf.gpg
EOF
sudo apt update
sudo apt install librewolf -y
Brave:https://brave.com/linux/
sudo apt install curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
変更履歴#
- 2023 年 9 月 21 日:初版。ターミナル、Python
- 2023 年 9 月 22 日:リポジトリの変更、中国語入力法
- 2023 年 9 月 24 日:ブラウザ
- 計画:チャット / 会議、docker、仮想マシン、パスワード管理、API テスト、java 開発