この記事を書くきっかけ
Webアプリケーションを作成してデプロイしてから数ヶ月が経ちました。開発した後も、SSH接続、nginxの起動・停止、gitの操作など、ターミナルでのコマンド操作の機会が何度もありました。Linuxの知識が全くないままターミナルを操作し続けていたのですが、希望通りのコマンド操作をできるようになりたいと思い、Linuxの勉強を始めました。
しかし、実のところ、
「Linuxで具体的に何ができるのかわからない。」
「Linuxやコマンドライン操作を勉強する意味があるのか。」など、
勉強する以前にいろいろ疑問に思うことがありました。
ターミナル操作で何ができるのか、できるとどんないいことがあるのかを理解できれば、勉強する理由になると思います。また、できることがはっきりすれば勉強のモチベーションも上がります。今回は、ターミナルでコマンドラインを使うと何ができて、どんなメリットがあるのかを簡単に調べてみました。
ターミナル初心者の方は是非この記事を読んでみてください。
できること
1. 日常的なファイル操作が便利になる
ファイルをコピーする、移動させる、削除するなどの日常的なファイル操作は、コマンドラインを使用すると簡単に行うことができます。大量のファイルを手作業でコピーしたり、ドラッグ&ドロップをするのは、結構手間がかかります。下記のような簡単なコマンドで、大量のファイルを一気にファイル操作することが可能です。
例:複数のファイルを一度にコピーする
cp *.txt *.html File/
- File/はターゲットディレクトリのパスに置き換えてください
また、シェルスクリプトと呼ばれるファイルプログラムに、実行するコマンドを保存しておけば、後から何度も呼び出して使うこともできます。
シェルスクリプトとは、一連のコマンドを自動で実行するためのファイルです。
2. Webサーバーなどのシステムの設定が可能
ApacheやNginxなどのWebサーバーは、管理するためのGUIアプリケーションが用意されていません。設定や起動をコマンドラインユーザーインターフェース(CUI)のコマンドラインで行う必要があります。使えるようになれば、Webサーバーの管理も簡単にできます。コマンド操作はWebアプリケーション開発には欠かせないスキルなのです。
Apacheの設定ファイルを編集する
sudo nano /etc/apache2/apache2.conf
Nginxを再起動する
sudo systemctl restart nginx
3. サーバーのリモート管理を行うことができる
Webサーバーなどのインターネットサーバーの管理は、別のマシンからネットワークを介してリモート管理することが多いです。その際、SSH接続というリモートログインソフトを使用してサーバーを管理するのが一般的です。SSHでは通信の内容が暗号化されるので安全な操作ができます。
SSHでリモートサーバーに接続する
ssh username@remote_host
4. Pythonなどのプログラム開発に使用できる
macOSにはPythonなどのスクリプト言語の開発実行環境が用意されています。Pythonをマシンにインストールするするだけで、ターミナルを開いてpythonコマンドを入力するだけでpythonを使うことができます。
Pythonスクリプトを実行する
python3 script.py
5. カレンダー、計算、辞書などの機能が使える
カレンダーを表示する
cal
計算
echo $((1 + 1))
辞書
open dict://"森羅万象"
openコマンドで自動的に辞書アプリが起動します
実はできることがたくさんあるんですね。
コマンドラインのメリット
1. 効率性とスピード
コマンドを入力するだけで多くのタスクを迅速に実行できます。特に複数のファイルを一度に処理する場合やバッチ処理を行う場合に非常に効率的です。
2.スクリプトの自動化
コマンドをスクリプトにまとめることで、タスクの自動化が可能になります。これにより、定期的な作業を自動化し、手作業の手間を減らすことができます。
3 .リモート操作
SSHなどを使用してリモートサーバーにアクセスし、コマンドラインから操作することができます。これにより、物理的に離れた場所からでもサーバーの管理や操作が可能です。
4. リソースの少ない環境での利用
GUIに比べてシステムリソースの消費が少ないため、リソースが限られている環境でも効率的に操作できます。
5. 柔軟性
コマンドラインは非常に柔軟で、パイプ (|) を使用してコマンドを連結し、複雑な操作を簡単に実行できます。例えば、ls -l | grep "pattern" のようにコマンドを組み合わせることができます。
6. 学習と知識の向上
コマンドラインの使用を通じて、システムの内部構造や動作についての理解が深まります。これは、トラブルシューティングやシステム管理のスキル向上に役立ちます。
まとめ
Linuxの勉強やコマンド操作を覚えることで、
- Web開発に必要なスキルが身に付く
- ファイル操作を効率的に行うことができる(時短!)
- 実はできることがたくさんある!
ということがわかりました。
自分に関わるところでは、やはりWeb開発でよく使うコマンド(Webサーバーの起動、SSH接続など)と、効率的なファイル操作ためのコマンド(lsコマンドなどの基本コマンド)の習得が目標となりそうです。一度覚えれば、使える場面もたくさんあるので、モチベーションを維持して勉強を続けたいと思います。