Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Search
Kei Iwasaki
April 13, 2014
Technology
0
2.6k
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
NODE-Setagaya#9 (
http://www.zusaar.com/event/4877003
) で話した時に使ったシートです。
Kei Iwasaki
April 13, 2014
Tweet
Share
More Decks by Kei Iwasaki
See All by Kei Iwasaki
ECS Scheduled Task 上の定期実行バッチを ecschedule で GitOps 化した話 / A story about a scheduled execution batch on the ECS Scheduled Task converted to GitOps with ecschedule
laughk
2
10k
Python と出会ったインフラエンジニアの話 / / The story of an infrastructure engineer who met Python
laughk
0
1.2k
MSPだってプロビジョンしたい!
laughk
1
5.4k
AnsibleでOrchestrationを体感しよう!
laughk
0
770
Other Decks in Technology
See All in Technology
日経電子版 x AIエージェントの可能性とAgentic RAGによって提案書生成を行う技術
masahiro_nishimi
1
290
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
16
6.5k
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
5.1k
スクラムのイテレーションを導入してチームの雰囲気がより良くなった話
eccyun
0
110
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
0
120
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
120
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1k
All you need to know about InnoDB Primary Keys
lefred
0
120
20250208_OpenAIDeepResearchがやばいという話
doradora09
PRO
0
170
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
15
5.5k
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
0
100
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
5.8k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
Scaling GitHub
holman
459
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
For a Future-Friendly Web
brad_frost
176
9.5k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Invisible Side of Design
smashingmag
299
50k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Transcript
Cli mini Hack!#1 ~Terminal との親睦を深めよう ~ NODE-Setagaya#9 2014.04 @laugh_k
Profile • 名前 Kei Iwasaki • Twitter @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 }' hoge hogehoge ## ^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 screen tmux があれば必要ないが、好みで入れるのはアリ • mosh ざっくり言うと次世代 SSH 。 セッションが切れても再接続するため、ネットワーク が細い無線環境からの接続も安心
DEMO その 6