Perlゼミ

Strawberry PerlとコマンドプロンプトでLinux風環境を作る方法

Strawberry PerlとコマンドプロンプトでLinux風の環境を作る方法を紹介します。

Perlエンジニアは、開発やサーバー運用をするときは、Linux/Unix環境で作業をしていることが多いです。

Linux用に作ったプログラムをWindowsで試験をしたいといった場合に、実行するコマンドがLinuxとなるべく近いとやりやすいですね。

コマンドプロンプトでもLinuxと同じ感覚で作業ができる方法を紹介します。

Linux環境とコマンドプロンプトで同じ方法で作業ができること

先にLinux環境とコマンドプロンプトで、同じ方法で作業ができることはなんでしょうか? 2020年1月に、以下は、Windows 10の環境で確認した項目です。

cdコマンド

Linuxのcdコマンドは、コマンドプロンプトにも、cdコマンドとして存在します。

ファイルパスの区切りは「/」でOK

Windowsのファイルパスの区切りは「\」ですが、実は「/」を使うこともできます。コマンドプロンプトのcdコマンドで、「/」を使った例です。

cd labo/perlzemi

gccはStrawberry Perlがインストールされていれば使える

PerlのXSモジュールをインストールするのに必要な、C言語のコンパイラであるgccは、Strawberry Perlがインストールされていれば最初から使うことができます。

gcc --help

コマンドプロンプトを閉じる

コマンドプロンプトを閉じる場合は、Linuxのexitコマンドと同じコマンドがコマンドプロンプトにも存在します。

exit

右クリックで、コピーと張り付け

コマンドプロンプトの設定で、簡易編集モードにチェックをいれると、右クリックとで、コピーと貼り付けができます。

コマンドプロンプトのコピー&ペーストを簡単に−右クリック

&&によるコマンドの連続実行

コマンドプロンプトでも&&は、Linuxと同じように使えます。

command1 && command2

リダイレクトとパイプ

Linuxのリダイレクトとパイプは、コマンドプロンプトでも利用できます。

command > file.txt
command < file.txt
command1 | command2

コマンドプロンプトには、存在しないLinuxコマンド

次は、コマンドプロンプトには、存在しないLinuxコマンドです。存在しないのであれば、作ってしまいましょう。

Strawberry Perlがインストールされていれば、次のパスが、コマンドの検索パスに含まれているはずです。

C:\Strawberry\perl\site\bin

これは、ユーザーがインストールした実行ファイルやバッチファイルが格納される場所です。

このパスの中に、存在しないコマンドを書いてみましょう。

lsコマンドの作成

Linuxのlsコマンドに該当するコマンドを作成しましょう。

拡張子を「.bat」にするとWindowsは、それはコマンドとして認識します。

Strawberry Perlのコマンドの検索パスの中に「ls.bat」というファイルを作成してください。

以下の内容を書き込みます。これでlsコマンドでdirコマンドを呼び出します。

dir

コマンドプロンプトで以下のコマンドを実行できるようになります。

ls

makeコマンドの作成

gmakeというコマンドは、Strawberry Perlがインストールされていれば最初から使うことができます。

ですので、これをラッピングしてmakeコマンドを作成してみましょう。

Strawberry Perlのコマンドの検索パスの中に「make.bat」というファイルを作成してください。

以下の内容を書き込みます。これでmakeコマンドでgmakeコマンドを呼び出します。

gmake %1

%1は、コマンドライン引数です。これを指定しておくと「make test」のように、makeコマンドに引数を与えることができます。

コマンドプロンプトで以下のコマンドを実行できるようになります。

make

その他のLinuxコマンド

必要になればcatコマンドrmコマンドなども、同じ方法で、簡単につくれそうですね。

Linux風環境を試す

さぁ、Linuxのあれをやってみましょう。例のあれです。

cd proj/MyModule
perl Makefile.PL
make && make test

いいですね!

よくある質問

よくある質問です。

DOSKEYで、エイリアスを使えばよいのでは?

はい、これは試しました。ですが、&&を実行するときは、コマンドプロンプトは新しいプロセスを実行します。実はこのとき環境を受け継いでくれず、エイリアスが効かなくなります。

パワーシェルではだめなのですか?

パワーシェルは、コマンドプロンプトの改良というよりは、Windowsの運用をやりやすい用に設計されているように感じます。

リダイレクトやパイプは、.netに接続されて、加工された情報が出力されます。

リダイレクトやパイプを使って、プログラムの動作を確認したい場合は、そのままの情報が出力される、コマンドプロンプトが優れていると感じます。

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ、Perlで元気。
ゆとりあるITエンジニアライフのために
Perl情報を前向きに発信中!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!