みなさんこんにちは。koyakuと申します。
株式会社ルーターに、エンジニアとして入社してから早3ヶ月。今回は、実際の業務を行う中で、使用頻度の高いUnixコマンド(Mac)をご紹介したいと思います。
コマンドは、実際にターミナルで使用してみてその機能を確かめるので一番理解が早いかと思います。既に使用したことがあるものが多いかと思いますが、未使用のものがありましたら、試していただけると幸いです。

初級編

pwd
現在のディレクトリのフルパス表示

cd
ホームディレクトリへ移動

cd ../
階層が1つ上のディレクトリへ移動

vi [ファイル名]
viエディタの起動
※ファイルが存在しない場合は新規でファイルを作成
※viエディタの詳しい操作は、今回割愛させていただきます

less
ファイル内容の表示
※スクロール操作が可能
※ -N を追加することで行数も合わせて表示

clear
ターミナル画面のクリア
※Ctrl [l(エル)]でも同様の挙動
※履歴を消去したわけではないので、上へのスクロールで以前の記録も確認可能
※技術的に必要というよりも、ターミナルでの気持ちの良い作業のために必要なコマンド

権限・パーミッション関連

ls -l(エル)
現在ディレクトリ以下のディレクトリ・ファイルのパーミッション権限の表示

chmod [モード(設定権限)] [対象ディレクトリ・ファイル]
対象ディレクトリ・ファイルのアクセス権限の変更
※また、開発中のエラーメッセージの中で、「permission error」の文言が含まれていた際に、使用することが多いです

chown [所有者にしたいユーザー] [対象のディレクトリ・ファイル]
対象ディレクトリ・ファイルの所有者を設定する

環境情報確認編

top
システム全体の負荷,プロセス, CPU, メモリ, スワップの情報の表示
※-a をつけることで、メモリ使用率順に表示

netstat
ネットワークの状態を確認する

hostname
ホスト名を表示
※プログラム実行の際に,実行環境によって設定を変更したい場合にも活躍します。
※例 hostname -f とすることで、プログラムを実行している環境のホストネームを得ることができます。

file [ファイル名]
対象のファイルの情報を表示
※文字コード,ファイル内容の種類(例:text,html,rubyなど),改行,実行可否

export [変数名(または変数代入式)]
環境変数の設定
※新たなプロジェクトに入る際に、新規で環境変数を設定することがあります

printenv
環境変数とその値を表示
※後ろに調べたい環境変数を追加すると、その変数のみ確認可能
※何も追加しない場合は、全ての環境変数を表示
※環境変数が有効か否かを確認する際に使用します

お役立ち編

サーバー上でよく使うコマンド

nohup [コマンド] &
端末を閉じたりログアウトしたりしても処理を続行させる
※サーバー、仮想環境上で使用することが多いです
※取得するデータ量が多い時、クロール時間が長い時などに活用できます

scp ユーザ名@リモートのホスト名:リモートのファイル ローカルのコピー先
リモートホストからローカルホストへファイルをコピーする
※使用時には、SSH接続が必要となります
※例 : scp user_name@remoteHost:/home/user/rooter.csv /local/path

crontab
定期的にジョブを実行するようスケジュールするcronを設定するコマンド
※ローカル、サーバー環境双方で使用します
※例えば1日1回同時刻にプログラムを実施したい場合などに活用できます
※crontabのオプション
-e : cronを設定する (vimコマンドが開かれます)
-l : 現在設定されているcronを表示する
-r : cronを削除する
-u : ユーザーを指定する

その他

man [コマンド名]
対象のコマンドのマニュアルを表示

zip
ファイルの圧縮

unzip
圧縮ファイルの解凍


コマンドは、読んで学ぶものではなく、実際に自分で使ってみて、遊びながら学ぶものかと思いますので、このブログを見ながら実際にコマンドを叩いて頂けると嬉しいです。