はじめに
本記事を閲覧いただきありがとうございます。
都内でSEをしておりますhirokiです。
今回は「Linuxコマンド」
に関して、解説していけたらと思います。
Linuxに関しては、Macの「ターミナル」(黒い画面)
にてcdコマンドを叩いたくらいで、ほとんど使ったことがありません。ほぼ初学者です。
加えて、エンジニアになってからマウスを使わないコマンド操作(CUI)
から徹底的に逃げてきた人間なので、「Linuxコマンド」はちょくちょく仕事で登場していたものの、その場しのぎの対応をしていました。
ただエンジニアになって1年以上が経過し、今後のキャリアを考えると、さすがにヤバいなと思い(遅い)、目を背けていた現実に向き合い、0からLinuxを体系的に学ぼう!
と思い立ちました。
そこで今回は
- 0からLinuxを学び、記事作成を通じて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の特徴
下記に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コマンド
前置きが長くなりましたが、ここからついにLinuxコマンドについて解説していきます。
今回は以下、できる操作ごとに4つに分類
してコマンドの解説をしていけたらと考えております。
操作1
基本操作(表示、移動、生成、削除、コピー)
操作2
リンクを張る
操作3
ファイルの権限管理
操作4
プロセスとジョブの管理
それぞれ紹介していきます。
操作1:基本操作
この章ではファイル、ディレクトリの
- 表示
- 移動
- 生成
- 削除
- コピー
についてのコマンドを見ていきます。
ファイルとディレクトリをよく混合してしまう人がいますが、改めて確認すると
ファイル = アプリや文書、音楽、動画、画像等のデータ
ディレクトリ = ファイルを入れるための入れ物
で役割は異なり、操作コマンドも変わってくるので注意して下さい。
pwdコマンド
pwdコマンドはカレントディレクトリを表示するためのコマンドになっています。
このコマンドによって、自分の現在地
を知ることができます。
繰り返しになりますが、Linuxに慣れないうちは、現在地のディレクトリが分からなくなりがちです。
初めのうちは、都度このpwdコマンドを打ち込んで、現在地を確認するようにしましょう。
$ pwd //カレントディレクトリを表示する
//具体例
$ pwd
/Users/name/file #実行結果
cdコマンド
cdコマンドは (Change Directry)の略で、このコマンドを実行すると、
現在いるディレクトリを変更することができます。
コマンド | 動作 |
---|---|
cd + ディレクトリパス | 移動したいディレクトリに移動 |
cd .. | 1つ上の階層のディレクトリに移動 |
cd ~ | ホームディレクトrに移動 |
cd / | ルートディレクトリに移動 |
lsコマンド
lsコマンドは、ファイルやディレクトリの一覧を表示するためのコマンドです。
$ ls [オプション][ディレクトリ名/ファイル名]
オプションを指定することで、表示形式を変更することが可能になります。
「ディレクトリ名/ファイル名」は任意入力で、入力しない場合は、
カレントディレクトリのディレクトリやファイルが一覧で展開されます。
下記が基本的lsコマンド +オプション
になります。
コマンド | 動作 |
---|---|
ls | カレントディレクトリのフォルダやディレクトリの一覧を表示 |
ls -a | .で始まる隠しファイル等も含めて全てを表示する(a = all) |
ls -l | ファイル権限や更新日時などを長(Long)形式で表示する |
ls -t | ファイルの最新更新日順に並べて表示する(t = time) |
ls -r | 逆順に並べて表示する(r = reverse) |
また、上記のオプションでファイルの表示形式を変えることはできても
ファイル数を絞り込むことはできません。
そこで 「*」や「?」を用いてファイルの検索/絞り込みをすることが可能です。
「*」はファイル名、ファイル形式名での絞り込み
「?」はファイル名、ファイル形式名 + 文字数、一部文字で、より詳細な絞り込みが可能です。
$ ls *.conf //ファイル形式名がconfのものを全て表示
test.conf ntp.conf asound.conf //検索結果
$ ls host.* //ファイル名がhostのものを全て表示
host.rb host.txt host.html //検索結果
$ ls ???.conf //ファイル形式名がconfでかつファイル名が3文字のものを全て表示
cas.conf ntp.conf yum.conf //検索結果
$ ls host.???? //ファイル名がhostでかつファイル形式名が4文字のものを全て表示
cas.conf ntp.deny index.html //検索結果
$ ls host.????w //ファイル名がhostでかつファイル形式名が4文字 + 最後の文字がwのものを表示
host.allow //検索結果
catコマンド
catコマンドはテキストファイル中身を全て表示させるコマンドのことです。
lsコマンドはファイル名、ディレクトリ名だけの情報を広く浅く表示するのに対して、
catコマンドは1つファイルの詳細を深く表示するというイメージですね。
ちなみに、テキストファイル以外の「画像ファイル」や「音声ファイル」など
には使用することはできません。
$ cat [オプション]ファイル名
//オプション
cat -n ファイル名 //行数を表示
例として「workディレクトリ」に格納されたテキストファイル「test.txt」の中身の文章を
ターミナルにてcatコマンドを叩いて表示させたので参考までにご確認ください。
↓
lessコマンド
lessコマンドはファイルの中身をスクロールで表示するためのコマンドです。
主に、catコマンドでは表示し切れない長いファイルの中身を確認するためのコマンドです。
オプションはほとんど使用することはないので
less ファイル名
で覚えておけば問題ありません。
またスクロール表示した画面の閲覧操作方法も載せておきますので合わせてご確認下さい。
コマンド名 | 動作 |
---|---|
f | 1画面下にスクロール |
b | 1画面上にスクロール |
j (↓) | カーソルを下に移動 |
k (↑) | カーソルを上に移動 |
q | スクロール表示を抜ける |
findコマンド
findコマンドはファイル、ディレクトリの数が膨大の時に、条件を絞って検索し、
目的のファイル、ディレクトリがどこにあるのか探すのに便利なコマンドです。
$ find [検索開始場所のパス][検索条件][検索アクション]
// 具体例
$ find . -name README.md -print // findコマンド
./wordpress/.../README.md // 検索結果
$ find . -name README.md -print
① 「.」:カレントディレクトリを示し、該当ディレクトリ内に検索範囲を絞る
② 「-name README.md」:検索条件に[README.mdの名前のもの]を指定。
③ 「-print」:検索結果をターミナルに出力する検索アクション
※「-print」アクションは、一番よく使われるアクション
※検索アクションを指定しない場合、自動的に「-print」アクションが適用される
よく使う検索条件
検索条件 | 2 |
---|---|
find -name | 大文字、小文字を区別してファイル名を検索する |
find -iname | 大文字、小文字を区別せずにファイル名を検索する |
find -type f | 通常のファイルを検索する |
find -type l | シンボリックリンクを検索する |
find -type d | ディレクトリを検索する |
※シンボリックリンクに関しては操作2:リンクを張るで説明します。
head/tailコマンド
headコマンドはオプション指定しない場合、ファイルの先頭の10行を表示するコマンドで、
tailコマンドはオプション指定しない場合、ファイルの末尾の10行を表示するコマンドです。
双方とも -nオプション
で表示する行数を指定することが可能です。
$ head [オプション]ファイル名 //ファイル中身の先頭一部を表示
$ tail [オプション]ファイル名 //ファイル中身の末尾一部を表示
例として、下記のファイルをターミナルにてhead/tailコマンドを叩いて確認しましょう。
headコマンド(オプション -n5にて先頭5行表示)
tailコマンド(オプション指定無し 末尾10行表示)
tailコマンド(オプション -n5にて末尾5行表示)
tail -f(特別なオプション)
ここでtailコマンドの特別なオプションを紹介します。
tailは本来ファイルの末尾を表示するコマンドです。
しかし、ログファイルなどのファイルだと、終わり部分が随時変わることがあります。
そこで、-f オプション
を用いることで、変更/更新をリアルタイムで監視することが可能です。
$ tail -f ファイル名 //ファイル中身の末尾一部を表示し、更新分をリアルタイムで表示
下記実際にコマンドを叩いた場合の挙動です。参考までにご確認下さい。
↓
touchコマンド
touchコマンドはファイルを新規生成するためのコマンドです。
コマンドの後にファイル名複数指定することで、一度に2つ以上の新規ファイルを作成することが可能です。
また、ファイル名に既に存在するファイルを指定した場合、上書きされずエラーになるので、安全なコマンドです。
$ touch <新規ファイル名1> <新規ファイル名2>
//新規ファイル1、新規ファイル2をカレントディレクトリ直下に作成
mkdirコマンド
mkdirコマンドはディレクトリを新規生成するためのコマンドです。
-p オプション
を用いることで、入れ子の深い構造のディレクトリを作成することが可能です。
$ mkdir [オプション] <ディレクトリ名>
//オプション -r
$ mkdir -r test/2023/8
// test/2023/8 →「3階層構造のディレクトリを作成」
rmdirコマンド
rmdirは空のディレクトリを削除するコマンドです。
ディレクトリの中にファイルや子ディレクトリがある場合はエラーになるので、誤削除を防ぐことができます。
$ rmdir <ディレクトリ名> // 空のディレクトリを削除
rmコマンド
rmはファイルやディレクトリを完全に削除するコマンドです。
この 完全に削除というのはゴミ箱などに行かず、一度削除したら、復元不可という意味です。
なのでこのコマンドを実行する際は十分に注意して実行して下さい。
$ rm [オプション] ファイル名 // ファイルを完全に削除
オプションを指定しない場合あファイルのみに適用されます。
ディレクトリに適用させたい場合は -r
オプションを指定して下さい。
※rmdirコマンドと異なり中身がある場合も削除されてしまうので注意して下さい。
下記のオプションをまとめたので合わせてご確認下さい。
オプション | 動作 |
---|---|
rm -r | ディレクトリの削除(中身が有無に関わらず) |
rm -i | ファイルやディレクトリの削除前に確認メッセージ表示 |
rm -f | 指定したファイルを強制削除(警告文表示されない) |
mvコマンド
mvコマンドは、ファイルを移動、ファイル名を変更するコマンドです。
$ move [オプション] <移動元> <移動先>
上記で、移動元 移動先がファイルかディレクトリかで挙動が変わってくるので注意して下さい。
下記にまとめたので参考までにご確認下さい。
コマンド | 移動元 | 移動先 | 動作 |
---|---|---|---|
mv | 既存ファイル名 | 存在しないファイル名 | ファイル名を上書き |
mv | 既存ファイル名 | 既存ファイル名 | ファイルの内容を上書き |
mv | 既存ファイル名 | ディレクトリ名 | ファイルの格納先を変更 |
mv | ディレクトリ名 | ディレクトリ名 | ディレクトリの格納先を変更 |
またオプションで -i
を指定することで、
移動や名前の変更を行う前に上書きのメッセージを表示することができます。
cpコマンド
cpコマンドはファイル、ディレクトリをコピーするコマンドです。
ディレクトリをコピーする場合オプション -r
を使用しないとエラーになるので、ご注意ください。
$ cp [オプション] <コピー元>...<コピー先>
コマンド | コピー元 | コピー先 | 動作 |
---|---|---|---|
cp | 既存ファイル名 | 存在しないファイル名 | ファイルの中身を別名で複製 |
cp | 既存ファイル名 | 既存ファイル名 | ファイルの内容を上書きコピー |
cp | 既存ファイル名 | ディレクトリ名 | コピー先のディレクトリ直下にファイルを複製 |
cp -r | ディレクトリ名 | ディレクトリ名 | ディレクトリを中身のファイル含め、指定したディレクトリ直下に複製 |
またオプションで -i
を指定することで、
コピーを行う前に確認メッセージを表示することができます。
操作2:リンクを張る
続いてリンクを張る操作を行うためのコマンドlnコマンドについて解説していきます。
コマンドの前にリンクを張るとはどのようなものなのか?下記をご確認下さい。
リンクを張るとは
ファイルに別名をつけること
「ショートカット」「お気に入り登録」のようなもの(シンボリックリンク)
どのような時にリンクを張るのか
長いパス名を省略したい時
複数のバージョンを共存させて、最新を区別したい時
例えば、あるファイルが
user/userfile/favoritefile/...../file
と言った形で、ディレクトリの深い構造にある場合、長いパスを入力しなければならないですし、何より分かりにくいですよね。
この問題を解決するのが、リンクを張る
ということです。
リンクを張ることで、ファイルへのアクセルをより手短に、わかりやすくすることができます。
ハードリンクとシンボリックリンク
リンクの種類に関しては2種類あるのでそれぞれ説明していきます。
ハードリンク
- 1つのファイルの実態に複数の名前を付ける機能
- 元のファイルを削除しても消えない
- 全てのハードリンクがなくなった時に削除される
シンボリックリンク
- リンク先のパス名が書かれた特殊なファイルで、あくまでリンク先のファイルが実体
- シンボリックリンクを残したまま、ファイルの実体を削除したり、ファイルを移動すると、ファイルを参照できなくなる
-
find -l
コマンドにて検索することができる。
ハードリンクがファイルとの繋がりがより強固なもので、
シンボリックリンクがショートカットキーやお気に入り登録なような、手軽なものだと考えていただければと思います。
lnコマンド
コマンド | 挙動 |
---|---|
ln リンク元ファイル名 リンク名 | ハードリンクを作成 |
ln -s リンク元ファイル名 リンク名 | シンボリックリンクを作成 |
操作3:ファイルの権限管理
ファイルの権限管理とは言い換えると、
ある特定のファイル対して、どのユーザーにどのような操作を許可するのかを管理
することです。
なぜかファイルの権限管理が必要になるかというと
Linuxは複数ユーザーがログインして使うことが前提
になっているので安易にファイル内容を見られたり編集したりできないよう権限を設定することが必要になってくるからです。
重要なファイルへのセキュリティ性を高めることで、
システムを安全に使用・管理することができるようになります。
それでは、これから権限管理のコマンドについて解説を始めていきたいのですが
その前に、必要な前提知識
- オーナーとグループ
- パーミッション
について解説していきたいと思います。
ファイルのオーナーとグループ
ここではファイルのオーナーとグループに関して解説していきます。
オーナー
とはファイルの所有者のことで、
基本的にはファイルの新規作成者が自動的にオーナーになります。
グループとは、ファイルの所有グループのことで、
ユーザーを特定グループに所属させグループに権限を与えることで複数ユーザーの権限を一括管理することが可能になります。
ls -lコマンド
にてファイルのオーナーとグループを確認することが可能です。
$ ls -l /etc/less
-rwxr-xr-x. 1 root(オーナー) root(グループ) 158111 8月 15 2023 bin/less
//先に記述されるのがオーナーで、後に記述されるのがグループ
//-rwxr-xr-xに関しては後述
パーミッション
パーミッションとはファイルやディレクトリを誰がどのように操作するのか定めたものです。
先ほど説明したオーナー、グループに操作権限を与えることをパーミッションというわけですね。
Permisson
の元々の意味が許可、許諾
という意味で、ファイルの操作権限を許可するということが命名の由来になっています。
オーナーとグループをls -lコマンド
で確認した際に、
「 -rwxr-xr-x」
という謎の文字列が散見されましたが、こちらが各ユーザに与えれたパーミッションを示したものです。
下記でその記号に関して説明していきます。
パーミッションの記号
記号 | 権限 |
---|---|
r | 読み取り(read) |
w | 書き込み(write) |
x | 実行(execute) |
パーミッション記号の読み方
オーナーとグループの箇所ls -lコマンド
で出力したパーミッションを例に読み方を確認していきましょう。
$ ls -l /etc/less
-rwxr-xr-x. 1 root(オーナー) root(グループ) 158111 8月 15 2023 bin/less
ポイントになるのは
「-」以降の9文字「rwxr-xr-x」を3つずつ区切って解読していくことです。
上記のように 「オーナー」「グループ」「その他ユーザー」 の順に配列されており
それぞれ「読み取り(r)」「書き込み(w)」「実行(x)」の順で権限に有無を示しています。
「r,w,x」の記号が表示されているものに関しては権限を持っている状態で、
「-」が表示されているものは、権限がないことを示しています。
chmodコマンド
chmodコマンドはファイルのパーミッションを変更するためのコマンドです。
コマンドの打ち方は
- chmodの後にモードの書式を指定
- chmodの後に8進数3桁で指定
の2通りあります。
なんか難しい言葉が出てきましたが、
文字指定による変更がモード書式指定
数字指定による変更が8進数指定
だと考えていただければ大丈夫です。
モード書式verによるchmodコマンド
モード書式による設定は、chmodの後ろにオプションのような記号を記述することで
ファイルのパーミッションを変更することができます
下記が基本書式になります。
$ chmod [u,g,o,a] [+,-,=] [rwx] <ファイル名>
新しい記号「u,a,o,a」
,「+,-,=」
が出てきたので、下記ご確認ください。
記号 | 内容 |
---|---|
u | 所有者権限 |
g | グループ権限 |
o | その他ユーザーの権限 |
a | 全ユーザーの権限 |
記号 | 内容 |
---|---|
+ | 権限を新規追加 |
- | 権限を削除 |
= | 既存権限を上書き |
$ chmod u+r testfile
//testfileの所有者権限(u)に読み取り権限(r)を追加(+)する
8進数verによるchmodコマンド
8進数とは「0~7」までの数字を使って表現される数の表記記法のことです。
この8進数による設定は、「r,w,x」のパーミッション記号を数値に置き換えたものを
chmodの後に組み合わせて指定することで、ファイルの権限変更をすることができます。
パーミッション記号に対応する数値
パーミッション記号 | 数値 |
---|---|
r(読み取り) | 4 |
w(書き込み) | 2 |
x(実行) | 1 |
数値の組み合わせ方
割振りたい権限(r,w,x)の数値(4,2,1)を、足し算したものを
各ユーザー(オーナー、グループ、その他)ごとに割り振れば、権限を変更することができます。
例えば
オーナーに「rwx(読み取り、書き込み、実行)」
グループに「r-x(読み取り、実行)」
その他に 「r-x(読み取り、実行」
の権限を与えたい場合は下記のようになります。
それぞれ与えたい権限の数値を足した合計を対応するユーザー順に並べて記述
すれば、
権限を付与することができます。
chownコマンド
chownコマンドはファイルの所有者や所有グループを変更するためのコマンドです。
// ファイルの所有者(オーナー)を変更する
$ chown <オプション> [変更先ユーザー名] [ファイル名]
// ファイルの所有グループを変更する
$ chown <オプション> [:変更先グループ名] [ファイル名]
// ファイルの所有者(オーナー)と所有グループを同時に変更する
$ chown <オプション> [変更先ユーザー名][:変更先グループ名][ファイル名]
所有グループを変更したい場合はグループ名の前に「:」
を記述するようにして下さい。
操作4:プロセスとジョブの管理
ようやく最後のコマンドです。あと一息ですので、頑張りましょう!
コマンドについて解説していく前に、プロセスとジョブとは何かについて解説していきます。
プロセスとは
プロセスとは1つの実行中のプログラムのことを指します。
ターミナルにコマンドを打ち込むと、実行ファイルをメモリに格納して、プログラムを実行します。
プロセスはOS全体で統一して管理され、
システムが自動で実行しているプログラムや、他のユーザーが実行しているコマンドを一括して管理します。
実行中のプログラムがどう動いているのか把握しておかないと、
PCに負荷を掛けてる要因が特定できず、PCやメモリに負荷を掛けてしまい、システム不具合に繋がる可能性があります。
特にバックグラウンドで動いているプログラムは、コマンドを打ち確認しないと見るとができないので、注意する必要があります。
ジョブとは
ジョブとは、まとめて実行される複数のプロセスのことを指します。
ジョブは、ジョブを実行するシェルで管理しています。
psコマンド
上記で解説した、実行中のプロセスを表示するのがpsコマンドです。
$ ps [オプション] //実行中のプロセスを表示する
//具体例
$ ps
PID TTY TIME CMD
3935 pts/0 00:00:00 ps
// PID:プロセスID CMD:実行中のコマンド
- よく使うオプション
コマンド | 動作 |
---|---|
aux | 全ユーザーのプロセスを、詳細情報を合わせて表示 |
killコマンド
killコマンドは実行中のジョブやプロセスを終了させるコマンドのことです。
「Cntrl + c」
と異なり、停止中やバックグラウンドのプロセス・ジョブを終了させることができます。
$ kill [オプション] %<ジョブID>
$ kill [オプション]<プロセスID>
//停止中やバックグラウンドで実行中のプロセス・ジョブを停止する。
終わりに
Linuxに関して、いかがだったでしょうか?
Linuxコマンドは数も組み合わせが多くて覚えるのが大変ですが、
まずはここで紹介した基本的コマンドだけでも、実際に触りながら少しずつ慣れていきましょう。
また、私自身もLinuxについては学習中なので、新たな学びがあるたびに都度この記事を更新していけたらと思っていおります。
ここまで閲覧いただきありがとうございました!
参考文献
※本記事で使用しているイラスト/画像は全てフリー素材を使用しています。