Upload
kei-iwasaki
View
1.808
Download
1
Embed Size (px)
Citation preview
Cli mini Hack!#1~Terminalとの親睦を深めよう ~
NODE-Setagaya#9 2014.04
@laugh_k
Profile• 名前
Kei Iwasaki
@laugh_k• 職業
MSP( 監視運用代行 ) の会社で
サーバ・ネットワークエンジニア的なもの• 近況
最近は Infrastructure as Code 的なものに
トライしていきたい年ごろです。
さて、みなさん
Terminal(SSH クライアント含む )使ってますかー!?
僕はこんな感じです! ( 多分これでも少なめ )
今回のテーマは CLI mini Hack と称した主に Unix 系環境におけるコマンドライン Tips
をいくつか紹介していきます。
といっても普段「俺こんな風に使ってるよー」
とい紹介チックな感じになりそうです。
今回の NODE-Setagaya
ここで質問
このターミナル (?) と
このターミナル
どっちを使いたい?
これはちょっと例が極端ですが見た目が綺麗な感じだと
Terminal 触っている時のモチベーション
全然違います
※ もちろん人によって違うところもあります
mini Hack その 1
なんだかんだで見た目大事
個人的には以下のような感じで設定するのがオススメ
• 背景は黒系だと目が疲れにくい とはいえ完全に黒よりはなにか色が入ったほうがいい
• 厨二全開の半透明は「 Terminal 使ってる俺かっけー」って なって結構やる気が出るのでおすすめ。 ( とはいえやり過ぎる かえってと文字が読みづらいので注意 )
• vim とか emacs である“ Solarized” や ” Molokai” など の有名なカラースキームは各種 Terminal でも設定ファイルが Web 上に転がってるので探してみるといいかも。
• フォントは個人的にアンチエイリアス有りをすすめる。
• 最近のフォントマイブームは Ricty, DejaVu Sans Mono
Windows だと以下も注意するといいかも
• cmd.exe は辛いので ckw-mod や console2 などの フロントエンド (?) を使うと少し幸せになれる。
• vim や emacs のエディタに PATH を通しておこう。
• mintty(cygwin) いいけど、 Windows との違いには注意
• フォントのレンダリングがしょっぱいので gdipp や MacType などのレンダリングを改善してくれる ツールを導入すればいい感じ。• フォントリンク機能でお気に入りの英字フォントと日本語フォントを組み合わせることができるので、案外選択の幅は広い。
• 個人的には Windows だと Meiryo_Consolas( 等幅メイリオ ) + Consolas 押し
DEMOその 1
僕個人的にはやはり Solarized Dark 押し
mini Hack その 2
シェルとの付き合い方
利用するシーンが多いBash
を前提に進めていきます。(zsh など他のシェル使いの方すみません ...)
さて、みなさん
Bash のショートカットどれくらい使ってますか?
実はこれだけあったりします。( もちろんこれも一部 )
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+” の意味
DEMOその 2
そしてみなさん
シェル芸してますか?
マウスも使わずプログラムも書かずGUI ツールを立ち上げる間もなく、あらゆる調査・計算・ファイル処理をコマンド一撃で終わらす。
By USP 友の会 上田隆一 (@ryuichiueda) さん
シェル芸とは
ターミナルで過ごす時間が長いとシェル芸ができると色々はかどります
これマジ!
mini Hack その 3
シェル芸は身を助くTips の紹介
シェル芸 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
シェル芸 Tips
## awk芸基礎% echo 'a b c' | awk '{print $2}'b ## 単純なセパレータの抽出
% echo 'a b c' | awk '{print $NF}'c ## 最後のセパレータ抽出
% cat hoge | awk '/^hoge/ { print $1 }'hogehogehoge ## ^hoge にマッチした部分だけセパレート抽出
## find + xargs による定期的ログ圧縮% find ~/myapps/logs \> -ctime +7 -a \> -name “*.log” \> -type f |> xargs gzip
DEMOその 3
LL言語でスクリプトを書いたほうがいいケースもありますが
障害対応時などの緊急性が高い調査などでは絶大な威力を発揮します
とはいいつつも、やはり設定ファイルの編集などはではエディタを使って編集したいものです
そこでまた質問
Vim (not vi) 使ってますか?
古めの環境では特にvi しか入っていない
というケースも多く有りましたが
最近の Linux サーバではVim が入っているケースが増えてきました
vi のほうが軽量でよい
という意見もあるとは思いますが、ここでは Vim を押してみたいと思います
mini Hack その 4
vi もいいけど Vim も使おう
• C-vからヴィジュアルモードに入れ、矩形編集ができる。
• vim -p <file1> <file2> … で複数ファイルタブ編集化。 (:tabe <file> もね )
• 設定ファイルの syntaxが効くので読みやすくなる
• C-n による補完がプラグインなしでも結構強力
• C-x C-f によるファイルパス補完も非常に便利
など
サーバ作業でも Vim を押す理由
SSH経由の場合は Terminalソフトの機能でどうにかなるケースもあるけど
データセンターなどのコンソール越し作業の場合は効率が雲泥の差。
普段から vim の扱いに慣れておくのが吉!
DEMOその 4
という感じで、
Vim が使える環境であればvi ではなく Vim を使っておくほうが
色々と幸せなケースが多いと思います
もし、vi しか入っていなかった環境の場合は
シェル芸も駆使しながら頑張りましょう
ところで vim に限らずお客さんの環境などで作業を行う際
普段はこれ便利だから使っているんだけどなー
というものが使えない使えなくはないが設定が面倒
というケースが少なくないです
そこで
mini Hack その 5
自分で手が出せない環境での戦い方 Tips
環境設定系
• 環境変数確認
• プロンプト変更bashの場合は環境変数 PS1を変更する。
• デフォルトエディタの変更 visudo、 crontab -eなどで起動するエディタ。 環境変数 EDITORを編集。
## 時間を追加したい場合
[laughk@devel ~]$ PS1="(\t)$PS1"
(03:58:58)[laughk@devel ~]$
## vim に変更したい
% EDITOR=vim
% env
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'
Vim,vi 系• 行番号の on/off
• シンタックスが効かない場合
• <tab>をソフトスペースに変更する。
• ソフトスペースに変更した <tab>の長さを変更
• 新しいタブで別ファイルを開く
:set nu “ 行番号 on
:set nonu “ 行番号 off
:set expandtab
:set tabstop=2 “ <tab> を半角スペース 2 つに変更
:syntax on
:tabe <filename>
DEMOその 5
最低限これだけでも覚えているといないでは
大きな差があると思います。
一方で
自分の Laptop や検証用に上げた VM マシンなどは
自分の好きなようにカスタムできるます。
やはりインフラサイドとなるとカスタムができない環境で
戦わなきゃ行けないケースもありますが
作業効率があがるのなら自分の環境はカスタムしておくべきです。
ということで社内に 24 時間起動可能な
オレオレ Linux サーバを立てた
と仮定した場合の Tips を紹介
mini Hack その 6
自分で手が出せる環境をカスタム( ツール紹介 )
オレオレサーバに入れておきたいツール• bash-completion
bashの補完を強化するツールbash派は必須。
• tmux CUI版ウィンドウマネージャーのようなもの接続が切れてもプロセスが残っていればセッションを再開できる。自動ロギングを仕込んだりもできる。
代わりに GNU screen入れておくのもアリ
• GNU screentmuxがあれば必要ないが、好みで入れるのはアリ
• moshざっくり言うと次世代 SSH。セッションが切れても再接続するため、ネットワークが細い無線環境からの接続も安心
DEMOその 6