読者です 読者をやめる 読者になる 読者になる

器用貧乏です。はげたかです。日記です。

どうも、はげたかです。今まで器用貧乏に生きてきました。ジェネラリスト・フルスタックエンジニアを目指しています。

今日の一言:カテゴリ分けをしっかりしたらPVあがるかな?

【Mac】ターミナルで操作ってかっこいい!その次のシェル(zsh)を使いこなそう!

ターミナルで操作って格好良いですよね。
普通に操作するだけなら簡単ですけど、その次の段階、シェルは避けて通れませんよね。
今回自分が勉強したものは "zsh" です。
実際これが役に立ってくるのはまだまだ先だと思いますが、今のうちに慣れておくという作戦です。
学んで行くにあたってzshの便利さが何となく分かってくる感じです。

座学ではなく、ターミナルを使って操作して行くので、意外と楽しく学ぶことが出来ます!
素人が解説して行くので、初心者の方も分かりやすいんじゃないでしょうか?

zshって?

Z shell(Z シェル・zsh)はUnixのコマンドシェルの1つである。 対話的なログインコマンドシェルとしても、強力なシェルスクリプトコマンドのインタープリターとしても使うことができる。
Z Shell - Wikipedia

まぁ、これはどうでも良いですね。

いきなりzsh入門

漢のzsh | コラム | 開発・SE | マイナビニュースを参考にさせて頂きました。

zshを使うための環境設定をしよう!

初めて Mac で zsh を使う人のためのチュートリアル - mollifier delta blog
環境設定、ファイルのダウンロードは、このサイトを参考にしてください。
ダウンロードするファイルは、[少し凝った zshrc] をダウンロードしましょう。いきなり快適ですよ。

zshを入れ終わりましたか?
今回は、自分が一から作る技術がないので、既に設定してあるファイルの説明をしたいと思います。
いつかは自分で設定したファイルを公開できたら良いなと思っています。
漢のzsh | コラム | 開発・SE | マイナビニュースとは違うファイルですが、ほとんど似たようなものになっています。説明は、初めて Mac で zsh を使う人のためのチュートリアル - mollifier delta blogで手に入れた[少し凝った zshrc]を用います。

何が快適なの?

ただ単に自分が便利だと思ったものを羅列したいと思います。(自分が忘れてしまうので、メモみたいなものだったり...)

Emacsキーバインド

f:id:hagetak:20130830020124p:plain
f:id:hagetak:20130830020303p:plain
出典:漢のzsh (4) コマンド履歴の検索~EmacsとVi、どっちも設定できるぜzsh | マイナビニュース

自分は、Emacsvimのどちらか悩んでいる最中だったので、これを機にemacsを使おうかと思います。
もちろん、viキーバインドもあります。

まずは、どのように設定してあるのか確認しましょう。

cat .zshrc | grep bindkey

で調べましょう。
ダウンロードした方は、

bindkey -e
<<となっているはずです。
これを

bindkey -v

に変更するとviキーバインドになります。
viキーバインドの詳細は、漢のzsh (4) コマンド履歴の検索~EmacsとVi、どっちも設定できるぜzsh | マイナビニュースを参考にして下さい。

ちなみに、このとき grep の使い方が分かるようになりました。
grep 便利ですね!

補完設定

autoload -U compinit
compinit

この部分により、コマンドの補完が設定されます。
確認したい方は、

cat .zshrc | grep autoload

で調べてみましょう。他に何か設定しているかな?

ls -[tab]

を押すと入力するとオプションが補完されます。ちょっと困ったときに使えますね。

  • 1 -- single column output
  • A -- list all except . and ..
  • B -- print octal escapes for control characters

~~~~~

auto_cd

auto_cd はcdを入れ忘れても自動でcdを補完してくれます。

setopt auto_cd

この部分により、auto_cdが設定されます。
確認したい方は、

cat .zshrc | grep setopt

で調べてみましょう。他に設定しているものも調べてみましょう。

auto_pushd

auto_pushd は、移動したディレクトリを記録してくれます。
深いディレクトリまで行ったとき間違えて cd を押してしまったら、home に戻ってしまいますよね。
(これも初めて知った。 cd を押すと、[home] に戻ります)
こんなときに使えます。使い方は、

cd -[tab]

0 -- /Users/hagetak/Desktop
1 -- /Users/hagetak/Dropbox

0 -- が表示され、番号を入力すれば、前のディレクトリに戻ることが出来ます。
ちなみに、前は、ホームディレクトリ名が本名(フルネーム)で格好悪かったので、hagetak に変更しました。
これの変更の仕方も後で記事を書きたいと思います。
格好良いハッカーって、falcon や hornet(ブラッディーマンデイ) とかコードネーム?みたいのありますよね。
自分もいつか、hagetak でハッキングしたいもんです笑(厨二病を患っています)

correct

これは、間違えても自動で補完してくれるものです。
例えば,

la

と入力した場合、普通はそんなコマンド無いよ!ってなりますね?

setopt correct

を設定しておくと、

ls -a

扱いになります!
地味に便利になりますね。

先方予測

漢のzsh (6) 漢はだまって先方予測 - あなたはこの機能使いこなせるか | マイナビニュースでは、ごり押しされていますが、自分は設定しません。
なぜかというと、

% hoge

と入力したいときに、

% HOME =

の様に勝手に予測をし、適当にエンターを押してしまった場合、HOMEが変わってしまうからです。
一度これをやってしまい、/users/hagetak/ に戻しました。

まぁ、使える方には使えると思うので、設定方法を書きます
.zshrcに、

autoload predict-on
predict-on

を追加しましょう。
ダウンロードした方は入っていないので、使いたい人は入力しましょう。

その他

  • リダイレクト関係

漢のzsh (7) ひと味違うzshのリダイレクト | マイナビニュース

  • 算術演算

漢のzsh (8) これは既にシェルを超えている…… zshの算術演算 | マイナビニュース

他にもいろいろありますが、自分のスキル不足で理解できません。
エイリアスってなんなの...って感じです。
これも自分なりにまとめたものを後日記事にしたいと思います。
まだまだmac、プログラミング、ターミナル(zsh)を理解できていません。

とりあえずこれは自分のメモみたいなものなので、いつか完全に理解できたとき新しく書きたいですね。

zsh入門してみたら便利すぎて鼻息が抑えられない - はてブロ@ama-ch
も参考にさせて頂きました。メモ程度ならこういう書き方をした方が良いのかな。
説明とメモを混ぜているから分かりにくいよね、僕の記事...