ターミナルのセットアップ
はじめに
ここでは、Ubuntu 24.04 で WSL2 を使用して Windows 11 上に最新の開発環境をセットアップする手順を説明します。Linuxbrew、Docker、LAMP スタックなどのツールを構成して、効率的な開発ワークフローを実現します。また、システム間で一貫した環境レプリケーションを行うためにドットファイルを管理します。
前提条件
- Windows 11 がインストールされている
- PowerShell と Unix コマンドの基本的な理解
手順
プロファイル設定
構成ファイルの場所は次の箇所です。
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
ショートカットから起動へ上記パスを入力して、次の編集をすることをおすすめします。
- 履歴表示行数を増やす: コマンドの入力履歴保存数とは別です。(ref. bashは
HISTSIZE=nを~/.bashrcに設定、fishは無制限)
"defaults":
{
"historySize": "32767",
"experimental.repositionCursorWithMouse": true,
},
"list":
[
// PROFILE OBJECTS
]さらに詳しい設定項目は、次を参照しながら設定しましょう。
Ref.:
WSL2 をインストールして構成する
このリポジトリには、主要な最適化を含む、Windows 上の WSL2 のセットアップに関する詳細なドキュメントが用意されています。
- 管理者として PowerShell を開きます:
wsl --install- インストール後、Ubuntu 24.04 をデフォルトのディストリビューションとして設定します:
wsl --set-version Ubuntu-24.04 2aptによるパッケージの導入
apt は UbuntuなどのDebian Familyのパッケージマネジメントツールです。 次のようにして、ツールを導入することができます。
sudo apt update
# ビルドに必要なものをインストールします
sudo apt-get install build-essential procps curl file git gcc make -y
# C ビルドに必要なもの
# sudo apt install libncursesw5-dev autotools-dev autoconf automake build-essentialその他重要なライブラリも導入しましょう。
# 便利なユーティリティ
sudo apt install coreutils fileutils binutils xdg-utils -y
# ビルドプロセスにまた重要
sudo apt install libreadline-dev libncurses5-dev zlib1g-dev libbz2-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libffi-dev -y
# ファイル/フォルダ操作の必携
sudo apt install 7-zip rsync rclone parallel -yデフォルトのシェルを変更する
デフォルトのシェルをFishシェルに変更しましょう。
Fish をインストール
sudo apt install fishsudo chsh -s $(which fish)
cat /etc/shells
which $SHELL次に、他のシェル構成の $PATH に homebrew パスを追加します Fish:
mkdir -p ~/.config/fish/
nano ~/.config/fish/config.fish # 以下を記述して保存します Ctrl+S、終了 Ctrl+X# Homebrew
eval (/home/linuxbrew/.linuxbrew/bin/brew shellenv)パスが正しく追加されているか確認
brew -hFishのカスタマイズ
Fishの設定を工夫しましょう。
~/.config:
cp (wget https://gist.githubusercontent.com/***/.local/share/fish/fish_history) ~/.local/share/fish/fish_history
# Change prompt
fish_config prompt save astronaut
# Change theme
fish_config theme save 'Old School'Fish 機能拡張
Fisherなどの機能拡張を導入することで、高度な管理が可能となります。 Fzfとの統合などもさらに見やすくすることが可能です。
set remote_url <fish_config_url>
rsync -auvz $remote_url ~/.config/fish/Winget をインストールして Windows ツールを管理する
(任意) Powershell Core をインストールします
- ダウンロード スクリプト を入手できます
# wsl-utils をインストールする
sudo apt update
sudo apt install wslu
echo $(wslvar PATH) | tr ';' '\n' | grep PowerShell
echo $(wslvar PSModulePath)Windows ツールを管理するには、Winget と Scoop をインストールします。
参考: jfalava/machine-outfitting
install-winget-tools.ps1スクリプトをダウンロードします。- PowerShell で実行します:
powershell install-winget-tools.ps1Scoop で追加のツールをインストールするには、
scoop install curl git(任意) alias/abbr を設定します (もちろん、PowerShell コアを使用している場合は pwsh.exe に置き換えます)
pwsh=$(wslpath $(wslvar SystemRoot)/System32/WindowsPowerShell/v1.0/powershell.exe)
# Clipboard
alias pbpaste="$pwsh -c Get-Clipboard"
alias pbcopy="$pwsh -c Set-Clipboard"
# Explorer on WSL
wslview .Fish shellの場合
set pwsh (wslpath (wslvar SystemRoot)/System32/WindowsPowerShell/v1.0/powershell.exe)
alias pbpaste "$pwsh -c Get-Clipboard"Linuxbrew のインストールとセットアップ
次の内容をシェルの構成ファイルに追記します。
~/.config/fish/config.fish:
# Homebrew
set BREW_HOME "/home/linuxbrew/.linuxbrew"
# Load pyenv automatically
set PATH "$PATH:$BREW_HOME/bin/.pyenv/bin"
eval "$(pyenv init -)"次のステップは Linuxbrew をインストールすることです。これにより、Ubuntu システムでのパッケージ管理が簡素化されます。 参考: holman/dotfiles
# Homebrew をインストールします
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 続行するには RETURN/ENTER キーを押します。中止するには他のキーを押します: => Enter
# 環境変数
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bashrchomebrew からのツールのインストールする
ツールをインストールできます:
brew install curl導入済みのパッケージ一覧を出力・保存しておきましょう:
brew dump > brewfile.txt
その他、必要なパッケージを記載することで、含めることができます:
tap 'homebrew/core'
brew 'wget'
brew 'git'
brew 'vim'一括インストールする際のコマンドは以下の通りです。
~/Brewfile を作成し、作成後、Brewfile を使用して必須パッケージをインストールできます:
brew bundle install
# Dumpfileを明示的に指定する
brew bundle install --file='~/.rust-brew-bundleその他の導入済みパッケージ一覧の保存
Homebrew以外にも、各種パッケージを出力・保存することができます:
apt list --installed > apt-dump.txt
pip freeze > python-dump.txt
> python-dump.txt
go list ... > golang-dump.txt
cargo list > rust-dump.txt
code --extension > vscode-ext-dump.txt一括インストールする際のコマンドは、それぞれ以下の通りです:
sudo apt install apt-dump.txt -y
pip install -r python-dump.txt
go install golang-dump.txt
cargo install rust-dump.txt
code install vscode-ext-dump.txtDocker をインストールしてセットアップする
Docker は、コンテナー化された開発のために WSL2 環境に統合できます。 okibcn/wslcompact リポジトリには、Docker のコンパクトなセットアップ ガイドが用意されています。
- WSL 環境に Docker をインストールします:
sudo apt update
sudo apt install docker.io- Docker を起動します:
sudo service docker startLAMP スタックをセットアップする
Web 開発の場合、mauriziofonte のガイド に従って LAMP スタック (Linux、Apache、MySQL、PHP) を構成できます。
- Apache、MySQL、PHP をインストールします:
sudo apt install apache2 mysql-server php php-mysql- サービスを起動します:
sudo service apache2 start
sudo service mysql startドットファイル
ドットファイルを管理するには、リポジトリを使用して構成を追跡します。ベースラインとして holman/dotfiles を参照できます。
- dotfiles リポジトリをクローンします:
git clone https://github.com/<yourusername>/dotfiles.git
cd dotfiles- 構成ファイルのシンボリックリンク:
ln -sf ~/dotfiles/.bashrc ~/.bashrc
ln -sf ~/dotfiles/.gitconfig ~/.gitconfig- Fish または他のシェルに適応します:
- Fish 用にカスタマイズします:
ln -s ~/dotfiles/config.fish ~/.config/fish/config.fish参考:
- Dotfiles 構成: 一般的なシステム設定と環境を構成します
- Fish シェル: Fish シェルをカスタマイズおよびセットアップします
- エイリアスと関数: エイリアスとシェル関数をセットアップします
- Dotfiles: ドットファイルを効率的にインストールして管理します
追加ツールのリスト
このセクションでは、必須の開発ツール、セキュリティ ユーティリティ、プライバシー重視のソフトウェアなどをリストします。これらのツールは、ワークフローを合理化し、セキュリティを向上させ、WSL2 および Windows セットアップ全体のデータ管理を強化します。
ファイル/フォルダ管理
-
Eza:
lsの最新の代替で、フォーマットが優れています。 -
Fd:
findのシンプルで高速、かつユーザーフレンドリーな代替です。 -
Fzf: コマンドラインのあいまい検索ツール。参照を使用して構成します:
-
Ripgrep: 高速検索ユーティリティ。
grepよりも高速です。 -
Zoxide: よりスマートな
cdコマンド。
システム監査
-
Dust: ストレージを管理するためのディスク使用状況アナライザーです。
-
Sysz: シンプルなファイル システム管理ツール。
-
Broot: ファイル システム ナビゲーション用のツリー ビューです。
開発
-
Git: バージョン管理
- nikitavoloboev/config を使用して Git を構成する
- GitHub/gitignore の
.gitignoreテンプレートを使用する
-
GitHub CLI (
gh): コマンドラインから GitHub 管理を効率化します。
データ サイエンス
-
Jq: 軽量で柔軟なコマンド ライン JSON プロセッサ。
-
Jc: コマンド ライン ツールの出力を JSONify します。
-
Gron: JSON をフラット化して grep を簡単にします。
-
Fx: コマンド ライン JSON ビューア。
-
Jid: インタラクティブ フィルタリング用の JSON 増分ディガー。
クリエイティブ
-
ImageMagick: 画像処理のための代表的なライブラリ。
-
Ffmpeg: 動画・音声処理のための代表的なライブラリ。
-
mpv: 軽量で汎用的な動画プレイヤー。
プライバシー
-
Bitwarden CLI: オープンソースのパスワード マネージャー。
-
Onionshare: Tor 経由でファイルを安全かつ匿名で共有します。
-
Ngrok: ローカルホストへの安全なイントロスペクション可能なトンネル。
セキュリティ
-
Kali Tools: 侵入テストおよび倫理的ハッキング ツールです。
-
Katana: Web スクレイピングおよびセキュリティ テスト ツール。
バックアップ
-
Backblaze B2 CLI: Backblaze B2 クラウド ストレージのコマンド ライン インターフェイス。
-
Rclone: クラウド ストレージ プロバイダー間でファイルを管理するためのツール。
-
Restic: 安全で高速かつ効率的なバックアップ ツール。
-
Autorestic: 使用を簡素化する Restic のラッパー。
OSINT
-
Osintgram: Instagram の OSINT ツール。
-
Twikit: Twitter スクレイピング ツール。
-
Twscrape: Twitter スクレイピングおよび分析ツール。
AI
-
Ollama: AI モデルのホスティングおよび推論。
-
Whisper: OpenAI の音声テキスト変換ツール。文字起こしに便利。