この授業では、Cプログラムのコンパイルと実行をLinuxサーバー上で行います。

そこで、Linuxについて復習しておきましょう。

以下の例において、luna% はコマンド・プロンプトを表していて、自分で入力するものではありません。 コマンドを実行した結果は、自分で確認してください。

シェル

シェルは、OSを使うためのインターフェースをユーザーに提供するソフトウェアです。

Linuxにログインすると、シェル・プログラムが自動的に起動します。

総合情報センターのLinuxサーバーでは、最初、cshというシェルが起動するように設定されています。

Linux用のシェル・プログラムには、cshの他に、sh, bash, tcsh, zshなどがあります。

コマンド・プロンプト

コマンド・プロンプトは、コマンド入力待ちの状態であることを表すために画面に表示される文字です。

総合情報センターのLinuxサーバーのcshでは、コマンド・プロンプトとして luna% と表示されます。

%の他に、$, #, >などがコマンド・プロンプトとして使われます。

以下のコマンド入力例にはコマンド・プロンプトも表示していますが、コマンド・プロンプトはユーザーが入力するものではありません。

ディレクトリー

コンピューターの中で、ファイルを整理するために作るグループのことをディレクトリーといいます。 Windows, OS X, iOS, Androidなどでは、フォルダーと呼ばれます。

Linuxでは、ディレクトリーの区切りをスラッシュ / で表します。 Windowsでは、フォルダーの区切りをバックスラッシュ \ または円記号 ¥ で表します。

作業ディレクトリー(カレント・ディレクトリー)

Linuxにログインして作業を行うときに、現在作業を行っているディレクトリーのことを作業ディレクトリーあるいはカレント・ディレクトリーといいます。

作業ディレクトリーの相対パスはドット . で表し、絶対パスは作業ディレクトリーによって異なります。

例1: 作業ディレクトリーにあるhello.cを削除する

luna7% pwd

親ディレクトリー

親ディレクトリーは、ディレクトリーの階層構造において、作業ディレクトリーの1つ上のディレクトリーです。

親ディレクトリーの相対パスはドット2つ .. で表し、絶対パスは作業ディレクトリーによって異なります。

例1: 作業ディレクトリーを親ディレクトリー(1つ上のディレクトリー)に変更する

luna7% rm ./hello.c

ホーム・ディレクトリー

Linuxにログインしたときのディレクトリーをホーム・ディレクトリーといいます。

ホーム・ディレクトリーの相対パスはチルダ ~ で表し、絶対パスはユーザーごとに異なります。

例1: 作業ディレクトリーをホーム・ディレクトリーに変更する

luna7% cd ..

ルート・ディレクトリー

ルート・ディレクトリーは、ディレクトリーの階層構造における最上位のディレクトリー、つまり、すべてのファイルやディレクトリーを含むディレクトリーです。

ルート・ディレクトリーの絶対パスはスラッシュ / で表します。

例1: 作業ディレクトリーをルート・ディレクトリーに変更する

luna7% cd ~/basic_c

パス

ファイルまたはディレクトリーを指定するものをパスといい、絶対パスと相対パスの2種類があります。

絶対パス

絶対パスは、ルート・ディレクトリーを基準としてファイルまたはディレクトリーを指定するものです。

対象のファイルまたはディレクトリーが同じであれば、作業ディレクトリに関わらず絶対パスは同じになります。

ルート・ディレクトリーを表すスラッシュ / で始まっているパスは絶対パスです。

例1: 作業ディレクトリーを/usr/local/binに変更する

luna7% cd /

相対パス

相対パスは、作業ディレクトリーを基準としてファイルまたはディレクトリーを指定するものです。

対象のファイルまたはディレクトリーが同じであっても、作業ディレクトリーによって相対パスが異なります。

スラッシュ / で始まっていないパスは相対パスとみなされます。

例1: 作業ディレクトリーにあるディレクトリーbasic_cの中にあるファイルhello.cを削除する

luna7% cd /usr/local/bin

コマンド

cd (change directory)

作業ディレクトリーを変更します。

引数として、変更後の作業ディレクトリーを指定します。

引数を指定しない場合は、変更後の作業ディレクトリーがホーム・ディレクトリーになります。

例1: 作業ディレクトリーをbasic_cに変更する

luna7% rm basic_c/hello.c

例2: 作業ディレクトリーを一つ上のディレクトリーに変更する

luna7% cd basic_c

例3: 作業ディレクトリーをホーム・ディレクトリーに変更する

luna7% cd ..

cp (copy)

指定したファイルまたはディレクトリーを複製します。

第一引数として対象となるファイルまたはディレクトリーの名前、第二引数として複製のファイルまたはディレクトリーの名前指定します。

オプションをつけないときは、ファイルしか複製できません。

Rオプションで、ディレクトリーを中身ごと複製します。

例1: ファイルtest.cを複製してhello.cという名前にする

luna7% cd

例2: ファイルtest.cをディレクトリーbasic_cに複製する(basic_cが存在する場合)

luna7% cp test.c hello.c

例3: ディレクトリーhelloを丸ごとディレクトリーbasic_cに複製する(basic_cが存在する場合)

luna7% cp test.c basic_c

例4: ディレクトリーbasic_cを丸ごと複製してbasic_c_bkupという名前にする(basic_c_bkupが存在しない場合)

luna7% cp -R hello basic_c

exit (exit)

作業を終了して、シェル・プログラムを終了します。

例1: シェル・プログラムを終了する

luna7% cp -R basic_c basic_c_bkup

ls (list)

指定したディレクトリーにあるファイルとディレクトリーのリストを表示します。 このときドット . で始まる名前のファイルは隠しファイル(ディレクトリー)として扱われます。

引数として対象となるディレクトリーを指定します。

引数を指定しない場合は、現在の作業ディレクトリーが対象になります。

aオプションで、名前が . で始まる隠しファイル(ディレクトリー)も全て表示します。

lオプションで、詳細を表示します。

Fオプションで、ディレクトリーの名前の後ろにスラッシュ /、実行可能ファイルの名前の後ろにアスタリスク * を表示します。

例1: 現在の作業ディレクトリーにあるファイルとディレクトリーのリストを表示する(.で始まる名前のファイルは表示されない)

luna7% exit

例2: 現在の作業ディレクトリーにあるすべてのファイルとディレクトリーのリストを表示する

luna7% ls

例3: 現在のディレクトリーにあるファイルとディレクトリーのリストを詳細に表示する(.で始まる名前のファイルは表示されない)

luna7% ls -a

例4: 現在のディレクトリーにあるすべてのファイルとディレクトリーのリストを詳細に表示する

luna7% ls -l

例5: basic_cディレクトリーにあるファイルとディレクトリーのリストを表示する(.で始まる名前のファイルは表示されない)

luna7% ls -al

例6: 現在のディレクトリーにあるファイルとディレクトリーのリストをファイルタイプを表す文字を付けて表示する(.で始まる名前のファイルは表示されない)

luna7% ls basic_c

mkdir (make directory)

ディレクトリーを作成します。

引数として、新しく作成するディレクトリーの名前を指定します。

例1: ディレクトリーbasic_cを新規に作成します。

luna7% ls -F

mv (move)

ファイルまたはディレクトリーを移動、または名前を変更します。

第一引数として対象となるファイルまたはディレクトリーの名前、第二引数として移動後のディレクトリーまたは変更後の名前を指定します。

第二引数が指定されたディレクトリーが存在する場合、第一引数で指定されたファイルまたはディレクトリーをそのディレクトリーの中に移動します。

第二引数で指定されたディレクトリーが存在しない場合、第一引数で指定されたファイルまたはディレクトリーをその名前に変更します。

例1: ファイルtest.cの名前をhello.cに変更する(hello.cが存在しない場合)

luna7% mkdir basic_c

例2: ファイルtest.cをディレクトリーbasic_cの中に移動する(basic_cが存在する場合)

luna7% mv test.c hello.c

pwd (print working directory)

現在の作業ディレクトリーの絶対パスを表示します。

例1: 現在の作業ディレクトリーの絶対パスを表示する

luna7% mv hello.c basic_c/

rm (remove)

指定したファイルまたはディレクトリーを削除します。

オプションをつけないときは、ファイルしか削除できません。

rオプションで、ディレクトリーを中身ごと削除します。

例1: ファイルhello.cを削除する

luna7% pwd

例2: ディレクトリーbasic_cを丸ごと削除する

luna7% rm hello.c

rmdir (remove directory)

指定した空ディレクトリーを削除します。

指定したディレクトリーの中に(名前がドット . で始まる隠しファイルも含めて)ファイルまたはフォルダーが含まれている場合は、削除できません。

例1: ディレクトリーbasic_cを削除する

luna7% rm -r basic_c

コマンド逆引き

  • ディレクトリーを作成する mkdir
  • ディレクトリーを削除する rmdir
  • ファイルを削除する rm
  • ファイルまたはディレクトリをコピーする cp
  • ファイルまたはディレクトリーを移動する mv
  • ファイルまたはディレクトリーの名前を変更する mv
  • 作業ディレクトリーを表示する pwd
  • 作業ディレクトリーを変更する cd
  • 作業ディレクトリーにあるファイルとディレクトリーのリストを表示する ls
  • 作業を終了する exit

Tips

補完

コマンドやファイル名を入力している途中でtabキーを押すと、残りの部分を補完してくれます。

ヒストリー

↑キーを押すと、その前に実行したコマンドが表示されます。

↓キーを押すと、その次の実行したコマンドが表示されます。

ファイルタイプの色

総合情報センターのLinuxサーバーのcshでは、lsコマンドでリストを表示したときに、ファイルの種類によって色がつきます。

  • 黒: 通常のファイル
  • 青: ディレクトリー
  • 緑: 実行可能ファイル
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS