LoginSignup
5
3

More than 5 years have passed since last update.

古い/bin/shをインタラクティブにしたい

Last updated at Posted at 2015-12-03

本日のFreeBSD Advent Calendarが空いていたので小ネタ投下します。

旧バージョンのFreeBSDもまだ現役だい!

というあなた。ですよねー。公式サポートが切れたからといって、はいそうですかといって簡単にバージョンアップできるホストばかりじゃありません。世の中、キレイ事では済まないものです。

それに、インターネットに繋がっておらず、自分で管理しているローカルネットワーク内でのみ自己責任で運用しているのなら、旧バージョンを使っていようが責められる言われは全くありません。

そんな旧バージョンFreeBSDを愛顧するあなたへ捧げるTipsです。

/bin/shでもヒストリー&カーソル移動ができるんです

FreeBSDのシェル、何をお使いですか?デフォルトはtcshだと思いますが、Bourne Shell系のシェルをちょっといじりたいと思ったら、後からbashやzshなどインストールしない限りは/bin/shしか選択肢がありません。

でも、FreeBSD 8までの/bin/shだとヒストリー機能が無いし、コマンド入力している途中で最初の方の打ち間違いに気づいたとしても左カーソルキーや[ctrl]+[a]で戻してやることができません。あぁ不便。

……とお思いかもしれませんが、実はできるんです!

set -Eって打ち込んでおくだけ

しかもやり方はあっけにとられるほど簡単。/bin/shに切り替えた後

$ set -E

って打ち込むだけです。打ち込んだら早速、[↑]キーを押してみてください。ホラね、ヒストリーに入っているset -Eが現れたましたよね?

さらに、[←]キーなんかも押してみてください。"^[[D"というウザい表示がされず、カーソルが素直に左に移動しましたよね?

これができるようになるだけでどんなに便利なことか……。

ただし、タブキーでコマンドやパスが補完される機能はありません。

少なくとも2.0の頃からこの機能はあった?

これ、一体いつからあったんでしょう?確認できた限りでは2.0-RELEASEの頃既にあったようです。

-E emacs
Enable the builtin emacs(1) command line editor (disables -V if
it has been set).

こんな便利な機能を持っているなら、デフォルト有効にしておいてくれればいいのに水臭いですよねぇ。

オマケ

逆に、始めからインタラクティブになっているFreeBSD 9以降の/bin/shでその機能を無効にして、(´・ω・`)ショボーンすることもできます。

$ set +E

ああなんて素晴らしきムダ知識。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3