Skip to content

DNET_LinuxBasics

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Linuxの各種 基礎

概要

触ってみるということで、各種 基礎。

コマンド

基本的なコマンド

sudoコマンド

  • ユーザーが別のユーザーの権限レベルでプログラムを実行するためのコマンド。

  • 一般的に、スーパーユーザー(superuser、≒root)の特権レベルを要求する。

  • sudo用にシステムを設定

    • sudoメカニズムを用いてコマンドをroot権限で実行できるように設定する。

    • sudoを使えば、rootパスワードを知る必要はない。

    • Ubuntuのようなディストリビューションを利用しているなら必要ない。

    • sudoが実行できるように設定されているかどうかを確認するには、次のコマンドを実行

      $ sudo ls
      • ユーザパスワードを求められ、コマンドが実行される。
      • エラーメッセージが表示される場合
        「/etc/sudoers」「/etc/sudoers.d」ファイルなどを弄る。

aptコマンド

Debian系のパッケージ管理システム

  • update

    sudo apt-get update
  • install

    sudo apt install パッケージ名

yumコマンド

Red Hat系のパッケージ管理システム

  • update

    yum update
  • install

    yum install パッケージ名

viコマンド

nanoコマンド

フォルダ移動、ファイル操作コマンド

WindowsユーザがLinuxに乗り換える際に、知っておくとイイ情報集。の該当節を参照。

参考

ありがちなオプション

-y, --yes, --assume-yes

処理中に現れるプロンプトに対して常に"yes"と解答

パイプ

テキスト・ベースのシェルで、テキストをパイプできる。
ちなみに、PowerShellはオブジェクト・ベースのシェル

パイプの裏側

は、ストリーム

ファイルの削除の例

find したファイルを xargs で消す。

find /XXXX/XXXX/*.txt -type f | xargs rm -rf

...の例

移行メモ: 元ページでは見出しのみで本文が無い(書きかけ)。

参考

ファイル

ファイルの種類

普通のファイル

regular file

  • 狭義のファイル
  • 内容が記録されているファイル

directory

  • 他のファイル(広義のファイル)を
    複数入れることができるファイル

シンボリックリンク

symbolic link

  • 他のファイルの名前を格納したファイル
  • Microsoft Windows - ショートカット
  • Mac OS - エイリアス

名前付きパイプ

named pipe

  • プロセス間通信に使うファイル

UNIXドメインソケット

UNIX domain socket

  • プロセス間通信で使うファイル
  • 現在ではTCPソケットで代替できる

デバイスファイル

device file

  • デバイス(ハードウェア)をファイルとして表現したもの

ファイルシステムとマウント

Linuxでは、
ファイルシステムのマウントにより、
一本の巨大なディレクトリツリーになる。
WindowsユーザがLinuxに乗り換える際に、知っておくとイイ情報集。の該当節を参照)

ストリーム

バイトストリーム(byte stream)

  • ファイルにつながったストリーム

  • 通常、プロセスに対する入力と出力の2つのストリーム

  • パイプすると、

    • プロセスAの出力ストリームが、
    • プロセスBの入力ストリームとなる。
  • プロセス間通信で使用される。

  • 「Linuxにおいては全てがファイル」
    ...と言うのはシステムコールのI/Fが
    バイトストリームであることに起因するらしい。

ディレクトリ

Windowsとの比較

ファイルシステムとマウント

ディレクトリ

root

rootディレクトリでlsすると、以下が表示される。

  • bin
    基本コマンド

  • sbin
    システム管理用コマンドなど

  • boot
    起動に必要なファイル

  • dev
    デバイスファイル

  • etc
    設定ファイル

  • home
    ホームディレクトリ

  • lib
    bin、sbinの共有ライブラリ

  • lib64
    共有ライブラリ(64bit)

  • media
    リムーバブル媒体のマウントポイント

  • mnt
    一時的なマウントポイント

  • opt
    追加アプリケーション

  • proc
    プロセス情報など

  • root
    root用ホームディレクトリ

  • run
    実行時の可変データ群

  • snap
    snapアプリケーションのインストール先

  • srv
    システムによって提供されたサイト固有のデータ群。

  • sys
    ドライバ関連のプロセス情報群。

  • tmp
    一時的なファイル

  • usr
    全ユーザー向け、各種プログラムやライブラリ、ドキュメント

    • bin
      基本コマンドなど(ユーザ版)
    • sbin
      システム管理用コマンドなど(ユーザ版)
    • lib
      bin、sbinの共有ライブラリ(ユーザ版)
    • lib64
      共有ライブラリ(64bit)
    • libexec
      その他、補助コマンド
    • etc
      あまり利用されない。
    • share
      アーキテクチャに依存しない共有データ
    • include
      ヘッダファイル
    • src
      ソースコードとそのヘッダファイル
    • local
      ホスト固有のローカルデータを格納する第三階層
      (ソースコンパイルするとココに入る)
    • tmp
      一時的なファイル(ユーザ版)

    個別ユーザ向け

  • var
    ログやキャッシュなど可変ファイル群。

    • cache
      各種キャッシュ保存先
    • crash
      クラッシュダンプ保存先
    • db
      各ソフトで利用するデータベース情報。
    • empty
      SSHで利用される。
    • local
      /usr/local用のログファイル保存場所。
    • lock
      使用中リソースをロックするファイル
    • log
      各種システム・ログファイル
    • mail
      ユーザーのメールボックス
    • opt
      /opt用の動的ファイル保存場所。
    • run
      ブート以降の走行中システムに関する情報
    • spool
      処理待ち状態のタスクのスプール
    • tmp
      一時ファイル置場 (マルチユーザーモードの推奨)

ユーザ・ディレクトリ

ログインした際、ユーザ・ディレクトリがカレント・ディレクトリになる。

/home/ユーザー名

パス指定方法

  • /xxxx … rootディレクトリ以下
  • ~/xxxx … ユーザ・ディレクトリ以下
  • ./xxxx … カレント・ディレクトリ以下

ネットワーク

IPアドレスの設定・確認

...

移行メモ: 元ページでは上記 2 項は見出しのみで本文が無い(書きかけ)。

権限

setuid/setgid

  • それぞれ、set user ID と set group ID の略。

    • 実行ファイルを実行する際にその実行ファイルの
      所有者(ユーザー識別子やグループ識別子)の権限で実行できるようにする。
    • 一般ユーザーが高い特権レベルでしか実行できないタスクを一時的に実行できるようにする
    • ユーザー識別子やグループ識別子が指定されるが、必ず特権レベルが高くなるわけではない。
  • setuid/setgidが設定されているプログラムは

    • 所有者/グループの権限で動作する。
    • 従って、所有者/グループがrootだと危険。
  • setuid/setgidが設定されているプログラム

    • /bin/password
    • /bin/ping
    • /bin/su
  • 参考

ファイル属性

ファイル属性の読み方

ファイルの種別とパーミッションが設定されている。

  • x文字目

    • 1(1):ファイル種別
    • 2-4(3):ファイル所有者に対する権限
    • 5-7(3):ファイル所有グループに対する権限
    • 8-10(3):その他に対する権限
  • ファイル

    • 種別

      種別 意味
      - ファイル
      d ディレクトリ
      l シンボリックリンク
    • 権限

      モード(数字) モード(アルファベット) 権限
      4 r 読み取り
      2 w 書き込み
      1 x 実行

パーミッション設定(chmodコマンド)

chmod モード 対象ファイル名
  • パーミッションを数字(権限の合計値)で指定する。

    chmod nnn 対象ファイル名
    • 各位

      • 1000の位:Special属性
      • 100の位:所有者
      • 10の位:所有グループ
      • 1の位:その他
    • 各値(Special属性を除く。)

      表記 権限
      0 --- 権限なし
      1 --x 実行できるよ
      2 -w- 書き込みできるよ
      3 -wx 書込・実行できるよ
      4 r-- 読み込みできるよ
      5 r-x 読込・実行できるよ
      6 rw- 読込・書込みできるよ
      7 rwx 読込・書込・実行できるよ
    • 例(Special属性を除く。)

      • フルコン:777
      • KEYファイル初期値:600
      • KEYファイル変更後:644
  • パーミッションを英字で指定する。

    chmod 変更対象 変更方法 変更内容 対象ファイル
    • 変更対象

      変更対象 意味
      u ユーザー
      g グループ
      o その他
      a すべて
    • 変更方法

      変更方法 意味
      = 指定した権限にする
      + 指定した権限を付与する
      - 指定した権限を除去する
    • 変更内容

      変更内容 意味
      r 読み取り
      w 書き込み
      x 実行
      s set user ID(SUID)、set group ID(SGID)
      t スティッキービット(sticky bit)

パーミッション設定例

  • 確認(lsコマンド)

    $ ls -l
  • 変更(chmodコマンド

    $ chmod nnn ファイル名
  • 設定例

    $ cd ~/.ssh
    $ ls -l
    total 0
    -rw-rw-rw- 1 seigi seigi 398 Aug 20 13:12 authorized_keys
    $ chmod 600 authorized_keys
    $ ls -l
    total 0
    -rw------- 1 seigi seigi 398 Aug 20 13:12 authorized_keys

    ※ 600は、所有者に読み書き権限を付与。

    数値 権限
    0 ---
    1 --x
    2 -w-
    3 -wx
    4 r--
    5 r-x
    6 rw-
    7 rwx

Advanced

Advanced Windowsに習い。

  • カーネルオブジェクト

  • ジョブ、プロセス、スレッド

  • スレッド同期

  • メモリアーキテクチャ

    • 物理
    • 仮想
    • メモリマップファイル
  • Windowシステム(GUI)

  • DLLインジェクションとAPIフック(ウィンドウ・システムの該当節を参照)

移行メモ: 元ページでは「Advanced」節の各項がいずれも見出しのみで
本文が無い(書きかけ)。

参考

移行メモ: 元ページの「参考」節は見出しのみで本文が無い(書きかけ)。


Tags: 移行, Linux, OSS, 開発基盤

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally