はじめに
シェルコマンドは、エンジニアが日常的に利用する重要なツールです。これをマスターすることで効率的に作業を進めることができ、より高度な操作を自動化するスクリプトの作成も可能になります。特に、フロントエンド、バックエンド、インフラエンジニアにとって、Linuxコマンドは避けて通れないスキルです。例えば、サーバー管理やデプロイ作業、ログの解析など、日常的な業務においてシェルコマンドの知識は欠かせません。 本記事では、基本的なファイル操作コマンドを中心に、その使用方法と活用例を解説します。
シェルコマンドの基礎知識
シェルは、ユーザーとオペレーティングシステムの間のインターフェースで、コマンドを受け取って実行する役割を担います。CLI(コマンドラインインターフェース)は、テキストベースでコマンドを入力し、システムを操作するインターフェースです。GUI(グラフィカルユーザーインターフェース)とは異なり、CLIは軽量で強力な操作が可能です。
基本的なコマンドは、以下のように構成されます。
要素 | 説明 |
---|---|
コマンド名 | 実行する操作の名前 |
オプション | コマンドの動作を変更するためのスイッチ |
引数 | 操作の対象となるファイルやディレクトリ |
例として、ls -l /home/user
というコマンドを見てみましょう。
要素 | 説明 |
---|---|
ls | ディレクトリの内容を一覧表示するコマンド名 |
-l | 詳細情報を表示するオプション |
/home/user | 一覧表示の対象となるディレクトリのパス(引数) |
このように、シェルコマンドは非常にシンプルで直感的ですが、使いこなすことで非常に強力なツールとなります。
基本ファイル操作コマンドの解説
ここでは、シェルコマンドの中でも特に基本的なファイル操作に関するコマンドを紹介します。これらのコマンドをマスターすることで、日常的な作業を効率的に行うことができるようになります。各コマンドの使用方法と、実際の開発現場での活用例を具体的に見ていきましょう。
「ls」ディレクトリの内容を表示
ディレクトリ内のファイルやフォルダの一覧を表示するために使用します。例えば、プロジェクトディレクトリ内のファイルを確認するときに便利です。
# カレントディレクトリの内容を表示
ls
# 詳細な情報を表示
ls -l
オプション
オプション | 説明 |
---|---|
-a | 隠しファイルも表示 |
-l | 詳細情報を表示 |
-h | ファイルサイズを人間に読める形式で表示 |
「cd」ディレクトリの移動
異なるディレクトリに移動するために使用します。例えば、ホームディレクトリや特定のプロジェクトフォルダに移動するときに便利です。
# /home/user に移動
cd /home/user
# 一つ上のディレクトリに移動
cd ..
「pwd」現在のディレクトリを表示
現在作業中のディレクトリを確認するために使用します。例えば、深いディレクトリ階層にいるときに現在位置を確認するのに便利です。
# カレントディレクトリのパスを表示
pwd
「mkdir」新しいディレクトリを作成
新しいディレクトリを作成するために使用します。例えば、新しいプロジェクトフォルダを作成するときに便利です。
# newdir という名前のディレクトリを作成
mkdir newdir
# 親ディレクトリも一緒に作成
mkdir -p /path/to/newdir
「touch」新しいファイルを作成
空のファイルを作成するために使用します。例えば、新しい設定ファイルやスクリプトファイルを作成するときに便利です。
# newfile.txt を作成
touch newfile.txt
「rm」ファイルやディレクトリを削除
不要なファイルやディレクトリを削除するために使用します。例えば、古いログファイルやバックアップファイルを削除するときに便利です。
# file.txt を削除
rm file.txt
# ディレクトリを再帰的に削除
rm -r directory
オプション
オプション | 説明 |
---|---|
-r | ディレクトリを再帰的に削除 |
-f | 削除確認のプロンプトを無視 |
rm
コマンドなどははこちらで練習できます。
https://envader.plus/course/1/scenario/1002
「cp」ファイルやディレクトリをコピー
ファイルやディレクトリを別の場所にコピーするために使用します。例えば、設定ファイルをバックアップするときに便利です。
# file1.txt を file2.txt としてコピー
cp file1.txt file2.txt
# ディレクトリを再帰的にコピー
cp -r dir1 dir2
「mv」ファイルやディレクトリを移動または名前変更
ファイルやディレクトリを移動したり、名前を変更するために使用します。例えば、ファイル名を変更したり、ファイルを整理するときに便利です。
# oldname.txt の名前を newname.txt に変更
mv oldname.txt newname.txt
cp
, mv
コマンドはこちらの記事で詳しく解説しています。
https://envader.plus/course/1/scenario/1003
「grep」ファイルの内容を検索
特定の文字列を含む行をファイルから検索するために使用します。例えば、ログファイル内で特定のエラーメッセージを探すときに非常に便利です。
# file.txt 内で search という文字列を検索
grep 'search' file.txt
オプション
オプション | 説明 |
---|---|
-i | 大文字と小文字を区別しない |
-r | ディレクトリを再帰的に検索 |
grep
コマンドの使い方はこちらで詳しく解説しています。
https://envader.plus/course/11/scenario/1017
「cat」ファイルの内容を表示
ファイルの内容を一度に表示するために使用します。例えば、設定ファイルの内容を確認するときに便利です。
# file.txt の内容を表示
cat file.txt
cat
コマンドはこちらで解説しています。
https://envader.plus/course/1/scenario/1001
「less」ファイルの内容をページ単位で表示
長いファイルの内容をページ単位で表示するために使用します。例えば、長いログファイルや設定ファイルを読むときに便利です。
# file.txt の内容をページ単位で表示
less file.txt
「tail」ファイルの最後の部分を表示
ファイルの最後の数行を表示するために使用します。例えば、ログファイルの最新のエントリを確認する際に役立ちます。
# file.txt の最後の10行を表示
tail file.txt
# 表示する行数を指定
tail -n 20 file.txt
オプション
オプション | 説明 |
---|---|
-n | 表示する行数を指定 |
-f | ファイルの末尾を常に表示 |
tail
コマンドはこちらで解説しています。
https://envader.plus/course/11/scenario/1142
実践的な活用方法
複数のコマンドを組み合わせることで、より高度な操作が可能になります。例えば、ls -l | grep 'txt'
で詳細表示しつつ txt
ファイルのみをフィルタリングすることができます。また、シェルスクリプトを使用して、定期的なバックアップやログの解析などの作業を自動化することができます。
まとめ
基本的なファイル操作コマンドの使い方とそのオプションについて学びました。これらのコマンドをマスターすることで、日常の作業を効率化し、システム管理や開発作業の質を向上させることができます。 例えば、ログの解析、ファイルの管理、自動化スクリプトの作成など、幅広いタスクを迅速にこなせるようになります。
シェルコマンドの理解を深めることで、ジュニアエンジニアからミッドレベルエンジニア、さらにはシニアエンジニアへのステップアップを目指すことができます。 次のステップとして、より高度なコマンドやスクリプトの学習を進め、業務の自動化や効率化をさらに追求していくことをお勧めします。これにより、より複雑なプロジェクトに取り組み、チーム内での信頼と評価を高めることができるでしょう。
Linuxのシェルコマンドに興味を持った方は、是非エンベーダーで手を動かして練習してみてください。
https://envader.plus/course/14
参考リンク
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.05.30
Linuxのディストリビューションについて(ubuntu, centos)
こちらはEnvaderの記事になります。
- Linux
2023.10.30
チルダ(~)とは何?ターミナルでのホームディレクトリとその役割
この記事の目的は、チルダの基本的な使用方法と、ターミナルでのその役割をわかりやすく解説することです。
- Linux
2024.07.15
Linuxの認定資格LpicとLinuCどっちを取得すべき?
資格は複数ありますが、中でも代表格がLinuC(リナック)とLPIC(エルピック)です。どちらも評価される資格ですが、どちらに挑戦すればいいかわからない方も多いでしょう。
- Linux