pythonを例に。
pythonプログラムをあるファイルxxxx.pyとして作成したとき、端末のコマンドライン(シェル)上では
python3 xxxx.py
のようにインタプリタpython3に引数としてプログラムを与えれば実行される。
スクリプトxxxxx.pyの先頭行に"#!"に続けて実行プログラム名(インタプリタ)を入れておくと、以下のスクリプトをそのプログラムで実行できる。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' コメント ''' print("test")
このプログラムをそのまま実行するには、実行権限をつけておく。
chmod +x xxxx.py
8topsの場合だと、Windowsのエクプローラで、「コンピュータ」を右クリック⇒「ネットワークドライブの割り当て」で "\\8tops.yamanashi.ac.jp\ユーザ名" とすることにより接続可能
bdpservなら"\\bdpserv.yamanashi.ac.jp\ユーザ名"とする。
ファイアウォールでは通さない場合が多いので、ローカルな範囲に限られるが、上記のサーバでは学内ホストに対してはアクセスOKにしてある。
(サーバ側にユーザ登録上の特別な設定が必要なので、それを行っていないサーバがあるかもしれない。アクセスできなかったら尋ねてほしい。)
ファイル転送ソフトとしてはWinSCPが安定している。
手元(ローカル)のコンピュータのフォルダとサーバ側のフォルダを表示し、相互にファイルをコピー、移動できる。
「環境設定」によりエクスプローラ風画面での操作もできる。ただ、ファイルを開くを指定した場合、ファイルを一旦作業用ディレクトリにダウンロードし、保存時にアップロードする作業が行われることに注意(「ファイル共有」にみえるだけで、裏でやっていることはネットワークドライブとは異なる。)
(説明省略)
VNC(Virtual Network Conputing)プロトコルを利用するとサーバのグラフィック画面を手元のコンピュータで操作できる
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & exec gnome-session & gnome-panel & gnome-settings-daemon & metacity & nautilus -n &
vncserver :1
他の人が使っていればディスプレイ番号を2とかにする。(試していないのでうまく行くかどうかわからない。)
vncserver -kill :1
vncserver :1
いろいろあるが、 https://www.realvnc.com/download/viewer/ が便利そうである。
パラメータは画面の大きさ(設定しなくてもよい) 最初だけパスワードの設定をする必要がある。(vnc専用なのでターミナル等でログインするときのパスワードと違うものでOK)
vncserver -geometry 1280x764
などとする。
vncserver -kill :1
vnc://ホスト名(IPアドレス):5901
のように、プロトコル、ホスト名、ポート番号を指定する。
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & # x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & gnome-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal & # x-window-manager &
とする。javacにオプション -d により出力ディレクトリを指定できる。 eclipseのプロジェクトのようにソースはsrc、コンパイル後のクラスファイルはbinのようにしたいときは、たとえば、
javac (package名)/(mainメソッドがあるソースファイル名)
javac -d bin (package名)/(mainメソッドがあるソースファイル名)
上記では、"-cp"オプションによりクラスファイルのパスを明示している。
java -cp bin (package名).(mainメソッドがあるソースファイル名)
シミュレーションではパラメータをコマンドライン引数の与えるのが便利である。 たとえば、
java twoLaneSOV.simulation.Main 0.5 0.2 0.02 1.0のように。(引数はたとえば順に、Pc beta alphaの最初の値 alphaの最後の値)
public static void main(String[] args) throws IOException { double alpha, beta, a, Pc; if(args.length!=4) { System.out.println("Pc beta alphaの最小値 最大値 の4つをを引数に与えてください。"); System.exit(0); } Pc = Double.parseDouble(args[0]): 0.5; beta = Double.parseDouble(args[1]); alpha = Double.parseDouble(args[2]); double alphaMax = Double.parseDouble(args[3]); // 以下略 }のように、引数が文字列型配列argsに入っているので、それぞれをDouble等に変換して変数に代入する。
https://toyoki-lab.ee.yamanashi.ac.jp/~toyoki/labTips/pythonTips4lab.html を参照
端末でのセッションを終了(logout)してもジョブが実行されるように、ジョブを"バックグラウンド"で実行させる。そのためのコマンドがbatchである。(batchはat nowと同様)
echo "java twoLaneSOV.simulation.Main 0.5 0.2 0.02 1.0" | batch
のようにする。バーがパイプを表す。 シェルのヒストリー機能を利用すれば、次のジョブの投入が簡単である。
終了はメールで知らせてくれる。
ホームディレクトリに".forward"というファイルを作り、その中にメールを転送したいアドレスを書いておく。