Linux

Unixで今使っているコマンドシェルを調べる方法

Unixマシンで使えるコマンドシェルには、bashやcsh、zshなど様々なものがありますが、いろいろな環境を触っていると自分が使っているマシンが果たしてどのコマンドシェルを使っているのかわからなくなる時があります。

$shellという変数を表示させて調べることもできますが


% echo $shell
/bin/csh

 

環境によっては値が設定されていない場合があります。

 

また、/etc/passwdを見てみるという手もあります。


cat /etc/passwd | grep myaccount 
myaccount:*:1156:1000:User &:/home/myaccount:/bin/csh

 

その他に、次のコマンドでも調べることができます。


ps -p $$

 

$$は現在のプロセス、つまりコマンドラインであれば、コマンドシェル自体のプロセスIDを示す特殊変数ですが、これをpsコマンドのpオプション 使って渡して、コマンドシェルの情報を表示させています。

findの便利な近い方

先日の「UNIXコマンド これだけは覚えておけ!」に続いて、同じサイトから今回は、findコマンドについての記事の抜粋&意訳&補足です。

 

findコマンドはUNIXの中でも最も便利なコマンドの1つです。もしあなたがJavaやC++のプログラマで、UNIX環境で作業してるなら、IDEが無くても、ソースファイル中の任意のワードを探すのにfindコマンドが役に立ちます。

 

  • !find で、最後に実行したfindコマンドを再実行

    findコマンドは引数も含めて長くなりがちです。コマンドの前に!をつけると最後に実行した形式で同じをコマンドを実行することができます。

    
    !find 
    

    と入力して、再実行しましょう。

     

UNIXコマンド これだけは覚えておけ!

http://javarevisited.blogspot.jp/2011/03/unix-command-tutorial-working-fast-in.html#ixzz2K2JPFrL9 の記事から要点だけ抜粋&意訳&補足

 

  1. !を使って最後のコマンドを実行

    同じコマンドを繰り返し実行することは結構あります。カーソル上下キーで、履歴を遡り実行することもできますが、 !ls と入力すれば、最後に実行した、lsコマンドを同じパラメータで再実行することができます。

    
    !vi
    

    と入力すれば、最後にviで編集したファイルをまた開くことができます。

    他にも、例えば、

Unixタイムを表示する

特に何に必要というわけでもないのですが、開発をしているとたまーに知りたい時があります。

 

MacやLinuxのターミナルで、


$ date '+%s'
1359695021

と入力すれば、現在の時刻のUnixタイムが表示されます。

 

Macで

$ date '+%s' | pbcopy
とすれば、クリップボードへコピーできます。