0
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Linux/LPIC 101】備忘録

Last updated at Posted at 2020-12-16

概要

  • 備忘録として気になった内容をメモ
    • 全ての内容を網羅して記述しているわけではありませんので、注意してください

パッケージ管理コマンド差まとめ

--- --- ---
rpm -e(--erase) パッケージのアンインストール
-l (--list) 指定したパッケージに含まれるファイルの表示
-a (--all) インストール済みの全パッケージの表示
その他 remove パッケージのアンインストール
list インストール済パッケージを検索して表示
dpkg -s(--status) パッケージの詳細情報
apt-cache show パッケージの詳細情報
その他 info パッケージの詳細情報
dpkg -S (--search) 指定したファイルがどのパッケージからインストールされたかを表示
その他(aptはapt-cacheになる) search 指定したキーワードでパッケージの検索
--- --- ---
yum chack-update アップデート可能なパッケージの表示
zypper list-updates(lu) アップデート可能なパッケージの表示
--- --- ---
yum オプションを省略しない -を用いない
apt オプションを省略しない -を用いない
zypper オプションを2文字に省略する -を用いない

デバイスのマウント手順

  • パーティションの作成
    • fdisk
    • parted
  • ファイルシステム実装
    • ext2~4
      • ext2はジャーナル非対応
      • コマンド:mkfs, mke2fs
      • パラメーター設定コマンド:tune2fs
    • XFS
      • コマンド;mkfs.xfs
  • マウント
    • fstabへの記述等

GRUBの設定ファイルと更新

  • GRUB2
    • /etc/default/grub
    • /etc/grub.d 内のファイル
    • 更新コマンド;grub-mkconfig

dmesgとsystemd-journald

システム 概要 コマンド
dmesg Linuxカーネルが起動時に出力したメッセージを表示するコマンド dmesg
systemd-journald 標準のログ収集・格納サービス journalctl

ファイルシステムの作成

  • デフォルトはext2が選択される(以下はいずれもtypeにext2を使用している)
--- ---
mkfs /dev/hda1 mkfs -t ext2 /dev/hda1
mke2fs /dev/hda1 mke2fs -t ext2 /dev/hda1

systemd動作上でのランレベルターゲット

--- ---
rescue.target runlevel1.target

ln のデフォルト

  • -b t(空行を除いた行に番号を付与する)がデフォルトとなる

デバイスのUUIDを表示できるコマンド

  • blkid
  • lsblk

設定されている全ての環境変数を一覧表示できるコマンド

  • env
  • printenv
  • set

init(telinit)の例外用法

  • 通常、数字を用いてランレベルを変更する
    • telinit 5
    • init 5
  • 例外として、システムを再起動せずに「/etc/inittab」を再読み込みさせる場合には以下をとる
    • telinit q または telinit Q
    • init q または init Q

パッケージ管理ツール

ディストリビューション パッケージ管理 依存関係管理
Red Hat rpm yum (yumの後継としてdnfもある)
Fedora rpm dnf (yumの後継でもある)(Fedora 22からデフォルトの管理ツールとなった)
Debian dpkg apt
openSUSE rpm zypper

rpmコマンド

--fのみファイル名を引数にとる。
--pのみパッケージファイル名を引数にとる。

|オプション|概要|
|---|---|---|
|-q(--query) パッケージ名|指定したパッケージがインストールされているか確認|
|-V(--verify) パッケージ名|パッケージの検査|
|以下併用オプション|概要|
|-a (--all)|インストール済みの全パッケージの表示|
|-l (--list)|指定したパッケージに含まれるファイルの表示|
|-i (--info)|指定したパッケージの詳細情報|
|-f (--file) ファイル名|指定したファイルがどのパッケージからインストールされたかを表示|
|-p (--package) パッケージファイル名|紹介対象をパッケージファイルとする|
| --changelog|指定したパッケージの変更履歴の表示|
|-c (--configfiles)|設定ファイルの表示|
| --nomd5|MD5によるファイルの改竄を検査しない|
| -R (--require)|指定したパッケージが依存するファイルの表示|

|オプション|概要|
|---|---|---|
|-i(--install) パッケージファイル名|パッケージのインストール|
|-U(--upgrade) パッケージファイル名|パッケージのアップグレード(なければインストール)|
|-F(--freshen) パッケージファイル名|パッケージのアップグレード(なくてもインストールしない)|
|-e(--erase) パッケージ名|パッケージのアンインストール|
|以下併用オプション|概要|
|-v|詳細情報の表示|
|-h (--hash)|進行状況を「#」で表示|
|--test|実行はせず、テストを実施|
|-nodeps|依存関係を無視|

dpkgコマンド

|オプション|概要|
|---|---|---|
|dpkg-reconfigure|インストール済みのパッケージをインストールした時と同じように再設定|
|-E|同バージョンが既にインストールされていればインストールを行わない|
|-G|新バージョンが既にインストールされていればインストールを行わない|
|-R|ディレクトリ名を指定し、指定したディレクトリに格納されているパッケージファイルを再帰的に検索し、パッケージをまとめてインストールする|
|以下アクション|概要|
|-i (--install)|パッケージのインストール|
|-r (--remove)|設定ファルを残してパッケージをアンインストール|
|-P (--purge)|設定ファルを含めてアンインストール|
|-l (--list)|インストール済パッケージを検索して表示|
|-L (--listfiles)|指定したパッケージからインストールされたファイルを一覧表示|
|-s (--status)|インストール済みパッケージの詳細情報の表示|
|-S (--search)|指定したファイルがどのパッケージからインストールされたかを表示|
|-C (--audit)|インストールが完了していない(不完全)パッケージの表示|

yumサブコマンド・zypperサブコマンド

  • yum設定ファイル
    • /etc/yum.conf
    • /etc/yum.repos.d = パッケージの取得元(リポジトリ)は当該ディレクトリ内のファイルで設定
  • zypper設定ファイル =
yumサブコマンド 概要 zypperサブコマンド
install パッケージ名 インストール install (in)
update パッケージ名(パッケージを指定せずに実行した場合は、アップデート可能な全てのパッケージをアップデート) アップデート update(up)
remove パッケージ名 アンインストール remove(rm)
info パッケージ名 詳細情報の表示 info
list パッケージ名 一覧表示・バージョンとインストール済か否か なし
search キーワード 指定したキーワードでパッケージの検索 search(se)
check-update パッケージ名 アップデート可能なパッケージの表示 list-updates(lu)
grouplist パッケージグループの一覧表示 なし
groupinstall グループ パッケージのグループインストール なし
なし リポジトリの一覧表示 repos(lr)
なし リポジトリの更新 refresh

apt-getサブコマンド(yumやzypperと大幅に異なる)

サブコマンド 概要
install パッケージ名 インストール
update パケージのデータベースを最新版に更新
upgrade インストール済の全パッケージのアップグレード
info パッケージ名 詳細情報の表示
dist-upgrade ディストリビューションを最新版にアップグレード
clean 過去に取得したパッケージファイルを削除

apt-cacheサブコマンド

Screen Shot 2020-12-20 at 15.37.41.png

ldd

  • ライブラリを検索するコマンド
    • ldd /etc/ls のようにつかって、コマンドが使っているライブラリを検索できる
  • 共有ライブラリのキャッシュファイル「/etc/ld.so.cache」を更新するコマンド
    • ldconfig

ブートローダー

機能

  • BIOS起動後に呼び出され、OSとカーネルの起動を行う

インストールコマンド

  • grub-install

  • バージョン

    • GRUB Legacy
    • GRUB2
  • GRUB

    • 設定ファイル
      • /boot/grub/grub.conf
      • /boot/grub/menu.list
  • GRUB2

    • 設定ファイル
      • /boot/grub/grub.cfg(直接編集することはありません)
        • /etc/default/grub
        • /etc/grub.d

MBR(マスターブートレコード)

  • 記憶領域の446バイトに保存される
  • 残りはルートテーブル16バイト*4と2バイトのブートシグニチャ

initプログラム

|名称|特徴|
|---|---|---|
|SysVinit|ランレベルによってシステムの状態を管理|
|Upstart|ランレベルによってシステムの状態を管理|
|systemd|ターゲットによってシステムの状態を管理|

  • systemdサブコマンド集
    • systemdのコマンドはsystemctl
    • systemctl サブコマンド [ Unit名 ]
Screen Shot 2020-12-16 at 10.39.12.png

起動関連のターゲットディレクトリ

  • /etc/systemd/system/default.target
    • 上記にはシンボリックリンクが設定されている
    • リンクは上書きできないので、変更の際には事前削除が必要となる
      • ln ファイル名 リンク名でハードリンクを作成
      • ln -s ファイル名 リンク名でシンボリックリンクを作成
  • ランレベルとターゲットの互換表
Screen Shot 2020-12-16 at 11.08.45.png

シェル変数・環境変数

|名称|特徴|
|---|---|---|
|シェル変数|シェル上でのみ有効|
|環境変数|シェルで実行されるアプリケーション・コマンド全てのアクションで呼び出せる|

  • 大前提

    • exportコマンドでは環境変数の値を永続的に保持できないため、設定ファイルに記述する必要がある。(zshなら.zshrc、bashなら.bash_profile)
  • 環境変数(パス)

    • 環境変数PATHに設定されているディレクトリの中から検索して実行する(俗にいうパスが通っている)
    • export PATH=$PATH:ディレクトリ
    • パスが通っているディレクトリにあるコマンドであれば、コマンドの格納されているパスをいちいち指定せずに、コマンド名のみで実行できる
    • ユーザそれぞれに環境変数が用意されています。例えば、user1とuser2で使っている環境変数をそれぞれ異なる値にする事ができる
  • 環境変数(パス以外)

    • デフォルトで設定されているものがある(USER,HOMEなどなど)
    • export 環境変数名="値"で設定する
  • シェル変数を環境変数に変更

    • export シェル変数名で設定する(結局はexport 環境変数名="値"と一緒)

tar(アーカイブ機能)

  • tar [オプション][ディレクトリ名][ファイル名]
    • aa,bb,ccをアーカイブしたhoge.tarを作成する場合には以下の記述となる(アーカイブ名を先に記述するということ
% tar cf hoge.tar aa bb cc
  • -c(新しいアーカイブ作成)
  • -x(アーカイブから展開)
  • -t(アーカイブの情報を表示)
  • 圧縮はしないし、まとめる前の情報を保持すれば、元のファイル要領より大きくなることもある

cpio(アーカイブ機能)

  • cpio [オプション]
  • -o(新しいアーカイブを作成)
  • -i(アーカイブから展開)
  • 標準入力からのみ受け付ける
% cpio -i < ファイル名.cpio

grep系コマンド(検索機能)

  • プロセスからファイルの中身まで色々な物を対象に検索する
  • デフォルトでは、検索対象に該当するを表示する
名称 特徴
grep 正規表現を用いて検索 grep 検索正規表現 ファイル名
grep -E 拡張正規表現と正規表現両方を用いて検索 grep -E 拡張正規表現 ファイル名
egrep 拡張正規表現と正規表現両方を用いて検索 egrep 検索正規表現または拡張正規表現 ファイル名
fgrep 入力された文字列そのままの検索 egrep "文字列" ファイル名
grep -F 入力された文字列そのままの検索 grep -F "文字列" ファイル名
pgrep 実行中のプロセスの中から、プロセス名やユーザー、グループ、端末名などを表すパターンを使ってプロセスIDを探す pgrep [オプション] [プロセス名などのパターン]

tee(標準入力の出力先を2又にする)

% dmesg | tee -a log.txt
  • dmesgの標準出力をパイプで標準入力として受け取り、標準出力(1)とlog.txtへの追記双方を行う。なお、オプション-a(多分addの略)を指定しない場合は上書きとなる(>)と一緒。

ln(リンクの作成)

  • ln [オプション] リンク元 リンク先
    • オプション無しでハードリンク作成
      • ハードリンク
        • ファイルの実体を直接参照するリンク
        • ディレクトリのハードリンクは作成できない(循環ディレクトリの生成を防ぐため)
        • 異なるパーティションには作成できない(inodeが別々に管理されているため重複したりするから)
    • オプション -s でシンボリックリンク作成
      • シンボリックリンク
        • 元ファイルの場所を指し示すリンク(Windowsでのショートカットのようなもの)

Linuxでのファイル管理

  • ファイル(ディレクトリも含む)を「ファイルの実体(データ本体)」と「inode」を使用して管理している
    • inodeはラベルのようなもの
    • inode(ハードリンク)が0になった時、ファイルが削除される

mv(ファイルの移動および名前変更)

  • 「test1.txt」ファイルをカレントディレクトリにある「dir1」ディレクトリに移動し、ファイル名を「test2.txt」に変更
% mv test1.txt dir1/test2.txt

killシグナル系

|コマンド|特徴|
|---|---|---|
|kill|PIDを指定する||
|killall|対象をプロセス名で指定|
|pkill|対象とするプロセス名を正規表現で指定|

  • kill [-シグナル名または-シグナル番号][プロセスID]
  • killall [-シグナル名または-シグナル番号]
  • killall -s [-シグナル名または-シグナル番号]
  • pkill [-シグナル名または-シグナル番号] プロセス名(コマンド名)
  • pkill --signal [-シグナル名または-シグナル番号] プロセス名(コマンド名)
    • ※killallおよびpkillでシグナルを指定しない場合は15(TERM)が選択される
Screen Shot 2020-12-16 at 11.59.20.png

プロセス監視

|オプション|概要|
|---|---|---|
|top|プロセスの稼動状況を一定時間ごとに更新して表示するコマンドはtopです|
|ps|現在実行中のプロセスを表示するコマンドだが、表示内容を一定時間ごとに更新しない|
|uptime|現在のシステムの負荷平均を表示|
|free|メモリやスワップ領域の使用状況を表示|

  • ps [オプション]
    • 「-」を付けないBSDオプションと、「-」で始まるUNIXオプションがある
Screen Shot 2020-12-16 at 12.42.47.png

Docker

主なコマンド

Screen Shot 2020-12-16 at 12.20.36.png

ファイル表示系基本コマンド

|コマンド|概要|
|---|---|---|
|cat|ファイルの内容を全て表示|
|tail|ファイルの末尾部分を指定して表示|
|nl|ファイルを行番号をつけて表示|
|head|ファイルの先頭を表示|
|sort|行単位でファイルの内容をソート|
|paste|複数のファイルを行単位で結合|
|fmt|1行あたりの最大文字数を指定してテキストを整形|
|wc|ファイル内の文字数や行数を調べる|
|uniq|ソートされているファイルにある連続して重複した行を1行にまとめて表示|
|cut|テキストファイルの各行から指定したフィールドを取り出して表示|
|split|指定した行数でファイルを分割|

仮想端末制御プログラム

多数の端末プログラムを使用するのではなく、仮想端末を制御するプログラムを動作させることで、一つの端末上で複数の端末を利用する手段

  • screen
  • tmux

VM

virsh

  • libvirt(オープンソースの仮想化管理用のライブラリ)を操作するためのシェル
  • 仮想マシンのリソース管理や仮想ネットワークの管理など、様々な操作が可能
  • コマンド集
Screen Shot 2020-12-16 at 11.46.15.png

chown, chgrp(所属グループ)

  • 所有グループを変更することができる
    • chown [-R] :グループ名 ファイルまたはディレクトリ
    • chgrp [-R] グループ名 ファイルまたはディレクトリ
      • 「-R」オプションを使用すると、指定したディレクトリおよびその配下にあるファイルの所有ユーザやグループを再帰的に変更します
      • 「-R」オプションがない場合、ディレクトリのみ所有グループを変更します

chmod(パーミッション)

  • 3桁がユーザー(U)、グループ(G)、その他(O)の状況を表す
  • 状況は以下の数字の合計値
    • 753であれば[全権限(4+2+1)][読み・実行(4+1)][書き・実行(2+1)]
権限 記号 数値
読み r 4
書き w 2
実行 x 1

find(検索)

  • 指定したディレクトリ以下からファイルやディレクトリを検索するコマンド
    • find [検索起点ディレクトリ] [検索式] [アクション]

スナップショットとバックアップの違い

特徴 違い
スナップショット 更新されたデータ 更新されたデータのみ更新
バックアップ ストレージ内容すべて 記憶領域の全てを保存する

正規表現

Screen Shot 2020-12-22 at 14.14.31.png

Viエディタ

Screen Shot 2020-12-22 at 14.58.47.png Screen Shot 2020-12-22 at 15.06.16.png
  • viエディタを終了することなくLinuxコマンドを実行させるには、コマンドモードで以下のようなviコマンドを実行します。
    • :![コマンド]
      • 例:!ls 左記によってカレントディレクトリでlsコマンドを実行したことになる

tailコマンド

|名称|特徴|
|---|---|---|
|-n行数または-行数|指定した行数をファイルの末尾から表示|
|-c バイト数|指定したバイト数をファイルの末尾から表示|
|-f|ファイルの末尾に追加された行を表示し続ける|

trとsed

  • sedはtrの上位互換としてとらえてよさそう
コマンド 特徴 重要
tr 置換と削除ができる 標準入力と標準出力が使われるので、ファイルを処理したい場合は「cat」コマンドなどを使用
sed trの機能に加え、追記ができる 指定したファイルをコマンドに従って処理し、標準出力へ出力

niceとrenice

  • nice値(優先度)はともに -20 ~ 19 (-20がもっとも優先度が高く、19がもっとも優先度が低い)
  • 何も指定しない場合のデフォルトnice値は10
  • 何も指定しない場合のデフォルトrenice値は0
  • nice値の記述方法それぞれで異なる
    • nice では -(ハイフン)を伴うため、-10は--10となる
    • reniceでは -(ハイフン)を伴わないため、-10は10となる
コマンド 特徴
nice 実行時の優先度を指定してコマンドを実行 nice -10 コマンド名、または nice -n 10 コマンド名
renice 実行中のプロセスの優先度を変更 renice 10 (-p) プロセスID、または renice -n 10 (-p) プロセスID
※ -pはなくてもOK

エディターの種類

Screen Shot 2020-12-23 at 12.35.52.png

duとdf

|コマンド|特徴|
|---|---|---|
|du(disk usageの略)|ディレクトリの使用状況|
|df(disk freeの略)|ディレクトリの空き状況|

シンボリックリンクとハードリンク

コマンド 特徴
シンボリックリンク パスを記録
ハードリンク inode番号を元に実態にリンクする

fdiskとpartedとmkfs

コマンド 特徴
fdisk MBR形式のパーティション操作コマンド
parted MBRおよびgpt形式のパーティション操作コマンド
mkfs ファイルシステムを作成する

fstabとmtab

  • mountはディスク装置をLinuxのディレクトリ内に埋め込み、使えるようにするマウント作業
コマンド 特徴
fstab(filesystem table) 起動時にデフォルトでマウントされるデバイスが記述されている
mtab(mounted filesystem table) 現在マントされているデバイスが記述されている,起動時に自動マウント設定されておらず、起動後にマウントされたものがファイル内に記述される

tune2fs

  • 既にあるファイルシステムのマネジメント操作を行う
    • mkfsとはファイルシステムを作成するという点で違う
コマンド 特徴
tune2fs ext2、ext3、ext4ファイルシステムのパラメータを変更

ファイルシステムの種類

Screen Shot 2020-12-24 at 15.45.08.png

telinit

  • ランレベルの変更にしようする。

UUID

  • UUID(Universally Unique Identifier)とは、ソフトウェア上でオブジェクトを一意に識別するための識別子

ブロックデバイス

  • デバイスファイルのうち、アクセス時に文字単位ではなく、ブロック単位でデータを転送するもの
  • デバイスのUUIDを表示できるコマンド
コマンド
lsblk
blkid
0
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?