Linuxコマンド入門

はじめに_

チュートリアルとしては上のコマンドから下に向かって順番に実行していくことを想定している。

本ページでのLinux/Unixコマンドの表記方法_

本ページではターミナル上で入力する命令(Linux/Unixコマンド、あるいはコマンドという)をパーセント記号(%)の後ろに表記する。たとえば以下のように表記する。

% Linux/Unixコマンド

Linux/Unixコマンドの一つであるlsを表記する場合は以下のようにあらわす。これはターミナル上でlsという文字列を入力し、そのごEnterキーを押すという意味である。

% ls 

また、必要に応じてLinux/Unixコマンドを実行した際の出力結果も例として示す。出力結果は冒頭にパーセント記号がついていない文字列である。以下の表記例は ls -1 というコマンドを実行した結果としてgotohという文字列が表示されたことを表す。

% ls -1
gotoh

ls: 指定のディレクトリ内のディレクトリ・ファイルの一覧表示_

ディレクトリ内部のファイル一覧を表示する (list).そのまま実行するとカレントディレクトリ内部の一覧,lsコマンドに続いてディレクトリ名を指定するとそのディレクトリ内部のファイル一覧が表示される.また,様々なオプションがある.これについてはmanコマンドで調べることが可能.

% ls  (カレントディレクトリにあるファイルとディレクトリの一覧を表示)
% ls . (上のコマンドと同じ)
% ls ~ユーザ名 (ユーザ名のホームディレクトリのファイルとディレクトリの一覧を表示)
% ls / (ルートディレクトリのファイルとディレクトリの一覧を表示)
% ls -a (カレントディレクトリにあるファイルとディレクトリの全てを表示)
% ls -l(カレントディレクトリにあるファイルとディレクトリを属性付きで表示)
% ls -1 (カレントディレクトリにあるファイルとディレクトリを一列で表示)
% ls -l -a 
% ls -la

pwd: 現在のディレクトリの絶対パスを表示_

パスというのはディレクトリの位置を表す文字列。絶対パスというのはLinuxのファイルシステムの最上位ディレクトリであるルートディレクトリ(/)からの位置を示したものである。 pwdコマンドは、現在のディレクトリ(カレントディレクトリという)の絶対パス表示を行う。

% pwd

cd: ディレクトリ間の移動_

cdコマンドは、ディレクトリ移動 (change directory)を行う.そのまま実行するとホームディレクトリ(Ubuntuを立ち上げた直後のディレクトリ)へ移動する.

% cd (ホームディレクトリへ移動)
% pwd
% cd ~ユーザ名 (ユーザ名のホームディレクトリへ移動)
% pwd
% cd ~/  (ホームディレクトリへ移動)
% pwd
% cd .. (親ディレクトリへ移動)
% pwd
% ls
% cd ..
% pwd
% ls
% cd ..
% pwd (先ほどの結果と同じになる。つまり、ここがルートディレクトリ)
% cd ~自分のログイン名 
% pwd

mkdir: ディレクトリの作成_

% mkdir tmp (ディレクトリtmpの作成)
% ls -d tmp
% ls tmp
% cd tmp
% pwd
% ls

touch: 空のファイルの作成_

空のファイルを作成する。

% ls
% touch newfile.txt
% ls
% ls -l newfile.txt

mv: ディレクトリ・ファイルの移動、ディレクトリ・ファイル名変更_

ファイルやディレクトリを指定ディレクトリに移動 (move).ファイル名の変更も可能.

% ls (カレントディレクトリにあるファイル・ディレクトリの確認)
% mv newfile.txt ahaha (ファイルnewfile.txtをahahaに名前変更)
% ls
% mkdir tmptmp
% ls
% mv tmptmp co-tmp  (ディレクトリtmptmpをco-tmpに名前変更)
% ls
% mv ahaha co-tmp (ファイルahahaをディレクトリco-tmpに名前変更)
% ls
% ls -ld co-tmp
% ls co-tmp
% ls -ld co-tmp/ahaha
% mv co-tmp .. (ディレクトリco-tmpに親ディレクトリに移動)
% ls ..

cp: ディレクトリ・ファイルのコピー_

ファイルやディレクトリを指定ディレクトリにコピーする。オプションをつけることで再帰的にコピー可能

% cp ../co-tmp/ahaha ./ihihi 
(親ディレクトリにあるco-tmpディレクトリ内のahahaをihihiという名前でカレントディレクトリにコピー)
% ls
% cp ../co-tmp . (cpはオプション"-r"なしではディレクトリをコピーできない)
% cp -r ../co-tmp . (親ディレクトリにあるco-tmpディレクトリをカレントディレクトリにコピー)
% ls
% ls co-tmp
% cp -r ../co-tmp co-co-tmp 
(親ディレクトリにあるco-tmpディレクトリをカレントディレクトリにco-co-tmpという名前で再帰的にコピー)
% ls
% ls co-co-tmp
% cp -r ../co-tmp co-co-tmp 
(親ディレクトリにあるco-tmpディレクトリをco-co-tmpディレクトリの中に再帰的にコピー)
% ls
% ls co-co-tmp
% ls co-co-tmp/co-tmp

rm: ファイルの削除_

ファイル削除.様々なオプションがある (remove).

% rm ihihi (ihihiの削除)
% ls
% cp ihihi.org ihihi
% ls
% rm ihihi* (ihihiで始まり、その後、任意の文字列が続くファイル名のファイルを削除)
% ls
% rm co-co-tmp (オプションなしの場合、ディレクトリは消せない)

rm -f: ファイルが含まれているディレクトリを再帰的に削除する_

rmコマンドでディレクトリを削除する場合には-fオプションをつけなければならない。

% cd co-co-tmp
% rm ahaha
% ls
% rm -r co-tmp (再帰的にco-tmpとその中身を削除する)
% ls

rmdir: 空っぽのディレクトリを削除する_

ディレクトリ削除 (remove directory).但し,ディレクトリの中身は空である必要がある.

% touch ohoho
% ls
% cd ..
% ls
% rmdir co-co-tmp (ファイルが中にあると消せない)
% rm co-co-tmp/ohoho
% ls co-co-tmp
% rmdir co-co-tmp

コマンド &:コマンドのバックグラウンドでの実行_

現在実行中のジョブが終了するまで、次のジョブを実行させないようにしてジョブを実行させることをフォアグラウンドで実行させると言い、次のジョブも適宜実行させるようにして、ジョブを実行させることをバックグラウンドで実行させると言う。

ターミナル(コマンドを実行する場所)では、フォアグラウンドでジョブを実行させている場合には、そのジョブが終了するまでターミナルでは入力を受け付けない。いっぽう、バックグラウンドで実行させている場合には、そのターミナルから入力を受け付ける。Unixのコマンドをバックグラウンドで実行させる場合には、コマンドの末尾に&を付ける。

たとえば、以下のようにemacsを起動させるとemacsが終了するまで、ターミナルで入力が受け付けられない。

% emacs

ターミナル上でコマンドを実行してみる(反応しない)。

% ls
% pwd

一度、emacsを終了する。終了した瞬間に入力したコマンドが実行される。

一方で、以下のようにemacsを起動させるとemacsが終了していなくてもターミナルで入力が受け付けられる。

% emacs &

ターミナル上でコマンドを実行してみる(反応する)。

% ls
% pwd

jobs: バックグラウンドで実行中のジョブ(コマンド)を表示する_

今回のチュートリアルではバックグラウンドで実行しているemacsが表示される。

% jobs

fg: バックグラウンドで動いている or 中断中のコマンドをフォワグラウンドで実行_

現在、バックグランドで実行中のジョブをフォアグラウンドで動かすようにしたい場合には、fgコマンドを使う。たとえば、

% emacs &

で実行されているとき、

% fg

を用いると、

% emacs

として、実行しているのと同じになる。

C-z(コントロールキーを押しながらzキーを押す):現在実行しているジョブ(プログラム): フォワグラウンドで動いているコマンドを中断_

以下のようにemacsがフォアグラウンドで実行しているとする。

% emacs

C-z(コントロールキーを押しながらzキーを押す)で、フォアグラウンドで動いているジョブを中断できる。

^Z (C-zの文字表記)
[1]+  停止                  emacs

jobsコマンドで調べてみる。

% jobs

bg: 中断中のコマンドをバックグラウンドで実行_

emacsが中断中であるとする。以下のコマンドを入力する。

% jobs
[1]+  停止                  emacs

% bg
[1]+ emacs &

% jobs
[1]+  実行中               emacs &

C-c(コントロールキーを押しながらcキーを押す):現在実行しているジョブ(プログラム)の強制停止_

プログラムを自作していると、暴走してしまうプログラムを作成してしまうことがある(たとえば、無限ループ)。暴走しているプログラムは強制停止させる必要がある。

フォアグラウンドプログラムを強制終了させるときにはC-c(コントロールキーを押しながらcキーを押す)を用いる。

まず、emacsをフォアグラウンドジョブにする。

% jobs
[1]+  実行中               emacs &

% fg
emacs

C-cを実行するとemacsが強制停止する。

戻る_