Bash&シェルスクリプトを極めるテクニックまとめ

 UNIXやLinuxのエキスパートになるのに避けて通れないのが、Bashに代表されるコマンドラインシェルによる操作だ。そこで本記事では、「Bashのカスタマイズ」「シェルスクリプトの高等テクニック」「Bash以外の高機能シェル」の3つについて、SourceForge.JP Magazineで過去に掲載された解説記事を紹介する。

Bashをカスタマイズして使いこなす

 Bashは非常にカスタマイズの幅が広く、またちょっとした改良や簡単なシェルスクリプトの利用により、大きく作業効率が改善する。ここでは、Bashのカスタマイズテクニックを解説する記事を紹介する。

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

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

シェルスクリプトで役立つテキスト文字列のパターンマッチングの基礎

 シェルプログラミングでは、文字列に関する操作が大きな役割を果たすことになる。そして、プロンプトへの応答入力、必要なファイル名の生成、コマンドの出力結果に対する処理を繰り返し実行させる際に必要となるのがパターンマッチングだ。本記事では、このパターンマッチング用の様々な機能について紹介する。(続きを読む…

CLIマジック:使って役立つワンライナー入門

 ワンライナー(one-liner)とは、パイプ(|)という機能を用いて複数のコマンドを1行にまとめたものを意味する。ワンライナーには簡単なものから複雑なものまで様々なものがあるが、これらはいずれも使い方次第で大いに役立つ存在なのだ。(続きを読む…

CLIマジック:ディレクトリの一覧表示をカスタマイズする小スクリプト

 lsを実行する場合、ディレクトリの一覧から特定のファイルを探し出すと共に、そのファイルが存在するディレクトリの状況も確認したいことがある。今回は、たとえばディレクトリ全体を表示して条件にマッチするファイルだけ表示の色を変えるなど、lsの結果をカスタマイズする簡単なスクリプトを紹介しよう。(続きを読む…

CLIマジック:ANSIエスケープシーケンスを使って端末に時計を表示する

 Linux端末を使っているとき、時刻を知るためだけにdateコマンドを実行していることがよくある。これをもっと簡単にするため、端末画面の右上隅に常に時計が表示されるようにするスクリプトを作成してみた。(続きを読む…

シェルスクリプトを使いこなすテクニック

 シェルスクリプトを利用することで、定型的な作業を自動的に実行したり、複雑な処理をコマンド一発で実行できる。さらに、簡単な作業だけでなく、複雑な処理をシェルスクリプトで実行することも可能だ。ここでは、シェルスクリプトの中・上級者に向けて、さらにシェルスクリプトの幅を広げるテクニックを解説する記事を紹介する。

シェルスクリプトで引数をパースする

 自作のbashのシェルスクリプトで何らかのオプションを使えるようにしたいとしよう。このような場合、${#} を使って与えられた引数の個数を取得したり、${1:0:1}を使って最初の引数の最初の文字が「-」かどうかを判定する必要がある。本記事では、シェルスクリプトでこのような引数のパースを行うテクニックを紹介する。(続きを読む…

シェル・スクリプトのデバッグ・ツール、bashdb

 Bash Debugger Project(bashdb)を使うと、bashスクリプトにブレークポイントを設定したり変数を調べたりバックトレースしたり1行ずつ実行したりすることができる。bashdbは、C/C++デバッガー並みの技法でbashスクリプトをデバッグするツールだ。(続きを読む…

bashシェルに新機能を追加するBashDiff

 本稿で紹介するBashDiffを用いることで、Bashに多彩な機能を追加できる。たとえば、C言語の一部機能をbashシェルプログラミングで使用可能とする、例外の処理機構を追加する、関数型プログラミングに特有なリスト内包表記やmap関数などの機能を提供する、GTK+2やデータベースとの通信機能を設けるなどだ。(続きを読む…

bashシェルに新機能を追加するBashDiff(パート2)

 本記事では「bashシェルに新機能を追加するBashDiff」の続きとして、位置パラメータの操作法、XMLの構文解析、ISAMやリレーショナルデータベースとの通信、GTK+2 GUIの作成などを紹介する。(続きを読む…

Bash以外の高機能シェルもある

 Linuxでは標準シェルとしてBashが使われているが、もちろんこれ以外のコマンドラインシェルも存在する。以下では、より高機能なコマンドラインシェル「Korn」や、GUIと融合したシェル「Hotwire」、Schemeを利用する「Scheme Shell」といった変わったシェルを紹介する。

Korn――高機能なシェル

 Linuxではさまざまなシェルが利用でき、それぞれに少しずつ違った特徴がある。そのようなシェルの中で高機能なものの1つがKornシェルだ。この記事を読み終わる頃には、あなたのお気に入りにもなっているかもしれない。(続きを読む…

コマンドラインとGUIを融合するHotwire

 Hotwireの説明をしようとするとどうしても「コマンドラインGUI」や「グラフィカル・シェル」や「GUI xterm」というような矛盾しているように聞こえる表現になってしまう。しかし実際のところHotwireはそういうものなのだ。つまりHotwireはテキストベースのシェルと近代的なGUIのあいのこのような存在だ。(続きを読む…

SCSH(Scheme Shell)スクリプト入門

 SCSH(Scheme Shell)は、Scheme言語をベースに、シェルスクリプトに向いた機能を備えたシェルシステムだ。本稿では、複数のファイル内のテキスト検索/置換、ファイルのソート、CSVファイルからHTMLファイルへのデータ変換といった、SCSHで書いた実用的な例を紹介する。(続きを読む…