Cli mini Hack!#1 ~Terminalとの親睦を深めよう~

Cli mini Hack!#1 ~Terminalとの親睦を深めよう~

NODE-Setagaya#9 (http://www.zusaar.com/event/4877003) で話した時に使ったシートです。

Ea7943ec3930f9273b8e8a06076d85ce?s=128

Kei Iwasaki

April 13, 2014
Tweet

Transcript

  1. 2.

    Profile • 名前 Kei Iwasaki • Twitter @laugh_k • 職業

    MSP( 監視運用代行 ) の会社で サーバ・ネットワークエンジニア的なもの • 近況 最近は Infrastructure as Code 的なものに トライしていきたい年ごろです。
  2. 6.

    今回のテーマは CLI mini Hack と称した 主に Unix 系環境におけるコマンドライン Tips をいくつか紹介していきます。

    といっても普段 「俺こんな風に使ってるよー」 とい紹介チックな感じになりそうです。 今回の NODE-Setagaya
  3. 13.

    個人的には以下のような感じで設定するのがオススメ • 背景は黒系だと目が疲れにくい とはいえ完全に黒よりはなにか色が入ったほうがいい • 厨二全開の半透明は「 Terminal 使ってる俺かっけー」って なって結構やる気が出るのでおすすめ。 (

    とはいえやり過ぎる かえってと文字が読みづらいので注意 ) • vim とか emacs である“ Solarized” や ” Molokai” など の有名なカラースキームは各種 Terminal でも設定ファイルが Web 上に転がってるので探してみるといいかも。 • フォントは個人的にアンチエイリアス有りをすすめる。 • 最近のフォントマイブームは Ricty, DejaVu Sans Mono
  4. 14.

    Windows だと以下も注意するといいかも • cmd.exe は辛いので ckw-mod や console2 などの フロントエンド

    (?) を使うと少し幸せになれる。 • vim や emacs のエディタに PATH を通しておこう。 • mintty(cygwin) いいけど、 Windows との違いには注意 • フォントのレンダリングがしょっぱいので gdipp や MacType などのレンダリングを改善してくれる ツールを導入すればいい感じ。 • フォントリンク機能でお気に入りの英字フォントと日本語フォン トを組み合わせることができるので、案外選択の幅は広い。 • 個人的には Windows だと Meiryo_Consolas( 等幅メイリオ ) + Consolas 押し
  5. 22.

    bash(emacs モード ) の最低限覚えておきたい ショートカット • C-a … コマンドの先頭にジャンプ •

    C-e … コマンドの文末にジャンプ • C-w … 1 単語を後方削除 • C-k … カーソル位置から文末まで削除 • C-u … カーソル位置から文頭まで削除 • C-y … ショートカットで削除した文字を復元 • C-x C-e … 入力中のコマンドをエディタで編集 • C-r … history を検索 • !<num> … history 番号 $num のコマンドを再実行 “ ※ C-” は “ Ctrl+” の意味
  6. 29.

    シェル芸 Tips ## 重複処理 % cat hoge | sort |

    uniq % cat hoge | sort | uniq -c ## 重複数カウント ## sed の基礎 (aaa => bbb 全置換 ) % sed -i 's/aaa/bbb/g' hoge.txt % sed -i.bak 's;aaa;bbb;g' hoge.txt ## バックアップ有り ## 改行を取っ払う % cat hoge | tr -d '\n' • ## for 文基礎 (in で指定したスペース区切りの文字でループ ) % for var in “a b c d” ; do > echo $var ## ここに繰り返し処理 > done ## while 基礎 (1 行ごとにループ ) % cat hoge | while read line ; do > echo $line ## ここに繰り返し処理 > done
  7. 30.

    シェル芸 Tips ## awk 芸基礎 % echo 'a b c'

    | awk '{print $2}' b ## 単純なセパレータの抽出 % echo 'a b c' | awk '{print $NF}' c ## 最後のセパレータ抽出 % cat hoge | awk '/^hoge/ { print $1 }' hoge hogehoge ## ^hoge にマッチした部分だけセパレート抽出 ## find + xargs による定期的ログ圧縮 % find ~/myapps/logs \ > -ctime +7 -a \ > -name “*.log” \ > -type f | > xargs gzip
  8. 39.

    • C-v からヴィジュアルモードに入れ、矩形編集ができる。 • vim -p <file1> <file2> … で複数ファイルタブ編集化。

    (:tabe <file> もね ) • 設定ファイルの syntax が効くので読みやすくなる • C-n による補完がプラグインなしでも結構強力 • C-x C-f によるファイルパス補完も非常に便利 など サーバ作業でも Vim を押す理由 SSH 経由の場合は Terminal ソフトの機能でどうにかなるケースもあるけど データセンターなどのコンソール越し作業の場合は効率が雲泥の差。 普段から vim の扱いに慣れておくのが吉!
  9. 47.
  10. 49.

    環境設定系 • 環境変数確認 • プロンプト変更 bash の場合は環境変数 PS1 を変更する。 •

    デフォルトエディタの変更 visudo 、 crontab -e などで起動するエディタ。 環境変数 EDITOR を編集。 ## 時間を追加したい場合 [laughk@devel ~]$ PS1="(\t)$PS1" (03:58:58)[laughk@devel ~]$ ## vim に変更したい % EDITOR=vim % env
  11. 50.

    alias 系 • view を vi ではなく vim の読み込み専用として使う alias

    するのも手 • ls がカラーでない場合の対処 (GNU 系の場合のみ ) % vim -R /etc/hosts % alias view='vim -R' % view /etc/hosts ## カラー ON にする場合 % alias ls='ls –color=auto' ## カラーの代わりに文末のシンボルを ON にする % alias ls='ls -F'
  12. 51.

    Vim,vi 系 • 行番号の on/off • シンタックスが効かない場合 • <tab> をソフトスペースに変更する。

    • ソフトスペースに変更した <tab> の長さを変更 • 新しいタブで別ファイルを開く :set nu “ 行番号 on :set nonu “ 行番号 off :set expandtab :set tabstop=2 “ <tab> を半角スペース 2 つに変更 :syntax on :tabe <filename>
  13. 54.
  14. 59.

    オレオレサーバに入れておきたいツール • bash-completion bash の補完を強化するツール bash 派は必須。 • tmux CUI

    版ウィンドウマネージャーのようなもの 接続が切れてもプロセスが残っていればセッションを 再開できる。自動ロギングを仕込んだりもできる。 代わりに GNU screen 入れておくのもアリ • GNU screen tmux があれば必要ないが、好みで入れるのはアリ • mosh ざっくり言うと次世代 SSH 。 セッションが切れても再接続するため、ネットワーク が細い無線環境からの接続も安心