ログイン新規登録

Qiitaにログインして、便利な機能を使ってみませんか?

あなたにマッチした記事をお届けします

便利な情報をあとから読み返せます

8

SSH接続したUbuntuのターミナルで何も表示されない、タブ補完も効かない。

最終更新日 投稿日 2023年12月04日

こんにちは:sunny:
フロントエンドエンジニアのみつです。

株式会社HRBrainではアドベントカレンダーに参加していて、本記事は5日目になります!

つい先日のことなんですが、サーバーにSSHで接続していて…

  • ユーザー名が表示されない
  • 加えて、タブ補完も効かない

問題に一生悩まされていました。

と言っても、/bin/shとなっていたシェルを/bin/bashに変更するだけ、でいつも通りのターミナル環境が再現できたんですが…。

その際に色々調べて学びになったので、その日記です。:heart_eyes:

目次

コマンドとかLinuxへのぷち理解:bulb:

echo

通常のテキストを出力するコマンド。

echo "$環境変数"で設定された値を確認できたりにも使用できる。

printenvコマンドを使用すれば、設定されている全ての環境変数を確認できます。

> printenv
USER=okada_m
SHELL=/bin/sh
・・・
> man echo
NAME(名前)
       echo - display a line of text
       
SYNOPSIS(概要)
       echo [SHORT-OPTION]... [STRING]...
       echo LONG-OPTION
       
DESCRIPTION
       Echo the STRING(s) to standard output.

       -n     do not output the trailing newline

       -e     enable interpretation of backslash escapes

       -E     disable interpretation of backslash escapes (default)
...その他

chsh

chsh -sでユーザー自身のログインするシェルを変えるコマンド。

This determines the name of the user's initial login command.

> man chsh
NAME(名前)
       chsh - change login shell
       
SYNOPSIS(概要)
       chsh [options] [LOGIN]  
       
DESCRIPTION(詳細)
       The chsh command changes the user login shell. 
       This determines the name of the user initial login command. 
       A normal user may only change the login shell for her own account; 
       the super ser may change the login shell for any account.
       
OPTIONS(オプション)
       The options which apply to the chsh command are:
       -s, --shell SHELL
           The name of the user new login shell. 
           Setting this field to blank 
           causes the system to select the default login shell.    
...その他

環境変数 PS1

環境変数を設定するPS1というものがあるのを初めて知りました。

Bash reads PS1 variable to define the primary prompt and PS2 for a secondary prompt (used when writing multi-line commands)

起きたこと:zap:

初めてログインした時のターミナルの名前が$マークのみ。

他のサーバーにSSHで接続する時は、ユーザー名がついたりするはずなのになぁと不思議な気持ちに。

Welcome to Ubuntu 22.04.3 LTS (GNU/Linux x.xx.x-xxxx-aws x86_64)
$

まぁいいかと思って、別のコマンドを叩こうとした時に異変を感じます。

「タブ補完が効かない」

ユーザー名がないだけならまだ良いかと思っていたんですが、タブ補完が使えないのは、ちょっと嫌だ。

やっぱりいつも通りのターミナルと何かが違うぞ。と思い初めて調べてみました。

調査1: 現在の環境変数をチェック

  • 「Ubuntuでタブ補完が効かない」
  • 「ターミナルにユーザー名が表示されない」

などを調べていたところ、現在の環境変数を確認するコマンドを発見。

echo "$PS1"

現在の私のPS1は下記のようでした。

$(ドルマーク)

だけ。笑

image.png

調査2: 環境変数を変更してみる

もっと調べていると、環境変数を登録できるコマンドも発見。

export PS1="何かしらの値"

使ってみたところ、コマンドの通りなんだろうけど、なんか違う。笑

image.png

image.png

普通に\uとか、\u@\hっていう文字になっちゃってるよ、という・・・。

最終的にやったこと:writing_hand:

使っているシェルを変更:bulb:することで期待の動作になりました。

よく分からないなぁとなっていた時、echo "$SHELL"をしてみるとどうなるかと知り合いから言われ、shを使っていることを知ります。

$ echo "$SHELL"
/bin/sh

加えて、下記の様な似た悩みも発見。

I don't know why there's no username at the $ ...

chsh -s /bin/bash

スクリプトを sh から bash に変更したところ

user名@ホスト名がちゃんと表示されるようになりました:relaxed:

ちなみに、/bin/sh では期待通りの変更にならなかったものですが、

\u : ユーザー名
\h : ホスト名
\W : 今いるディレクトリ名

export PS1="\u\$"
export PS1="\u@\w\$"

image.png

とかで表示されるユーザー名とかホスト名もいい感じに変更できるみたいでした。

今後この設定を行うことなんてそうそうないんだろうなと思いながら、将来の自分がターミナル真っ白だか真っ黒だかで困った時のためにと思った記事でした。

参考URL

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
  3. ダークテーマを利用できます
ログインすると使える機能について
mi2__user
@mi2__user(岡田 光博)
フロントエンドエンジニアでバックエンドも頑張りたいです。 趣味は、男性ウケに全振りしたもの。喫茶店、音楽、車、服、ワイン、麻雀とか。一緒にコーヒー飲みたいです!
hrbrain
HRBrainは、タレントマネジメント、組織診断サーベイ、パルスサーベイ、人事評価、360度評価、労務管理、社内向けAIチャットボットの7つのクラウドサービスと組織人事コンサルティングサービスを展開しています。人事業務の効率化から人材データの一元管理・分析 / 活用までワンストップで実現し、人事領域のDX化はもちろん、ESG経営・人的資本の情報開示などに適応できるよう機能拡充を進めております。

コメント

この記事にコメントはありません。

いいね以上の気持ちはコメントで

記事投稿キャンペーン開催中
記事投稿キャンペーン 「2024年!初アウトプットをしよう」
~
8