CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
こんにちは、吉政創成 菱沼です。
今回も「きれいなPythonプログラミング(マイナビ出版)」という書籍を利用して学習します。
さて、いまは2章の「環境設定とコマンドライン」を学習中です。
前回はPython側からコマンドを実行する方法と、コマンドの便利機能について学びました。今回と次回でコマンドの中でもよく利用するものを学習したいと思います。
ここまででもいくつかコマンドが出てきていたのですが、それ以外にもたくさんコマンドがあるそうなのですが、その中でもよく利用されるというコマンドがあるそうです。
コマンドの基本と、今回学習するコマンドは以下になります。
-----
P. 29
ここに掲載されている以外にもさまざまなコマンドや引数がありますが、これらはコマンドラインを操作する上で最低限必要なものと考えてください。
本節でのコマンドライン引数は、角括弧で囲んで表示します。例えばcd[フォルダー名]は、cdの後に新しいフォルダー名を入力することを意味します。
-----
今回学習する範囲のコマンド。
内容 | Windows | macOS/Linux |
---|---|---|
カレントディレクトリー変更 | cd [フォルダー名] | 同左 |
ディレクトリー内容表示 | dir [フォルダー名] | ls [フォルダー名] |
サブフォルダー内容表示 | dir /s | find . name [] |
ファイル/フォルダーコピー | copy [元ファイル名] [コピー先フォルダー名] | cp [元ファイル名] [コピー先フォルダー名] |
ファイル/フォルダー移動 | move [元ファイル/フォルダー名] [移動先フォルダー名] | mv [元ファイル名/フォルダー名] [移動先フォルダー名] |
ファイル/フォルダー名変更 | ren [ファイル/フォルダー名] [新しい名前] | mv [ファイル/フォルダー名] [新しい名前] |
ファイル/フォルダー削除 | del [ファイル/フォルダー名] | rm [ファイル/フォルダー名] |
各コマンドが影響を及ぼすのはカレントディレクトリー(cwd)に対してとなるそうです。
この後、各項目の詳細を見ていきますが、引用文はオプションなどの上記にない部分のみを略しつつ書いていきます。
また、実行結果も載せていきますが、私の方で今用意できているのがWindows環境のみとなります。macOSとLinuxのコマンドも併せて書いておきますので、ご利用の方はお試しいただければと思います。
試してみたのがこちら。引用で補足します。
-----
P.30
フォルダー名にスペースがある場合は、ダブルクォートで囲んでください。
cwdをユーザーのホームフォルダーに変更するにはmacOSやLinuxではcd ~、Windowsではcd %USERPROFILE%と入力します。
(中略)
cwdの親ディレクトリーに変更したい場合、フォルダー名に..を使用します。
------
ちなみにカレントディレクトリーの二つ上に行きたいなら、[..]だけでなく、[../..]とするとUsersのフォルダーに移動できます。
実行した結果がこちら。
ファイル名だけでなく、最終更新日時やファイルサイズも表示されます。
macOSとLinuxの場合はまた違うコマンドlsになりますが、lsはデフォルトで使用すると、ファイルサイズ、パーミッション、最終更新時刻が表示されないのだとか。表示されるようにするにはオプションを使用するそうです。
-----
P.31
ファイルサイズ、パーミッション、最終更新時刻などの情報も表示するには-lを使用します。macOSやLinuxでは、ピリオドで始まるファイルは設定ファイルとして扱われ、通常のコマンドからは隠されています。非表示のファイルも含めてすべてのファイルを表示させるには-aを使用します。すべてのファイルについて詳細まで表示するには、ls -alのようにスイッチを組み合わせます。
(中略)
------
こうすることで、Windowsで言う[dir]に相当する結果がもたらされるとのこと。
(こちらは先ほどの一覧に乗せていないコマンドです。)
-----
P.32
Windowsでは、dir /sを実行すると、cwdのフォルダーとそのサブフォルダーが表示されます。
(中略)
macOSとLinuxでは、find . -nameコマンドで同じことができます。
第1引数に.を指定すると、cwdから検索を開始します。-nameオプションは、フォルダーやファイル名を名前で検索するように指示します。(中略)なお、findコマンドでは、-nameの後の引数をダブルクォートで囲む必要があります。
------
先ほどdirを実行したフォルダーの中には「py」というフォルダーあります。[dir /s]を実行して、pyフォルダーの中身がどうなっているか確認します。
赤枠で囲んだ部分が該当のディレクトリーの中身です。
pyフォルダーの中に、上の階層にあったshi.txtをコピーします。
ちゃんとコピーして追加されてますね。
macOSとLinuxの場合のコマンドはcpで、引数はWindowsと同じです。
実行してみたのがこちら。memoフォルダーにあったファイルを下のpyフォルダーに移動しました。
macOSとLinuxの場合のコマンドはmvで、引数はWindowsと同じです。mvはファイル名の変更でも利用されるそうです。
shi.txtの名前をsazaeに変えてみます。
macOSとLinuxの場合のコマンドは移動でも使用したmvで、引数は同じです。
ちなみに名前を変えるとき、サザエさんバリのうっかりで拡張子を含むのを忘れました。拡張子がない状態だとただのファイルになってしまうので、ご注意ください。
さて、先ほどコピーしたshi.txt(現・sazae)は失敗してますし、不要なのでサクッと消します。
macOSとLinuxの場合のコマンドはrmで、引数は同じです。
Windowsでdelコマンドを使う時には、削除される範囲に注意が必要なようです。
-----
P.34
Windowsでは、フォルダーに対してdelを実行すると、そのフォルダー内すべてのファイルが削除されますが、サブフォルダーは削除されません。また、delコマンドでは元のフォルダーは削除されないので、rdまたはrmdirコマンドで削除する必要があります。また、del [フォルダー名]を実行しても、ソースフォルダーのサブフォルダー内のファイルは削除されません。del /s /q [フォルダー名]を実行すると、ファイルを削除することができます。
------
ついでに、フォルダーとその内容をすべて削除するには「rd /s /q [フォルダー名]」だそうです。
ではmacOS、Linux向けのrmはどうなのでしょうか。
-----
P.34
rmコマンドを使ってフォルダーを削除することはできません。しかし、rm -r [フォルダー名]を実行すると、フォルダーとその内容をすべて削除することができます。
------
長くなってきましたので、今回は一旦こちらで終了します。
次回もう少しだけよく利用するコマンドを学習します。今回もお付き合いいただきありがとうございました。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes