クリップボードにコピーしました!
文字列のシェル

[シェル] 実行して理解 ターミナルログイン時のプロンプトを生成

created-2026/01/05 updated-2026/03/24

前書き

このリポジトリは、複数のコマンドを使用してターミナルログイン時に表示されるプロンプトを生成します

インストールする必要のあるコマンド

  1. 特に無し

クイックスタート

コマンドを実行してホスト名、カレントディレクトリ、アカウント名を表示してみてください

ubuntu

echo "prompt=""$(echo $(hostname))""@""$(echo $(hostname))"":""$(pwd | sed "s/\/home\/$(whoami)/~/")""$"
出力結果
prompt=hostname@hostname:currenctDirectory$

macos

MacPorts

echo "prompt=""$(echo $(hostname) | cut -d . -f1)"":""$(basename "$(pwd)" | sed "s/$(whoami)/~/")" "$(whoami)""$"
出力結果
prompt=hostname:currenctDirectory accountName$

windows

WSL2

echo "prompt=""$(whoami)""@""$(echo $(hostname))"":""$(pwd | sed "s/\/home\/$(whoami)/~/")""$"
出力結果
prompt=accountName@hostname:currenctDirectoryPath$

MSYS2 MINGW64

echo "prompt=""$(whoami)""@""$(echo $(hostname))"" ""$(echo $MSYSTEM)"" ""$(pwd | sed 's/\/home\/user/~/')"
出力結果
prompt=accountName@hostname MSYSTEMName currenctDirectoryPath

実行手順

ubuntu

クリックして詳細を開く

事前確認

以下のコマンドを端末に打ち込んでcommand not foundが出なければokです

特にありません

preinstall

端末にcommand not foundが出たコマンドを以下のコマンドでインストールしてください

特にありません

コマンド

以下のコマンドを端末で実行することで詳細のような文字列が出力されるはずです

echo "prompt=""$(echo $(hostname))""@""$(echo $(hostname))"":""$(pwd | sed "s/\/home\/$(whoami)/~/")""$"
詳細
prompt=hostname@hostname:currenctDirectory$

macos

クリックして詳細を開く

事前確認

以下のコマンドをターミナルに打ち込んでcommand not foundが出なければokです

特にありません

※macosはMacPortsパッケージマネージャを使用してコマンドを管理します。もしインストールしていない方は以下のリンクからMacPortsのインストール手順をご覧ください
またコマンドに別名を設定して既存の環境と競合しないでコマンドを呼び出せるようにします。
初めてこのブログを利用する方は、以下の2つの記事を参考に環境構築してください

preinstall

ターミナルでcommand not foundが出たコマンドを以下のコマンドでインストールしてエイリアスを設定してください

特にありません

コマンド

以下のコマンドをターミナルで実行することで詳細のような文字列が出力されるはずです

echo "prompt=""$(echo $(hostname) | cut -d . -f1)"":""$(basename "$(pwd)" | sed "s/$(whoami)/~/")" "$(whoami)""$"
詳細
prompt=hostname:currenctDirectory accountName$

windows

クリックして詳細を開く

事前確認

以下のコマンドをプロンプトに打ち込んでcommand not foundが出なければokです

WSL2
特にありません
MSYS2 MINGW64
特にありません

※windowsはWSL2とMSYS2 MINGW64で確認しています。可能な限りWSL2をインストールしていただいて、もし設定できなかった場合はMSYS2をインストールすることで実行できますが、所々WSL2でしか実行できないコマンドが出てくるかもしれません。WSL2とMSYS2のインストール方法は下記の記事を参考にしてください

preinstall

プロンプトでcommand not foundが出たコマンドを以下のコマンドでインストールしてください

WSL2
特にありません
MSYS2 MINGW64
特にありません

コマンド

以下のコマンドをプロンプトで実行することで詳細のような文字列が出力されるはずです

WSL2
echo "prompt=""$(whoami)""@""$(echo $(hostname))"":""$(pwd | sed "s/\/home\/$(whoami)/~/")""$"
詳細
prompt=accountName@hostname:currenctDirectoryPath$
MSYS2 MINGW64
echo "prompt=""$(whoami)""@""$(echo $(hostname))"" ""$(echo $MSYSTEM)"" ""$(pwd | sed 's/\/home\/user/~/')"
詳細
prompt=accountName@hostname MSYSTEMName currenctDirectoryPath

後書き

以下のように4つのコマンドに分けると理解しやすいかもしれません

echo $(hostname) | cut -d . -f1
basename "$(pwd)"
whoami
echo "$"

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

©︎ 2025-2026 todo