学科の1年生に贈る、Ubuntu・bashの便利技

本日の学科1年生向け授業(学生70名、教員数名、TA数名)で、Ubuntuのシェルを使ってもらったんだけど、ある学生がある先生に、コマンド実行の裏技を教えてほしいと言ったらしい
2015-10-09 23:45:24
王道は、いろいろ実行して学び、書籍やWebで、整理されたもの(例えばice2o.com/bash_quick_ref…)を読んで学ぶこと
2015-10-09 23:45:37
自分自身は普段はCygwin使い。シェルはzsh。授業とは別にUbuntuをよく利用していて、Cygwinシェルからsshでログインしたらすぐscreenでアタッチする
2015-10-09 23:46:18
Cygwinシェルもzshも封印して、Ubuntu標準の「端末」とbashで、学生が動作確認できるよう、使い方を書いていこう
2015-10-09 23:46:34
例えばavcdeと打ち込んで、vじゃなかったbだと気づいたら、左矢印を3回押して、カーソルをcのところまで移動させ、BackSpace、bの順に押せば、abcdeになる
2015-10-09 23:47:16
なお、シェルのコマンド入力ではマウスは使えない。ホイールしたら、画面外に行ってしまった出力などをさかのぼって見ることができるけれど。キー操作に戻って…
2015-10-09 23:48:03
1文字削除は、BackSpaceとDeleteを使い分ける。カーソルの1つ手前を削除するのがBackSpaceで、カーソルの文字を削除するのがDelete
2015-10-09 23:48:14
先ほどの例を使うと、avcdeと打ち込んでから、左矢印を4回押して、カーソルをvのところまで移動させ、Delete(またはCtrl+D)でvが消え、bを押したら、abcdeになる
2015-10-09 23:48:46
DeleteとCtrl+Dは、コマンド編集時には同じ効果。ただし要注意な話があって、何もコマンドを打ち込んでいないところでCtrl+Dを押すと、シェルが終了し、端末が消えてしまう(Deleteではそうならない)
2015-10-09 23:48:55
!!というコマンドは、直前に実行したコマンドを再び実行する。だけど、上矢印そのあとEnterのほうが、キー入力の数は少ない
2015-10-09 23:50:36
例えば、!!;何かコマンド;!! を1つのコマンドとして実行すると、直前に実行したコマンド・何かコマンド・直前に実行したコマンドの順に実行し、何かコマンドを実行する前後で違いを知ることができる
2015-10-09 23:51:08
直前のコマンドがdateだったら、何かコマンドの実行時間を知ることができる(だけどそれだったら「time 何かコマンド」を実行するほうがいい)
2015-10-09 23:51:26
次はワイルドカード。ls a*というコマンドで、aから始まるファイル(ディレクトリを含む。以下同じ)の情報だけが表示される
2015-10-09 23:51:36