Linux(リナックス)は、オペレーティングシステムの一つであり、UNIX系のオペレーティングシステムです。
ここでは、Linuxについて解説します。
Linuxとは
Linuxとは、世界で最も普及しているオープンソースのオペレーティングシステム(OS)です。
UNIX系OSの一種でプログラムが公開されており、誰でも自由に入手や使用、改変、再配布することができます。
Linuxは、スーパーコンピュータやサーバ、パソコン、携帯電話やテレビなどの組み込みシステムなど、幅広い種類のハードウェアで使用されています。
パス指定で利用される記号
Linuxコマンドを入力する場合、コマンドの場所やファイルの場所は「パス」で指定します。
パス指定時に使用される記号についてここでまとめておきます。
| 記号 | 意 味 |
| / | 「/」単体で記述した場合は、ルートディレクトリ(トップディレクトリ)を意味します。 ディレクトリのパスを記述する際にディレクトリとディレクトリ(もしくはファイル)の間に置かれた「/」は単なるディレクトリ区切り文字として見なします。 |
| . | カレントディレクトリを意味します。 |
| .. | ひとつ上のディレクトリを意味します。 |
Linuxの基本コマンド
現在いるディレクトリを表示(pwd)
ディレクトリ(フォルダ)移動(cd)
フォルダの内容を表示(ls)
| オプション | 内 容 |
| -a | 「.」で始まるファイルを含んだすべてのファイルを表示します。 |
| -b | ファイル名に表示できない制御文字などが使われている場合、8進数形式で表示します。 |
| -c | ファイルの属性を更新した時間軸にソートして表示します。 |
| -d | ディレクトリの内容ではなく、ファイルと同様にディレクトリ名を表示します。 |
| -f | ソートせずにディスクに格納された順に表示します。 |
| -i | ファイル名の左にインデックス番号を表示します。 |
| -k | ファイルサイズをキロバイト単位で表示します。 |
| -l | ロングフォーマットで表示します。ファイル名、ファイルタイプ、パーミッション、ハードリンクの数、オーナー名、グループ名、バイトサイズ、タイムスタンプの順に表示されます |
| -m | ファイルを横に並べ、カンマで区切って表示します。 |
| -n | ユーザー名、グループ名を数字を使用して表示します。 |
| -p | ディレクトリ名の最後に「/」を付けて表示します。 |
| -q | エスケープコードなど表示できない文字列を「?」で表示します |
| -r | 逆順にソートして表示します。 |
| -s | ファイル名の左側にキロバイト単位でファイル容量を付加して表示します。 |
| -t | タイムスタンプ順にソートして表示します。 |
| -u | アクセス時刻でソートして表示します。 |
| -x | ソートした結果を水平方向から順に並べます。 |
| -C | ソートした結果を垂直方向から順に並べます。 |
| -F | ファイルタイプを示す文字を付けます。 * ⇒ 実行可能ファイル / ⇒ ディレクトリ @ ⇒ シンボリックリンク |
| -L | シンボリックリンクそのものではなく、 参照しているファイルの情報をリスト表示します。 |
| -R | サブディレクトリの情報も表示します。 |
| -S | ファイルサイズの大きい順にソートして表示します。 |
| -1 | 1行に1ファイルずつリスト表示します。 |
ファイルやフォルダのコピー(cp)
| オプション | 内 容 |
| -a | 元のファイルの属性とディレクトリ構成を可能な限り保持します。 |
| -b | 上書きされるファイルのバックアップを作成します。 |
| -f | コピー先に同じ名前のファイルがあれば、確認なしで上書きします。 |
| -i | 上書きされるファイルがあれば、その可否を確認します。 |
| -l | コピーのかわりにハードリンクを作成します。ただし、ディレクトリは除外します。 |
| -p | 元のファイル属性(タイムスタンプ等)を可能な限り保持します。 |
| -r | ディレクトリを中身ごとコピーします。 |
| -s | コピーするかわりにシンボリックリンクを作成します。 |
| -u | 同名のファイルが存在する場合、コピー先のタイムスタンプが同じか新しい時にはコピーしません。 |
| -v | 経過を表示します。 |
| コピー元 | コピーするファイルまたはディレクトリを指定します。 コピー先がディレクトリであれば、スペース区切りで複数列挙することができます。 |
| コピー先 | コピー先のファイル名またはディレクトリを指定します。 |
ファイルやフォルダの削除(rm)
| オプション | 内 容 |
| -d | ディレクトリのリンクをはずします。管理者権限が必要です。 |
| -f | 存在しないファイルがあってもエラーを返しません。 |
| -i | ファイルを削除してもよいかを確認します。 |
| -r | ディレクトリを中身ごと削除します。 |
| -v | 経過を表示します。 |
| 名前 | 削除するファイルまたはディレクトリを指定します。 |
ファイルの移動(mv)
| オプション | 内 容 |
| -b | ファイルを上書きする際にバックアップを作成します。 バックアップファイルには、チルダ「~」が付加されます。 |
| -f | 無条件に上書きします。 |
| -i | 移動先に同名ファイルがすでに存在する場合に上書きしてよいか確認します。 |
| -u | 移動先に同名ファイルがある場合、それよりも新しいタイムスタンプを持つファイルでないと移動しません。 |
| -v | 経過を表示します。 |
| 移動元 | 移動するファイルまたはディレクトリを指定します。 移動先がディレクトリであれば、スペース区切りで複数列挙することができます。 |
| 移動先 | 移動先のファイル名またはディレクトリを指定します。 |
フォルダを作成(mkdir)
| オプション | 内 容 |
| -m パーミッション | パーミッションを指定します。指定形式はchmodコマンドと同様です。 |
| -p | 親ディレクトリも同時に作成します。 |
| ディレクトリ | 作成するディレクトリを指定します。 |
ファイルの内容を表示(cat)
| オプション | 内 容 |
| -b | 先頭行から空白行を含めずに行番号をつけて表示します。 |
| -n | 先頭行からすべての行に行番号をつけて表示します。 |
| -s | 連続した空行を1行の空行にまとめて表示します。 |
| -v | タブを[“]に表示不可能な文字(最上位ビットが1の文字)を「M-」に置き換えて表示します。 |
| ファイル | 表示するファイルを指定します。 |
ファイルの検索(find)
| オプション | 内 容 |
| パス | 検索を開始するパスを指定します。複数指定も可能です。 |
| 動作 | 口述する判別式、アクションを記述します。 判別式で真が返ってきたファイルに対してアクションを実行します。 |
判別式
| 判別式 | 内 容 |
| -amin n | 最終アクセス時刻がn分前ならば真を返します。 |
| -atime n | 最終アクセス時刻がn×24時間前ならば真を返します。 |
| -anewer file | 指定されたファイルの更新時期よりも後にアクセスされたファイルならば真を返します。 |
| -cmin n | 最終変更時刻がn分前ならば真を返します。「変更」とは、内容、名前、属性、タイムスタンプなど、あらゆる変更を指します。 |
| -ctime n | 最終変更時刻がn×24時間前ならば真を返します。 |
| -cnewer file | 指定されたファイルの更新時刻よりも後に変更されたファイルならば真を返します。 |
| -empty | ファイルまたはディレクトリが空ならば真を返します。 |
| -mmin n | 最終更新時刻がn分前ならば真を返します。 |
| -mtime n | 最終更新時刻がn×24時間前ならば真を返します。 |
| -newer file | 指定されたファイルの最終更新時刻よりも後に変更されたファイルならば真を返します。 |
| -name pattern | ファイル名が指定されたパターンに一致したら真を返します。 |
| -type T | 指定されたタイプのファイルならば真を返します。 指定できるタイプ記号は以下の通りです。 b ブロック型特殊ファイル(バッファ付き) c キャラクタ型特殊ファイル(バッファなし) d ディレクトリ p 名前付きパイプ(FIFO) f 通常のファイル l シンボリックリンク s ソケット |
| -user uname | 指定されたユーザーが所有権ならば真を返します。 |
アクション
| アクション | 内 容 |
| -exec command \; | 指定されたコマンドを実行します。コマンドの後に{}を書くと検索結果をファイル名に置き換えます。 |
| -ok command \; | 指定されたコマンドを実行します。実行前に確認を行います。コマンドの後に{}を書くと検索結果をファイル名に置き換えます。 |
| -ls | 「ls」コマンドのロングフォーマット形式で検索結果を表示します。 |
| -print | 検索結果を絶対パスで表示します。ファイルごとに開業します。 |
ファイルとファイルの内容の違いを表示(diff)
| diff [オプション] 旧ファイル名 新ファイル名 |
| オプション | 内 容 |
| -b | 末尾の空白(空白文字とタブ文字)を無視して比較します。 |
| -c | 差異行の前後3行を追加して出力します。 |
| -i | 大文字と小文字の違いを無視して比較します。 |
| -q | 違いがあるかどうかだけ表示します。 |
| -r | ディレクトリの比較の場合、サブディレクトリも検索して比較します。 |
| -w | すべての空白(空白文字とタブ文字)を無視して比較します。 |
| ファイル1(2) | 比較対象となるファイルを指定します。 |
文字列を検索(grep)
| grep [オプション] パターン 検索するファイル名 |
| オプション | 内 容 |
| -c | パターンを含む行数のみを表示します。 |
| -h | 検索結果の先頭にマッチしたファイル名を同時に表示します。 |
| -i | 検索条件に大文字と小文字を区別しません。 |
| -l | 検索条件にマッチしたファイル名のみを表示します。 |
| -n | 各行の先頭にファイルの行番号を表示します。 |
| -s | 存在しないファイルや読めないファイルに対してのエラーメッセージを抑制します。 |
| -v | パターンを含む行を除いたすべての行を表示します。 |
| -w | パターンの検索を単語として行います。 |
| パターン | 検索する文字列を指定します。「文字列1|文字列2」のように「|」で文字を区切ると、いずれかの文字列にマッチした場合に検索結果が表示されます。 検索に用いる文字列は正規表現で記述します。 よく使用されるのがメタキャラクタでワイルドカードのような特別な意味を持ちます。 メタキャラクタについては下表を参照してください。 |
| ファイル | 検索するファイルを指定します。 |
メタキャラクタ
| メタキャラクタ | 意 味 | 例 | 説 明 |
| .(ドット) | 任意の1文字 | .a | aa、ab、ac……など |
| 文字* | 文字の0回以上の繰り返し | a* | a、aa、aaa……など |
| ^文字列 | 文字列で始まる行 | ^a | aで始まる行 |
| 文字列$ | 文字列で終わる行 | a$ | aで終わる行 |
| [文字集合] | []内の文字集合のいずれか1文字 | [abc] | a,b,cいずれかの1文字 |
| [^文字集合] | []内の文字集合の含まれない文字 | [^abc] | a,b,c以外の文字 |
| [文字-文字] | 範囲内のいずれか1文字 | [a-c] | aからcまでの1文字 |
ファイルやディレクトリのパーミッションを変更(chmode)
| オプション | 内 容 |
| -c | パーミッションが変更されたファイルのみ詳細に表示します。 |
| -f | パーミッションを変更できなかった場合にもエラーメッセージを表示しません。 |
| -v | 経過を表示します。 |
| -R | ディレクトリとその中のファイルを変更します。 |
| モード | パーミッションを指定します。詳細については下表を参照してください。 |
| ファイル | 変更するファイルを指定します。 |
モード詳細
モードには、記号モードと数値モードの2つの書き方があります。
通常は数値モードがわかりやすいため、多く使用されます。
記号モード 「ユーザー」「演算子」「権限」の順に以下の構成要素を組み合わせます。
【ユーザー】
【演算子】
| + | 権限を追加 |
| – | 権限を削除 |
| = | 権限を変更。選択した許可フィールドをクリアし、それを指定した許可に設定します。= の後ろに許可を指定しない場合は、選択したフィールドからすべての許可を除去します。 |
【権限】
【使用例】
グループに書き込み権限をその他のユーザーにはすべて禁止する
chmod g+w,o= file
数値モード 「所有者」「所属グループ」「その他ユーザー」の順に3つの数値で指定する。
| パーミッション | 8進数 |
| rwk | 7 |
| rw- | 6 |
| r-k | 5 |
| r– | 4 |
| -wk | 3 |
| -w- | 2 |
| –x | 1 |
| — | 0 |
ファイルやフォルダのオーナーやグループを変更(chown)
| chown [オプション] ユーザー グループ ファイル名 |
| オプション | 内 容 |
| -c | 所有者が変更されたファイルのみ詳細に表示します。 |
| -f | 所有者を変更できなかった場合にもエラーメッセージを表示しません。 |
| -h | シンボリックリンクを変更する場合、そのリンク自身の所有者を変更します。デフォルトでは、リンク先のファイルの就社が変更されます。 |
| -v | 経過を表示します。 |
| -R | ディレクトリとその中のファイルを変更します。 |
| [ユーザー]:[グループ] | 変更する所有者、グループを指定します。どちらかは指定する必要があります。 |
| ファイル | 変更するファイルを指定します。 |
ファイルやフォルダにリンクを設定(ln)
| オプション | 内 容 |
| -b | 上書きされるファイルのバックアップを作成します。 |
| -d | ディレクトリのハード・リンクを作ります。管理者権限が必要です。 |
| -f | 同名ファイルがあれば確認なしで上書きします。 |
| -i | 上書きされるファイルがあれば、その可否を確認します。 |
| -n | シンボリック・リンクを普通のファイルとみなします。 |
| -s | シンボリック・リンクを作成します。 |
| -v | 経過を表示します。 |
| リンク元 | リンク元のファイルまたはディレクトリを指定します。リンク先がディレクトリであれば、複数のファイルを指定することができます。 |
| リンク先 | リンクするファイル名を指定シマス。ハード・リンクを作る際には、存在するディレクトリでなければなりません。 |
ファイルの末尾を表示(tail)
| オプション | 内 容 |
| -cN | 末尾からNバイトだけ表示します。Nの後に「k」を付加した場合はキロバイトに、「m」を付加した場合はメガバイトになります。 |
| -nN | 末尾からN行を表示します。nを省略して「-N」と記述することもできます(solaris)。 |
| ファイル | 表示するファイルを指定します。 |
環境変数、bashで定義した変数や関数を削除(unset)
| オプション | 内 容 |
| -f | 指定した名前を関数名として扱う。 |
| -v | 指定した名前を変数名として扱う。 |
| -n | 指定した名前が名前参照(name reference)の変数の場合、参照先ではなく参照側自身を削除する。 |
環境変数を表示(printenv)
| オプション | 内 容 |
| -o | 出力の行末に改行ではなく「NULL」を付加します。 |
コマンドのマニュアルを表示(man)
| man [オプション] [-k キーワード] [-p ペイジャー] [セクション] コマンド名 |