Linux のターミナル¶
Linux のターミナル操作に慣れるようにします.
ターミナルの起動¶
ターミナルを開くには下記のアイコンをクリックします.

2つ目のターミナルを次のいずれかの方法で開きます.
- ターミナル上で右クリックして "Open Terminal" を選択する.
- "File" メニューから "Open Terminal" を選択する.
ターミナルウィンドウが選択されているときに "Ctrl+Shift+T" を押すと, 同じウィンドウ内に2つ目のターミナルが開きます.
2つ目のターミナルのタブを次のいずれかの方法で閉じてください.
- ターミナルタブにある小さな 'x' をクリックする. (メインのターミナルウィンドウの 'x' ではありません)
exitとタイプして Enter を押す.
ウィンドウは次のような1行が表示されています.
ros-industrial@ros-i-kinetic-vm:~$これは「プロンプト」と呼ばれるものでコマンドを入力する場所です. このプロンプトにはデフォルトでは3つの情報が表示されています.
- ros-industrial は現在のユーザのログイン名です.
- ros-i-kinetic-vm はコンピュータのホスト名です.
- ~ は現在のターミナルがいるディレクトリです.(後で詳述)
exitを入力するか ウィンドウタイトルバーにある赤い 'x' をクリックして ターミナルウィンドウを閉じます.
ディレクトリの移動とファイルのリスト表示¶
環境の準備¶
- ファイルブラウザでホームフォルダを開いてください.
- 前の演習で作成した
ex0.3フォルダを ダブルクリックしてください.- このフォルダを利用してターミナルの さまざまなファイル操作を説明します.
- 現在のディレクトリでターミナルを開くために, ファイルブラウザのメインウィンドウで右クリックして "Open in Terminal" を選択してください.
- ターミナルウィンドウで次のコマンドを入力して
この後の演習で使ういくつかのサンプルファイルを作成します.
cp -a ~/industrial_training/exercises/0.3/. .
ls コマンド¶
- ターミナルで
lsと入力してください.test.txtとnewがリスト表示されるはずです. (newが表示されない場合は 前回の演習 を完遂してください.)newのようなディレクトリは青色になっています.- ファイル
sample_jobは緑色になっています. これは「実行」のためのビットセットを有しているという印で, コマンドとして実行可能であることを意味しています.
ls *.txtと入力してください.test.txtだけが表示されるはずです.ls -lとターミナルに入力してください.-lオプションを追加すると,1行に1つのエントリが表示され, ディレクトリ内の各エントリに関する追加情報が表示されます.- 最初の10文字はファイルの種類とアクセス許可を示します.
- エントリがディレクトリの場合,最初の文字は
dです. - 次の9文字はファイルのパーミション(許可)ビットです.
- 3番目と4番目のフィールドはそれぞれ所有するユーザーとグループです.
- 2番目から最後までのフィールドは、ファイルが最後に更新された時刻です.
- ファイルがシンボリックリンクの場合, リンクのファイル名の後ろにリンクのターゲットファイルがリストされます.
ls -aとターミナルに入力してください.- ここでは隠しファイルが1つ追加で表示されます.
ls -a -lもしくはls -alとコマンド入力してください.- これで
hidden_link.txtファイルが.hidden_text_file.txtを指していることがわかります.
- これで
pwd と cd コマンド¶
pwdとターミナルに入力してください.- 現在の作業ディレクトリの完全なパスを表示します.
cd newとターミナルに入力してください.- プロンプトが変わって
ros-industrial@ros-i-kinetic-vm:~/ex0.3/new$と表示されるはずです. - ここで
pwdを入力すると/home/ros-industrial/ex0.3/newディレクトリにいることを表示します.
- プロンプトが変わって
cd ..とターミナルに入力してください.- 前の演習 で
..が親フォルダであることを示しました. - プロンプトは現在の作業ディレクトリが
/home/ros-industrial/ex0.3であることを示すはずです.
- 前の演習 で
cd /binと入力してからlsを実行してください.- このフォルダには
最も基本的な Linux コマンドのリストが含まれています.
pwdとlsはこのフォルダにあります.
- このフォルダには
最も基本的な Linux コマンドのリストが含まれています.
cd ~/ex0.3と入力して 本演習の作業ディレクトリに戻ります.- Linux では
~文字を ホームディレクトリの省略表現として使用します. - コマンドラインのコマンドで ファイルとパスを参照する便利な方法です.
- 本演習で沢山この
~を入力しますので是非憶えてください.
- Linux では
本節のコマンドの全オプションを知りたい場合は,
コマンドラインに man <command> と入力します.
( <command> は欲しい情報があるコマンド名です.)
これによりコマンドの組込みドキュメントが表示されます.
スクロールするには矢印と Page Up/Down キーを使い,
終了するには q を使います.
ファイルの変更¶
mv コマンド¶
mv test.txt test2.txtと入力してからlsを行ってください.test2.txtにファイル名が変更されているはずです.
ここではmvでファイル名を変更する方法を見ました.
mv test2.txt newと入力してからlsを行ってください.- ファイルがフォルダ内にないことがわかると思います.
cd newと入力してからlsを行ってください.- フォルダ内にファイル
test2.txtがあるはずです.
ここではmvでファイルを移動する方法を見ました.
- フォルダ内にファイル
mv test2.txt ../test.txtと入力してからlsを行ってください.test2.txtはそこにはないはずです.
cd ..と入力してからlsを行ってください.test.txtが再び表示されているはずです.
ここではmvで ファイル名の変更と移動を同時に行う方法を見ました.
cp コマンド¶
cp test.txt new/test2.txtと入力してからls newを行ってください.test2.txtがnewフォルダ内にあるはずです.
cp test.txt "test copy.txt"と入力してからls -lを行ってください.test.txtがtest copy.txtに コピーされているはずです.
引用符"はスペースや特殊文字が ファイル名に含まれる場合に必要となります.
rm コマンド¶
rm "test copy.txt"を入力してからls -lを行ってください.test copy.txtが無くなっているはずです.
mkdir コマンド¶
mkdir new2を入力してからlsを行ってください.new2というフォルダができているはずです.
-i フラグを cp や mv および rm コマンドとともに使用すると,
ファイルの上書きまたは削除を行うときに注意喚起されます.
ジョブの管理¶
ジョブの停止¶
./sample_jobを実行してください.- プログラムが開始します.
- Control+C を押してください.
- プログラムから抜けます.
./sample_job sigtermを実行してください.- プログラムが開始します.
- Control+C を押してください.
- 今回はプログラムは停止しません.
制御不能ジョブの停止¶
- 新たにターミナルのウィンドウを開きます.
ps axと入力してください.- ターミナルをスクロールアップして
python ./sample_job sigtermを見つけてください.- これは先程の1つ目のウィンドウで実行したジョブです.
- テーブルの最初のフィールドはプロセス ID です.
(
man psで他のフィールドについても学習してください.)
ps ax | grep sampleと入力してください.- より少ない行が表示されているはずです.
- これは特定のプロセスを見つけたい場合に便利です.
- 注: これはパイピングという応用技術で, あるプログラムの出力が次のプログラムの入力に渡されます. これは本演習の目的の範囲を超えていますが, ターミナルをより広範に使用するようでしたら便利な機能です.
kill <id>と入力してください.<id>はps axで調べたジョブ番号です.- 1つ目のターミナルで
./sample_job sigterm sigkillと入力してください.- プログラムが開始されます.
- 2つ目のターミナルでプロセス ID を得るために
ps ax | grep sampleと入力してください. kill <id>と入力してください.- 今回はプロセスが終了しません.
kill -SIGKILL <id>と入力してください.- 今回はプロセスが終了するはずです.
プロセスとメモリの使用状況の表示¶
- ターミナルで
topと入力してください.- テーブルが表示され,1秒につき1回更新されます. システムの全プロセスと 全体の CPU と メモリの使用状況が表示されます.
- Shift+P キーを押してください.
- これは CPU の利用割合の順番で並び替えを行います.
どのプロセスが最も CPU を使用しているかを判断するのに利用できます.
- これは CPU の利用割合の順番で並び替えを行います.
- Shift+M キーを押してください.
- これはメモリの利用割合の順番で並び替えを行います.
どのプロセスが最もメモリを使用しているかを判断するのに利用できます.
- これはメモリの利用割合の順番で並び替えを行います.
- q か Ctrl+C でプログラムを終了します.
テキストの編集とその他の GUI コマンド¶
gedit test.txtと入力してください.- 新しくテキストエディタのウィンドウが開いて
test.txtが読み込まれます. - ウィンドウを閉じるまで ターミナルのプロンプトは戻ってきません.
- 新しくテキストエディタのウィンドウが開いて
- プロンプトが戻ってくるようにする方法は
2つありますので両方とも試してみてください.
- プログラム開始と同時にプロンプトを回復させる:
gedit test.txt &と入力してください.&の文字はコマンドの実行を バックグラウンドで行うことをターミナルに指定します. つまりプロンプトがすぐに戻ってくることを意味します.
- gedit ウィンドウを閉じて,
ターミナルで
lsと入力してください.- ターミナルにはファイルリストが表示されるだけでなく
geditが完了したことも通知されます.
- ターミナルにはファイルリストが表示されるだけでなく
- 既に開始しているプログラムをバックグラウンド実行に変更する:
gedit test.txtと入力してください.- ウィンドウが開いてターミナルでは プロンプトが待機状態にはなっていないはずです.
- ターミナルのウィンドウ内で Ctrl+Z を押してください.
- ターミナルには
geditが終了した旨が表示されて, プロンプトが現れます.
- ターミナルには
geditウィンドウを使ってみてください.- 一時停止状態のためウィンドウは動作しません.
- ターミナルで
bgと入力してください.geditウィンドウは動作をします.
- gedit ウィンドウを閉じて,
ターミナルで
lsと入力してください.- 前と同じようにターミナルには
geditが完了したことが通知されます.
- 前と同じようにターミナルには
ルートとしてのコマンド実行¶
- ターミナルで
ls -a /rootと入力してください.- 端末は
/rootフォルダを読むことができないことを示します. - 普通のユーザーとしては実行できないコマンド を実行する必要がある場合が多くあり, その時は「スーパーユーザー」として コマンドを実行する必要があります.
- 端末は
- 前のコマンドを root として実行するには,
コマンドの先頭に
sudoを追加します.- この場合
sudo ls -a /rootと入力してください. - 実行において端末はパスワードを要求します.
(本例では
rosindustrial) - パスワードを入力すると,
/rootディレクトリの内容が表示されます.
- この場合
警告:sudoは
実行に際して指示の健全性のチェックを行わない
強力なツールですので
使用する際に 特に注意 してください.