SourceForge.JP: Open Source Software

LoginCreate AccountHelp

[RSS]OpenSource Downloads

(11,563) Cabos
(2,276) 7-Zip
(1,935) HandBrake Japanese Language Version
(1,753) Tera Term
(1,270) CrystalDiskInfo
(868) Tween - client software of Twitter
(681) ffdshow
(636) ギコナビ
(626) CrystalDiskMark
10  (624) Amateras
11  (601) VirtualDubMod-jp
12  (462) MergeDoc
13  (386) NNDD - ニコニコ動画DL&再生ソフト
14  (376) WordPress Plugins/JSeries
15  (376) えこでこツール
More >>

最近ブックマークされた記事

Magazine 最新特集記事

オープンソースソフトウェアで強化するWindowsデスクトップ

 「オープンソースソフトウェア」というと、Linux/UNIXの世界が中心というイメージがあるかもしれない。しかし、現在ではWindows向けのオープンソースソフトウェアも多数公開されている。そこで本特集では、システムカスタマイズツールやマルチメディア関連ソフトウェア、バックアップツールなど、有用なWindows向けオープンソースソフトウェアを紹介していく。

大幅なスペックアップで生まれ変わった超小型Linuxサーバー「OpenBlockS 600」徹底活用

 超小型のLinuxサーバーとして有名な「OpenBlockS」に、大幅なスペックアップが施された新モデル「OpenBlockS 600」が登場した。そこでOpenBlockS 600の仕様を紹介するとともに、ルータ・ブリッジとしての利用やネットワークの管理・監視への利用など、実運用に向けての利用例やセットアップ例を解説する。

セキュリティ

コマンドラインでシェルのエイリアスと関数を使って作業を効率化する

2008年09月25日 09:41AM 1 2 3
  • スラッシュドットにタレコむ
  • あとで読む

 GNU/Linuxシステムを最大限に活用するには、やはりコマンドプロンプトとシェルスクリプトへの習熟が欠かせない。とはいえ、そうした処理はなるべく手早く済ませたいものだ。本稿では、コマンドラインでの作業の手間を最小化してくれる強力な方法として、シェルのエイリアスと関数を紹介する。

 ここではbashを例にとって説明するが、以下に示す概念のすべてとコードの大半はその他のシェルでも通用する。

 シェルのエイリアスとは、頻繁に実行する長いコマンドを覚えやすくするために付ける別名のことである。コマンドラインから入力された文字列に対し、シェルはまず設定済みエイリアスの一覧とのマッチングを行う。一致するものがあれば、そのエイリアスは対応するテキストに置き換えられ、結果として得られるコマンドライン全体の評価と実行が行われる。以下に、エイリアス定義の例を示す。

    alias sqlmanage='mysql -p -u my_MySQL_userid MySQL_database_name'
    alias ssh2rws='ssh -p port_number my_remote_userid@my.remote.web.server'
    alias findbig='find . -type f -exec ls -s {} \; | sort -n -r | head -5'
    alias cof='clear;ls -lrt'

 最初の2つはそれぞれローカルのMySQLデータベースとリモートサーバへの接続用コマンドを短縮して置き換えるもの、3つ目はカレントディレクトリからサイズの大きい上位5つのファイルを見つけ出すものである。4つ目のエイリアスは、ほかの3つよりもシンプルで短いが、最も融通が効く。エイリアス置換のしくみにより、この「cof」を次のように使えばファイルまたはディレクトリの一覧を古いものから順に表示できる。

    cof              # スクリーンをクリアして、カレントディレクトリの一覧を表示
    cof /tmp /usr    # スクリーンをクリアして、/tmpと/usrの一覧を表示
    cof *.jpg        # スクリーンをクリアして、カレントディレクトリにある.jpgファイルの一覧を表示

 エイリアスの定義はシェルのセッションの途中でプロンプトから行えるが、システムまたは個人用の設定ファイル(「/etc/bashrc」または「$HOME/.bashrc」)に記述しておけば、セッションごとに定義し直す必要がなく便利である。また、使っているシェルでどんなエイリアスが定義されているかを確認するには、プロンプトの後に「alias」とだけ入力すればよい。

 このように便利なエイリアスだが、制限事項や問題点がいくつかある。まず、適切なオプション(bashのmanページを参照)を設定しない限り、シェルが対話モードのときには使えない。また、シェルは、少なくとも完全な1行分の入力を読み込んだうえでエイリアスの置換を行い、結果として得られるコマンド全体を実行する。そのため、複数の定義済みエイリアスを同じ行で使うことはできても(ただし、意図したとおりの実行結果にならない場合がある)、同じ行のなかでエイリアスの定義と利用を行うことはできない。同様の理由により、シェル関数の内部でエイリアスを定義しようとすると問題が起こりうる。こうした問題を防ぐには、エイリアスを定義する行ではそれ以外のことを一切行わないようにしないといけない。つまり、複合コマンドや条件に応じて実行されるコードブロック内でのエイリアスの利用や定義は、避ける必要があるわけだ。

Marco Fioretti
2008年11月25日 05:07PM 更新