はい。一度理解すれば、Linux でのスクリプティングは、 Windows に比べて楽しいものであることがわかるでしょう。(恐ろしい) コマンド プロンプトと (それほど恐ろしいものではない) PowerShell の違いを想像してみてください。その違いを 10 倍すると、Linux でスクリプトを作成する方がはるかに優れています。
コマンド プロセッサ (Windows コマンド プロンプトに相当) が「シェル」と呼ばれるため、この用語は「シェル スクリプト」です。生活をもう少し充実させるために、Linux で利用できるさまざまなシェルがあります。最も一般的なのは、やsh
などのバリアントです。ただし、一部のクレイジーな人はor or other を使用しますが、これらは面倒なほど異なる構文を持っています。bash
ash
csh
tcsh
スクリプトの作成
「シェル スクリプト」、つまりバッチ ファイルを作成するには、先頭に次の行を含むテキスト ファイルを作成します。
#!/bin/bash
(またはシェルの名前は何でも)。通常、ファイル名は で終わる.sh
か、特別なファイルの終わりがまったくない場合があります。
ファイルの残りの行には、通常の Linux 端末で入力する場合と同様に、実行したいコマンドをリストします。
次に、そのファイルに「実行」権限を割り当てます。コマンドラインからは、chmod u+x filename.sh
. これは、現在のユーザーに eXexecute 権限を追加することを意味します。
本当の楽しみは、シェルで実行できるさまざまなことをすべて学び始めたときです。たとえば、次のような巧妙なトリックがあります。
my-first-command && my-second-command # only runs my-second-command if my-first-command succeeded
またはこれ:
my-background-command & # runs my-background-command in the background, so that you can get on with other things
grep
また、他のプログラムを簡単に接続できる素晴らしい Linux/UNIX プログラムもたくさんありuniq
ますxargs
。
あなたの具体例
しかし、それがどれほど素晴らしいことかを説明してきましたが、実際にそれを行う必要があるとは思いません。
あなたの例のシェルスクリプト部分は、次のように要約されます。
rm /logs/hr/DV/appserv/JEN*; ls /logs/hr/DV/appserv
Windows から自動的にログインしてこれらのコマンドを実行したいという印象を受けます。
PuTTY では、SSH 経由で接続している場合は、実行するコマンドを与えることができると思います。これが私がすることです。
- PuTTY を使用して、Windows マシンで ssh キーを生成します。(これを行う方法を思い出せません-PuTTYGenなどがあると思います)。
- 結果の公開鍵を、ユーザーのディレクトリ
authorized_keys
内で呼び出されるファイルにコピーします。文字通りコピーして貼り付けることができます。それはおそらく何か派手なことをするよりも簡単です。このディレクトリやファイルが存在しない可能性があることに注意してください。その場合、それらを作成する必要があります。ファイルが既に存在する場合は、新しいキーを上書きするのではなく、必ずファイルの最後に追加してください。.ssh
psoftXXX
- ここで、PuTTY と ssh を使用して再度接続を試みます。ユーザーとして自動的にログインする必要があり
psoftXXX
ます。
最後に、PuTTY の設定で、おそらく上記のコマンドラインを指定できます。次のように指定する必要があるかもしれません。
/bin/bash -c "rm /logs/hr/DV/appserv/JEN*; ls /logs/hr/DV/appserv"
自動化していないステージが 1 つあります。メニューで 1 を押します。/bin/bash
これは、このメニューが特別なデフォルトのログイン シェルを提供することで実装されていると思われるためです/something/somewhere/which/shows/a/menu
。PuTTY で代替コマンドを指定すると、その設定が完全に無視され、代わりにスクリプトが実行されることを願っています。
少し遊んでみる必要があるかもしれません。幸運を!