シェルを快適につかえるようになろう! みんなどうやってシェルの操作覚えてきた?
これは omotesando.rb # 102 の LT プレゼンです。
Kaigi on Rails でもよろしゃっす!
時々、駆け出しさんのサポートをしているのですが、シェル操作を見ていて思うところがある…
この再現動画を見てほしい
どうだった?
会場の声を聞いてみたい。
みなさんどうやってシェルを覚えた?
僕はもう昔すぎて覚えていない…
この辺覚えていたらいいよな、というのを書いてみる
基本を覚えよう
- man
- cd, ls, mv, cp, rm
- パスの扱い(
/
~
.
..
) - パーミッション
覚えると気持ちいいやつ
- find
- ファイル検索
- ヒットしたやつに対して別の処理をすることもできる
- grep
- ファイル内検索
- pipe と組み合わせてフィルタみたいに使うことも多い
-
|
(pipe)- 他のコマンドに結果を渡せる
- cat, tail, head
ファイル編集もコマンドで!
- vi
- おっと、誰か来たようだ…
- 編集モードとノーマルモードがあるのが特徴
- 奥が深いし、エディタはいろんな派閥がありますので好きなのを。
tabで補完しよう
- 押してみな、飛ぶぞ
- zshだとオプションも補完してくれる
historyを使おう
- 上下キーで前回実行したコマンドをもう一回
-
ctrl + r
でback incremental search(過去のコマンドを検索)
(bck-i-search: って出るやつ)
カーソル移動、コマンド編集
-
ctrl+a
でカーソルを先頭に -
ctrl+e
でカーソルを末尾に -
ctrl+d
で1文字削除 -
ctrl+c
でクリア
カラフルにしたり、現在のGitブランチを表示したり
- 賛否両論あるけど oh-my-zsh はお手軽だと思う
- 僕もこれをベースにカスタマイズしている
- アップデートも頻繁
- 起動がちょっと遅いので嫌がられる?
100万回使うコマンドはaliasにしよう
~/.bashrc
や ~/.zshrc
に設定する。
alias st="git status"
alias cm="git commit"
alias co="git checkout"
定形作業をスクリプトにしよう
基本はコマンドを書くだけ。
曲があるけど、条件分岐とループもかけます。
Dockerなどでも使う。
#!/bin/bash
cd /path/to/program
bin/rspec
[上級編] ターミナルマルチプレクサ
最初はターミナルのwindowを複数作るのでもいいかもしれませんが、windows操作が億劫になってきたら。
- 最初から入ってる screen, ユーザの多い tmux
- 1枚の画面を分割できる
- うっかりターミナル閉じちゃっても復帰できる
- 分割したターミナル全部にコマンドを送れる
- 待ち時間に別のことを進められる
…というようなのをどうやって覚えてきた?
「これ読んどけ」があればいいんだけど…
- Linux サーバの本?
- 一子相伝の先輩の作業
みなさんからいただいたご意見
- LinuC の本高いけど体系的に学べる
- 一子相伝感あるからビギナーは物理出社の会社がいいかも
- 技術書典で書くか?
- いや、僕もそんな詳しくないし…