astamuse Lab

astamuse Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今を発信しています。

ターミナルなんて怖くない

ご挨拶

どうもお久しぶりです、元バンドマンの新米エンジニアgucciです。
未経験からエンジニアに転職して早1年が経ちました。
「まだ1年目なもんで、てへ」というのが通用しないと思うと、気を引き締めていかないとなと思う今日この頃です。
あっという間の1年であり、忘れられない1年となりました。
2年目はエンジニアとしても人間としても、もっともっと成長していきたく思います。

ターゲット

さて、綺麗事はさておき今回のブログのターゲットは、
まだプログラミングを初めて日が浅い新米エンジニアの方
や、
これからエンジニアを目指そうという未来のエンジニアの方
でございます。
もう熟練のエンジニアの皆さんからすると物足りなかったり、もっといいのがあるよ!といった内容があるかもしれませんがご容赦くださいませ。

今回のブログの内容はタイトルにもありますように「ターミナルなんて怖くない」です。
なぜこのような内容にしたのかというのも、
私がプログラミングスクールでWebアプリケーション開発の基礎を学び、未経験エンジニアとしてこの業界に入って一番感じたことは、 ターミナルめっちゃ触る。ということです。 (windowsでいうコマンドプロンプト)

f:id:astamuse:20190213143117j:plain アプリケーションを開発するのに、Java、Scala、Ruby、PHP、Goなどなど…数々のプログラミング言語がありますが、共通して言えることはコンピュータを操作するのにターミナルでのコマンド操作が必要不可欠だということです。(もちろん、働いている環境により様々なやり方があると思いますので、あまり使わない方もいるかと思います)

「ターミナルで何ができるの?」というと、

  • ファイル・ディレクトリ(いわゆるフォルダ)を作る
  • ファイルの中を編集する
  • コピー・削除する
  • ログファイルから欲しい言葉を検索する

などなど、パソコンに対する命令はほとんどターミナルでできるのです。

「ターミナルなんか使わなくてもFinder(エクスプローラ)でいいじゃない」という意見もわかります。
わかりますが、

  • ターミナルでしか行えない操作がある
  • ターミナルの方が圧倒的に速い(場合がある)
  • FinderやエクスプローラといったGUIがない環境がある

などなど、ターミナルとは必ず向き合わないと行けない日がきます。
その反面、まだプログラミングの経験が浅い段階だとターミナルの使い方がわからなかったり、うまく使えないでイライラしてしまい「ターミナルなんて嫌い!」と感じる方もいるかもしれません。
私も最初の頃はターミナル操作が全然わからず苦手でしたが、今ではドヤ顔でコマンドを叩いております。(大したことはしていませんが)
なのでまずは少しずつコマンドを叩いてみて、コンピュータに命令を出してみましょう。
ターミナルなんて怖くないんだ、ということをまずは知っていきましょう。

今回は、
「知っていて当たり前!これだけは抑えておこうターミナルコマンド!」をご紹介します。
コマンドと合わせて、そのコマンドがどういった意味を持つのか補足をします。
英語の意味と合わせて覚えるだけで、訳の分からないコマンドがグッと身近になります。
さらに、知っておくと便利なオプションや使い方もプラスαでご紹介します。

それでは参りましょう。

よく使うコマンドたち編

cd

cd 移動先のパス

ディレクトリ間を移動する。「Change Directory」の略。

cd ..
 一つ上のディレクトリに移動。
cd -
 一つ前にいたディレクトリに移動。

ls

ls

ファイルやディレクトリを表示する。「LiSt」の略。

ls -a
 隠しファイルも含めすべて表示。「all」の略。
ls -l
 ファイルの詳細も表示。「long」の略。
ls -1
 縦一列に表示。「1列」の1が覚えやすい。

pwd

pwd

現在の作業ディレクトリのパスを表示。「Print Working Directory」の略。

cp / mv / rm / mkdir

cp コピーする元 コピーする先

ファイルやディレクトリをコピーする。「CoPy」の略。

cp -r コピー元ディレクトリ コピー先ディレクトリ
 ディレクトリごとコピーする。「recursive(再帰的)」の略。←他のコマンドでもよく使うオプション。

mv 移動する元(移動するファイル名) 移動する先
mv 変更前の名前 変更後の名前

ファイルやディレクトリを移動する。また、名前を変更するのにも使う。 「MoVe」の略。

mv -v 移動する元(移動するファイル名) 移動する先
 移動の詳細を表示。「verbose」の略。←他のコマンドでもよく使うオプション。

rm ファイル名

ファイルやディレクトリを削除する。「ReMove」の略。

rm *
 全てのファイルを削除する。*はワイルドカードで、色々な場面で使う。
rm -f
 警告メッセージを表示せずに削除する。「force(強制する)」の略。フォースの力。

mkdir

ディレクトリを作成する。「MaKe DIRectory」の略。
rmdirというディレクトリを削除するコマンドもある。

less/cat

less ファイル名

ファイルの内容を一画面ずつ表示する。moreの対義語。(moreというコマンドが存在するがあまり使わない)
lessでファイルの内容を表示後
 「/」キーワード前方検索。
 「?」キーワード後方検索。
 「q」を入力して終了。

cat ファイル名

ファイルの内容を最後まで続けて表示。「conCATenate(連結する)」 の略。

cat -n
 行番号をつけて表示。「number」の略。

tail ファイル名

最終行から数行を表示する。標準では10行。そのまま「尾」という意味。

tail -f ファイル名
 ファイルの追記を監視し、追記分を表示する。「follow」の略。
 ログの監視をしている際などによく使用する。

diff

diff ファイルA ファイルB

ファイル同士の差分を表示する。「difference」の略。

diff -y ファイルA ファイルB
 比較した結果を横並びで表示。「side-by-side形式」の略。
 「横(yoko)」の「y」が覚えやすい。

grep

grep 検索正規表現 ファイル名

ファイル中の文字列に対して正規表現を使って検索して表示する。「Global Regular Expression Print」の略。

grep -i 検索正規表現 ファイル名
 大文字と小文字を区別せず検索する。「ignore-case」の略。

コマンドの標準出力 | grep 検索正規表現
 このように「|(パイプ)」でつないで、コマンドの実行結果に対して検索をかけて抽出する使い方がとても便利。

scp

scp コピーするファイル名 コピー先のリモートのホスト:パス名
scp コピーするリモートのホスト:パス名/ファイル名 コピー先のローカルパス名

ローカルとリモートサーバ間でファイルの転送を行う。「Secure CoPy」の略。

scp -r コピー元 コピー先
 ディレクトリごとコピーする。「recursive(再帰的)」の略。(再登場)

サーバでよく使う編

du / df

du

ファイルのディスク使用量を推定する。「Disk Usage」の略。

df

ファイルシステムのディスク容量の使用状況を表示する。「Disk Free」の略。

-hオプション
 単位を見やすい形にして表示してくれる。「human-readable」の略。

ps

ps

現在動作しているプロセスを表示する。「Process Status」の略。

ps aux
 よく使うauxオプションは、aとuとxの合わせ技。
 a 端末を持つ全てのプロセスを表示
 u ユーザー名を表示
 x 端末を持たない全てのプロセスを表示

free

free

macにはないLinuxコマンド。現在のメモリ使用量を確認。Swapの使用状況などを確認することができる。

free -m
 メガバイト単位で表示。

top

top

現在のシステム全体の負荷情報を表示する。
LinuxだとCPU使用率順で出るが、macだと表示の仕方が異なる。

vmstat

vmstat

macにはないLinuxコマンド。メモリやCPUの情報だけでなく、スワップやディスクI/Oの情報を表示する。 「Virtual Memory STATistics」の略。

vmstat 1
 1秒ごとに更新して表示。

ちょっとしたお助けコマンド編

man

man コマンド名

マニュアルを表示する。「MANual」の略。
ここまで色々と書いてきましたが、manコマンドで叩けば全て乗っている。 コマンドの使い方やオプションについて調べたい時に便利。

which

which コマンド名

コマンドを探し出し、フルパスで表示する。
使いたいコマンドがマシンに入っているか調べたい時に便利。

ちょい足しプラスα編

タブ補完

とにかく便利なタブ補完。
ファイル名やディレクトリ名を途中まで打って、キーボードの「Tab」キーを押すと、該当する名前を自動で入力補完してくれる。超絶便利。 同じようなファイル名のものが複数あった場合は、名称が同じ部分まで補完。

ログアウト

ctrl + d

サーバに入っている時などにlogoutexitと叩くとサーバから出ることができるが、このショートカットキーを叩くと同様の操作が行える。

強制終了

ctrl + c

なにかプログラムやコマンドを実行している時に、強制的に終了してくれるのがこのショートカットキー。

クリア

ctrl + l

clearコマンドという画面をクリアしてくれるコマンドがあるが、このショートカットキーでもクリアしてくれる。何かと画面に色々出力していて、見にくくなってしまっても一発で綺麗に。

過去検索

ctrl + r

過去に叩いたコマンドを探したくなることがよくある。
historyというコマンドで履歴を表示することもできるが、もっとお便利なのがこのコマンド。
ctrl + rを叩くと表示が「(reverse-i-search)...」と変わる。
ここで文字を入力していくと、入力された文字を含む過去に叩いたコマンドが右側に出てくる。
表示されるものが欲しいものと違ったら、再びctrl + rを叩けばどんどん遡ってくれる。

最後に

以上で今回のご紹介はおしまいです。
コマンドにはたくさんのオプションがあって、色々な組み合わせ方ができるとても便利なものです。
少しずつ慣れていくことで、少しずつターミナルと仲良くなっていきましょう。
他にもたくさんのまとめブログや記事があると思いますので、色々と見てみることをおすすめします。
このブログを読んでいただいて、
「このコマンドはこんな意味だったのか〜」「こんなお便利なものがあったのね」
となり、ターミナルと仲良くなる入り口になれたなら幸いです。

アスタミューゼでは、エンジニア・デザイナーを募集中です。
ご興味のある方は下記バナーからチェックして頂き、ぜひぜひご応募ください!お待ちしています。
ではまた。

Copyright © astamuse company, ltd. all rights reserved.