2020.1 講習会(午前)

Unix (Linux) 超基本コマンド入門

すみません。ファイル名ミス修正しました (1/27 13:28)

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

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

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

  • ls : (LiSt) ファイル名をリストする
  • ls -l : (long LiSt) ファイル名の詳細をリストする

ファイル閲覧関係

  • touch name : その名前の空のファイルを作る
  • cat : (CATenate) ファイルの連結・表示
  • head : ファイルの先頭を表示
  • less : ファイルをページ単位で表示 [スペースでページ送り、Bでページ戻り、Q で終了]
$ touch test
$ ls
test
$ ls -l # -l オプションをつけると表示される情報が変わる。この場合は long list
total 0
-rw-r--r-- 1 yn staff 0 1 26 17:41 test
$ 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 bioinformatics.tar
.bash_history .emacs .lesshst .pki .tcshrc lcl

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

$ ls > test # ls の出力をファイル test をつくって流し込む
$ ls
test
$ ls > list
$ ls
list test
$ cat list
list
test

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

  • mkdir / rmdir : (Make Directory / ReMove Directory) ディレクトリの作成・削除
  • pwd : (Print Working Directory) 今いる場所を表示する
  • cd : (Change Directory) いる場所を変更する
$ mkdir testdir # testdir というディレクトリ(フォルダ)を作る
$ ls
list test testdir
$ ls -l # 長いリストを見る
total 16
-rw-r--r-- 1 yn staff 10 1 26 17:43 list
-rw-r--r-- 1 yn staff 5 1 26 17:42 test
drwxr-xr-x 2 yn staff 64 1 26 17:44 testdir
$ cd testdir # testdir に change directory する
$ pwd # 今いるディレクトリを表示する(yanakamu の部分はあなたのユーザ名になります)
/home/yanakamu/testdir
$ ls
$ mv ../test ./ # 一つ下のディレクトリ (..) から test ファイルをここ (.) に移動する
$ ls
test
$ cd .. # 一つ下のディレクトリに移動する
$ pwd # 今いるディレクトリを表示する(yanakamu の部分はあなたのユーザ名になります)
/home/yanakamu
$ ls # test が testdir に移動したのでここからは消えている
list testdir
$ rmdir testdir # testdir を消そうとするが、空ではないので消えない
rmdir: failed to remove `testdir': ディレクトリは空ではありません
$ rm testdir/test # testdir の中の list ファイルを消す。黙って消える
$ ls testdir # testdir の中を表示する、空になっている
$ rmdir testdir # 今度は testdir を消すことができる
$ ls
list

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

  • cp : (CoPy) ファイルのコピー
  • mv : (MoVe) ファイルの移動、名称変更
  • rm : (ReMove) ファイルの削除
$ ls
list
$ cp list list2 # ファイル list を list2 にコピーする
$ cat list2 # list2 を表示する
list
test
$ cat list # ちなみに list も同じなかみ
list
test
$ cat list list2 > list3 # list と list2 の中身を合わせて list3に書き出す
$ cat list3 # list3 を表示する
list
test
list
test
$ mv list3 list4 # list3 を list4 に名称変更する
$ ls
list list2 list4
$ rm list4 # list4 を消す。黙って消えるので注意
$ ls
list list2

アーカイブ関係

  • tar : (Tape ARchive) アーカイブの操作(ファイルの取りまとめ)
  • zip / unzip : ファイル圧縮・展開
  • gzip / gunzip : GNU ファイル圧縮・展開
$ cp list2 list3
$ ls
list list2 list3
$ tar -cf list.tar list2 list3 # test.tar という名前で test2 と test3 を束ねる
$ ls
list list2
list.tar list3
$ tar -tf list.tar
list2
list3
$ rm list2 list3 # list2 list3 を消しちゃう
$ ls
list list.tar
$ ls -l
total 16
-rw-r--r-- 1 yn staff 10 1 26 17:43 list
-rw-r--r-- 1 yn staff 3072 1 26 17:51 list.tar
$ gzip list.tar # list.tar を圧縮する
$ ls -l
total 16
-rw-r--r-- 1 yn staff 10 1 26 17:43 list
-rw-r--r-- 1 yn staff 152 1 26 17:51 list.tar.gz # 小さくなってる
$ gunzip list.tar.gz # 圧縮を戻す
$ ls -l
total 16
-rw-r--r-- 1 yn staff 10 1 26 17:43 list
-rw-r--r-- 1 yn staff 3072 1 26 17:51 list.tar
$ tar -xf list.tar # list.tar の中身 (list2, list3 を取り出す)
$ ls
list list2
list.tar list3
# list.tar は消えてないことに注意
$ cat list2 list3
list
test
list
test
$ rm list.tar list2 list3 # 今作業したファイルをカタ付ける
$ ls
list
# 最初からあったファイルだけが表示されたら ok です