Linuxターミナル、コマンドtips その1: キーボードショートカットとディレクトリの移動
(2019/06/29追記) 実践的、網羅的かつ簡潔にまとまったドキュメントを見つけたのでメモ(日本語訳もある)*1。
このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.きっかけはRebuild.fmのep41*2.少しでも端末操作が楽しく気持ち良くなればこれ幸い.
Linuxターミナルtips
今回は、キーボードショートカットを中心に極基本をば。
ちなみにWindows
ちなみにMac
commandボタン長押しで、起動しているアプリのショートカット一覧が表示されるアプリらしい
Linux(Ubuntu)
ターミナル起動
ctrl+alt+t
タブを開く
ctrl+shift+t
開いた後のカレントディレクトリは変わらない
タブの移動
alt+1,2,3,4,...
左から1,2,3,4,...に割り当てられている.マウス要らず.
新たにターミナルを開く
ctrl+shift+n
開いた後のカレントディレクトリは変わらない
ターミナルを閉じる
$ exit ctrl+d
画面リセット
ctrl+l
ディレクトリ構造を俯瞰する、FHSを理解する
$ sudo apt-get install tree # ルートディレクトリ以下を俯瞰 $ tree -d / | more # ホームディレクトリ以下を俯瞰 $ tree -d ~/ | less
-dオプション:ディレクトリのみ表示
moreやlessコマンドはビューア(lessの方が便利)、q
で終了
Linuxのファイル階層構造を理解する
ファイルの表示とディレクトリの移動
ファイルの階層構造と自分の現在位置(カレントディレクトリ)を意識しながら、以下の操作をやってみる.
カレントディレクトリのファイル一覧を表示する
$ ls
ファイル一覧の詳細表示
$ ls -lath
カレントディレクトリのパスを表示
$ pwd
カレントディレクトリに移動する
cd .
一つ上のディレクトリに移動する
cd ..
前にいたディレクトリに移動
$ cd -
ホームディレクトリに移動
$ cd $ cd ~/
コマンド入力支援関連
ターミナルのemacsキーバインド
ctrl+[f,b,p,n,a,e,k,y,d]
余談:emacsのコマンド
ctrl+x ctrl+s #セーブ ctrl+x ctrl+c #終了
コマンド履歴を表示する
$ history
誰かにターミナル上で色々やってもらった場合、後でヒストリを見て技を盗むと良い.
コマンドのタブ補完
- コマンド入力途中にtabを押すと自動補完してくれる、超便利
- Macの場合はデフォルトで入っていないので以下を参考
http://www.kameneko.com/terminal-tab/
tab tab による一覧表示
- 候補が複数ある状態でtabを2回押すと候補一覧が出力される、超便利
インクリメンタルサーチ
ctrl+r
ctrl+r
を押す度に別の候補を表示、超便利
一つ前のコマンドを実行する
$ !!
ジョークコマンド
sl
$ sudo apt-get install sl $ sl $ man sl #多彩なオプション!!
apt-getのスーパー牛さんパワー
$ apt-get moo
aptitudeのスーパー牛さんパワー
$ atitude -h #ヘルプの一番最後を見てみよう $ aptitude moo $ aptitude -v moo $ aptitude -vv moo ...続く...
その他のジョークコマンド
manコマンド
$ man man #manコマンドのマニュアル、一瞥の価値あり $ man printf #コマンド $ man 1 printf #コマンド $ man 2 send #システムコール $ man 3 printf #ライブラリ
ググるのも良いけど、manを叩いた方が早いこともある(コマンドのオプションや、C言語の関数の引数、戻り値とか)
C言語のマニュアルが出ないと思ったら、2や3をつけてみると良い
zsh
ここまでの話はデフォルトのコマンドシェルであるbashベースの話
更に高機能なコマンドシェルにzshというものがある
oh my zshを使えば設定なしで今すぐ使い始められる
zshとoh-my-zshのインストール
$ sudo apt-get install zsh $ curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
試しに使ってみる
$ /bin/zsh
次回のログインからログインシェルをzshにする
$ chsh -s /bin/zsh $ source ~/.zshrc
chshについてはman chsh
を叩く
*1:毎日それこそ息するように使っているものから、必要な時に覚えてなくて毎回ググっているものまで、ベタだけどまさに当時これが手元にあればなぁという内容になっていて良くできている。このブログを読んでくれるのも嬉しいけど、何ができて何を調べれば良いかをまず知る目的で一回このドキュメントも一通り読んでおくと、"あれどうやるんだっけなー"などとボヤきつつ当てもなくググる時間を減らせるはず。要チェック。
*2:経緯:これまでそんなにLinuxを使っていたわけではない研究室の後輩の端末操作を後ろから見ていると、こうしたら一発で解決するのになと思うことが多々あり、かと言っていちいち指摘していたら本題から逸れるしで、かなり悶々としていた時期がありました.ちょうどその頃に、「naoya_itoの火を噴いたシェルtips」を拝見し、Rebulid: 41でもtipsの共有について触れられその内容に激しく同感.tips集を作成し、研究室内で小さな勉強会を開きました.