【初学者用】Linuxを基礎から徹底解説 #初心者
发布时间:2026-08-30 | 浏览:2
Go to list of users who liked
Share on X(Twitter)
Share on Facebook
Add to Hatena Bookmark
Deleted articles cannot be recovered.
Draft of this article would be also deleted.
Are you sure you want to delete this article?
More than 3 years have passed since last update.
本記事を閲覧いただきありがとうございます。 都内でSEをしておりますhirokiです。
今回は 「Linuxコマンド」 に関して、解説していけたらと思います。 Linuxに関しては、Macの 「ターミナル」(黒い画面) にてcdコマンドを叩いたくらいで、ほとんど使ったことがありません。ほぼ初学者です。 加えて、エンジニアになってから マウスを使わないコマンド操作(CUI) から徹底的に逃げてきた人間なので、「Linuxコマンド」はちょくちょく仕事で登場していたものの、その場しのぎの対応をしていました。 ただエンジニアになって1年以上が経過し、今後のキャリアを考えると、さすがにヤバいなと思い(遅い)、目を背けていた現実に向き合い、 0からLinuxを体系的に学ぼう! と思い立ちました。
0からLinuxを学び、記事作成を通じてLinuxを体系的に理解できるようにする
自身と同じようにLinuxコマンドに苦手意識を持っている方々へ、 実務に役立つ 情報を提供する
ことを軸にして記事を書き上げました。
どうぞ最後まで閲覧いただけると嬉しいです。
結論から述べると Linuxとは、コンピューターにあれこれ 指示を出して動かすOSの1つ ことを言います。
順を追って説明していきます。 OS(オペレーティングシステム)というのは、 PCを動かすために必要不可欠な基本ソフト のことです。 例えば、私たちがPCを使うときに、マウスやキーボードで入力したりファイルの保存やコピーをしたりする操作ができるのはOSがあるおかげです。 言い換えると、 OSが入っていないPCはただの箱 と化してしまいます。
そんなOSにも種類があり 有名なものだと WindowsOS や macOS 、 最近だとスマホの Android や iOS(iPhone) もそれに当たります。 このOSはよくPC/スマホの 魂 や 人格 に例えられ、機器の中身のOSが異なると、操作等も異なってきます。 普段iPhoneを使用している人がAndroidのスマホを使うと、「なんか慣れない操作で使いにくいな、、、」と思うのは、 中身のOSが異なっていて、操作性も異なるからということになります。 適切な例えか定かではありませんが、下記のように同じ身体の空の器でも、中に入る魂が異なれば、性格が変わるといった感じでしょうか。( 遊⚫︎王をアニメで見た世代はイメージしやすいかもしれないですね。※ 1 )
Linuxはそんな数あるOSの中の1つです。 では一体どんな特徴(性格)のOSなのか次で説明していきます
まとめ Linuxはその種類によってPCの操作性/動作を決める OS の1つ
下記にLinuxの特徴まとめました。
特徴1 誰でも無料で使えるオープンソース
特徴2 型の古いPCなど、機器問わず動作させることが可能
特徴3 上記より、サーバーに組み込まれて使用されることが多い
特徴4 操作は基本的にCUI(コマンド)操作
特徴5 覚えるコマンドやコマンド同士の組み合わせが多く学習コストは高い
特徴6 枯れている技術※ 2 なので、一度身につけてしまえば、半永久的に使うことができる
上記を踏まえて、 習得までは時間はかかるものの、 Webエンジニア として今後キャリアを確立していくならば習得は必須かと思います。 理由として、 サーバー の90%以上にLinuxが組み込まれており、Linuxコマンドがわかっていないとこちらを操作することに支障が生じるからです。 Webエンジニアが サーバー を操作できないというのは話にならないですよね。 「Linuxとか別にやらんで良くね、、、、?」と思ってる方もいるかもしれませんが 結局は私のように後で学習せざる得ない状況になるかと思います。
Webアプリにおけるサーバーの役割に関しては下記参考いただければと思います。
一方で、Linuxは過去に多く改良がなされ完成されている技術なので今後仕様変更等があることは考えにくいと言えます。 なので、一度身につけてしまえば、半永久的に使用できることを考えると、一度向き合って学習して習得しない手はないと思います!
ただコマンド数、コマンド同士の組み合わせも多く、学習コストがかかるので時間と労力が必要です。 しかし、このような 地味で面倒で、やればできるけど、みんなやりたがらない ことは、やればその分だけライバルと差をつけることができます。 この後の章で、 Linuxコマンド について解説していきますので、一緒に頑張っていきましょう!
まとめ LinuxはWebエンジニアであるなら習得しないと詰む 学習コストは高いが、一度習得すると、半永久的に使える技術
Linuxコマンドを解説していく前に、前提知識に関して解説させて下さい。 ここで解説する前提知識は以下2つ
になります。順番に解説していきます。
Linuxにおいて ディレクトリ とは、 ファイルを保存する場所 のことを言います。 WindowsやMacでいう フォルダ がこれに当たります。 この ディレクトリ は、ファイル(アプリや文書、音楽、動画、画像等のデータ)を入れておく 入れ物 のようなものだと考えて下さい。 この入れ物を用いて、役割ごとにフォルダを分類し管理しやすくするという訳ですね。
Linuxでは、1つのディレクトリを起点として、木の枝分かれのような形でディレクトリが体系化されています。 これを見た目に倣って ツリー構造 と呼びます。
覚えておきたい特別なディレクトリ
上記で紹介したツリー構造上に配置されてディレクトリですが、それぞれ配置箇所、役割により、いくつか特別なディレクトリがあるので紹介します。
ツリー構造の中で スタート地点 となる唯一無二のディレクトリ。 ツリー(木)が1つのルート(根)を起点にして複数の枝葉へと広がっていくことに例えてこのように命名されています。
ログイン直後に位置しているディレクトリ。 個々の利用者が自由に使用できるディレクトリで、こちらを使って作業することが多いです。
今、現在自分がいるディレクトリ。 Linuxになれないうちは、現在地のディレクトリが分からなくなりがちなので、 初めの内は常にこのカレントディレクトリを確認して、自分の現在地を明確にしておく必要があります。
パスとは スタート起点のディレクトリから、目的地のディレクトリまで辿った道順 のことです。 「path」という英単語が「道・通路」という意味があり、それが命名の由来となっています。
下記図の赤枠のように「/(ルート)」からスタートして、「test」までのパスは 「/home/hiroki/test」 と表すことができます。
絶対パスと相対パスは スタート地点のディレクトリ によって区別されます。
スタートが ルートディレクトリ のパス。 ルートディレクトリは全ディレクトリの起源で唯一無二で1つしかない「絶対的なもの」なので、この名前が付けられてます。 「パスとは」の解説で挙げた 「/home/hiroki/test」 はルートディレクトリをスタート地点にした絶対パスです。 特徴として、曖昧さがなく、正確なのですが、パスが長くなりがちです。 手順書を作成する際など、 正確なパスを指定 したいときは、この絶対パスを使用すると良いでしょう。 普段こちらのパスを使う機会は少ないかと思われます。
スタートが カレントディレクトリ のパス。 カレントディレクトリはその時々、状況によって異なる「相対的なもの」なのでこの名前が付けられています。 「パスとは」での図を用いて説明すると、カレントディレクトリが「hiroki」にある場合、パスは 「hiroki/test」 となります。 特徴として、 簡潔 にパスを表記できますが、一意性がなく曖昧になりがちです。 自分の手元のPCでパッと操作したいときはこの相対パスを用いると良いでしょう。 今後は絶対パスよりもこちらのパスを用いる機会の方が多いでしょう。
前置きが長くなりましたが、ここからついにLinuxコマンドについて解説していきます。 今回は以下、 できる操作ごと に 4つに分類 してコマンドの解説をしていけたらと考えております。
操作1 基本操作(表示、移動、生成、削除、コピー)
操作4 プロセスとジョブの管理
この章ではファイル、ディレクトリの
についてのコマンドを見ていきます。
ファイルとディレクトリをよく混合してしまう人がいますが、改めて確認すると ファイル = アプリや文書、音楽、動画、画像等のデータ ディレクトリ = ファイルを入れるための入れ物 で役割は異なり、操作コマンドも変わってくるので注意して下さい。
pwdコマンドはカレントディレクトリを表示するためのコマンドになっています。 このコマンドによって、自分の 現在地 を知ることができます。 繰り返しになりますが、Linuxに慣れないうちは、現在地のディレクトリが分からなくなりがちです。 初めのうちは、都度このpwdコマンドを打ち込んで、現在地を確認するようにしましょう。
cdコマンドは (Change Directry)の略で、このコマンドを実行すると、 現在いるディレクトリを変更することができます。
lsコマンドは、ファイルやディレクトリの 一覧 を表示するためのコマンドです。
オプション を指定することで、表示形式を変更することが可能になります。 「ディレクトリ名/ファイル名」は任意入力で、入力しない場合は、 カレントディレクトリ のディレクトリやファイルが一覧で展開されます。
下記が基本的 lsコマンド +オプション になります。
また、上記のオプションでファイルの表示形式を変えることはできても ファイル数を絞り込む ことはできません。 そこで 「*」や「?」を用いて ファイルの検索/絞り込み をすることが可能です。 「*」はファイル名、ファイル形式名での絞り込み 「?」はファイル名、ファイル形式名 + 文字数、一部文字で、より詳細な絞り込みが可能です。
catコマンドは テキストファイル中身 を 全て表示 させるコマンドのことです。 lsコマンドはファイル名、ディレクトリ名だけの情報を広く浅く表示するのに対して、 catコマンドは1つファイルの詳細を深く表示するというイメージですね。 ちなみに、テキストファイル以外の 「画像ファイル」や「音声ファイル」など には使用することはできません。
例として「workディレクトリ」に格納されたテキストファイル「test.txt」の中身の文章を ターミナルにてcatコマンドを叩いて表示させたので参考までにご確認ください。
lessコマンドはファイルの中身を スクロール で表示するためのコマンドです。 主に、catコマンドでは表示し切れない 長いファイルの中身 を確認するためのコマンドです。
オプションはほとんど使用することはないので less ファイル名 で覚えておけば問題ありません。
またスクロール表示した画面の閲覧操作方法も載せておきますので合わせてご確認下さい。
findコマンドはファイル、ディレクトリの数が膨大の時に、条件を絞って 検索 し、 目的のファイル、ディレクトリが どこにあるのか探す のに便利なコマンドです。
$ find . -name README.md -print ① 「.」:カレントディレクトリを示し、該当ディレクトリ内に 検索範囲 を絞る ② 「-name README.md」: 検索条件 に[README.mdの名前のもの]を指定。 ③ 「-print」:検索結果をターミナルに出力する 検索アクション
※ 「-print」アクション は、一番よく使われるアクション ※検索アクションを指定しない場合、 自動的に「-print」アクションが適用 される
※シンボリックリンクに関しては 操作2:リンクを張る で説明します。
headコマンドはオプション指定しない場合、ファイルの先頭の10行を表示するコマンドで、 tailコマンドはオプション指定しない場合、ファイルの末尾の10行を表示するコマンドです。 双方とも -nオプション で表示する行数を指定することが可能です。
例として、下記のファイルをターミナルにてhead/tailコマンドを叩いて確認しましょう。
headコマンド(オプション指定無し 先頭10行表示)
headコマンド(オプション -n5にて先頭5行表示)
tailコマンド(オプション指定無し 末尾10行表示)
tailコマンド(オプション -n5にて末尾5行表示)
tail -f(特別なオプション)
ここでtailコマンドの特別なオプションを紹介します。 tailは本来ファイルの末尾を表示するコマンドです。 しかし、ログファイルなどのファイルだと、 終わり部分が随時変わる ことがあります。 そこで、 -f オプション を用いることで、変更/更新を リアルタイムで監視することが可能です。
下記実際にコマンドを叩いた場合の挙動です。参考までにご確認下さい。
touchコマンドは ファイルを新規生成 するためのコマンドです。 コマンドの後にファイル名 複数 指定することで、一度に2つ以上の新規ファイルを作成することが可能です。 また、ファイル名に 既に存在するファイル を指定した場合、上書きされずエラーになるので、安全なコマンドです。
mkdirコマンドは ディレクトリを新規生成 するためのコマンドです。 -p オプション を用いることで、入れ子の深い構造のディレクトリを作成することが可能です。
rmdirは 空の ディレクトリを 削除 するコマンドです。 ディレクトリの中にファイルや子ディレクトリがある場合はエラーになるので、誤削除を防ぐことができます。
rmはファイルやディレクトリを 完全に削除 するコマンドです。 この 完全に削除 というのはゴミ箱などに行かず、一度削除したら、 復元不可 という意味です。 なのでこのコマンドを実行する際は十分に注意して実行して下さい。
オプションを指定しない場合あファイルのみに適用されます。 ディレクトリに適用させたい場合は -r オプションを指定して下さい。 ※rmdirコマンドと異なり 中身がある場合も削除 されてしまうので注意して下さい。
下記のオプションをまとめたので合わせてご確認下さい。
mvコマンドは、 ファイルを移動 、 ファイル名を変更 するコマンドです。
上記で、移動元 移動先がファイルかディレクトリかで挙動が変わってくるので注意して下さい。 下記にまとめたので参考までにご確認下さい。
またオプションで -i を指定することで、 移動や名前の変更を行う前に上書きのメッセージを表示することができます。
cpコマンドは ファイル、ディレクトリをコピー するコマンドです。 ディレクトリ をコピーする場合オプション -r を使用しないとエラーになるので、ご注意ください。
またオプションで -i を指定することで、 コピーを行う前に確認メッセージを表示することができます。
続いて リンクを張る 操作を行うためのコマンド lnコマンド について解説していきます。 コマンドの前に リンクを張る とはどのようなものなのか?下記をご確認下さい。
リンクを張るとは ファイルに別名をつけること 「ショートカット」「お気に入り登録」のようなもの(シンボリックリンク)
どのような時にリンクを張るのか 長いパス名を省略したい時 複数のバージョンを共存させて、最新を区別したい時
例えば、あるファイルが user/userfile/favoritefile/...../file と言った形で、ディレクトリの深い構造にある場合、長いパスを入力しなければならないですし、何より分かりにくいですよね。 この問題を解決するのが、 リンクを張る ということです。 リンクを張ることで、ファイルへのアクセルをより手短に、わかりやすくすることができます。
ハードリンクとシンボリックリンク
リンクの種類に関しては2種類あるのでそれぞれ説明していきます。
1つのファイルの実態に複数の名前を付ける機能
元のファイルを削除しても消えない
全てのハードリンクがなくなった時に削除される
リンク先のパス名が書かれた特殊なファイルで、あくまでリンク先のファイルが実体
シンボリックリンクを残したまま、ファイルの実体を削除したり、ファイルを移動すると、ファイルを参照できなくなる
find -l コマンドにて検索することができる。
ハードリンクがファイルとの繋がりがより強固なもので、 シンボリックリンクがショートカットキーやお気に入り登録なような、手軽なものだと考えていただければと思います。
ファイルの権限管理 とは言い換えると、 ある特定のファイル対して、どのユーザーにどのような操作を許可するのかを管理 することです。 なぜかファイルの権限管理が必要になるかというと Linuxは 複数ユーザーがログインして使うことが前提 になっているので安易にファイル内容を見られたり編集したりできないよう 権限を設定 することが必要になってくるからです。
重要なファイルへのセキュリティ性を高めることで、 システムを 安全に使用・管理 することができるようになります。
それでは、これから権限管理のコマンドについて解説を始めていきたいのですが その前に、必要な前提知識
について解説していきたいと思います。
ここではファイルの オーナーとグループ に関して解説していきます。
オーナー とはファイルの 所有者 のことで、 基本的には ファイルの新規作成者 が自動的にオーナーになります。
グループとは、ファイルの 所有グループ のことで、 ユーザーを特定グループに所属させグループに権限を与えることで 複数ユーザーの権限を一括管理 することが可能になります。
ls -lコマンド にてファイルのオーナーとグループを確認することが可能です。
パーミッションとはファイルやディレクトリを 誰がどのように操作するのか 定めたものです。 先ほど説明した オーナー、グループ に操作権限を与えることを パーミッション というわけですね。 Permisson の元々の意味が 許可、許諾 という意味で、 ファイルの操作権限を許可する ということが命名の由来になっています。
オーナーとグループを ls -lコマンド で確認した際に、 「 -rwxr-xr-x」 という謎の文字列が散見されましたが、こちらが 各ユーザに与えれたパーミッション を示したものです。 下記でその記号に関して説明していきます。
オーナーとグループの箇所 ls -lコマンド で出力したパーミッションを例に読み方を確認していきましょう。
ポイントになるのは 「-」以降の9文字「rwxr-xr-x」を 3つずつ区切って 解読していくことです。
上記のように 「オーナー」「グループ」「その他ユーザー」 の順に配列されており それぞれ「読み取り(r)」「書き込み(w)」「実行(x)」の順で 権限に有無 を示しています。 「r,w,x」の記号が表示 されているものに関しては 権限を持っている 状態で、 「-」が表示 されているものは、 権限がない ことを示しています。
chmodコマンドは ファイルのパーミッションを変更 するためのコマンドです。 コマンドの打ち方は
chmodの後にモードの書式を指定
chmodの後に8進数3桁で指定
なんか難しい言葉が出てきましたが、 文字指定 による変更がモード書式指定 数字指定 による変更が8進数指定 だと考えていただければ大丈夫です。
モード書式verによるchmodコマンド
モード書式による設定は、chmodの後ろに オプションのような記号 を記述することで ファイルのパーミッションを変更することができます
新しい記号 「u,a,o,a」 , 「+,-,=」 が出てきたので、下記ご確認ください。
8進数verによるchmodコマンド
8進数とは「0~7」までの数字を使って表現される数の表記記法のことです。 この8進数による設定は、「r,w,x」のパーミッション記号を 数値 に置き換えたものを chmodの後に組み合わせて指定することで、ファイルの権限変更をすることができます。
パーミッション記号に対応する数値
割振りたい権限(r,w,x)の数値(4,2,1)を、 足し算 したものを 各ユーザー(オーナー、グループ、その他)ごとに割り振れば、権限を変更することができます。
例えば オーナーに「rwx(読み取り、書き込み、実行)」 グループに「r-x(読み取り、実行)」 その他に 「r-x(読み取り、実行」 の権限を与えたい場合は下記のようになります。
それぞれ 与えたい権限の数値を足した合計を対応するユーザー順に並べて記述 すれば、 権限を付与することができます。
chownコマンドは ファイルの所有者や所有グループを変更 するためのコマンドです。
所有グループ を変更したい場合はグループ名の前に 「:」 を記述するようにして下さい。
操作4:プロセスとジョブの管理
ようやく最後のコマンドです。あと一息ですので、頑張りましょう!
コマンドについて解説していく前に、プロセスとジョブとは何かについて解説していきます。
プロセスとは 1つの実行中のプログラム のことを指します。 ターミナルにコマンドを打ち込むと、実行ファイルをメモリに格納して、プログラムを実行します。 プロセスはOS全体で統一して管理され、 システムが自動で実行しているプログラムや、他のユーザーが実行しているコマンドを一括して管理します。
実行中のプログラムがどう動いているのか把握しておかないと、 PCに負荷を掛けてる要因が特定できず、PCやメモリに負荷を掛けてしまい、システム不具合に繋がる可能性があります。 特にバックグラウンドで動いているプログラムは、コマンドを打ち確認しないと見るとができないので、注意する必要があります。
ジョブとは、 まとめて実行される複数のプロセス のことを指します。 ジョブは、ジョブを実行するシェルで管理しています。
上記で解説した、実行中のプロセスを表示するのが psコマンド です。
killコマンドは 実行中のジョブやプロセスを終了させるコマンド のことです。 「Cntrl + c」 と異なり、停止中やバックグラウンドのプロセス・ジョブを終了させることができます。
Linuxに関して、いかがだったでしょうか? Linuxコマンドは数も組み合わせが多くて覚えるのが大変ですが、 まずはここで紹介した基本的コマンドだけでも、実際に触りながら少しずつ慣れていきましょう。 また、私自身もLinuxについては学習中なので、新たな学びがあるたびに都度この記事を更新していけたらと思っていおります。 ここまで閲覧いただきありがとうございました!
※本記事で使用しているイラスト/画像は全てフリー素材を使用しています。
某大人気カードバトル漫画。アニメ化・映画化もされ全世界にファンがいます。主人公が2つの人格を入れ替えながら戦います。 ↩
某大人気カードバトル漫画。アニメ化・映画化もされ全世界にファンがいます。主人公が2つの人格を入れ替えながら戦います。 ↩
長年改良を重ね、技術として完成しているもの。これ以上改良の余地がなく、仕様変更等があることも考えられにくいので、一度身に着けてしまえば、半永久的に使うことができる。 ↩
長年改良を重ね、技術として完成しているもの。これ以上改良の余地がなく、仕様変更等があることも考えられにくいので、一度身に着けてしまえば、半永久的に使うことができる。 ↩
Go to list of users who liked
Go to list of comments
Register as a new user and use Qiita more conveniently
You get articles that match your needs
You can efficiently read back useful information
You can use dark theme
Go to list of users who liked
Deleted articles cannot be recovered.
Draft of this article would be also deleted.
Are you sure you want to delete this article?