ryoのブログ (original) (raw)

rmdirコマンドはディレクトリを削除するコマンド

削除対象のディレクトリは空である必要があり、また、本コマンドでファイルを削除することはできない

ファイルの所有ユーザー(オーナー)や所有グループを設定するコマンドは「chown(change owner)」

chown <ユーザー>[:<グループ>] <ファイル、ディレクトリ>
※「:」の部分は「.」とすることも可能

オーナーだけでなく所有グループも変更する場合は、ユーザー名に続いて「:」または「.」でグループ名も指定

所有グループのみを変更したい場合は「chgrp(change group)」というコマンドを利用することも可能

chownコマンドによりファイルのオーナーを変更する場合はrootユーザーである必要があります。(グループの変更は、自分が所属しているグループでの変更であれば一般ユーザーでも実行できます。)

OSはプロセスが動作するために、メモリ(プログラムの作業台としての場所)、CPU時間(プログラムの演算を行う)などの資源(リソース)を割り当てます。
さらに、プロセスにはOSが管理するための一意の値としてプロセスID(PID)が割り当てられます。
最初に起動される特別なプロセス「init」または「systemd」にはプロセスID 1が割り当てられ、以降は順番に2、3... と割り当てられていきます。上限(システムによって異なる)まで数を使いきると、再び値の小さいほうから使用します。
init(systemd)プロセスはカーネルの起動後に生成され、他の全てのプロセスを起動するという役目を持っています。また起動後はバックグラウンドで実行され続けます。
このようにバックグラウンドで実行され続けるプロセスはしばしば「デーモン」と呼ばれます。

◎psコマンド
しばしば「aux(または-ef)※」というオプションと一緒に用いられ、システム内で稼働している全プロセスとその状態を確認する際に使用します。

◎pstreeコマンド
プロセスの親子関係をツリー上に表示するコマンドです

◎topコマンド
topコマンドではプロセスの実行状態をリアルタイムで参照できます。CPU使用率やメモリ使用率が高い順に表示できるため、システムに異常が感じられるような場合にシステムに負荷をかけているプロセスが何かを確認することができます。コマンドを終了する際は「q」を入力します。

◎freeコマンド
システムのメモリに関する情報を得ることができます。出力としてはtopコマンドのヘッダ部分とほぼ同じです。

●「/proc」ファイルシステム
プロセスの詳細な状態は、「/proc」ディレクトリ配下に格納されているファイルを参照することで確認することができます。
「/proc」ディレクトリ配下には、起動中のプロセスやカーネルが認識しているハードウェアやシステムリソースなどの情報が収められており、プロセスの情報はディレクトリ「/proc」配下にプロセスIDごとに格納されています。

「/proc」ディレクトリ配下に格納されているファイルの多くはASCIIテキスト形式なので、catコマンドなどで内容が確認できます。

ハードディスク全体のパーティションの情報をパーティションテーブルと呼びます。パーティションテーブルの管理方式は従来のMBR(Master Boot Record)と新しいGPT(GUID Partition Table)の2種類があります。

IDE
ハードディスクを接続する際のインタフェース

「/dev/sda」はSATA接続しているハードディスクに割り当てられるデバイスファイル

バイスファイル
Linuxではハードディスクやマウスなどのデバイス(機器)をファイルとして扱うことができます。これらのデバイスを扱うためのファイル(デバイスファイル)は「/dev」ディレクトリ配下に作成され、個々のデバイスに割り当てられます。
バイスファイルは、ソフトウェア(プログラム)がデバイスドライバを扱う際に利用します。例えば「/dev/sda1」のファイルを操作することによってsda1というデバイス(通常はSATA接続されたハードディスク。)を扱うことができます。

Linuxでは通例的に割り当てられるデバイスファイルとデバイスが決められています。以下はデバイスファイルの一例です。
・/dev/hd* ... IDE接続されたハードディスク(※)
・/dev/sd* ... SATAで接続されたハードディスク。1つめはsda、二つめはsdb... と割り振られる
・/dev/sr0(/dev/cdrom) ... CDまたはDVDドライブ
(※)旧インタフェースです。現在はIDE接続されたHDDであっても、SATA接続と同様に扱われるため「/dev/sda」などと表示されます。
なお、SATAはデバイスを接続するインタフェース規格の一つです。主にハードディスクに利用されています。

MBR
作成できるパーティションは二種類あります。
- 基本(Primary)パーティション(最大4個)
- 拡張(Extended)パーティション(最大1つ)
MBRでは、基本パーティションを4つか、基本パーティション3つ+拡張パーティション1つの合わせて4つを作ることができます。
5つ以上のパーティションを作成する場合は、拡張パーティションをさらに論理(Logical)パーティションに分割します。
パーティション番号は先頭から1,2...とカウントされ、「/dev/sda1」等のデバイスファイルが作成されます。

パーティションを作成するためのコマンドには「fdisk」「gdisk」「parted」があります。fdiskコマンドはMBR方式のみを、gdiskコマンドおよびpartedコマンドはMBRとGPT方式をサポート

パーティションを利用するための手順
パーティションはただの領域であり、それだけではデータの読み書きに利用することができません。
パーティションをフォーマット(初期化)し、さらに「/(ルートディレクトリ)」と同じファイルシステム(ルートファイルシステム)上にマウント(※)することによって利用することができるようになります。
(※マウント ... パーティションディレクトリとしてOSに認識させること)

マウントは利用時に毎回行う必要がありますが、専用のファイル「/etc/fstab」へ設定を入力しておけば、OS起動時に自動的にマウントさせることもできます。

●idコマンド
自分に割り当てられたUID(ユーザーID)ほか、所属しているグループ名やGID(グループID)などを確認できます。
また、ユーザー名を指定することで指定したユーザーの情報を得ることもできます。

idコマンドは、ユーザーのアカウント情報が格納されているファイル「/etc/passwd」と、グループ情報が格納されている「/etc/group」を参照して情報を出力しています。

●groupsコマンド
所属しているグループ名を表示するコマンドです。

●whoコマンド
システムにログインしているユーザーの一覧を表示するコマンドです。

●whoamiコマンド
「Who am I」すなわち自分は誰か?を問うコマンドで、ログインしているユーザー名を表示します

「id -un」と実行しても同じ結果を得られます。

●wコマンド
システムにログインしているユーザーと、ユーザーが実行しているプロセス(プログラム)を表示するコマンドです。

●lastコマンド
最近ログインしたユーザーの一覧を表示するコマンドです。

Linux
Linuxリナックス)は、当時いち大学生であったリーナス・トーバルズによって開発されたOS(オペレーティングシステム)です。Unix(ユニックス)と呼ばれるOSの思想やスタイルをベースに作られており、その他Unix系OSであるHP-UXAIXSolarisなどと類似した部分があります。

Linuxカーネル」と呼ばれるOSの核となる部分に、ハードウェアの制御を行う機能やアプリケーション・ソフトウェアなどの制御を行う機能など、システムユーティリティ群をひっくるめたものを広義にLinuxと呼んでいます(狭義には、Linuxカーネルのみを指して「Linux」と呼ぶこともあります)。

Linuxの特徴は以下の通りです。
●フリーでオープンソース
オープンソース、すなわちソースコード(中身のつくり)を公開することにより、誰でも参照・改造することができます。また、フリーであること(使用・改変・再配布を自由に行うことができる)も特徴の一つです。
なお、日本ではフリー=無料のイメージがありますが、ソフトウェアにおけるフリーとは意味が異なりますので注意が必要です。

多様なディストリビューション
Linuxは、OSの中核であるカーネルと、それらを取り巻く基幹システムのユーティリティ群、さらに各種機能のアプリケーション・ソフトウェア群を一つにした「ディストリビューション」という形式で配布されています。
Linuxは誰にでも開発可能なため、ディストリビューションも多岐にわたります。それぞれに得意分野や特徴があり、また商用で販売されているものや無償で配布されているものもあります。
Linuxディストリビューションは、主に「Red Hat系」「Debian系」、その他の三つに大別されます。

柔軟な利用形態
Linuxは、個人利用のほかに、様々なサービスを提供することのできる「サーバー」という形態をとることもできます。Webサイトを提供するWebサーバー、ファイルを管理するファイルサーバーなど、一口にサーバーと言っても様々な形態がありますが、Linuxは用途に従ってそれに適した構成を組むことが可能です。また、個人利用としていたものをサーバー用にしたい時にも、サーバー用のソフトウェア(パッケージ)をインストールすることによって柔軟に対応することができます。
なお、シェアの最も多いWindowsは、サーバー用(Windows Server)と個人用(Windows Home、Proなど)で完全に製品が分かれています。
更に、LinuxWindowsmacOSなどと比べて軽量であるという点も特徴の一つです。Windows 10の推奨スペックがメモリ2GB以上であるのに対して、Linuxディストリビューションには半分の1GBで動作するものもあります。

以下はLinuxで代表的な圧縮・展開コマンドです。

複数のファイルをまとめてアーカイブファイルを作成するにはtarコマンドを使用します。以下はtarコマンドの書式と主なオプションです。

tarコマンドにはファイルだけでなくディレクトリを指定してアーカイブファイルを作成することもできます。また、複数のファイルやディレクトリを指定したい場合はスペース区切りで指定します。

ファイルやディレクトリの作成時は、必ず所有ユーザー(オーナー)と所有グループが設定されます。
所有グループは、ファイルを作成したユーザーのプライマリグループが設定されます。ユーザーが複数のグループに属していても、所有グループとして設定されるのはプライマリグループのみです。
また、ファイルのオーナーと所有グループは「chown(change owner)」コマンドによって後から変更もできます。

ファイルの所有ユーザーと所有グループは、必ずしも一致している必要はありません。

ファイル・ディレクトリを操作する基本的なコマンドは以下の通りです。
![](https://ping-t-resouces.com/uploads/question_image/file/1073/k38639.jpg "")

【パッケージ管理】
Linuxには多様なディストリビューションがあり、それらは主に「Red Hat系」「Debian系」、その他の三つに大別されます。ディストリビューションが異なると細かな操作や設定などが異なりますが、違いの大きなものの一つにパッケージの操作方法があります。
Linuxにおける「パッケージ」とは、ソフトウェアそのものを含めたファイル群で、以下のようなものが含まれています。
・ソフトウェア本体(プログラム)
・設定ファイル
・ライブラリ(実行ファイルを動作させるために必要なプログラムの塊)
・マニュアル(実行ファイルの利用方法が書かれたファイル)
パッケージおよびその管理ツールを使用することによって、ソフトウェアのインストール・アンインストールなどが容易にできるようになります。

ディストリビューションごとのパッケージ形式および管理ツールの違いは以下の通りです。

●パッケージ形式
それぞれ、末尾に「.rpm」「.deb」の接尾辞(suffix)を持ちます。
以下はパッケージの例です。
Red Hat系:bind-9.9.4-73.el7_6.x86_64.rpm
Debian系:bind_9.3.6-4_i386.deb

パッケージ管理ツール
パッケージ管理ツールには、低水準のものと高水準のものの二つがあります。
・低水準(Red Hat系:rpmDebian系:dpkg)
パッケージのインストールやアンインストールなどを行う。パッケージそのものは自分で調達する(ダウンロード等)必要がある
・高水準(Red Hat系:YUM,DNF、Debian系:APT)
リポジトリ(パッケージの取得元)に登録されたパッケージ(群)のインストールやアンインストールを行う。パッケージ間の依存関係や衝突などを解決することができる
※依存関係とは、あるパッケージをインストールまたは動作させるために必要なパッケージがあるときのパッケージ間の関係性のことをいう。反対に衝突とは、あるパッケージをインストールする際に、既にインストールされたパッケージのバージョンが古いなどの理由でインストールができない状態のこと。

パッケージのインストール
パッケージを取得するにあたり、主に以下のような手段があります。
ディストリビューションが提供するリポジトリから取得する
・インストールメディア(CD-ROMなど)から取得する
・インターネットで検索する
このうち、最も確実で安全な方法は各ディストリビューションが提供しているリポジトリから取得することです。YUMやAPT等の高水準のツールは、リポジトリの場所("http://download.fedoraproject.org/pub/epel/7/SRPMS" など)を登録しておくことによりパッケージを取得することができるようになっています。
インストールメディア(CD-ROMなど)からの取得も可能ですが、より新しいパッケージを取得できるという点でリポジトリから取得した方がよいでしょう。

近年ではYUMの後継としてDNF(Dandified Yum)というパッケージ管理ツールおよびdnfコマンドが標準として利用されるようになってきています。

suコマンドは、ログインし直さずに一時的に他のユーザーへ切り替えたい場合に使用します。
suコマンドを実行すると、切り替え対象のユーザーとして新たにシェルが起動されます。したがって、もともとのユーザーの環境で設定していたシェル変数など一部の設定は引き継がれません。
環境変数についてはオプション「-」によって引き継ぐ・引き継がないの挙動を選択することができます。
・「-」ありの場合(su -) ... シェルを切り替えたユーザーのログインシェルにする。切り替えたユーザーの環境変数を読み込む
・「-」なしの場合(su) ... 切り替える前のユーザーの環境変数が引き継がれる

「シェバン(シバン、シェバング)」とは「#!」に続けてどのインタープリタ(シェルなどのプログラム)で実行するかを指定するものです。Bashで動作させる場合は「#!/bin/bash」、cshで動作させる場合は「#!/bin/csh」などと記述します。

シェバンの記述がなくても動作はしますが、意図しない動作を防ぐために原則的には記述した方がよいでしょう。

シェルスクリプトのファイル名は慣習的に「.sh」という接尾辞(suffix)を付与します。ただし「.txt」などと同様にOSに対しての意味はないため、「.sh」のつかないシェルスクリプトも存在します。

ディレクトリと、格納されている情報・用途については以下の通りです。