基本コマンド練習(2017.08退避)

II. Unix 基本コマンドの超入門

1. スパコンにログインしましょう

tophat と打ってみましょう。

$ tophat
-bash: tophat: コマンドが見つかりません

こうなった方、そこはまだログインノードです。そこで仕事をすると入り口が混み合ってみんなに迷惑かけます。qlogin を忘れてますよね? ⇒ qlogin してください。

$ qlogin
Your job 36547275 ("QLOGIN") has been submitted
waiting for interactive job to be scheduled ...
Your interactive job 36547275 has been successfully scheduled.
Establishing /home/geadmin/UGER/utilbin/lx-amd64/qlogin_wrapper session to host t261i ...
Last login: Fri Jul 8 18:50:36 2016 from t351i

表示される数字などは異なると思いますが、qlogin するとざっとこのような表示が出ます。

2. 基本コマンドの練習をしましょう

リダイレクト。ディレクトリ表示

  • > : プログラムから書き込み
  • < : プログラムへ書き込み
  • | : プログラムからプログラムに出力を渡す
  • . : 自分がいるディレクトリを示す
  • .. : 自分がいる一つ上の階層のディレクトリを示す
  • ~ : 自分のホームディレクトリを示す

ディレクトリ表示(一番使うコマンド)

  • ls : (LiSt) ファイル名をリストする

ファイル閲覧関係

  • cat : (CATenate) ファイルの連結・表示
  • head : ファイルの先頭を表示
  • less : ファイルをページ単位で表示 [スペースでページ送り、Bでページ戻り、Q で終了]
$ ls
ddbj_database training.tar lcl
$ ls -l # -l オプションをつけると表示される情報が変わる
合計 74744
drwxr-xr-x 3 tafujisa yn-nig 4096 12月 27 11:48 2012 ddbj_database
-rw-r--r-- 1 yanakamu yn-nig 76523520 12月 15 17:48 2016 training.tar
drwxr-xr-x 11 yanakamu yn-nig 4096 12月 15 13:35 2016 lcl
$ ls -a # -a オプションをつけると不可視ファイル (. で始まるファイル、ディレクトリが見える)
. .bash_profile .emacs.d .login .pyenv .viminfo
.. .bashrc .gem .matplotlib .rbenv .zprofile
.RepeatMaskerCache .cache .gnome2 .mc .screenrc .zshrc
.Xauthority .ddbjing34 .gnuplot_history .mozilla .ssh ddbj_database
.aspera .ddbjing34_deleteme .history .mysql_history .subversion training.tar
.bash_history .emacs .lesshst .pki .tcshrc lcl

ls の出力からファイルをつくってみます。cat で閲覧します。

$ ls > test # ls の出力をファイル test をつくって流し込む
$ ls
ddbj_database training.tar lcl test
$ cat test # ファイル test の中身を表示する(画面上と違い、一行一ファイルになります)
ddbj_database
training.tar
lcl
test

ファイル&ディレクトリ(フォルダ)操作関係

  • cp : (CoPy) ファイルのコピー
  • mv : (MoVe) ファイルの移動、名称変更
  • rm : (ReMove) ファイルの削除
$ ls
ddbj_database training.tar lcl test
$ cp test test2 # ファイル test を test2 にコピーする
$ cat test2 # test2 を表示する
ddbj_database
training.tar
lcl
test
$ cat test test2 > test3 # test と test2 の中身を合わせて test3に書き出す
$ cat test3 # test3 を表示する
ddbj_database
training.tar
lcl
test
ddbj_database
training.tar
lcl
test
$ mv test3 test4 # test3 を test4 に名称変更する
$ ls
ddbj_database training.tar lcl test test2 test4
$ rm test4 # test4 を消す。黙って消えるので注意
$ ls
ddbj_database training.tar lcl test test2

ディレクトリ移動、作成関係

  • mkdir / rmdir : (Make Directory / ReMove Directory) ディレクトリの作成・削除
  • pwd : (Print Working Directory) 今いる場所を表示する
  • cd : (Change Directory) いる場所を変更する
$ mkdir testdir # testdir というディレクトリ(フォルダ)を作る
$ ls
ddbj_database training.tar lcl test test2 testdir
$ cd testdir # testdir に入る
$ pwd # 今いるディレクトリを表示する(yanakamu の部分はあなたのユーザ名になります)
/home/yanakamu/testdir
$ ls
$ mv ../test ./ # 一つ下のディレクトリ (..) から test ファイルをここ (.) に移動する
$ ls
test
$ cd .. # 一つ下のディレクトリに移動する
$ pwd # 今いるディレクトリを表示する(yanakamu の部分はあなたのユーザ名になります)
/home/yanakamu
$ ls # test が testdir に移動したのでここからは消えている
ddbj_database training.tar lcl test2 testdir
$ rmdir testdir # testdir を消そうとするが、空ではないので消えない
rmdir: failed to remove `testdir': ディレクトリは空ではありません
$ rm testdir/test # testdir の中の test ファイルを消す。黙って消える
$ ls testdir # testdir の中を表示する、空になっている
$ rmdir testdir # 今度は testdir を消すことができる
$ ls
ddbj_database training.tar lcl test2

アーカイブ関係

  • tar : (Tape ARchive) アーカイブの操作(ファイルの取りまとめ)
  • zip / unzip : ファイル圧縮・展開
  • gzip / gunzip : GNU ファイル圧縮・展開
$ cp test2 test3
$ ls
ddbj_database training.tar lcl test2 test3
$ tar -cf test.tar test2 test3 # test.tar という名前で test2 と test3 を束ねる
$ ls
ddbj_database training.tar lcl test.tar test2 test3
$ tar -tf test.tar
test2
test3
$ rm test2 test3 # test2 test3 を消しちゃう
$ ls
ddbj_database training.tar lcl test.tar
$ ls -l
合計 74756
drwxr-xr-x 3 tafujisa yn-nig 4096 12月 27 11:48 2012 ddbj_database
-rw-r--r-- 1 yanakamu yn-nig 76523520 12月 15 17:48 2016 training.tar
drwxr-xr-x 11 yanakamu yn-nig 4096 12月 15 13:35 2016 lcl
-rw-r--r-- 1 yanakamu yn-nig 10240 12月 16 13:48 2016 test.tar
$ gzip test.tar # test.tar を圧縮する
$ ls -l
合計 74744
drwxr-xr-x 3 tafujisa yn-nig 4096 12月 27 11:48 2012 ddbj_database
-rw-r--r-- 1 yanakamu yn-nig 76523520 12月 15 17:48 2016 training.tar
drwxr-xr-x 11 yanakamu yn-nig 4096 12月 15 13:35 2016 lcl
-rw-r--r-- 1 yanakamu yn-nig 192 12月 16 13:48 2016 test.tar.gz
$ gunzip test.tar.gz
$ ls
ddbj_database training.tar lcl test.tar
$ tar -xf test.tar # test.tar の中身 (test2, test3 を取り出す)
$ ls
ddbj_database training.tar lcl test.tar test2 test3
$ cat test2 test3
ddbj_database
training.tar
lcl
test
ddbj_database
training.tar
lcl
test
$ rm test.tar test2 test3 # 今作業したファイルをカタ付ける
$ ls
ddbj_database training.tar lcl # 最初からあったファイルだけが表示されたら ok です