ターミナル(端末)の基本的な使い方
pythonプログラムを作っていく上ではターミナルを使う機会は避けては通れないかと思います。
基本的な使い方がわかっていると作業の効率化にも繋がり、便利かと思います。
ディレクトリの概念
簡単に言ってしまえば、ディレクトリというのはwindowsなどで言うところのフォルダとほぼ同じ意味です。
まずは話をわかりやすくするためにターミナル上で以下のコマンドを実行してみてください。
$ open .
ファイルマネージャやFinderが開くかと思います。 ディレクトリの概念はターミナルでの操作とファイルマネージャやFinderでの表示を照らし合わせながら見てみるとわかりやすいかと思います。
lsコマンド(list)
今度は以下を実行してみてください。
$ ls
その結果をファイルマネージャやFinderと照らし合わせてみると、ファイルやフォルダの名前が表示されていることが分かるかと思います。
lsコマンドはそのディレクトリにあるファイルをリストアップして表示するというコマンドです。
mkdirコマンド(make directory)
以下を実行してみてください。
$ mkdir test
lsもしてみましょう。
$ ls
結果を見れば、testというフォルダ(ディレクトリ)が作られたことがわかります。
mkdirはディレクトリを作るためのコマンドで、
$ mkdir x
という構文でxというディレクトリを作成します。
cdコマンド(change directory)
testというディレクトリが作成された状態で以下を実行してみてください。
$ cd test
lsしてみましょう。
$ ls
何も表示されなくなったかと思います。
cdコマンドは自分がいるディレクトリを変更するコマンドで、ここではtestディレクトリの中に入りました。testディレクトリではまだ何も作成されていなかったため、lsをしてもなにも表示されなかったわけです。
今度は以下を実行してください。”.(ドット)”2つです。
$ cd ..
次にlsもします。
$ ls
最初のディレクトリに戻ってきました。
“..”というのはUNIXのファイルシステムで1つ上の階層の場所を指します。
rmコマンド(remove), rmdirコマンド(remove directory)
次はこんな風にしてみましょう。
$ mkdir test/test2
”/(スラッシュ)”はディレクトリの階層構造を示す記号です。この場合には、”今いる場所にあるtestというディレクトリの下に、test2というディレクトリをつくる”という意味になります。
lsコマンドは次のような使い方もできます。
$ ls test
このようにすれば”今いる場所にあるtestというディレクトリの中にあるファイルやディレクトリを一覧表示する”という意味になります。
上の方でやっていたようにlsの後に何も指定しなければ”今いる場所にあるファイルやディレクトリを一覧表示する”という意味になります。
testディレクトリはもう不要なので削除します。
rmコマンドはファイルを、rmdirコマンドはディレクトリを削除するためのコマンドです。
これらのコマンドは普段使っているwindowsのエクスプローラやMacのFinderとは違い、一旦ゴミ箱を経由したりせずにコンピュータからファイルやディレクトリを消去するというコマンドであることには注意が必要です。
そのためこのコマンドを使って削除したファイルは復元できません。
話を戻すと、これからtestディレクトリを削除したいわけですが、実は以下のようにしても削除できません。
$ rmdir test
返ってくるエラー文を読めばわかりますが、rmdirコマンドはディレクトリの中身が空でないと実行できないのです。
testディレクトリを削除するには2通りの方法が考えられます。
- 1.test2ディレクトリを削除してからtestディレクトリを削除する
紹介したコマンドの使い方に則ればこの方法でtestディレクトリを削除できます。空でないと削除できないのなら空にしてしまえばいいわけです。
$ rmdir test/test2
$ rmdir test
- 2.rm -rfコマンドを使う
コマンドにはそれぞれのコマンドに固有のオプションというものをつけることでその振る舞いを制御できる機能があります。
ここで紹介するのはrmコマンドのオプションとして-r,-fを指定する方法です。
-rオプションはディレクトリ以下を再帰的に削除するためのオプションです。ここでいう再帰的とはディレクトリの下にさらにディレクトリがあるのならばそのディレクトリも、その下にもディレクトリがあれば…といった具合に削除していくという意味です。 -fオプションは強制的に削除するというコマンドです。ディレクトリを再帰的に削除する場合には通常警告メッセージがその都度表示され、ディレクトリがその下にディレクトリを含んでいれば含んでいるほどたくさんのメッセージが表示されます。
-fオプションではこの表示をさせないためのものです。
これを実行するには以下のようにやります。
$ rm -rf test
ディレクトリごと削除をするのには通常こちらを用います。