園部研 > > > Lc|English|Ger|Fre|Spa|Por|Ita
【22世紀へ!園部研】
簡単にチルダ(~)やホーム(~/)を入力する術 簡単にチルダ(~)やホーム(~/)を入力する術  


 Linuxを含むUNIXを使っていると,シェルの規約でユーザホームディレクトリを示すことになっているチルダ文字「~(ニョロ,波線)をいちいち入力するのが面倒ですね.

例: % more ~sonobe/.login

 ここで,パーセント記号'%'は,UNIXシェルのプロンプト文字を示します.

 チルダは,キーボードの上でも,打ちにくい“辺境の地”にありますね.
 また,キーボードの種類によっては,違う位置に作ってあります.
 シフトキーを同時に押す必要があるのも面倒ですね.

 特にJISキーボードでは,キーの刻印で「~」は0の上にあるのに,その2個右を押さなくてはいけません.なんて奇怪なのでしょう…….
 (信じられないかもしれませんが,URLの入力で,実際このキーが見つけらなかった方も相当数お見受けしました.)

(tilde key,チルダ キー,ニョロ,波線)

Shiftキーを押しながらこのキーを
押すと「~」の文字を発生できます.


 そこで,ホームの指定を,チルダの入力なしにできるという方法をふたつ開発しました.便利なのでご紹介します.


方法1: シンボリックリンク方式

(ステップ1)OSの確認

 symbolic linkの機能を利用します.
 通常のUnix,LinuxではOKです.
 マイクロソフト社のWindowsの場合,95/98/Me系では不可能です.
 NT/2000/XP系であっても,ディスクが通常のFAT32形式ではだめで,NTFS形式でフォーマットされていないとシンボリックリンクがはれないと思います.ご確認ください.もしNTFS形式に移行する場合は影響を事前に十分お調べになることをお勧めします.


(ステップ2)短縮形の決定

 ホームディレクトリとして自分の使いたい短縮形を決めます.

 短縮形としては,自分のユーザIDかその短縮形がいいでしょう.
 私のお勧めは,自分のユーザIDの先頭の小文字を2文字続けたシンボルです.
 たとえば,ユーザIDがsonobeだったら,ssにします.
 短いですが打ち間違いも少なく,超お得ですよ.
 ルートディレクトリ( % cd / で出てくるもの)の直下にあるディレクトリ名は避けます.
 システム名,ソフトウェア名,システムのもつディレクトリ名,他人の名前と同じようなまぎらわしいものも避けます.

 以下では,あなたのユーザIDをfooooooo, あなたの決めた短縮形を,ffと書きます.


 (ステップ3)シンボリックリンクの依頼

 あなたがシステム管理者になれればステップ4へ.

 システム管理者に,シンボリックリンクを,ルートディレクトリの直下に作ってもらうことをお願いします.
 ここで断られてしまったら,手順は異常終了です.(^^;


 (ステップ4)短縮形の登録

 よいとなったら,次のようなコマンドで作ってもらいます.


% su root
Password:********
% cd /
% ls -alF
% ln -s /home/...../fooooooo ff
% ls -alF
% exit

例(筆者の場合):
      % ln -s /home/usr/sonobe ss
 

 システムによってホームディレクトリのパスが異なるので,注意が必要です.
% pwd ~
を入れてみればすぐ確認できることです.

 手順終了.



 使い方は簡単です.

 従来の~foooooooや~の代わりに,/ffとすればOKです.
 もうチルダ「~」のキーインに煩わされることはありません.

 パスの途中から入れる場合は,〜〜//ffとします.
 たとえば,カレントディレクトリが ~fooooooo/a/aa/aaa でそれが表示されているとき(emacsの入力行とかktermでtcshを使っていてC-pで前回入力行を出したとき)に,~fooooooo/b/bbのファイルを指定したくなったとします.そしたら,
~fooooooo/a/aa/aaa
につづけて//ff/b/bbと打って
~fooooooo/a/aa/aaa//ff/b/bb
とすれば,目的のファイルが指定できることになります.
 従来でも似た方法がありましたが,「~」を押す必要がなくなる点は進歩です.

 コマンドラインから打つときだけでなく,プログラムの中で指定するときにも使えます.

 他のユーザもこのユーザのホームの指定については,この記法を利用できます.

 これだけでは他のホストで利用できません.ホストごとに上記設定が必要です.


方法2: tcshキーバインド方式

 tcsh(ティーシーシェル)を利用します.

 (ステップ1)tcsh採用の決定

 tcshは,cshの機能を含んでさらに大きな利点をもつシェルですから,ふだんcshをお使いの方なら,お勧めです.併用もできます.
 あなたがtcshをお好みでない場合は,異常終了 (^^;


 (ステップ2)tcshのインストール

 tcshがあなたのマシンにインストールされているかどうか確認し,していなければ,見つけてインストールしてパスを通します(詳細は別にお調べください).
 Windows版のtcshもあります(筆者のWindows 2000マシンでも動いています.).
 インストールができなければ異常終了 (^^;


 (ステップ3)バインドキーの決定

 あなたがこれからふだん,`~'の代わりを「CTRL-何」でさせたいか,英字1文字を割り当ててください(英字以外でどんな文字にできるかは,tcshのマニュアルをご覧ください).
 私は,'x'にしました.


 (ステップ4)tcsh実行ファイルの更新または作成
 ファイル~/.tcshrcを作り,次の内容を入れます.
 既に.tcshrcをお持ちの場合は,追加になります.今までのファイルを壊さないようにご注意ください(この記事を書くためにWindowsで実験してこれをやっちまった!).


# .tcshrc
#
#--- tcsh ユーザバインドキー (これがポイント)---#
    bindkey -s ^x '~'
#--- tcsh プロンプト (おまけです)---#
    set    prompt="[%n `echo $shlvl` %m:%~] "
#--- あとはcsh初期設定を呼ぶ---#
#---(.cshrcと分けるかどうかはお好みで)---#
    source ~/.cshrc



 注:このハット`^'記号はそのまま1文字で入れるものです(CTRLを同時に押す意味ではありません).ハットのあとのxは上で決めたお好みの文字にします.


 手順終了.



 使い方です.
 以後,tcshでC-xを押すたびに,シェル入力行の現在のカーソル位置に,`~'の文字が出てくれます.

 この方法は,CTRLキーを押す必要があるのと,tcsh以外のプログラム(たとえばemacsの入力行)では使えないという欠点はあります.

 それでも,システム管理者の同意が要らない,という特長をもっています.


 さらにおまけとして,Windowsでの私の簡単な.cshrcを添付します:


#  .cshrc
#
    alias   a   "alias"
    a       ls  "ls -aCF"
    a       lls "ls -alF \!* | less"
    a       lsgrep  "ls -alF ./ | grep \!*"
    a       psgrep  "ps | grep \!*"
    a       mo  "less"
    a       more    "less"
    a       q   "exit"
    a       tt  "tcsh"
    a       wh  "where"




 では,うまくいきますように!




 
- Copyright © sonobelab.com, Masayuki Sonobe 2002-2024.
- 最終更新日 5405日前: 2009. 7. 2 Thu 19:19
- 本ページのアクセス数(2002.11.10〜) 00,054,827
- 園部研 のアクセス数(2002.07.01〜) 05,107,451