これから計算化学をはじめる方のために、Unixコマンドの使い方を紹介します。
基本的な内容ですので、すでに計算を実行できる方向けの内容ではありません。
・Unixコマンドとはなにか?
・計算化学に必須のUnixコマンドとその使い方
・使えると便利なUnixコマンド
Unixコマンドとはなにか?
コンピューターを動かすためには、コンピューターにどのような処理をさせるかの指示が必要です。
UnixやLinuxなどのコマンドラインインターフェース(CUI)を基本としたOSでは、Unixコマンドを使用してコンピューターに指示を出します。
多くの計算化学プログラムは、その実行にCUIでの操作を基本とするうえ、計算負荷の大きいジョブではUnixコマンドでの操作が必要なスーパーコンピューターを利用することになります。
管理人も、計算化学をはじめたばかりのころはUnixコマンドの使い方がよくわからず、苦労しました。
そこでこの記事では、CUIでの操作を行うのが初めての方を対象として、”最低限”必要なUnixコマンドと、その他の基本的なコマンドについて解説します。
本格的に計算化学を行うには全然足りませんが、とりあえずはじめてみたい方の参考にはなるかと思います。
Unixコマンドの使い方
Unixコマンドは様々な種類があり、そのコマンドごとに使用方法が決まっています。
基本的な使い方は以下のパターンになります。
先頭の$マークとその直後の半角スペースはコマンドの目印ですので、実際には入力しません。
①コマンド単体で使用する
例1) $ ls
②コマンド+ファイル名(ディレクトリ名)で使用する
例2) 以下のnew_dirはディレクトリ名 $ mkdir new_dir
③上記①,②に加えてオプションを追加する(オプションはハイフンで指定)
例3) lsコマンドにaオプションを加える例 $ ls -a
コマンドによっては追加のキーワードを使用する場合がありますが、まずは基本的な上記3パターンだと理解すればよいです。
計算化学に必須のUnixコマンドとその使い方
lsコマンド
$ ls
現在のディレクトリ(カレントディレクトリ)内のファイルやディレクトリの一覧を表示するコマンドです。
list segmentsの略だそうです。
計算実行時はカレントディレクトリで作業をすることが多いため、自分が扱おうとするファイルがlsコマンドの出力内に存在するかを確認する目的で使用します。
表示されたファイル名をコピーして使用するとスペルミスも減ってよいです。
mkdirコマンド
make directoryを略したもので、その名の通り新しいディレクトリ(フォルダ)を作成するコマンドです。
例えば「new_dir」というディレクトリを作成したい場合は
$ mkdir new_dir
で作ることができます。
cdコマンド
change directoryの略で、カレントディレクトリを移動するコマンドです。
直下の移動先として指定できるものはlsコマンドの出力にあるディレクトリとなります。
例えば
$ ls > dir_1 dir_2
のようになった場合
$ cd dir_1
とすることで、dir_1に移動するとができます。
この移動は入れ子構造のディレクトリに対しても使用できます。
dir_1の中にdir_3がある場合
$ cd dir_1 $ cd dir_3
のように逐次的に移動することもできますが、
$ cd dir_1/dir3
のように「/」を入れることで、一つのコマンドで2階層下まで移動できます。
覚えておくとよいcdコマンドの使い方
①1階層上に移動
$ cd ..
②ホームディレクトリに移動
$ cd
viコマンド
visual editorの略でファイルの表示・新規作成・変更などができるテキストエディタを起動するコマンドです。
PCではテキストファイルを様々なアプリケーションで開いて編集できますが、スパコン上などではviコマンドなどで編集する必要があります。
機能が豊富な分、これまで紹介したコマンドより難しく感じられる部分が多いですが、ファイル操作ができなければインプットファイルを作成することもできないので、必要最低限の使い方について記載しておきます。
viコマンドはファイルを作成したり、開いたりできますが、いずれも同じコマンドです。
例えばfile.txtを作成するときは
$ vi file.txt
と入力すると、ファイルの作成とともにファイルが開かれます。
何も記載されていないファイルが表示された状態になります。
一方、すでにfile.txtがあるとき(lsコマンドで出力される中にある)
$ vi file.txt
のように、同じコマンドでファイルを開くことができます。
viコマンドには「コマンドモード」と「インサートモード」があり、viコマンドでテキストエディタを起動すると、「コマンドモード」で起動します。
コマンドモード中に「i」キーを押すとインサートモードに
インサートモード中に「Esc」キーを押すとコマンドモードに
それぞれ切り替わります。
コマンドモードのよく使う機能
コマンドモードはその名の通り、さらにコマンドを入力してファイルの操作を行います。
よく使うコマンドは以下の通りです。(カギカッコ内のコマンドを入力してEnterキーを押してください)
- 「:wq」 上書き保存して終了
- 「:q!」保存しないで終了
- 「d」カーソルのある行を削除
- 「10dd」カーソルのあるところから10行削除(10を他の数字に変えると削除できる行数を変えられます)
- 「G」(つまりshift+Gキーです)ファイルの末尾に移動
- 「gg」ファイルの先頭に移動
他のコマンドもありますが、上記4つで十分ファイル操作ができます。
特に、viコマンドを使用中は、意図しない操作によりファイルを変更してしまうことがあります。
そんなときは慌てず「:q!」コマンドで保存せず終了し、やり直しましょう。
インサートモード
インサートモードはその名の通り、文字を挿入するモードです。
書き換えたい部分にカーソルを合わせて入力し、ファイルを作りましょう。
終わったら「Esc」キーを押して、コマンドモードに戻し、「:wq」で保存して終了しましょう。
使えると便利なUnixコマンド
これまで紹介したls、cd、mkdir、viコマンドは計算化学プログラムを使う上で必須といってよいですが、他にも使えると便利なコマンドがあるので紹介します。
余裕が出てきたら使ってみましょう。
lessコマンド
viコマンド同様に、ファイルを開いて表示しますが、編集機能のないコマンドです。
viコマンドでは意図しないファイル変更をしてしまう可能性がありますが、lessコマンドはその心配がないため、ファイルの中を確認したいときに使います。
file.txtの中をlessコマンドで見るには
$ less file.txt
とします。
開いた後は
- 「G」ファイルの末尾に移動
- 「g」ファイルの先頭に移動
- 「/検索したい文字列」文字列が含まれる行の表示
などを使用することができます。
pwdコマンド
カレントディレクトリの位置を絶対パスで表示するコマンドです。
$ pwd
のように使用します。
コンピューター上のファイルの位置のことをパスと呼びます。
パスは、現在の位置を基準として表記する「相対パス」と階層の頂点から全てを記載する「絶対パス(フルパスとも呼ぶ)」の2種類があり、pwdコマンドは絶対パスを表示するコマンドになります。
「横浜市/青葉区」を相対パスとするのであれば、「日本国/神奈川県/横浜市/青葉区」が絶対パスにあたります。
プログラムのインストール先の指定や、外部サーバーへの接続などの際に絶対パスが必要になる場面があり、これを確認するためのコマンドになります。
cpコマンド
ファイルやディレクトリをコピーして複製するコマンドです。
複製しつつ名前を変えたり、場所を変えたりすることができます。
コピー元と先があるので、ファイル名(ディレクトリ名)を2つ使ってコマンド操作をします。
カレントディレクトリにfile.txtというファイルと、dir_1というディレクトリがあるときには以下のようなことができます。(使い方の例ですので、他にも色々できます。)
例1)file.txtをコピーしてfile_2.txtとして複製 $ cp file.txt file_2.txt 例2) file.txtをコピーしてdir_1の中に複製(ファイル名を省略するとファイル名はそのままになる) $ cp file.txt dir_1/ 例2) file.txtをコピーしてファイル名をfile_2.txtに変更したうえでdir_1の中に複製 $ cp file.txt dir_1/file_2.txt
ディレクトリをコピーするにはrオプションを使います。
例4) dir_1をコピーし、dir_2と名前を変更 $ cp -r dir_1 dir_2
mvコマンド
ファイルやディレクトリを移動するコマンドです。
移動ですので、cpコマンドと異なり、元ファイルはなくなります。
mv "移動元" "移動先"
の形式で使用し、この点はcpコマンドと似ていますが、ディレクトリを移動するときもオプションは不要です。
例1) file.txtをdir_1の中へ移動 $ mv file.txt dir_1 例2) file.txtをdir_1の中へ移動しつつ名前をfile_2.txtに変更 $ mv file.txt dir_1/file_2.txt
ファイルの移動のコマンドですが、元のファイルがなくなるため、名前の変更にも使えます。
例3) file.txtをfile_2.txtに名称変更 $ mv file.txt file_2.txt
rmコマンド
ファイルを消去するコマンドです。
誤ってOSに必要なファイルを削除してしまうと、最悪コンピューターが動かなくなります。
以下の形式で使えますが、使用には細心の注意を払うようにしましょう。
ディレクトリごと消去するにはrオプションを使います。
例1) file.txtを削除 $ rm file.txt 例2) dir_1を削除 $ rm -r dir_1
grepコマンド
ファイル内を検索して、検索対象の文字列が含まれる行を表示するコマンドです。
$ grep "検索文字列" "対象のファイル"
の形式で用います。
計算結果からエネルギーの値を取り出したいときや、計算の進捗状況をアウトプットファイルから確認したいときに使います。
例1) file.txt内の"abc”文字列を検索 $ grep abc file.txt
grepコマンドはオプションを使うと様々なことができます。
qiita:Linux grepコマンドの使い方@LIB (LIB)
より複雑な処理をしたい方は是非調べてみてください。
終わりに
今回は、計算化学をはじめる方がUnixコマンドで困らないよう基本的な内容を記事にしました。
コマンドは使っていくとどんどん覚えていくものなので、是非チャレンジしてみてください。
コメント・質問等はX (@chemmodelcomp)にてご連絡ください。