見出し画像

【Linux】LPIC102試験用

コマンド

ps コマンド

オプション
-e:制御端末のあるなしに関わらず、全てのユーザープロセスを表示します。
-a:制御端末がある全てのユーザープロセスを表示します。
-x:制御端末がないプロセスも表示します。
-u:ユーザー形式で表示します。
-w:出力の幅を広げます。
-f:プロセスの親子関係をツリー上で表示します。
-l:詳細情報を表示します。

表示の意味
USER :プロセスを所有しているユーザー名
PID :プロセスに割り振られた番号
%CPU :CPUが使用されている割合
%MEM :メモリが使用されている割合
VSZ :メモリの使用サイズ(仮想メモリを含む)
RSS :メモリの実際の使用サイズ(仮想メモリは含まない)
TTY(TT): 端末の名前
STAT :プロセスの現在の状態(下の表を参照)
START :プロセスが開始した時刻
TIME :プロセスの稼働時間
COMMAND :プロセスの実行ファイル名とパス

「STAT」欄に表示されるアルファベットの意味
R:稼働中
S:スリープ中
D:スリープ中(現在制御不可)
T:停止処理中、またはトレース中
Z:ゾンビ状態


free コマンド

-b:表示結果をバイト単位で表示します。
-k:表示結果をキロバイト単位で表示デフォルト
-m:表示結果をメガバイト単位で表示します。
-s :指定した秒数ごとに表示します。
-t:物理メモリとスナップの合計も表示します。

表示の意味
total:システムが利用できる合計メモリサイズ
used:カーネルとプロセスが使用している合計メモリサイズ(total - free - cache - buff)
free:余っているメモリサイズ
shared :tmpfsに使われている共有メモリ
buffers :バッファキャッシュのメモリサイズ(バッファキャッシュとはファイルシステム経由ではなく、デバイスファイル経由でディスクにアクセスするときに利用されるキャッシュ のこと)
cache:ページキャッシュのメモリサイズ (ページキャッシュとはファイルシステム経由でディスクにアクセスするときに利用されるキャッシュのこと)
buff/cache :バッファキャッシュとページキャッシュの合計メモリサイズ
available:実質的な空きメモリ。freeが少なくなってきたら解放できるカーネル用のメモリのサイズを足したもの


top コマンド

-d :時間 スクリーンを更新時間を秒単位で指定
-n :回数 topを終了する繰り返し回数を指定
-p プロセスID:監視するプロセスIDを指定
-U ユーザーID:監視するユーザーIDを指定

表示の意味
PID:プロセスID
USER:ユーザー名
PR :優先度(プライオリティ)
NI:nice値
VIRT:仮想メモリの総量
RES:常駐サイズ(kb)
SHR:共有メモリサイズ(kb)
S:プロセス状態
%CPU:CPU利用率
%MEM:メモリー利用量
TIME:CPU利用時間
COMMAND:コマンドライン


ls コマンド

-a:すべて表示
-l:ファイルの詳細も表示する
-1:リストを縦に並べる
-r:逆順で表示する
-t:更新時間順に並べる
-S:ファイルサイズ順でソートする
-X:ファイルを拡張子ごとにまとめる
-R:ディレクトリ内容を再帰的に表示する
--full-time:タイムスタンプの詳細を表示する
-m:ファイル名をカンマで区切って表示する
-h:単位を読みやすい形式で表示する
-k:キロバイト単位で表示する
-i:ファイル名の左にi-node番号を表示する
-F:情報の付加
--help:ヘルプの表示


find コマンド

 -amin:任意の分数にアクセスされたファイルやディレクトリを検索する。
 -and:複数の条件を使って、条件に当てはまるファイルやディレクトリを検索する。
 -or:複数の条件を使って、いずれかの条件に当てはまるファイルやディレクトリを検索する。
 -anewer:更新日時よりも後にアクセスしたファイルやディレクトリを検索する。
 -atime:任意の日数にアクセスされたファイルやディレクトリを検索する。
 -empty:ファイル容量が0のファイルやディレクトリを対象とし検索する。
 -exec:検索結果に対してコマンドを実行する。
 -mmin:任意の分数に更新されたファイルやディレクトリを検索する。
 -mtime:任意の日数に更新されたファイルやディレクトリを検索する。
 -name:ワイルドカードを使用して、ファイルやディレクトリ名の一部のみ指定した検索ができる。
 -newer:任意のファイルの更新日時よりも後に変更したファイルやディレクトリを検索する。
 -not:条件に当てはまらないファイルやディレクトリを検索する。
 -perm:パーミッションで検索する。
 -size:ファイル容量を指定し検索する。
 -type d:ディレクトリを対象とし検索する。
 -type f:ファイルのみを対象とし検索する。


シェル、スクリプト

ログインシェル
ログインして最初に動き出すシェル。ログインシェルはデフォルトから変更することができ、ユーザーごとに異なるものを設定することもできる。「/etc/passwd」ファイルにユーザーごとに記載されているため直接編集するか、chshコマンドで変更できる。
/etc/profile(全てのユーザーに共通)
~ /.bash_profile (ユーザーが自分の環境をカスタマイズ)
~ /.bash_login
~ /.profile  の順番に読み込み実行する。

※ログインシェルとしてbashが終了するときは、
~ /.bash_logout が実行される。

/etc/bashrc
非ログインシェル起動時にどのユーザーにも共通した設定を行える。

function コマンド (function 関数名 () { } )
シェル内部に関数を定義できる。内部で実行されるので子プロセスを新たに生成せず、現在のシェル内で実行できるようになる。

コマンドの返り値
「man コマンド名」で調べることができる

seq コマンド
seq 終了値
seq 初期値 終了値
seq 初期値 増分 終了値
&& は AND と同義
| | は OR と同義

変数名 概要
$0 :シェルスクリプトのファイル名
$1~$n :シェル引数の値。
$# :シェル引数の数
$* :全引数リスト。"$*"のようにダブルクオートで囲むと、"$1 $2 … $n"形式。
$@ :全引数リスト。"$@"のようにダブルクオートで囲むと、"$1" "$2" … "$n"形式。
$$ :実行中のシェルのプロセスID。
$? :最後に実行したコマンドのリターンコード(戻り値)。成功していれば0
$- :シェルの実行オプション(setコマンドや#!/bin/bash行に付けたオプション。
$! :シェルが最後に実行したバックグラウンドプロセスのPID。

シェルスクリプトの実行
バイナリ形式ではコマンドの実行権があれば問題ないが、シェルスクリプトの場合は読み込み権限もないと実行ができない。
また、bash ~ のようにシェルの引数として実行するときは読み込み権限だけあれば良い

test コマンドの数値比較条件一覧表
オプション
-eq :num1 と num2 が等しければ真となる。 num1=num2
-ne :num1 と num2 が等しくなければ真となる。 num1≠num2
-lt :num1 が num2 より小ならば真となる。 num1<num2
-le :num1 が num2 以下ならば真となる。 num1≦num2
-gt :num1 が num2 より大ならば真となる。 num1>num2
-ge :num1 が num2 以上ならば真となる。 num1≧num2

参考
・-eq → equal
・-ne → not equal
・-lt → less than
・-le → less than or equal
・-gt → greater than
・-ge → greater than or equal

オプション
オプションの意味
使用例
-z
string の文字列長が 0 ならば真となる。
test -z string
-n
string の文字列長が 0 より大ならば真となる。
test -n string
-d
file がディレクトリならば真となる。
test -d file
-f
file が普通のファイルならば真となる。
test -f file
-s
file が 0 より大きいサイズならば真となる。
test -s file
-e
file が存在するならば真となる。
test -e file
-r
file が読み取り可能ならば真となる。
test -r file
-w
file が書き込み可能ならば真となる。
test -w file
-x
file が実行可能ならば真となる。
test -x file


X Window System

Systemdの時に
 ランレベル1:rescue.target で rootのパスワード入力が要求される
 ランレベル3:multi-user.target でテキストログイン画面が表示される
 ランレベル5:graphical.target でグラフィカルログイン画面が表示され、ディスプレイマネージャがXサーバである /usr/bin/Xlog を起動する

ディスプレイマネージャ
ユーザ認証が完了するとXサーバとXクライアントを起動する。クライアントはユーザがGNOMEだと gnome-session , KDE だと startkde になる。また、gnome-session とXorgサーバも起動する。

Wayland
Xに変わる新しいディスプレイサーバで、従来のXに比べてフリッカーがなく処理が速い特徴がある。プロトコルはWaylandを使用する。

 xdpyinfoコマンド:Xサーバの情報を表示する
 xwininfoコマンド:特定のウィンドウやルートウィンドウの情報を表示する
 xwdコマンド:スクリーンやウィンドウのイメージをファイルに保存する
 xlsclientsコマンド:アプリケーション一覧を表示する

Linuxのウィンドウマネージャ
metacity , kwin

xorg.confファイル
解像度の変更などを設定する
  セクション
   ServerLayout:X サーバーによって制御されている入出力デバイスの組み合わせ
   Files:フォントパスなど、X サーバーのサービス用のパス
   Module:X サーバーがロードする /usr/X11R6/lib/modules/ ディレクトリ内のモジュール指定
   InputDevice:X サーバーに対する各入力デバイスの設定
   Monitor:システムによって使用されるモニターのタイプ
   Device:システム上のビデオカードの設定
   Screen:Device セクションとMonitorセクションを参照して、ビデオカードをモニタに結合
   DRI:DRI (Direct Rendering Infrastructure)用のパラメータを指定

環境変数DISPLAY
送り先のXサーバを指定する(クライアント側の設定)
xhostコマンド
クライアントからのリクエストの許可をする(サーバ側の設定)。xhost + host名でリクエストを許可し、+のみだと全てのホストを許可する。反対に禁止はー。クライアントが認証なしに接続できるのでSSHなどを設定してセキュリティに気を付ける必要がある。

X11ポート転送
リモートで実行したXアプリをローカルホストの画面に表示、操作することがで、接続はSSHを用いる。クライアントでは環境変数DISPLAYが自動で設定される。また、サーバ・クライアントそれぞれでX11ポート転送を許可する必要がある。

XDMCP
Xサーバがネットワークを介してディスプレイマネージャに接続するためのプロトコル

VNC(Virtual Network Computing)
RFB(remote frame buffer)プロトコルでローカルマシン上でリモートマシンのデスクトップを表示操作する。通信路には SSHを用いる。
RDP(Remote Desktop Protocol)
リモートのWindows systemをローカルデスクトップに表示する
SPICE:仮想マシンのコンソールをローカルホストに表示する
gok(GNOME Onscreen Keyboard)
GNOME2のアクセシビリティ機能としてオンスクリーンキーボードを提供する
GNOME shell
libcaribouライブラリを使用したGNOME3のオンスクリーンキーボード。orca はスクリーンリーダー。
emacspeak
テキストを読み上げるプログラム
スティッキー・キー
入力が困難な人のためのキーボード設定


ユーザアカウントの管理

useraddコマンド
新規にユーザを登録することができ、/etc/passwd,/etc/shadowへのエントリの作成とホームディレクトリ(/etc/skelディレクトリ以下)も自動作成する。
 -m:ユーザーのホームディレクトリが存在しない場合、作成する
 -M:ユーザーのホームディレクトリを作成しない
 -b:ホームディクトリのベースとなるディレクトリ(/homeなど)
 -d ディレクトリ:ユーザーのホームディレクトリ(通常はユーザー名と同じにする)
 -k ディレクトリ:ひな型ディレクトリ(デフォルトは/etc/skel)を指定する
-s シェル
ユーザーのログインシェル(フルパスで指定)を指定する(指定しなかった場合、デフォルト設定を用いる)
-p パスワード
cryptで暗号化されたログインパスワードを利用できるようにする(「-p '暗号化された文字列'」のように指定する)
-e 日付
ユーザーのアカウントが期限切れとなる日付を指定する
-f 日数
ユーザーのパスワードが期限切れになってからアカウントが無効化されるまでの日数(デフォルト値は「-1」:無効化しない)
-c コメント
/etc/passwdのコメント欄の内容を指定する(GECOSフィールド:ユーザーの所属やフルネームなどを書く)
-l
ユーザーをlastlogとfaillogのデータベースに追加しない
-r
システムアカウントを作成する(※3)
-Z ユーザー
SELinuxのユーザーマッピングに指定したユーザーを指定する
-K キー=値
/etc/login.defsに保存されている値を一時的に置き換える(詳しくは本文を参照
-D
デフォルト設定を表示する、または変更する(「-b」「-e」「-f」「-g」「-s」と組み合わせる

/etc/shadow
 $1$:md5
 $2$:Blowfish
 $5$:SHA256
 $6$:SHA512

 フィールド
  1 ユーザ名
  2 暗号化されたパスワードが記述されている
  3 最終パスワード変更日 最後にパスワードが変更された年月日(1970 年 1 月 1 日からの経過日数で表示)記述されている
  4 パスワードが再度変更可能になるまでの日数が記述されている
  5 パスワード有効期間
  6 パスワード変更期間警告通知日
  7 パスワード有効期限経過後にアカウント使用不能になるまでの日数
  8 アカウント有効期間 アカウントが使用不可になるまでの日数(1970 年 1 月 1 日からの経過日数で表示)が記述されている
  9 予約フィールド 現在は使用されていない

userdelコマンド
ユーザアカウントを削除するが、-r , --remove を入れない場合は/etc/passwd,/etc/shadowへのエントリだけが削除され、ホームディレクトリは削除されない。-f , --force を指定するとユーザがログイン中でも削除できる。

getent データベース key
引数として/etc/nsswitch.conf のエントリを指定してデータベースの内容を表示する。(passwd , hosts etc)

usermod -e , chage -E
アカウントが失効する日を変更する

chage [オプション]
ユーザーのパスワード有効期限を表示・変更する
 -d 最終更新日:パスワードの最終更新日(YYYY-MM-DD)を指定します。
 -E 有効期限日:パスワードの有効期限日(YYYY-MM-DD)を指定します。
 -I 日数:パスワードの有効期限が切れてから、ユーザーアカウントがロックされるまでの日数を指定。
 -l ユーザー:ユーザーのパスワード有効期限情報を表示します。
 -m 日数:パスワードが変更できる最小日数を指定します。
 -M 日数:パスワードが有効な最大日数を指定します。
 -W 日数:パスワードの有効期限が切れる何日前から警告を表示するかを指定します。

chsh ユーザー
ログインシェルを変更できる。/sbin/false を指定すれば対話的なログインを禁止し、/sbin/nologin を指定するとアカウントが使えない文言を出すコマンド。

ユーザーアカウントをロックせずにログインできないようにする
・/etc/passwd の第二フィールドに*か!を指定する

特定ユーザーのアカウントをロックする
・usermod -L ユーザー , passwd -l ユーザーを打つ。usermod -U ユーザー , passwd -u でアンロック

root以外のuid500以下
・デーモンや「ディレクトリの所有者として利用するシステムアカウント


システムサービスの管理

cron
決められた時刻に定期的に特定のコマンドを実行する機能
crontabコマンド
定期的に実行するコマンドや時刻を設定する。cronデーモンによって指定した時刻とコマンドが実行される。システムでは/etc/crontab が該当する。ユーザー以下でも/var/spool/cron ディレクトリが作成される。
-e : crontabの編集
-l : crontabの表示
-r : crontabの削除

anacron
コマンドを日単位で定期的に実行する。cronデーモンで起動され、/etc/cron.d , /etc/crontab(7つのフィールドがある) , /var/spool/cron で実行する。

/etc/cron.allow :
記載されているユーザーがあればcronを利用できる
/etc/cron.deny :
記載されているユーザー以外がcronを利用できる
両方になければ、Centosではrootのみが利用でき、ubuntuでは全てのユーザーが利用できる

atコマンド
指定した時刻に一回だけコマンドを実行する
batchコマンド
システム負荷が小さくなったときに一回だけコマンドを実行する
at , batch に限らず、/etc/at.allow と deny で実行の許可をコントロールできる

systemdのタイマー
root権限でしか設定ができないが、一定の間隔で指定したサービスを実行する。/etc/systemd/system/timer-test.service などのファイルを作り、[Timer]セクションでタイマーユニットの設定を行う。Unit は実行するサービスを指定する。
 monotonic timer (指定した間隔で1〜複数回サービスを実行する)
  OnActiveSec= : タイマーをActivateしてからの時間を指定
  OnBootSec= : マシンが立ち上がった後の間隔を指定
  OnUnitActiveSec= : 繰り返し実行する間隔を指定
 realtime timer (指定した時刻にサービスを実行)
  OnCalendar= : [Timer]セクションの実行時刻を「曜日 年 - 月 - 日 時刻」で指定する。

dateコマンド
システムクロックの時刻を表示する。Linuxインストール時のタイムゾーンの指定により、/etc/localtime に対応する時差情報ファイルがコピーされる。/usr/share/zoneinfo のタイムゾーンファイルへのシンボリックリンクになっていることもある。
 --utc : 世界標準時で表示
 date 1011093019 : 2019年10月11日09時30分でシステムクロックを指定している。

変数TZ
タイムゾーンを設定している。tzselectコマンドで設定する値を選択、表示することができる。

ハードウェアクロック
マザーボード上のICから提供される時計。RTC(Real TIME clock)やCMOSクロックとも呼ばれる。hwclock コマンドでシステムクロック、ハードウェアクロックの入れ替えができる。
 --systohc or -w : ハードウェアクロック→システムクロック
 --hctosys or -s : システムクロック→ハードウェアクロック

NTPサーバ
startum0 を時刻源とするstartum1 のサーバ。サーバはDNSラウンドロビンで負荷分散を分散を行っていることが多く、NT Pサーバを指定するときはホスト名をしてすることが推奨されている。
NTPデーモン(ntpd)の設定ファイルは /etc/ntp.conf になる。
iburst:/etc/ntp.conf内の「server」コマンドに設定する、NTPサーバとの初期の動機にかかる時間を短縮するオプション。

ntpdateコマンド
NTPを利用して時刻の設定ができる。
 -B:slewモードで強制的に時刻を修正。adjtime()を使って徐々に時刻の修正をする。
 -b:stepモードで強制的に時刻を修正。settimeofday()を使って直ぐに時刻の修正をする。
 -d:デバックモード。時刻の修正は行わない。
 -q:NTPサーバーに日付と時刻の問い合わせのみを行い、時刻の修正は行わない。
 -s:コマンドの実行結果を syslogに出力。
 -v:詳細情報を表示。

chronydデーモン
NTPより機能やパフォーマンスを改善したもの。設定ファイルはRedHat系で/etc/chrony.conf , Debian系で/etc/chrony/chrony.conf になる。
ディレクティブの設定表
server
<IP|ホスト名> [オプション]
同期先の NTP サーバを指定
driftfile
ファイルパス
レート情報の保存先ファイルを指定
makestep
しきい値(秒) 更新回数
システムクロックの調整しきい値と調整回数上限を指定
rtcsync

カーネルによりリアルタイムクロックが11 分ごとに更新される
logdir
ディレクトリパス
ログファイルが保存されるディレクトリを指定
allow
IP
自身を NTP サーバとして動作させる際にアクセスを許可する NTP クライアントを指定
peer
<server と同じ>
ピアとは互いにサーバとクライアントの両方になることができる
local
[オプション]
NTPサーバとして動作している chronyd が同期されていない場合や最終同期が長時間前の場合でも、NTP クライアントからはリアルタイムで同期されているように見える

chronyコマンド:引数をつけなければ対話的に実行することもできる。
 chronyc sources:接続状態を確認する
 chronyc tracking:トラッキングを確認する
 chronyc -a makestep:手動による時刻同期

システムログ
 syslog:Syslogプロトコルとして標準化され、facilityやpriorityが含まれる
rsyslog:Syslogプロトコルをベースとして機能が強化され、syslog.confと後方互換性がある
syslog-ng:syslog-ng.confにsyslog.confとの互換性は書式が違うためない
systemd journal:Syslogプロトコル互換のインターフェースがあり、他のsyslogソフトと連携できる。デーモンはsysemd-journald。

syslogdデーモン
カーネルやサーバから送られてくるメッセージを種類に応じて、/etc/syslog.conf で指定された出力先に出力する。セレクタフィールドとアクションフィールドがある。

 syslogdコマンド
  -d:デバッグモードをオンにします。
  -f 設定ファイル:デフォルトの/etc/syslog.confの代わりに、代わりの設定ファイルを指定。
  -h:受信したリモートメッセージを転送先ホストに転送します。
  -r:ネットワークからメッセージを受信できるようにする
 
主なファシリティ
ファシリティとは、メッセージの出力元のこと
   ・auth,authpriv 認証系(usなど)
   ・cron cronからのメッセージ
   ・daemon daemonからのメッセージ
   ・kern カーネルからのメッセージ
   ・lpr プリンタ、印刷関係のメッセージ
   ・mail システムメール関係のメッセージ
   ・syslog syslogの機能関係のメッセージ
   ・local0~7 独自設定
   ※ *をつけると全てのファシリティを表す
プライオリティ
プライオリティをさげるほど記録されるメッセージは増大する。 
   ・emerg 致命的状態
   ・alert 早急な対処が必要
   ・crit 危険な状態
   ・err 一般的エラー
   ・warning 一般的警告
   ・notice 重要な通知
   ・info システムからの情報
   ・debug デバッグ情報 
   ・none ファシリティの無効化 ログの除外
  出力先
   ・ファイル名 ファイルに出力
   ・@ホスト名 リモートホストのsyslogデーモンへ出力する。
   ・ユーザ名 ユーザの端末に出力する。
   ・/dev/console コンソールへ出力する。
   ・* 全てにユーザ端末へ出力する。
journalctlコマンド
systemd-journaldが収集して格納する。
 -a (–all):画面に表示できない文字も含めて表示
 -D (–directory):指定ディレクトリのログを表示
 -e :末尾を表示する。
 -f :出力されたログを表示する
 -k:カーネルからのメッセージを表示する。
 -l (–full):全てのログを表示する。
 -n (–lines):出力する行数を指定する(headを用いなくても良くなります)
 –no-pager:lessコマンドで出力されず、catコマンドのように全てを表示
 -r (–reverse):最新のログから表示
 –since:指定した日付以降のログを表示します。
 –until:指定した日付より前のログを表示します。
 -u (–unit):指定したunitのログを表示します。
 –vacuum-sice=サイズ:アーカイブを指定したサイズを下回るまで削除。
 –vacuum-time=時間:指定した期間より古いアーカイブジャーナルを削除。
 –list–boot:bootした履歴を表示する。
systemd-catコマンド
引数で指定したコマンドの標準出力とエラー出力をメッセージをsysemd-journaldに送ることで、ログに記録することができる。
loggerコマンド
任意のfacility,priority を指定してログメッセージをsyslogデーモンに送る。
loglotateコマンド
ログ名、間隔、回数を設定ファイルに書き込む

CUPS:Linuxのプリントサービス

 /etc/cups/printers.conf:登録されたプリンタのDeviceURIが指定されて設定ファイル。
 PPD(PostScript Printer Description):PostScriptプリンタへのプリンタ定義ファイル
 lpadminコマンド:プリンタの登録や削除を行う
 cupsdisableコマンド:指定したプリンタを停止状態にする。
 Ghostscript:Postscriptをプリンタうあデバイスの形式に変換する
 印刷コマンド
 BSD
  lpr:CUIを使用してファイルを印刷する場合
    -# 部数
    -P プリンタを指定
    -o フィルタを通さない
 SystemV系
  lp:印刷依頼をするためのコマンド。
    例:lp <オプション> <ファイル名>
    -n 部数
    -d プリンタを指定する
    -o フィルタを通さない

 キューを表示
 BSD
  lpq:プリントキューの現状を確認したいときに使用する。(lpc)
  書式 lpq <オプション> <ユーザ名> <ジョブ番号>
     -P 確認するプリンタを指定する
 SystemV系
  lpstat:印刷ジョブのキューを確認する。書式lpstat <オプション>
     -t すべてのステータスを表示する
 
localeコマンド:ロケール情報を表示する
iconvコマンド
ファイルに格納された文字のエンコードを変換する。
プログラムメッセージを日本語に変更
 環境変数LANGを jp_JP.UTF-8 に変更または、LC_MESSAGES & LC_CTYPE を jp_JP.UTF-8 に設定する

ネットワーク

/etc/services
サービス名とポート番号の対応が記述される
スタンドアロンデーモン
xinetd を経由せずに、 init , systemd を使用して起動するデーモン

netstatコマンド
UNIXドメインソケットやルーティングテーブルを表示する
  -a:すべての接続を表示します。
  -c:情報を1秒おきに更新して、表示します。
  -C:ルーティング・キャッシュからルーティング情報を表示します。
  -e:詳細情報を表示します。
  -ee:さらに詳細情報を表示します。
  -g:IPv4とIPv6のマルチキャストグループ情報を表示
  -i:すべてのネットワークIFを表示
  -l:接続待ち(LISTEN)のソケットのみを表示
  -M:マスカレード機能の統計情報を表示
  -n:名前解決をせずに数字で表示します。
  -p:各ソケットが利用しているPIDとプログラム名を表示。
  -r:ルーティング・テーブルを表示します。
  -s:各プロトコルの統計情報を表示します。
  -t:TCPの情報のみを表示します。
  -u:UDPの情報のみを表示します。

hung
CPやアプリから応答がなくなること。DNSからの応答がないときにnetstatを -n つけずにいると、ホスト名に変換できないのでhungする

tracerouteコマンド
IPパケットが宛先ホストに着くまでの経路を表示する。デフォルトはUDPを使用するが、-i でICMPパケットを送信することもできる。

lsofコマンド
プロセスによってオープンされているファイルの一覧を表示する
  -a:複数のオプションを指定した際に、ANDの意味で機能させる
  -u ユーザー:ユーザーの名前またはユーザーIDを指定する
  -p プロセスID:表示対象にしたいプロセスIDを指定する
  -i:ネットワークソケットを対象にする
  -t:プロセスIDのみを表示する

ifconfigコマンド
ネットワークIFの設定や表示をする。ifup , ifdown でネットワークIFのupとdownができる

ipコマンド
ifconfig に変わり、ルーティングテーブルやARPキャッシュ管理などの機能を追加したもの。
   link:ネットワークデバイス
  addr:ネットワークデバイスのIPアドレス
  addrlabel:アドレスラベル
  route:ルーティングテーブルのエントリー
  rule:ルーティングポリシーデータベースに登録されているルール
  neigh:近傍キャッシュエントリ(ARPまたはNDISCキャッシュエントリ)
  ntable nt:近傍キャッシュの管理テーブル

routeコマンド
ルーティングテーブルの設定と表示を行う。経路を追加するには、「route add 宛先IPアドレス gw ゲートウェイのIPアドレス dev インタフェース」。削除は del 。
  del:経路を削除する。
  add:新しい経路を追加する。
  target:対象とするネットワークまたはホストを指定する。
  -net:target をネットワークとする。
  -host:target をホストとする。
  netmask NM:ネットワーク経路を追加する場合、そこで使用されるネットマスク。
  gw GW:ゲートウェイを経由した経路パケット。

変数ip_forward
フォワーディングの設定。絶対パスは /proc/sys/net/ipv4/ip_forward 。

デフォルトルート
ルーティングテーブルのどのエントリにも一致しない時に参照される

nmcliコマンド
NetworkManagerの制御を行う。Wifiアクセスポイントにつなぐときはdeviceを使用する

/etc/resolv.conf
DNSサーバへの問い合わせの定義設定を行う。etc/nsswitch.conf のhosts に dns がなければDNSサーバに問い合わせができない。
  nameserver:ネームサーバのIPアドレス(最大3台)
  domain :ドメイン名
  search :検索リスト(複数設定できる、ドットがないホスト名はserch で指定したドメインを検索する)

DNSへの問い合わせコマンド
hostコマンド:host [オプション] ホスト [DNSサーバー]
   -a:表示できるすべての情報を表示
   -d:デバックモード。詳細な情報を表示
   -r:指定したDNSサーバーのみを検索
   -v:詳細な情報を表示します。
  digコマンド:dig<オプション><@DNSサーバ>ドメイン名<クエリタイプ>

メール転送エージェント(MTA)
Postfix , Exim , Sendmail がある。ローカルユーザー宛のメールはディレクトリ /var/spool/mail , /var/mail に届けられる。メールのキューを確認するときは、 mailqコマンドw実行するか、メールキューディレクトリのファイルをls で表示する。
  Sendmail :どのMTAでも提供されていて、CUIベースである。

/etc/aliases:メールアドレスの別名を記載
newaliasesコマンド
エイリアスファイルを変更したときに、エイリアスDB ファイルを更新する

オープンリレー
外部からのメールを制限せず他のドメインに中継する

受信メールの転送
ホームディレクトリ下にある、~/.forward ファイルを作成し転送先アドレスを記載する。


セキュリティ

/etc/sudoers
sudoコマンドの権限を持っているか判定するためのファイル

/etc/xinted.conf
xintedの設定ファイルの絶対パス。xinted はinted 後継デーモンで、ネットワークからのリクエストの受付をする。設定ファイルの編集後にxinted デーモンを再起動せずに有効にするためには、「pkill -HUP xinted」など、HUPまたはSIGHUPシグナルを送れば再読み込みできる。
属性
 only_from:そのサービスを可能にするリモートホストを指定する
 disable:"yes" または "no" の真偽値をとる。 これによりサービスが使用不能になり、起動されなくなる。
 id :この属性はサービスを識別するのに用いられる 
 server:そのサービスのために実行するプログラムを指定する
TCP Wrapper
サーバを外部から守るデーモン。シェアードライブラリとして libwrap が使用されている。xinted と libwrap を利用するサービスのみ保護の対象となる。
公開鍵暗号方式
~/.ssh/known_hosts
SSHクライアント上に作成され、ホスト名、IPアドレス、公開鍵が格納される
/etc/ssh ディレクトリ
sshサーバとsshクライアントが使用する。この配下にある /ssh_known_hosts hはローカルシステムの全ユーザーが使用する公開鍵が格納される。ユーザーには読み取り権限を与え、システムファイルなので書き込み権限は与えないようにする。
~/.ssh/config(ユーザー設定ファイル)
/etc/ssh/ssh_config(システムファイル)
sshコマンド実行時のオプション設定を行う。
sshコマンド
 -i 秘密鍵ファイル:秘密鍵ファイル(identityファイル)を指定します。初期設定は、SSHバージョン1は、~/.ssh/identity、SSHバージョン2は、~/.ssh/id_rsa と ~/.ssh/id_dsa。
 -l ユーザー名:ログインユーザー名を指定します。
 -p ポート番号:ポート番号を指定します。
 -1:SSHのプロトコルバージョン1を使用します。
 -2:SSHのプロトコルバージョン2を使用します。
ssh-keygen -t タイプ
 -f:鍵を生成するファイルの保存場所を指定(生成、または生成するファイルを指定)
 rsa1 s:基本的には使用してはいけない。
 rsa:主流な暗号形式、モダンなssh2環境にてサポートされている。
 dsa:モダンなssh2環境にてサポートされている形式の暗号
 ecdsa:dsaの変種で、短い鍵長でも十分な安全性が確保できる
ssh-agent
復号された秘密鍵をメモリに保持するエージェント。秘密鍵の登録はssh-addコマンドで行い、ssh
コマンドを実行してもパスフレーズを入力せずにログインできるのはssh-agent が秘密鍵を取得するため。
lsof [オプション] [パス名](fuser)
ファイルシステムにアクセスしているプロセスを表示する
 -u ユーザー:表示対象にしたいユーザーの名前またはユーザーIDを指定する(※1)
 -p プロセスID:表示対象にしたいプロセスIDを指定する(※2)
 -c 文字列:表示対象にしたいプロセスの先頭文字列を指定する(※3)
 +c 文字数:プロセス名を表示する際の長さを指定する(※4)
 -d 数字:表示対象にするファイルディスクリプタ(※5)
 +d ディレクトリ:表示対象にするディレクトリ名
 +f マウントポイント or デバイス:プロセスの表示
GPG(GNU Privacy Guard)
OpenPGP 標準でデータや通信を暗号化したり署名する。キーリングと設定ファイルは ~/.gnupg になる。
 -e, --encrypt [file] :file を暗号化する.--sign と共に用いることができる.
 -d, --decrypt [file] :file を復号し,標準出力 (または,--output オプションで指定されたファイル) に書き出す。復号されたファイルが署名されていた場合,署名を検証する.
 --export [names] :鍵束から names で指定された鍵 (指定が無い場合,すべての鍵) を取り出す.
 --import files :鍵束に files で指定された鍵を追加する.
 --gen-key :鍵ペアを生成する (対話型のコマンド).
 -r, --recipient name :ユーザ ID name に対して暗号化する。このオプションが指定されない場合は,ユーザ ID の入力が求められる
 --edit-key user_id :鍵に関する情報を表示し,対話的にできるようになる
/etc/nologin
作成された時点で全ての一般ユーザーの対話的なログインを一時的に中止する。メッセージを格納するとユーザーのログイン時に表示されてログインを拒否する。

last [オプション] [ユーザー名] [端末番号]
/var/log/wtmp ファイルを参照し、システムのログイン履歴を新しい順に一覧表示する。
 -n 行数, -行数:lastで表示する行数を指定する
 -t 日時:指定した日時(YYYYMMDDhhmmss)より前のログイン情報を表示する
 -x:システムのシャットダウンとランレベル変更の記録も表示する(※1)
 -R:hostname欄を表示しない
 -a:ホスト名を最後の欄に表示する
 -d:リモートログイン時、ログイン元のIPアドレスをホスト名に変換して表示する
 -i:リモートログイン時、ログイン元のIPアドレスのまま表示する
 -f ファイル名:/var/log/wtmp」ファイルの代わりに使用するファイルを指定する

w , whoコマンド
/var/run/utmp を参照してログイン中のユーザーを表示する。

ulimit [オプション] [値]
ファイルの最大サイズや、使用できるメモリ、同時に実行できるプロセス数などユーザーが使用できるリソースを制限する
 -a:現在設定されている値を全て表示する
 -c:作成されるコアファイルの最大サイズ(512バイト単位のブロック数)
 -d:プロセスデータセグメントの最大サイズ(KB=1024バイト単位)
 -e:スケジュール優先度の最大値(nice値)
 -f:シェルとシェルの子プロセスが書き込み可能なファイルサイズの最大値(ブロック数)
 -i:保留できるシグナルの最大数
 -l:メモリにロックできるプロセスの最大サイズ(KB)
 -m:利用できる最大のメモリサイズ(KB)
 -n:同時にオープンできるファイル数
 -p:パイプのバッファーサイズ(512バイト単位のブロック数)
 -q:POSIXメッセージキューの最大バイト数
 -r:リアルタイムスケジュール優先度の最大値
 -s:スタックサイズの最大値(KB)
 -t:プロセスごとに利用できるCPU時間の最大値(秒数)
 -u:実行可能なユーザープロセスの最大数
 -v:シェルとシェルの子プロセスが利用可能な仮想メモリの最大サイズ(KB)
 -x:ファイルロックの最大数


よろしければサポートお願いします!よりいい情報を発信します。