よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

これは便利だわぁ。コマンド超入門(windows)

最初の疑問「 pythonからコマンドを実行するにはどうすれば良いの?」

初学者は、何が分からないのか分かっていないのかが分からない。

一撃必殺!コマンド恐るべし

ある日わたくしはandroidアプリのtermuxをいじっていました。
地獄の番人から「curlが便利だからインストールしたまえ、ひっひっひ」と耳元で囁かれ、よくわからんままに

$ apt install curl

curlをインストールしました。そしてコマンドcurlした。


ミスター「へい、カール」

$ curl

なんと……pythonのwebスクレイピングで何行か書いていることが、たったの4文字一撃でできるではないか!
ターミナルにワチャワチャとhtmlソースコードが出てくる。

なんなんだこれは…恐るべし地獄の住人.....



迷える子羊「そんじゃ、この出力されたhtmlコードをファイルに保存できないの?」
地獄の番人「それならこう書けば良いのだ。グヘヘヘ」

$ curl > 保存先ファイル名 

なんと、またもや一撃。
たった何文字か書くだけで、 ズラズラっと表示されたものが一瞬でファイルに書き込まれている。
テキストエディタを立ち上げてすらいない。
プログラムコードっぽいものを長々と書いてもいない。




なになに、termuxでcatコマンドを使えば一撃でtextファイルの中身が読める?
試してみる。

$ cat ファイル名.txt

ターミナルにワチャワチャとテキスト内容が出てくる。

おぉ.....


これは便利だと思い、記事を投稿することで更なる地獄に深入りせざるを得なくなるいきさつはこれぐらいに本題へ。


目次

Windowsの簡単なコマンド実験

Windowsの「ファイル名を指定して実行」からのコマンド

キーボードの「Windowsキー」と「R」キーを一緒に押しますと次の画面が出てきます。

f:id:chayarokurokuro:20190521044729p:plain
ファイル名を指定して実行


ここに「notepad」と書けば「メモ帳」が立ち上がります。
[cmd」と書けば「コマンドプロンプト」が、
pythonを入れている人は「python」と書けば「python」が


f:id:chayarokurokuro:20190521055628j:plain


GoogleChromeを入れてる人は「chrome」と書けば「chrome」が、立ち上がると思います。


ソフトウェアの名前を思いつく限り地獄の底まで打ち込みます。

起動せず警告が出るものがあると思います。


f:id:chayarokurokuro:20190521055357j:plain


パスが通ってないとかコンピュータがキーワードを認識できないとそうなる。

「雨漏りしてっから大工の佐吉を呼んでこい」
「腕の良い佐吉だよばかやろう、知らねーのか」


と言われても、大江戸八百八町、どこの佐吉が分からない状態です。
たぶん八丁堀の佐吉だと思う。八丁堀って何処か知らんけど……

メモ帳の本名「notepad.exe」が何処の町の大工かを登録するのが、「パスを通す」「環境変数を追加する」という作業。


寒いパスはスルーに限る。


コマンドプロンプトからコマンド

Windowsキー で白いのが出たらそのまま「cmd」と入力か、Windowsキーワード+ Rキー で「cmd」と打つか、Windowsキー+Xキー→Cか、マウスで選ぶか、楽そうな方法でコマンドプロンプト起動。

今度はそこからコマンドを打ってみます。

notepad


f:id:chayarokurokuro:20190521053754j:plain

メモ帳はもういいか。他のコマンドらしいものを。

カレントディレクトリと、その中身を表示する
dir 


f:id:chayarokurokuro:20190521053411j:plain
なんかズラリと出てくる。

cd (change directory)コマンド 作業場を移動する
cd パス名

絶対パス相対パスやスルーパスなど、意外とどう書けばよいか難しい。説明はパスで。


echo いわゆるひとつのprint文


f:id:chayarokurokuro:20190521060028j:plain

プログラミング初心者が最初に習う Hello World

標準出力されたものをファイルに書き出す

上の方で紹介した、Linuxコマンドcurlの標準出力をファイルに書き込む方法と同じです。

echo ハナモゲラ > hanamogera.txt

と書けば、その標準出力「ハナモゲラ」がhanamogera.txtに書き込まれる。

メモ帳で開いてみると
f:id:chayarokurokuro:20190521063053j:plain


保存先はカレントディレクトリ(現在の作業場)と同じフォルダに、新規作成される。
既にhanamogera.txtが存在していた場合は上書き保存。

type テキストファイルの読み込み

これも上で紹介したLinuxコマンドcatWindows版。
読むだけならメモ帳などを開く面倒がこれで省ける。
書き込まれたhanamogera.txtを読むと

f:id:chayarokurokuro:20190521062832j:plain

「>>」と書けば追記

追記して、typeコマンドで読んだ
f:id:chayarokurokuro:20190521062930j:plain

コマンドを「&」で繋ぐ
コマンド1
コマンド2

と1の実行後に続けて2を書かずに、 & で繋いで一行で書ける。

コマンド1 & コマンド2


追記 & メモ帳で読む

f:id:chayarokurokuro:20190521063858j:plain


「>」があれば「<」もある。その他にも「;」「&&」や「 | 」で繋ぐとかバッチファイルを呼び出すとか、コマンドの種類も豊富。


感想

上の例をやってみるだけでもかなり便利だし、使い倒す地獄のコマンド使いパネーんですね。
コマンド操作は実行命令をコンピュータへ速やかに伝令したいが為に簡潔な書き方や操作ができる工夫がなされているというが、一方で問題は命令を下す側の能力が問われるということでしょうか。コマンドを覚えなければどうしようもないので。


Pythonからコマンド

import os
os.system("コマンド名")

Linuxコマンドだといきなりコマンド名を書いたら動きましたけど、Windowsだとcmdを最初に書いて繋げないと動かなかった。

他にもsubprocessとかモジュールがあるようで。


((((ヽ(;^^)/