UbuntuのGUIをオフ CUIで日本語が文字化けする

こんにちは、minoruです。

古いパソコンを使っていると、グラフィカルなデスクトップ環境を負担に感じ、GUIをオフにして、CUIだけで使いたいな〜と思ってました。

GUIをオフにする方法

ただ単にGUIをオフにするのは簡単。

Ctrl + Alt + T で端末と呼ばれる黒い画面を出して、以下のコマンドを実行するだけ。

sudo systemctl set-default multi-user.target

あとはPCを再起動すれば真っ黒の画面でログイン画面が表示されます。

一時的にCUIだけの状態にしたいだけであれば、Ctrl + Alt + F1からF6でも簡単にできます。Ctrl + Alt + F7からF12で元に戻れる。

GUIオンに戻す方法

sudo systemctl set-default graphical.target

これで再起動すると元通り。

起動時間は変わらない

私がこのCUIオンリーでの運用を望んだ背景に、使わない時は電源を切っているので、電源投入時にちょっとでも早くOSが起動して欲しいという考えもあったんです。

でも実際にGUIをオフにしてCUIオンリーにしても、電源ボタン押下からログイン画面の表示まで、殆ど起動時間に変わりはありませんでした。

メインのストレージにSSDを使用しているので、これがHDDだと話は違うかも知れませんが、起動までの約30秒の内、半分は企業ロゴとかの省略でき無さそうなプロセスで、ChromeBookのような7秒起動みたいな訳には行きませんでした。

どうしても高速起動が良い場合はChrome Bookおすすめ。

AmazonでChrome Bookのラインナップを見る
https://amzn.to/3iOEFYw

日本語が文字化けする

GUIをオフにしてCUIオンリーで使用すると、当然ログイン時から真っ黒な画面のターミナルで操作がはじまるので、とりあえすファイルでも見るか…と ls コマンドなんかを試すと…

日本語のファイル名やフォルダ名が「◆◆◆◆◆」みたいな感じで◆とか■とかに文字化けしてます。その解決策として良くネット上にあるのは…

パターンその1

export LANG=C

ただ、これだと確かに「◆◆◆◆◆」の文字化けは防げるんだけど、要は言語設定を英語版に変えてるだけなんで「''$'\304\200\…'」みたいになります。

(※そのセッションだけの一時的な変更で、再起動すれば元に戻ってるので安心)

確かに「文字化け」はしてないけど、相変わらず日本人には難読な表示になるのは変わらないし、CDコマンドで上記の通りに打っても移動ができないので、意味が無い。

実はこの数字の羅列はUTF-8の文字コードを8進数で表現したもので、最初の''を除外して打ち込めば日本語のディレクトリに移動したり、日本語のファイルを作ったりも可能になる。

とは言え数字の羅列のままの表示ではあるけど、日本語の表示できる環境から見たときにはちゃんと日本語になっている。

例えばホームディレクトリからデスクトップに移動するには以下のようにする。

cd $'\343\203\207\343\202\271\343\202\257\343\203\210\343\203\203\343\203\227'

まあトラブル発生などの緊急時以外にあまり使う事は無いだろうけど。そして、残念ながら入力時にタブキーによる補完は効かない。

補足:LANG=C の効果

英語&ASCII限定の表示(日本語は $'\344...' みたいになる)ソート順やメッセージ表示などが英語モードになり、日本語の文字化け対策として使われることも多い。

mkdir $'\343\203\207'

これで「デ」と言う名前のディレクトリを作る事ができる。その画面上では数字の羅列にしか見えないが、日本語が読める環境からSSHで繋いだり、HDDやSSDを他のGUIマシンに繋いだ場合に、よっぽど特殊な設定になってない限り日本語「デ」フォルダが見える。

ユニコードと言う文字コードの難しい話で…

デ = U+30C7 = 0x30C7 = 0011 0000 1100 0111 = \xE3\x83\x87 = \343\203\207

と言う事らしいですわ!文字コードを2進数にして、それを16進数に、さらに3桁の数字3つの塊にしたのが8進数の8進数エスケープシーケンス Bash の ANSI-C クォート形式 だそうですよ?サッパリ意味がわかりません!

ちなみに漢字の「山」は \345\261\261 こうなる。

パターンその2

sudo apt install fbterm
sudo fbterm

これは以前試した方法だが…

上記のexportコマンドなんかしなくても、fbtermというターミナルをインストールして起動すると普通に日本語は表示された。確かに日本語は表示されたんだけど、日本語入力はまた別の話なので、やはりピクチャフォルダとかに移動すら気軽に出来ないんだよね。

このあたりで私の心は折れた。TTY環境(CUIのみで動作している状態)においては、アルファベットでの入力が前提であり、日本語入力は基本的に出来ないと考えた方が良い。

※2025年8月に試したところ、fbtermのインストールは出来たが起動が出来なかった。can't open frame buffer device! と言うエラーメッセージが表示されたが、面倒になってそれ以上は深く追求しなかった。

古いPCでメモリなどを節約して使いたい目的

CUIの状態だけで使いたいと言うのは、おそらくPCのマシンリソースを節約して運用したいと言う目的なのではないか?と想像しますが、XubuntuやLubuntuを入れて、ターミナルだけしか使わない…と言う方法が現実的だと思います。

この方法ならメモリが1GBくらいでもどうにかなりそう。私の場合、Xubuntuを起動して、ターミナルを開いただけの状態で、メモリ使用量が500MB弱でした。

それすらも厳しいよ!と言うメモリ量であれば、Ubuntu Server などのGUIが無いOSを入れて、SSHなどで外部の他のPCからそのPCを遠隔操作する…と言う方法が一般的みたい。要するに結局そこそこの普通のスペックのPCが1台は必要って事。

単体で運用するのであればXubuntuやLubuntuが現実的な解決策かな。

後ほど整理する情報

2025.08.11に以下を実行、TTY環境CUIのみの環境で日本語表示と日本語入力に成功
Lubuntu24.04をGUIありで新規インストール
sudo systemctl set-default graphical.target
PC再起動
TTY環境で起動
sudo apt install fbterm

インストールはできたのでfbtermを起動しようとすると…

fbterm
can't open frame buffer device!
mmap /dev/zero: Operation not permitted
Using VESA requires root privilege

エラーが出て起動できない。

sudo fbterm
stdin isn't a interactive tty!

echo $TERM
linux

ls -l /dev/fb0
crw-rw---- 1 root video 29, 0 8◆ 11 02:59 /dev/fb0

groups
minoru adm cdrom sudo dip plugdev lpadmin sambashare

↑ここに「video」ってのが入ってないといけないらしい

sudo usermod -aG video $USER
要はfbtermインストール後にこのコマンドを打てば良かったらしい

exit
再度ログイン

lsmod | grep fb

sudo modprobe vesafb
modprobe: FATAL: Module vesafb not found in directory /lib/modules/6.14.0-27-generic

上記青字の部分は不要だったかも知れない「sudo usermod -aG video $USER」によって、以下のような変化が起きる。

groups
minoru adm cdrom sudo dip video plugdev lpadmin sambashare

↑videoが入ったのでこれでfbtermが起動するはず

fbterm
この時点でfbterm起動成功

sudo apt install uim
sudo apt install uim-anthy


以下も実行したが必要だったかどうかは現時点では不明
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
export XMODIFIERS=@im=uim
export LANG=ja_JP.UTF-8

uim-xim &
これも必要だったかどうか疑わしい


↓これはおそらく必要だろう

sudo nano /usr/share/uim/generic-key-custom.scm

参照:https://blog.goo.ne.jp/lm324/e/57d71e72919ca63167eb109466fec5fb

省略

(define-custom 'generic-on-key '("zenkaku-hankaku" "<Control> " "<Alt> ")
               '(global-keys1)
               '(key)
               (N_ "[Global] on")
               (N_ "long description will be here"))

(define-custom 'generic-off-key '("zenkaku-hankaku" "<Control> " "<Alt> ")
               '(global-keys1)
               '(key)
               (N_ "[Global] off")
               (N_ "long description will be here"))

省略

↑<Control>の後にくるスペース1つが重要とのこと
exitで一旦ログアウトして再度ログインして以下を実行

fbterm uim-fep

↑日本語使える状態でfbtermを起動しろ…と言う事らしい

nano ~/.fbtermrc

フォントのサイズを変えると快適

font-names=mono
font-size=24

私が参照したサイトの記事ではフォントを変えていらっしゃるが、私の場合は何も変えずにフォントのサイズだけを大きくしたら、その方が快適だった。環境の違いだろう。

fbterm uim-fep

でfbtermを起動して、日本語入力はCtrl+Space もしくは Alt+Spaceで、一般的なGUI環境で言うところの「半角/全角」キーと同じ挙動をする。

フォントによって見えやすさ・読みやすさが違ってくるので、色々試してみると良いかも知れない。ちなみに今回試した内容だと①丸付き数字とか絵文字とかは変換候補には出てこなかった。が、まあ十分だと思う。

余談だがfbtermがフレームバッファターミナルって事なんだろうなーってのがわかった。

メモリ使用量537MBだよ!これだよこれ!これがしたかった!

追伸

LinuxやUbuntuをこれから試してみたい!と言う人や、今までWindowsで使っていたPCをWindowsは残したままLinuxやUbuntuを活用してみたい人は以下の本がおすすめ!
https://amzn.to/44AU7B5

LinuxやUbuntuを使おうとして、初心者の人が最初にコマンドで戸惑うのが普通です。そんな初心者に向けてマンガで超わかりやすいコマンドについて学べるのはシス管系女子みんとちゃんの本!
https://amzn.to/3FMTx5v

シェアする

  • このエントリーをはてなブックマークに追加

フォローする