DOS を利用していたとき長いコマンドラインのショートカットを作るためにバッ
チファイルを使用していたなら (私もよくしました)、同じ目的は適切なエイ
リアスをprofile
や .bash_profile
に記述することで達成できま
す (上の例を参照)。 でも、もっと複雑なバッチファイルを使っていたならシェ
ルによるスクリプト言語をきっとあなたは好きになるはずです。これは古き良
き QBasic と同じか、それ以上にパワフルです。これは変数や while、for、
case、if... then... else のような構造を持ち、そのほかにもたくさんの特
徴があります。これは「本物」のプログラミング言語の代わりになります。
スクリプト (DOS 上の .BAT に相当) を書くには、命令を含んだ標準の ASCII
ファイルを記述し、セーブします。その後 chmod +x <scriptfile>
コマンドで実行可能にすればよいだけです。スクリプトを実行するにはファ
イル名をタイプしてください。
注意! vi
と呼ばれるシステムエディタがありますが、これは私の経験か
ら言って初心者の方には使うのがとても難しいと感じると思います。ここでは
使い方などは説明しませんが、Matt Welsh の本やネットでチュートリアルを
探してそれらを参考にしてください。ここでは以下の説明にとどめておきます。
i
とタイプしてからx
とタイプ:q!
とタイプ:wq
とタイプ初心者向けのよいエディタに joe
があります。jstar
と
タイプすることで起動でき、これは DOSWin のエディタと同じキーバインディ
ングを持ちます。jed
の WordStar や IDE モードはさらによいです。
どこでアプリケーションを見付けるか のセクショ
ンで、どこからこれらのエディタをダウンロードできるか見付けてください。
bash
上でのスクリプト記述はとても幅の広いサブジェクトであり、それ
だけで本が書けてしまえますので、これ以上は深入りしません。ここでは単純
に基本となるルールを覚えてもらうためにシェルスクリプトの例を挙げること
にしま
す:
#!/bin/sh # sample.sh # これはコメント # 一行目を編集しないように。それはそこにある必要があります。 echo "このシステムは:" `uname -a` # コマンドの出力を使う echo "私の名前は $0" # 組込みの変数 echo "あなたは次の" $# "パラメータを与えました: "$* echo "最初のパラメータは: "$1 echo -n "あなたの名前は? " ; read your_name echo 違いに気づきますか: "hi $your_name" # " で引用 echo 違いに気づきますか: 'hi $your_name' # ' で引用 DIRS=0 ; FILES=0 for file in `ls .` ; do if [ -d ${file} ] ; then # ファイルがディレクトリなら DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1 elif [ -f ${file} ] ; then FILES=`expr $FILES + 1` fi case ${file} in *.gif|*jpg) echo "${file}: 画像ファイル" ;; *.txt|*.tex) echo "${file}: テキストファイル" ;; *.c|*.f|*.for) echo "${file}: ソースファイル" ;; *) echo "${file}: 一般的なファイル" ;; esac done echo " ${DIRS} 個のディレクトリと ${FILES} 個のファイルが見付かりました" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # コードの最後のコマンドから exit する echo "ZxY--!!!WKW not found" fi echo "これで十分かな。。さらなる情報は 'man bash'"
好む好まざるとを問わず、UNIX 上でのシステム言語は C です。ほかにもたく さんの言語 (Java、FORTRAN、Pascal、Lisp、Basic、Perl、awk...) が使用可 能です。
あなたが C を知っているものとして、これらは今まで Turbo C++ やそれら
DOS 用のコンパイラを使ってきた人へのガイドラインです。Linux の C
コンパイラは gcc
と呼ばれ、これはベルや笛などの DOS のもので
通常付属されている機能を欠きます。IDE、オンラインヘルプ、統合された
デバッガなどもありません。単純なコマンドラインのコンパイラですが
とても強力で有能です。標準の hello.c
をコンパイルするには:
$ gcc hello.c
これで実行ファイル a.out
を作成します。実行ファイルに違う名前を与
えるには
$ gcc -o hola hello.c
ライブラリをプログラムにリンクするには、-l<libname> のようなスイッ チを追加します。例えば数学ライブラリをリンクするには
$ gcc -o mathprog mathprog.c -lm
(-l<libname>
スイッチは gcc
にライブラリ
/usr/lib/lib<libname>.so
をリンクさせます。つまり
-lm
は /usr/lib/libm.so
をリンクします)
ここまではいい感じですね。でもプログラムが複数のソースファイルに
よってできている場合は、make
というユーティリティを使う必要があり
ます。仮にあなたが式の構文解析をするプログラムを書いたとします。
これのソースファイルには parser.c
と #include される二つの
ヘッダファイル、parser.h
と xy.h
があります。 parser.c
にあるルーチンを parser.h
を #include する calc.c
で使い
たいとします。なんてめちゃくちゃな! どうやったら calc.c
をコンパ
イルできるのでしょう?
そこで、コンパイラにソースとオブジェクトファイル間の依存状況を
教える Makefile
と呼ばれるものを書かなければなりません。
# これは calc.c をコンパイルするための Makefile # 示されたところで <TAB> キーを押すように calc: calc.o parser.o <TAB>gcc -o calc calc.o parser.o -lm # calc は二つのオブジェクトファイルに依存します: calc.o と parser.o calc.o: calc.c parser.h <TAB>gcc -c calc.c # calc.o は二つのソースファイルに依存します parser.o: parser.c parser.h xy.h <TAB>gcc -c parser.c # parser.o は三つのソースファイルに依存します # Makefile 終了
このファイルを Makefile
という名前で保存し、プログラムをコンパイ
ルするために make
とタイプしましょう。そのほかの手段として、
calc.mak
という名前で保存し、make -f calc.mak
とタイプするこ
ともできます。そしてこれはもちろん RMP してみてください。 man に載って
いる C 関数についての情報を使用することもできます。例えばセクション 3
だったら以下のようにします。
$ man 3 printf
プログラムをデバッグするには gdb
を使いましょう。使い方は
info gdb
で学びましょう。
Linux ではたくさんのライブラリが使用可能です。この中でも ncurses
(テキスト効果)、そして svgalib
(コンソールグラフィックス) を最初
に使ってみたくなるでしょう。もしあなたに勇気があれば X11 プログラミン
グに挑戦してみるのも悪くないかもしれません (そんなには難しくありません)。
X11 プログラム記述を簡単にする複数のライブラリがあります。
http://www.xnet.com/~blatura/linapp6.html を見てみてください。で
も Gtk が Linux 標準になって来ていることを忘れずに。
たくさんのエディタは IDE となることもできます。例えば emacs
と
jed
には文章構成ハイライト、自動インデント、といったたくさんの
機能があります。ほかの方法として、
ftp://sunsite.unc.edu:/pub/Linux/devel/debuggers/.
から rhide
パッケージを入手してみるのもいいかもしれません。
これは Borland IDE のクローンで、あなたも気に入ると思います。