.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

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

コマンド

基本的なコマンド

sudoコマンド

  • ユーザーが別のユーザーの権限レベルでプログラムを実行するためのコマンド。
  • 一般的に、スーパーユーザー(superuser、≒root)の特権レベルを要求する。

aptコマンド

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

  • update
    sudo apt-get update
  • install
    sudo apt install パッケージ名

yumコマンド

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

  • update
    yum update
  • install
    yum install パッケージ名

viコマンド

sudo vi ファイル・パス

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

chmodコマンド

参考

ありがちなオプション

-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では、
ファイルシステムのマウントにより、
一本の巨大なディレクトリツリーになる。

ストリーム

バイトストリーム(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

カレント・ディレクトリ以下

権限

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シンボリックリンク
  • 権限
    モード(数字)モード(アルファベット)権限
    4r読み取り
    2w書き込み
    1x実行

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

chmod モード 対象ファイル名
  • パーミッションを数字(権限の合計値)で指定する。
    chmod nnn 対象ファイル名
  • 100の位
    所有者
  • 10の位
    所有グループ
  • 1の位
    その他
  • パーミッションを英字で指定する。
    chmod 変更対象 変更方法 変更内容 対象ファイル
  • 変更対象
    変更対象意味
    uユーザー
    gグループ
    oその他
    aすべて
  • 変更方法
    変更方法意味
    =指定した権限にする
    +指定した権限を付与する
    -指定した権限を除去する
  • 変更内容
    変更内容意味
    r読み取り
    w書き込み
    x実行
    sset user ID(SUID)、set group ID(SGID)
    tスティッキービット(sticky bit)

パーミッション設定例

  • 設定例
    $ 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
4r--
5r-x
6rw-
7rwx

Advanced

Advanced Windowsに習い。

カーネルオブジェクト

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

スレッド同期

メモリアーキテクチャ

物理

仮想

メモリマップファイル

Windowシステム(GUI)

DLLインジェクションとAPIフック


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-30 (金) 10:38:55 (82d)