あくまで必要最小限なものをまとめています。便利なコマンドはほかにもたくさんあるので
ぜひ調べてみてください。
$から始まるのが実行するコード、実行結果はそのすぐ下に書いてあります。
なにか問題があっても (例:間違えてファイルを消した)、責任は負えませんのでご了承ください。
間違えがあればy.ishii.biology[at]gmail.comまでご連絡ください。
ls:現在のディレクトリのファイル・ディレクトリを確認する
$ ls
dir1 dir2 file1 file2
cd:ディレクトリを移動する
$ ls
dir1 dir2 file1 file2
$ cd dir1
pwd:現在のディレクトリの場所をしる
$ pwd
your/current/directory
rm:ファイル、ディレクトリの削除
<< 注意 >> 一度削除すると復元できません。
$ ls
dir1 dir2 file1 file2
$ rm file1
$ rm -r dir1 ## ディレクトリの削除には-rが必要
$ ls
dir1 dir2 file2
tmux:バックグラウンド実行
遠隔のPCに接続してプログラムを回した状態で、手元のパソコンは遠隔のPCから切り離したいときがよくある (たとえば帰宅時など)。
その際に普通に実行してしまうとせっかく実行したプログラムが止まってしまう。
そこでプログラムをバックグラウンドで実行する。
$ tmux new -s test ## 新しい「セッション」を起動する。遠隔PCのターミナルで新しいウィンドウを開くイメージ。
こんな画面が開く (写真はプログラムを実行中)。下の「0: bash, 1: bash, 2: bash」がウィンドウと呼ばれ、イメージとしてはブラウザのタブのようなもの。
新しいウィンドウの作成:Ctrl+B -> C
ウィンドウの移動:Ctrl+B -> 移動したいウィンドウの番号 (ウィンドウの名前ではない)
tmuxから脱出:Ctrl+B -> D
作成済みのセッションに入る:tmux a -t セッションの名前
作成済みのセッションを確認する:tmux ls
tmux用語
セッション:ブラウザでいうとウィンドウにあたる。個人的にはプロジェクトごとにわけています。
ウィンドウ:ブラウザでいうところのタブ。個人的にはソフトウェアごとにわけています。
ペイン:ひとつのウィンドウを分割したもの。画面が小さくなって操作性が悪くなるのであまり使いません。上のコマンド集でも触れていません。
vim:テキストエディタ
テキストエディタはwindowsでいうメモ帳のこと。ファイルの中身を編集する (たとえばスクリプトを編集するときなど)。
vim ファイル名:ファイルを編集 (指定されたファイルがないときは新規作成)
ファイルを開いたあと
編集開始 insertキー or i
編集終了 escapeキー
保存してファイルから抜け出す :wq (コロンが必要!!)
保存せずファイルから抜け出す :q (コロンが必要!!)
直前の作業を取り消す :u (コロンが必要!!)
先頭行に行きたい Ctrl+G
最後の行に行きたい gg (連打)
100行後に行きたい 100 ↓
100文字右に行きたい 100 →
bash:bashスクリプトの実行
実行したいコマンドをファイル (スクリプト) に保存しておくことで、コマンドのlogとしたり次回実行するときに楽したりできる。
$ echo "ls" > test.sh ## lsコマンドのみをいれたファイルを作成
$ bash test.sh
dir1 dir2 file1 file2
$ ls
dir1 dir2 file1 file2
$ echo "rm file1" > test.sh ## rmコマンドでfile1というファイルを削除する命令をtest.shに保存
$ bash test.sh ## rmコマンドでfile1を削除
$ ls
dir1 dir2 file2
そのほか小技
Tabキーによる補完
ファイル名やディレクトリ名を指定するとき (lsやcdなど) に途中まで入力したあとにtabキーを押すと残りが補完されます。
タイプミスを防ぐためにオススメです。
$ ls
aaaa.txt bbbb.txt cccc.txt
のときにaを押した後にtabを押すと以下のように補完されます。
$ ls a ### ここでtabを押す
$ ls aaaa.txt ### 補完される
マッチするファイルやディレクトリが複数あるときはその候補が表示されます。
なお、tmuxでセッション名を指定するときは補完できません。
bashのオプション
bashにはいくつかオプションがあり、shebangと合わせて以下のようにファイルの先頭で設定するのがオススメです。
#!/usr/bin/bash
set -euo pipefail
2行目がオプションの設定で、
-e: エラーがあればそれ以降が実施されません。
-u: 未定義の変数を使用するとエラーとなります。
-o pipefail: パイプライン中のエラーを認識するようにします。
※ 動作はUbuntu 20.04.6 LTSで確認しています。