Linux のターミナル

Linux のターミナル操作に慣れるようにします.

ターミナルの起動

  1. ターミナルを開くには下記のアイコンをクリックします.

  2. 2つ目のターミナルを次のいずれかの方法で開きます.

    • ターミナル上で右クリックして "Open Terminal" を選択する.
    • "File" メニューから "Open Terminal" を選択する.
  3. ターミナルウィンドウが選択されているときに "Ctrl+Shift+T" を押すと, 同じウィンドウ内に2つ目のターミナルが開きます.

  4. 2つ目のターミナルのタブを次のいずれかの方法で閉じてください.

    • ターミナルタブにある小さな 'x' をクリックする. (メインのターミナルウィンドウの 'x' ではありません)
    • exit とタイプして Enter を押す.
  5. ウィンドウは次のような1行が表示されています.

    ros-industrial@ros-i-kinetic-vm:~$

  6. これは「プロンプト」と呼ばれるものでコマンドを入力する場所です. このプロンプトにはデフォルトでは3つの情報が表示されています.

    1. ros-industrial は現在のユーザのログイン名です.
    2. ros-i-kinetic-vm はコンピュータのホスト名です.
    3. ~ は現在のターミナルがいるディレクトリです.(後で詳述)
  7. exit を入力するか ウィンドウタイトルバーにある赤い 'x' をクリックして ターミナルウィンドウを閉じます.

ディレクトリの移動とファイルのリスト表示

環境の準備

  1. ファイルブラウザでホームフォルダを開いてください.
  2. 前の演習で作成した ex0.3 フォルダを ダブルクリックしてください.
    • このフォルダを利用してターミナルの さまざまなファイル操作を説明します.
  3. 現在のディレクトリでターミナルを開くために, ファイルブラウザのメインウィンドウで右クリックして "Open in Terminal" を選択してください.
  4. ターミナルウィンドウで次のコマンドを入力して この後の演習で使ういくつかのサンプルファイルを作成します.
    • cp -a ~/industrial_training/exercises/0.3/. .

ls コマンド

  1. ターミナルで ls と入力してください.
    • test.txtnew がリスト表示されるはずです. ( new が表示されない場合は 前回の演習 を完遂してください.)
    • new のようなディレクトリは青色になっています.
    • ファイル sample_job は緑色になっています. これは「実行」のためのビットセットを有しているという印で, コマンドとして実行可能であることを意味しています.
  2. ls *.txt と入力してください. test.txt だけが表示されるはずです.
  3. ls -l とターミナルに入力してください.
    • -lオプションを追加すると,1行に1つのエントリが表示され, ディレクトリ内の各エントリに関する追加情報が表示されます.
    • 最初の10文字はファイルの種類とアクセス許可を示します.
    • エントリがディレクトリの場合,最初の文字は d です.
    • 次の9文字はファイルのパーミション(許可)ビットです.
    • 3番目と4番目のフィールドはそれぞれ所有するユーザーとグループです.
    • 2番目から最後までのフィールドは、ファイルが最後に更新された時刻です.
    • ファイルがシンボリックリンクの場合, リンクのファイル名の後ろにリンクのターゲットファイルがリストされます.
  4. ls -a とターミナルに入力してください.
    • ここでは隠しファイルが1つ追加で表示されます.
  5. ls -a -l もしくは ls -al とコマンド入力してください.
    • これで hidden_link.txt ファイルが .hidden_text_file.txt を指していることがわかります.

pwdcd コマンド

  1. pwd とターミナルに入力してください.
    • 現在の作業ディレクトリの完全なパスを表示します.
  2. cd new とターミナルに入力してください.
    • プロンプトが変わって ros-industrial@ros-i-kinetic-vm:~/ex0.3/new$ と表示されるはずです.
    • ここで pwd を入力すると /home/ros-industrial/ex0.3/new ディレクトリにいることを表示します.
  3. cd .. とターミナルに入力してください.
    • 前の演習.. が親フォルダであることを示しました.
    • プロンプトは現在の作業ディレクトリが /home/ros-industrial/ex0.3 であることを示すはずです.
  4. cd /bin と入力してから ls を実行してください.
    • このフォルダには 最も基本的な Linux コマンドのリストが含まれています.
      • pwdls はこのフォルダにあります.
  5. cd ~/ex0.3 と入力して 本演習の作業ディレクトリに戻ります.
    • Linux では ~ 文字を ホームディレクトリの省略表現として使用します.
    • コマンドラインのコマンドで ファイルとパスを参照する便利な方法です.
    • 本演習で沢山この ~ を入力しますので是非憶えてください.

本節のコマンドの全オプションを知りたい場合は, コマンドラインに man <command> と入力します. ( <command> は欲しい情報があるコマンド名です.) これによりコマンドの組込みドキュメントが表示されます. スクロールするには矢印と Page Up/Down キーを使い, 終了するには q を使います.

ファイルの変更

mv コマンド

  1. mv test.txt test2.txt と入力してから ls を行ってください.
    • test2.txt にファイル名が変更されているはずです.
      ここでは mv でファイル名を変更する方法を見ました.
  2. mv test2.txt new と入力してから ls を行ってください.
    • ファイルがフォルダ内にないことがわかると思います.
  3. cd new と入力してから ls を行ってください.
    • フォルダ内にファイル test2.txt があるはずです.
      ここでは mv でファイルを移動する方法を見ました.
  4. mv test2.txt ../test.txt と入力してから ls を行ってください.
    • test2.txt はそこにはないはずです.
  5. cd .. と入力してから ls を行ってください.
    • test.txt が再び表示されているはずです.
      ここでは mv で ファイル名の変更と移動を同時に行う方法を見ました.

cp コマンド

  1. cp test.txt new/test2.txt と入力してから ls new を行ってください.
    • test2.txtnew フォルダ内にあるはずです.
  2. cp test.txt "test copy.txt" と入力してから ls -l を行ってください.
    • test.txttest copy.txt に コピーされているはずです.
      引用符 " はスペースや特殊文字が ファイル名に含まれる場合に必要となります.

rm コマンド

  1. rm "test copy.txt" を入力してから ls -l を行ってください.
    • test copy.txt が無くなっているはずです.

mkdir コマンド

  1. mkdir new2 を入力してから ls を行ってください.
    • new2 というフォルダができているはずです.

-i フラグを cpmv および rm コマンドとともに使用すると, ファイルの上書きまたは削除を行うときに注意喚起されます.

ジョブの管理

ジョブの停止

  1. ./sample_job を実行してください.
    • プログラムが開始します.
  2. Control+C を押してください.
    • プログラムから抜けます.
  3. ./sample_job sigterm を実行してください.
    • プログラムが開始します.
  4. Control+C を押してください.
    • 今回はプログラムは停止しません.

制御不能ジョブの停止

  1. 新たにターミナルのウィンドウを開きます.
  2. ps ax と入力してください.
  3. ターミナルをスクロールアップして python ./sample_job sigterm を見つけてください.
    • これは先程の1つ目のウィンドウで実行したジョブです.
    • テーブルの最初のフィールドはプロセス ID です. ( man ps で他のフィールドについても学習してください.)
  4. ps ax | grep sample と入力してください.
    • より少ない行が表示されているはずです.
    • これは特定のプロセスを見つけたい場合に便利です.
    • 注: これはパイピングという応用技術で, あるプログラムの出力が次のプログラムの入力に渡されます. これは本演習の目的の範囲を超えていますが, ターミナルをより広範に使用するようでしたら便利な機能です.
  5. kill <id> と入力してください. <id>ps ax で調べたジョブ番号です.
  6. 1つ目のターミナルで ./sample_job sigterm sigkill と入力してください.
    • プログラムが開始されます.
  7. 2つ目のターミナルでプロセス ID を得るために ps ax | grep sample と入力してください.
  8. kill <id> と入力してください.
    • 今回はプロセスが終了しません.
  9. kill -SIGKILL <id> と入力してください.
    • 今回はプロセスが終了するはずです.

プロセスとメモリの使用状況の表示

  1. ターミナルで top と入力してください.
    • テーブルが表示され,1秒につき1回更新されます. システムの全プロセスと 全体の CPU と メモリの使用状況が表示されます.
  2. Shift+P キーを押してください.
    • これは CPU の利用割合の順番で並び替えを行います.
      どのプロセスが最も CPU を使用しているかを判断するのに利用できます.
  3. Shift+M キーを押してください.
    • これはメモリの利用割合の順番で並び替えを行います.
      どのプロセスが最もメモリを使用しているかを判断するのに利用できます.
  4. q か Ctrl+C でプログラムを終了します.

テキストの編集とその他の GUI コマンド

  1. gedit test.txt と入力してください.
    • 新しくテキストエディタのウィンドウが開いて test.txt が読み込まれます.
    • ウィンドウを閉じるまで ターミナルのプロンプトは戻ってきません.
  2. プロンプトが戻ってくるようにする方法は 2つありますので両方とも試してみてください.
    1. プログラム開始と同時にプロンプトを回復させる:
    2. gedit test.txt & と入力してください.
      • & の文字はコマンドの実行を バックグラウンドで行うことをターミナルに指定します. つまりプロンプトがすぐに戻ってくることを意味します.
    3. gedit ウィンドウを閉じて, ターミナルで ls と入力してください.
      • ターミナルにはファイルリストが表示されるだけでなく gedit が完了したことも通知されます.
    4. 既に開始しているプログラムをバックグラウンド実行に変更する:
    5. gedit test.txt と入力してください.
      • ウィンドウが開いてターミナルでは プロンプトが待機状態にはなっていないはずです.
    6. ターミナルのウィンドウ内で Ctrl+Z を押してください.
      • ターミナルには gedit が終了した旨が表示されて, プロンプトが現れます.
    7. gedit ウィンドウを使ってみてください.
      • 一時停止状態のためウィンドウは動作しません.
    8. ターミナルで bg と入力してください.
      • gedit ウィンドウは動作をします.
    9. gedit ウィンドウを閉じて, ターミナルで ls と入力してください.
      • 前と同じようにターミナルには gedit が完了したことが通知されます.

ルートとしてのコマンド実行

  1. ターミナルで ls -a /root と入力してください.
    • 端末は /root フォルダを読むことができないことを示します.
    • 普通のユーザーとしては実行できないコマンド を実行する必要がある場合が多くあり, その時は「スーパーユーザー」として コマンドを実行する必要があります.
  2. 前のコマンドを root として実行するには, コマンドの先頭に sudo を追加します.
    • この場合 sudo ls -a /root と入力してください.
    • 実行において端末はパスワードを要求します. (本例では rosindustrial
    • パスワードを入力すると, /root ディレクトリの内容が表示されます.

警告:sudoは 実行に際して指示の健全性のチェックを行わない 強力なツールですので 使用する際に 特に注意 してください.