非公式Rock研究所

Radxaのシングルボード(主にRock4c+)について書いています

コマンドのヒストリー機能の活性化

linuxは過去に入力したコマンドは記録されており、↑ボタンを押すことで過去のコマンド実行履歴をさかのぼることができる。 通常、特別な設定をせずにそのまま使える「コマンドのヒストリー機能」だが、このサイトで紹介したイメージファイルで環境を構築するとデバイスを再起動たびにリセットされてしまう。

試しに、適当なコマンドを実行したあと、↑ボタンを押すと過去のコマンドが表示されるが、Rock4c+を再起動してみると、↑ボタンを押しても再起動前に実行したコマンドは表示されない。

本来であれば、コマンドの実行結果はユーザのホームディレクトリである、rockディレクトリに「.bash_history」という名前で隠しファイルとして保存されるが、Rock4c+ではファイルがそもそも存在していない。

rockディレクトリ内部(所有者変更前)

(隠しファイルを表示させる-aオプションをつけて実行しても、.bash_historyファイルは表示されない。)

ちなみに、rockディレクトリの状態を調べてみると、

rockディレクトリ詳細(所有者変更前)

rockディレクトリの所有者はrootになっており、rockディレクトリにテキストファイルを作るだけでも管理者権限が必要になる。おそらく、.bash_historyファイルが存在しなかった理由もログインしているrockユーザではrockディレクトリ内にファイルを保存する権限がないため、ファイルを生成できなかったと思われる。

そこで、rockディレクトリの所有者とグループを以下のコマンドでrootからrockに変更してみる。

$ sudo chown rock /home/rock
$ sudo chgrp rock /home/rock  

(管理者権限が必要なのでsudoコマンドが必須。パスワードを求められた場合は、rockユーザのパスワードを入力する。)

rockディレクトリ詳細(所有者変更後)

所有者の変更前に実行したls -lのときに比べ、所有者とグループがrockに変更されている。

rockディレクトリ内部(所有者変更後)

一度再起動をかけて、いろいろコマンドを実行したあと、再度再起動をかけても↑ボタンで過去のコマンドが表示されている。
rockディレクトリの中にも「.bash_history」が生成されていることが確認できる。