ターミナルの基本と扱い方
こんにちは、シニアソフトエンジニアのりどれです。このポッドキャストは、IT業界のいろんな話やリアルをお届けします。
今回はですね、黒いターミナルの慣れ方、どんどん使っていこうという話をしていこうと思います。
黒いターミナル、初めて見た時、ちょっとしませんでしたが、私は新卒で会社に入った時に先輩がですね、なんか黒い画面に
てこてこてかてこ文字を入れている姿を見て、え?マジで全然わかんないんだけど、え?これ俺、仕事としてやるの?って思った記憶があります。
それから半年後ですね、Linuxの検証を受けた私は、もう一人前のターミナルを叩けるエンジニアになっていました。
別にエンジニアとしては全然一人前じゃないんですけど、黒いターミナルってね、特に問題なく操作ができるという感じではありました。
黒いターミナルですね、まあ色は何でもいいんですけど、結構苦手意識ある方もいるんじゃないかなと思っています。
特にですね、インフラとかバックエンドみたいな職業の場合だと、結構慣れている方も多いかなと思うんですけども、クライアント側だったりモバイル側だったりすると、
なかなかこうID以外の操作ってのをあまりしなかったりするケースもあったりするので、黒い画面そんなに触んないっていうケースもあるかなと思います。
ただですね、こう生産性とか効率っていう観点だとGUIだったりIDEを操作するよりもめちゃくちゃ効率的というか効果的というか、そういうものもあるので、ぜひちょっとね触れるようになって欲しいなという感じです。
でですね、これどうやって慣れていくかって話なんですけども、これはねもう一個です。とにかく触ってください。
はい、今普段IDEでやっているような操作をですね、実際にターミナル上でやって、そこで操作に慣れるということになります。
実際にですね、いろんなリラックスのコマンドだったり、Gitで管理されているものであればGitのコマンドを叩くっていうのが結構使い方としては多いかなと思うので、
まずはですね、単純にLSとかCDとかPWDとかそういうコマンドから慣れた上で、GitだったらGit Add、Git Commit、Git Push、Git Pull、Git Merge、みたいなコマンドを慣れていくといいかなと思います。
もちろんですね、IDEの方が便利に使えるようなものもあります。実際私もGit DIFFとかプールリークのレビューするときとかは、IDEだったりGitHubのプレビュー画面使ったりするので全然問題ないですし、
でもブランチの作成とかもコマンドでやっちゃいますね。 GCBっていうABIAS用意してて、それでやっちゃうんで。
でですね、ターミナルの何がいいかっていうと、いろいろカスタマイズができることですね。特にですね、ABIASっていうシェルの機能かな?バッシュの機能?バッシュじゃないか、シェルの機能がありまして、
これ使うとね、長く複雑なコマンドを短くすることができたりとかですね。そういうのがあるので、本当に私はいろんな自分なりのコマンドみたいなものをいっぱい用意しています。
これがあるとないとではね、だいぶ効率が違いますね。そしてですね、ターミナルはですね、結構改造というか、いろいろこだわる人が多いです。
まずは何のシェルを使うのか。結構標準ではですね、バッシュが入っていることが多いんですけども、Macの場合はZシェルですかね。
今Zシェルという話を出したようにですね、どのシェルを使うかっていうので、結構その使いやすさというかできることの幅が広がったりします。
なので慣れてる人というか、ちょっといろいろ触ってみてもっといろんなことをしたいなと思う人は、バッシュやZシェルからフィッシュと呼ばれる、
一般的には最初から入っているものではないシェルを入れる人もいますし、あとはZシェルを使っていたとしても、
Zシェルにどんどん拡張プラグインを入れていって改造していくみたいなこともあります。これね結構沼なんですよね。
やればやるほど結構便利になって、自分なりのものになっていくので、プラグイン入れて、めっちゃ使いやすい。
例えばですね、Zシェルにオートサジェッションというプラグインがあるんですけども、こちら何をやってくれるかと言うとですね、
コマンドを入力していくと、なんかねサジェッションしてくれるんですよ。多分こういうのをしたいんだろうなみたいな。
ちょっと最近はAIがあるんで、AI系のツールでそういうのを入れると似たようなことできることがあるんですけれども、
当時はですね、自分が入力した内容を先打ちで出してくれるんで、そうするとタブを押すとですね、
それをパッと保管してくれて、めっちゃ楽にできるとかですね。例えばGitとかも、コンプレッションみたいなものを入れないといけなかったりすることもあるんですけども、
Gitでコマンドを打ってて、例えばGitコミットしたいよーってなった時とか、オプションがいろいろあったりするじゃないですか。
そういう時とかもですね、ターメル上で、このコマンドはこういう意味だよみたいなことを出してくれたりとか、そういうのをお勧めしてくれたりっていうのを
自分で拡張していくとできるようになるので、めっちゃ便利です。またですね、ヒストリーっていう機能があります。
これは標準の機能なんですけども、自分が過去打ったコマンドといったものがヒストリーに残っています。
これはですね、拡張する機能とかプラグインもあります。私は、何て読むんだろうな、
ATUIL OATINGかなっていうものを愛用してまして、これ何かというと、シェルのヒストリーを拡張してくれるツールというかサービスになっています。
ちゃんと本格的には使ってないんですけども、本格的に使うと端末感でヒストリーを共有することも確かできたような気がします。
何が嬉しいかというとですね、結構ヒストリーに今まで自分が打ったコマンドをたくさん貯めていくとですね、
次同じことをやった場合に、やりたくなった場合に、ヒストリーから検索してそれを呼び出すだけでパッと同じことができるようにするんですね。
なので結構、界隈の中ではヒストリーを育てるっていうカルチャーもあったりします。
まあこれ何か言いたいかというと、今までいろんなコマンドを打ってきたので、ヒストリーがどんどん長くなっていくんですね。
そうすると何か新しいことをしたかったとしても、過去のヒストリーと同じようなこと、もしくは似たようなコマンドを捧げればいいので、
ターミナルの活用方法
めちゃくちゃ長いコマンドとかを打ったとしても、それをパッと出せるという感じですね。
なのでですね、このヒストリーと呼ばれるものを新しいPCとかに移行すると、例えば持っていけないみたいなことになると、だいぶ生産性が落ちちゃうんですよね。
そういうわけで、ヒストリーをうまく端末間で同期するとか、端末移行のタイミングで育てたヒストリーを持っていく。
バッシュだったらバッシュヒストリーとか、ジェットセルだったらジェットセルヒストリーみたいなものがあるんですけども、
そういうファイルに入っているので、そのファイルを持っていくみたいなこともやったりします。
あとはですね、他の回でも説明したんですけども、ドットファイルというものを使ったりします。
これは何かターミナルというか、PC移行するタイミングで設定を簡単に持っていけるというか、インストールするための方法の一つなんですけども、
結構ターミナルでいろいろ操作するので、ターミナルに入れているいろんな設定とかをドットファイルに移動しておりで、
新しいPCが来たタイミングでドットファイルをインストールすることで、同じようなターミナルの環境が作れるということになります。
あとちょっと大事なんですけども、何でターミナルを開くかっていうのも大事になります。
例えば、Windowsの場合だと、テラタームっていうものが多分一番有名だと思いますし、
Macだと標準でターミナルっていうのが入っていると思いますけど、iTermっていったものがよく使われますし、
それ以外にも最近はAIが搭載されたようなものであったり、Ghostyと呼ばれるようなテラフォームの創業者の方が作ってたのかな。
いろんなターミナルがあって、結構人によってですね、使うものがバチバチだったりします。
使いやすいとか、いろんな機能あるとか、そういうものもあったりするので、それを選ぶっていうのも一個楽しみだったりしますね。
特にですね、私はキャリアの最初の方にテラフォームをめっちゃ使ってたんですけど、
それは会社の方針もあって使ってたんですけど、めっちゃ便利だなと思うのがあって、
テラフォームのマクロみたいなものがあったんですね。
これはですね、何ができるかというと、そのターミナルを開いてから閉じるまで、どういうことをさせたいかっていうのをマクロとして登録できるんですよ。
例えば、サーバーがあって、そのサーバーにSSHでログインして、ログインした後に特定のコマンドを叩いて、
その結果をダウンロードして、SSHに向けて閉じるみたいな、
例えばサーバーに対して情報収集をするような定常的な動作をやりたいってなった時に、そういうマクロを書くんですよ。
1台だったら最悪手動であってもいいと思うんですけど、
これが例えば10台、20台、30台だったらどうですか。大変じゃないですか。
ということでですね、こういうテラフォームじゃない、テラタームのマクロを書いて、
このマクロを例えば30台分一遍に起動すると、一気にですね、ターミナルがバーンって30個開いて、
そこから30台のサーバーに勝手にSSHが始まり、データがダウンロードされるみたいなこともできるわけですね。
そんな感じでですね、複数台のマシンを操作するとか、そういう時にもめちゃくちゃ効果を発揮します。
また、ターミナルによってはですね、ブロードキャストみたいなこともできまして、どういうことかというと、
ターミナル4個開いて、ブロードキャストみたいなモードをオンにするとですね、
4端末に対して同じコマンドを一気に投げるみたいなこともできます。
これはさっきお伝えしたような、ターミナルのマクロみたいなものと、
その会話に近いような気がするんですけど、例えば4台に同じ命令が投げられるので、
1回例えば4台別々のサーバーにSSHした後に、そこから時は同じことをやりたいよみたいな時はですね、
ブロードキャストみたいな機能を使って、4台に対してペコペコってコマンドを打っていって、
作業を4回やらないといけないところを1回に押さえるみたいなこともできたりします。
はい、という感じでですね、GUIでいろいろできる場合もあるんですけども、
ターミナルだとですね、めっちゃそれが早く簡単にできますし、結構拡張性にも富んでいると。
これいう拡張性っていうのはターミナル自体の拡張性もそうなんですけども、
自分の使い方のアイディア一つで仕事を早くできるという意味での拡張性もありますので、
ぜひですね、まず黒い画面、最初は取ってきづらいと思うんですけども、ぜひですね、チャレンジしてみてください。
このポッドキャストはハッシュタグライキーで皆様からの感想やコメント募集しております。
またチャンネルの概要欄にありますGoogleフォームのリンクからもご投稿可能です。
ありがとうございました。