PR
キーワードサーチ
コメント新着
フリーページ
whatisデータベースを作成するコマンドは?
・makewhatis
設定されている全てのシェル変数を一覧表示するコマンドは?
・set
指定したコマンドを既存のジョブ(シェルのプロセス)に置き換えて実行するコマンドは?
・exec
コマンド実行履歴を保存するファイル名を格納する環境変数は?
・HISTFILE
コマンド実行履歴保存ファイルの最大記録数を設定する環境変数は?
・HISTFILESIZE
任意の1文字を表すメタキャラクタは?
・?
historyコマンド実行結果から過去のコマンドを実行する。
・!番号
/etc/crontabファイルに関するmanページを表示するコマンドは?
・man 5 crontab
ロケールを格納する環境変数は?
・LANG
現在ログインしているユーザはrootである。
testユーザのホームディレクトリに移動するコマンドは?
・cd ~test
ホスト名を格納する環境変数は?
・HOSTNAME
ログインしているユーザのホームディレクトリを格納する環境変数は?
・HOME
ホームディレクトリに\workディレクトリを作成するコマンドは?
(シングルクォーテーション、ダブルクオーテーションは使わないこと)
・mkdir ~/\\work
現在、ユーザがログインした際に起動するデフォルトのシェルは?
・bash
設定されている全ての環境変数を一覧表示できるコマンドは?
(アルファベット順に3つ)
・env
・printenv
・set
現在の環境変数PATHに「/usr/local/test」ディレクトリを追加したい。
下線部にあてはまる語句は?
$ export PATH=$PATH:/usr/local/test
現在使用しているシステムの情報を表示するコマンドは?
・uname
passwdというキーワードと完全に一致した名前を含むmanページを検索するコマンドは?
(アルファベット順に2つ)
・man -f passwd
・whatis passwd
囲んだ部分をコマンドとみなし、その実行結果を表示するメタキャラクタは?
・`
ログインしているユーザ名を格納する環境変数は?
・USER
シェル変数であるLPICの値をtestにするコマンドは?
・LPIC=test
dpkgコマンドのアクションのうち、設定ファイルを残してパッケージをアンインストールするアクションは?
・-r
・--remove
Debianパッケージにおいて、パッケージ情報のデータベースを使って依存関係を調整しながらパッケージのインストール・アンインストールなどを行えるコマンドは?
・apt-get
dpkgツールにおいてインストール済みのパッケージを再設定するコマンドは?
・dpkg-reconfigure
dpkgコマンドを使用して、「procmail」パッケージを設定ファイルを含めて全てアンインストールしたい。適切なコマンドは?
・dpkg -P procmail
・dpkg --purge procmail
apt-cacheコマンドのサブコマンドのうち、指定したパッケージへ依存しているパッケージを含めた詳細情報を表示するサブコマンドは?
・showpkg
apt-getコマンドのサブコマンドのうち、過去に取得したパッケージファイルを削除するサブコマンドは?
・clean
dpkgコマンドを使用して、インストール済みのパッケージを一覧表示させたい。
適切なコマンドは?
・dpkg -l
・dpkg --list
apt-getコマンドのサブコマンドのうち、パッケージをアンインストールするサブコマンドは?
・remove
dpkgツールの設定ファイルは?
・/etc/dpkg/dpkg.cfg
apt-cacheコマンドのサブコマンドのうち、指定したパッケージのサイズやファイル名などを含めた情報を表示するサブコマンドは?
・show
dpkgコマンドのアクションのうち、パッケージをインストールするアクションは?
・-i
・--install
apt-cacheコマンドを使用して、「ssh」パッケージが依存しているパッケージの名前を一覧表示させたい。適切なコマンドは?
・apt-cache depends ssh
dpkgコマンドのオプションのうち、ディレクトリを再帰的に処理するオプションは?
・-R
apt-cacheコマンドを使用して、キーワード「ssh」を含むパッケージを表示させたい。適切なコマンドは?
・apt-cache search ssh
dpkgコマンドのアクションのうち、指定したインストール済みパッケージの詳細情報を表示するアクションは?
・-s
・--status
APTツールではネットワーク経由で最新のパッケージを取得できるがパッケージの取得元(リポジトリ)を設定するファイルは?
・/etc/apt/sources.list
dpkgコマンドのオプションのうち、新バージョンが既にインストールされている場合はインストールを行わないオプションは?
・-G
dpkgコマンドのオプションのうち、同バージョンが既にインストールされている場合はインストール行わないオプションは?
・-E
dpkgコマンドのアクションのうち、指定したファイルのインストール元のパッケージを表示するアクションは?
・-S
・--search
dpkgコマンドのアクションのうち、インストール済みのパッケージを一覧表示するアクションは?
・-l
・--list
dpkgコマンドのアクションのうち、指定したパッケージからインストールされたファイルを一覧表示するアクションは?
・-L
・--listfiles
dpkgコマンドのアクションのうち、インストールが中断しているパッケージを表示するアクションは?
・-C
・--audit
apt-getコマンドを使用して、ディストリビューションを最新版にしたい。適切なコマンドは?
・apt-get dist-upgrade
APTツールにおいてパッケージ情報の検索・参照などを行うコマンドは?
・apt-cache
APTツールにおいて、apt-getやapt-cacheコマンドよりも高度なコマンドで、対話的なパッケージ管理が行えるコマンドは?
・aptitude
apt-cacheコマンドのサブコマンドのうち、キーワードを含むパッケージを検索するサブコマンドは?
・search
あるプログラムが必要としている共有ライブラリを表示するコマンドは?
・ldd
「/bin/bash」を実行するときに必要となる共有ライブラリを調べたい。適切なコマンドは?
・ldd /bin/bash
共有ライブラリを格納するためのディレクトリを新たに作成した。
ldconfigコマンドを使用して共有ライブラリのキャッシュファイルを更新するためには、
どのファイルに新しいディレクトリのパスを記述する必要があるか?
・/etc/ld.so.conf
プログラムの実行時に、共有ライブラリの場所を検索するために使用されるファイルは?
・/etc/ld.so.conf
共有ライブラリの検索パスを設定できる環境変数は?
・LD_LIBRARY_PATH
共有ライブラリのキャッシュファイル「/etc/ld.so.cache」を更新するコマンドは?
・ldconfig
ルートパーティションを「/dev/sda2」に指定して起動させたい。起動プロンプトにおいて下線部に当てはまる記述は?
・grub> linux /boot/vmlinuz-2.6.35 root=/dev/sda2
「/sbin/init」の代わりに「/bin/bash」を起動したい。起動プロンプトにおいて下線部に当てはまる記述は?
・grub> kernel /boot/vmlinuz-2.6.35 init=/bin/bash
GRUB2の設定ファイルは?
・/boot/grub/grub.cfg
ブートローダであるGRUB2の設定ファイルの内容を変更したい。変更内容を反映させるコマンドは?
・grub-mkconfig
GRUB Legacyの設定ファイルは?(アルファベット順に2つ)
・/boot/grub/grub.conf
・/boot/grub/menu.lst
GRUB Legacyの設定ファイル「/boot/grub/menu.lst」において、ルートパーティションを
1番目のディスクの4番目のパーティションに指定したい。どのように指定すれば良いか?
・root (hd0,3)
GRUB Legacyの設定ファイル「/boot/grub/menu.lst」において、ルートパーティションを
2番目のディスクの3番目のパーティションに指定したい。どのように指定すれば良いか?
・root (hd1,2)
以下はGRUB2の設定ファイル「/boot/grub/grub.cfg」の抜粋である。ルートパーティションを
1番目のディスクの4番目のパーティションに指定したい。どのように指定すれば良いか?
・set root=(hd0,4)
以下はGRUB2の設定ファイル「/boot/grub/grub.cfg」の抜粋である。ルートパーティションを
2番目のディスクの3番目のパーティションに指定したい。どのように指定すれば良いか?
・set root=(hd1,3)
GRUB LegacyまたはGRUB2をインストールするコマンドは?
・grub-install
起動中のカーネルから出力される情報を抑制したい。
・grub> kernel /boot/vmlinuz-2.6.35 quiet
GRUBの第一段階のプログラムをバックアップしたい。
・dd if=/dev/sda of=stage1_backup.img bs=440 count=1
GRUB Legacyの設定ファイル「/boot/grub/menu.lst」において、システム起動時の
カーネルイメージと起動オプションを指定したい。
・kernel /boot/vmlinuz-2.6.35 root=/dev/hda1
systemdの動作するシステムで、実験的にグラフィカルログインモードで起動したい。
起動プロンプトで指定すべきカーネルパラメータを答えよ(省略不可)
・systemd.unit=graphical.target
「/etc/inittab」を設定ファイルとして使用しないinitプログラムは?
・systemd
・Upstart
systemdの動作するシステムで、システム起動時に最初に実行されるUnitファイルは?
・/etc/systemd/system/default.target
systemctlコマンドで次回起動時にシングルユーザーモードで起動するよう設定したい。
・systemctl set-default rescue.target
現在のランレベルを変更することでシステムを再起動したい。
・init 6
・telinit 6
現在および1つ前のランレベルを調べることが出来るコマンドは?
・runlevel
systemdが動作するシステムで次回起動時のターゲットを確認できるコマンド
・systemctl get-default
SysVinit採用システムで、ランレベル3で実行されるスクリプトが入っているディレクトリは?
・/etc/rc3.d
ユーザ数百人が利用すると想定されるファイルサーバを構築したい。
ルートパーティションとは別のパーティションとして構成した方がよいと考えられるディレクトリ
・/home/
システムの起動には必須で無いプログラムやライブラリが格納されたディレクトリは?
・/usr/
デバイスファイルが格納されていて、ルートパーティションから分割できないディレクトリ
・/dev/
アプリケーションのログファイルや一時的な電子メールファイルなど、
可変ファイル群を格納するディレクトリは?
・/var/
物理的な記憶デバイスの領域をまとめ、それを論理的なひとつの大きな記憶デバイスとして扱うことで、
物理的なパーティションの仕様に由来する制限を回避できるシステムの名称は?
・LVM
systemdの管理単位であるUnitの名称を以下の順に答えよ
・各種デバイスを管理するUnit device
・ファイルシステムのマウントを管理するUnit mount
・サービスを制御するUnit service
・スワップ領域を管理するUnit swap
・複数のサービスをひとつのグループにするためのUnit target
カーネルが出力するメッセージが格納されるリングバッファの内容を表示するコマンドは?
・dmesg
以下の特徴を持つinitプログラムの名前は?
・サービスやタスクを「ジョブ」という単位で扱う
・イベント駆動型
・サービスの並列起動処理が可能
・Upstart
システム起動時にブートローダからカーネルに渡されたパラメータが格納されたファイルは?
・/proc/cmdline
カーネルのログが記録されるなど、Linuxでメインで使用されるログファイルは?
・/var/log/messages
systemdの動作するシステムにおいて、プロセスのリソースを管理するLinuxカーネルの機能は?
・cgroups
デバイスが使用中のDMAチャネルに関する情報が格納されたファイル
/proc/dma
PCIデバイスの情報を表示するコマンド
また、PCIデバイスの情報が格納されたファイル
・lspci
・/proc/bus/pci/devices
I/Oポートアドレスの情報が格納されているファイル
・/proc/ioports
IRQに関する情報が格納されているファイル
・/proc/interrupts
ロードされているカーネルモジュールの情報を表示するコマンド
また、ロードされているカーネルモジュールの情報が格納されたファイル
・lsmod
・/proc/modules
接続されたUSBデバイスの情報を表示するコマンド
また、接続されたUSBデバイスの情報が格納されたファイルは?
・lsusb
・/proc/bus/usb/devices
キーボード、マウスなどが属しているUSBのデバイスクラスは?
・HID
CPUに関する情報が格納されたファイル
・/proc/cpuinfo
SCSIデバイスに関する情報が格納されたファイルは?
・/proc/scsi/scsi
依存関係を考慮してカーネルモジュールをロードまたはアンロードするコマンド
・modprobe
ホットプラグデバイスを接続した際に、デバイスファイルを動的に作成する仕組み
・udev
Linuxではパッケージという単位でソフトウェアを管理する。
パッケージには以下のようなものが含まれる
・実行ファイル
・ライブラリ
・設定ファイル
・マニュアルドキュメント
dpkg(rpm)コマンドの場合、手動で依存関係を調整するがapt(yum)の場合は自動で調整する。
e2fsckコマンドで「/dev/sda4」をチェックする際、全ての問題を自動的に修復したい。
○e2fsck -p /dev/sda4
「/bin/ls」ファイルの内容をASCII文字とエスケープ文字で表示したい。
プロンプト~$ od -t c /bin/ls
ln [-s] リンク元 リンク先
viコマンド
$:行末へ移動
0:行頭へ移動
USBのデバイスクラス
HIDキーボード、マウス
Mass Storage Classハードディスク、USBメモリー
ACMモデム、TA
AudioClassスピーカ、マイク
dpkgツールの設定ファイル
・/etc/dpkg/dpkg.cfg
dpkgコマンドを使用して、「ssh」パッケージの詳細情報を表示させたい。
・dpkg --status ssh
・dpkg -s ssh
「/bin/bash」を実行するときに必要となる共有ライブラリを調べたい。
・ldd /bin/bash
systemdが利用できるユニットの一覧を取得したい。
・systemctl list-unit-files
YUMツールではネットワーク経由で最新のパッケージを取得することができる。
パッケージの取得元(リポジトリ)を設定するファイルが格納されているディレクトリ
・/etc/yum.repos.d
yumコマンドを使用して、パッケージグループを一覧表示させたい。
・yum grouplist
umaskコマンドではマスク値というものを設定して、
新規に作成するファイルとディレクトリのデフォルトのパーミッションを決定します。
マスク値はユーザ毎に設定します。
マスク値が0の場合に使用されるデフォルトのパーミッションは、
ファイルが「666」、ディレクトリが「777」です。
これらの値から、指定したマスク値を引いた値が新たなデフォルトのパーミッションとして設定されます。
「SysVinit」と呼ばれる従来のinitプログラムを採用しているシステムでは、
カーネルから起動されるinitプロセスとして「/sbin/init」を起動します。
initは起動されると、設定ファイル「/etc/inittab」の記述に基づいて、
自動起動するべきプロセスを立ちあげるなど、アプリケーションレベルの初期化を行います。
特殊なパーミッション
・SUID
実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、
プログラムの所有ユーザの権限で実行されます。
設定はchmodコマンドで、通常のパーミッションの値に4000を加えた値を設定するか、
所有ユーザに「s」という権限を追加します(u+s)。
・SGID
実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、
プログラムの所有グループの権限で実行されます。
設定はchmodコマンドで、通常のパーミッションの値に2000を加えた値を設定するか、
所有グループに「s」という権限を追加します(g+s)。
・スティッキービット
ディレクトリに設定する事で、そのディレクトリに対して書き込み権限を持つユーザでも、
自分が所有する以外のファイルを削除できなくなります。
設定方法はchmodコマンドで、通常のパーミッションの値に1000を加えた値を設定するか、
その他ユーザに「t」という権限を追加します(o+t)。
これが設定された代表的なディレクトリに「/tmp」ディレクトリがあります。
ホットプラグデバイスを接続した際に、デバイスファイルを動的に作成する仕組み
・udev
「ctrl+alt+del」キーを押下した際のシステムの動作を設定するファイル
・/etc/inittab
ユーザ毎にディスククォータの設定を行う手順のリスト
1.「/etc/fstab」のファイルシステムにusrquotaオプションを設定する
2. ファイルシステムをマウントしなおす
3. quotacheckコマンドでデータベースファイルを作成・更新する
4. quotaonコマンドでクォータを有効にする
5. edquotaコマンド、またはsetquotaコマンドでユーザのクォータを設定する
「/etc/inittab」を設定ファイルとして使用しないinitプログラム
・systemd
・Upstart
システム起動時に最初に実行されるUnitは「/etc/systemd/system/default.target」です。
default.targetをSysVinitでのランレベルに相当するUnitへのシンボリックリンクとして作成することで、
期待するサービス群を起動できるようになります。
SysVinitのランレベルとsystemdのターゲットは以下のように対応しています。
これらのターゲットは「/lib/systemd/system」配下に格納されています。
また、SysVinitとの関連がわかりやすいように、runlevel0.target〜runlevel6.targetまでの
シンボリックリンクも用意されています。
シンボリックリンクは上書きできないので、事前に削除する必要があります。
デバイスが使用中のDMAチャネルに関する情報が確認できるファイルは次のうちどれか。
・/proc/dma
DMAは、Direct Memory Accessの略で、CPUを介さなくても周辺機器同士でデータをやり取りできる技術
IDEの接続インターフェースにはプライマリとセカンダリがあり、それぞれにマスターとスレーブのデバイスを接続できます。
ですので合計4台のIDEデバイスを接続できます。対応するデバイスファイル名は以下の通りです。(カーネル2.6.18より前)
・/dev/hda プライマリのマスター(1番目のディスク)
・/dev/hdb プライマリのスレーブ(2番目のディスク)
・/dev/hdc セカンダリのマスター(3番目のディスク)
・/dev/hdd セカンダリのスレーブ(4番目のディスク)
GRUB Legacyの設定ファイル「/boot/grub/menu.lst」において、
ルートパーティションを1番目のディスクの4番目のパーティションに指定
・root (hd0,3)
GRUB Legacy(GRUB1)の設定ファイル「/boot/grub/menu.lst」でルートパーティションを指定するには、
「root (hdディスク番号,パーティション番号)」と指定します。その際、番号はどちらも0から数えます。
SCSIデバイスに関する情報が確認できるファイル
・/proc/scsi/scsi
dpkgツールの設定ファイルは次のうちどれか。
・/etc/dpkg/dpkg.cfg
Linuxシステムを構築するに当たって、最低限必要なパーティション
・ルートパーティション
・スワップ領域
ブートローダであるGRUB Legacyの設定ファイル
・/boot/grub/menu.lst
・/boot/grub/grub.conf
マニュアルページが格納されているディレクトリとして適切なものは次のうちどれか。
・/usr/share/man
「/etc/fstab」ファイルは、利用するファイルシステムのマウント設定を事前に行っておく設定ファイルです。
mountコマンドはこのファイルの設定内容を参照して動作します。
「/etc/fstab」ファイルの書式は以下の通りです。項目は6つです。
(1) デバイス名
(2) マウントポイント
(3) ファイルシステムの種類
(4) マウントオプション
(5) dumpフラグ
(6) fsckフラグ
パーティションの設計について適切なものは次のうちどれか。
・/varは高速に書き込みできるディスクに割り当てる
D-Busについて
・Linuxで使われるプロセス間通信機構
D-Bus(Desktop Bus)は、プログラム同士が情報を伝達するプロセス間通信機構のひとつ
Linuxではdbus-daemonなどがプロセス間通信の中継を行う
新しいデバイスの認識情報を他のアプリケーションに伝達し、そのアプリケーションが新しいデバイスをすぐに使えるようになるなどのシステム管理上の利便性も向上します。
シグナルとシグナル番号
HUP1ハングアップ、再起動
INT(SIGINT)2Ctrl+c、割り込みによる終了
KILL(SIGKILL)9クリーンアップせずに終了
TERM(SIGTERM)15クリーンアップして終了、デフォルト
CONT(SIGCONT)18一時停止のプロセスを再開
STOP(SIGSTOP)19一時停止
TSTP(SIGSTP)20Ctrl+z、端末から入力された一時停止
パーティションの設計について適切なものは次のうちどれか。
・/varは高速に書き込みできるディスクに割り当てる
FHS(ファイルシステム階層標準)の説明
・ユーザがインストールしたプログラムの配置場所などを推測しやすくするためのもの
・ディストリビューションに依存しない、Linuxの標準的なディレクトリの構造を定めた規格のこと
dpkgツールの設定ファイル
・/etc/dpkg/dpkg.cfg
D-Busについて
・Linuxで使われるプロセス間通信機構
CPUに関する情報を確認できるファイル
・/proc/cpuinfo
設定ファイルを再度読み込ませて設定を反映させる為に、
プロセスを再起動するシグナル
・HUP
環境変数PATHの説明
・パスを指定しなくてもコマンドを実行できるようにするために使用される
・シェルは環境変数PATHに定義されたパスから、入力されたコマンドの実行ファイルを順に探す
GPTに存在しない制約
・基本パーティション数:4
・最大ハードディスク容量:2TB
・起動用システムファームウェア:BIOS
FHS(ファイルシステム階層標準)の説明
・ユーザがインストールしたプログラムの配置場所などを推測しやすくするためのもの
・ディストリビューションに依存しない、Linuxの標準的なディレクトリの構造を定めた規格のこと
YUMツールはRPMツールを拡張したツール群
インターネット上ないしはメディア上のパッケージ情報のデータベースを使い、
依存関係を調整しながらパッケージ管理を行うことが可能
パッケージの取得元(リポジトリ)は「/etc/yum.repos.d」ディレクトリ内のファイルで設定する
udevが使用するデバイス設定情報
・設定情報ファイルは「/etc/udev/rules.d」に配置される
カーネルはデバイスを検知すると「/sys」以下(sysfsと呼ばれます)の情報を更新、
その更新をudevは検知し、/dev以下にデバイスファイルを動的に作成します。
デバイスファイル作成時の動作は、「/etc/udev/rules.d」ディレクトリに
配置された設定ファイル(拡張子「.rules」)に記述された情報に基づいて行われる
パーティションの設計
・/varは高速に書き込みできるディスクに割り当てる
ハードリンクトシンボリックリンク
【ハードリンク】
ハードリンクとは、ファイルの実体を直接参照するリンクのことです。
ファイルを新規作成した場合は、ハードリンクが1つある状態です。
同じ実体を参照するハードリンクは複数作成できます。
それらは同じinode番号を持つことになります。
・File1→ファイル実態←File2
【シンボリックリンク】
シンボリックリンクとは、Windowsでのショートカットのようなもので、
元ファイルの場所を指し示すリンクの事です。
シンボリックリンクが持っている情報は「元ファイル(ディレクトリ)が
どこにあるのか」というパス情報のみです。
なお、File1とFile2ではinode番号が違う
・File2→File1→ファイル実態
SysVinitを採用したシステムの特徴
・ランレベル3では「/etc/rc3.d」配下のスクリプトが実行される
SCSIデバイスに関する情報が確認できるファイル
・/proc/scsi/scsi
ホットプラグデバイスを接続した際に、デバイスファイルを動的に作成する仕組み
・udev
一般的なLinuxシステムの起動順序(ブートプロセス)
・BIOS → ブートローダ → カーネル → init
○BIOS(Basic I/O System)
最もハードウェアに近い部分を司るシステムで、物理的なハードウェア(マザーボード)上に書き込まれています。
コンピュータの電源を入れると、まずこのBIOSが起動し、記憶装置(HDD)等に関して最低限の認識をして起動デバイスの優先順位を決定します。
その後、起動する順にデバイスの先頭セクタにあるMBR(ブート用の特殊領域。
ブートローダが格納されている)を読み込み、得られたブートローダに制御を移します。
ブートローダが得られない場合は次のデバイスのMBRを読み込みます。
最近のシステムではUEFI(Unified Extensible Firmware Interface)への移行が進んでいます。
○ブートローダ
LinuxシステムではGRUBが該当します。
MBRに格納されている第一段階部分と、記憶装置内の別の場所に格納されている第二段階部分があります。
このように分かれている理由は、MBRには厳しいサイズ制限があるためです。
ブートローダは記憶装置内のカーネルをロードし、カーネルに制御を移す役割を果たします。
第一段階のブートローダはMBRの先頭446バイトの領域にインストールされます。
○カーネル
カーネルは起動されると、高度にハードウェアを認識・制御し、ルートパーティションのマウントなど様々な初期化処理を行います。
その後、initという特別な最初のプロセスを起動します。
○init
最初に起動されるプロセスで、PID(プロセス ID)は必ず1です。
「SysVinit」と呼ばれる従来のinitプログラムを採用しているシステムでは、「/sbin/init」が起動されます。
initプロセスは設定ファイル「/etc/inittab」の記述に基づいて、自動起動するべきプロセスを立ちあげるなど、
アプリケーションレベルの初期化を行います。
以降、initプロセスは全てのプロセスの先祖(直接・間接的な呼び出し元)として存在し続けます。
なお、最近のシステムではinitプログラムとして、
初期化処理を高速化したUpstartやsystemdを採用している場合があります。
その場合は基本的に「/etc/inittab」ファイルは使用されません。
シェル変数と環境変数の違い
・シェル変数は、変数を設定したシェル上でのみ有効な変数で、exportすることによって環境変数とすることができる
・環境変数は、設定が子プロセスに引き継がれる
Windowsのメモ帳で作成したテキストファイルをLinuxで正しく扱えるようにしたい。
・テキストファイルから改行コードCR(\r)を取り除く
Linuxをインストールする際、ルートパーティションとは別のパーティションを割り当てる事が可能なディレクトリ
・/tmp
・/boot
ブートローダであるGRUB2の設定ファイル
・/boot/grub/grub.cfg
I/Oポートアドレスの情報が格納されているファイル
・/proc/ioports
スワップ領域は通常、物理メモリと同じサイズまたは2倍程度のサイズを設定
Systemdで扱う処理単位:Unit
・device:各種デバイスを管理するUnit
・mount:ファイルシステムのマウントを管理
・service:サービスを制御するUnit
・swap:スワップ領域を管理するユニット
・target:複数のサービスを一つのグループに管理するUnit
shutdownコマンドのmanページセクション
・8
マニュアルのセクション番号
1 ユーザコマンド
2 システムコール
3 ライブラリ関数
4 デバイスファイル
5 ファイルのフォーマット
6 ゲームプログラム
7 ファイルシステムなど
8 システム管理コマンド
9 カーネルルーチン
現在の環境変数PATHに「/usr/local/test」ディレクトリを追加
$ export PATH=$PATH:/usr/local/test
システム起動時においてのブートローダの説明
・記憶装置(HDD)内のカーネルをロードし、制御を移す
バス幅が16bitのSCSIに接続できる周辺機器の数
・15
※バス幅が16bitのSCSIでは16台のデバイスを扱うことができますが、そのうちの1台はSCSIコントローラになります。したがって、接続できる周辺機器の数は15台です。
SCSIデバイスの情報は「/proc/scsi/scsi」ファイルで確認できます。
全てのユーザが使用できるプログラムを作成した。そのプログラムはこのホストでのみ使用する。
プログラムを格納するディレクトリとして適切なもの
・/usr/local/bin
initプログラムであるUpstartの特徴
・イベント駆動型
・サービスやタスクを「ジョブ」という単位で扱う
・サービスの並列起動処理が可能
モデム、TA(ターミナルアダプタ)などが属しているUSBのデバイスクラス
・ACM Communication Device Class
従来のinitプログラムを置き換えるsystemdの特徴
・扱う処理をUnitという単位で管理する
・サービスの並列起動によって高速なシステム起動や停止が行える
・cgroupsでプロセスのリソースを管理する
USB関連
コントローラ規格USBモジュール(カーネル2.4)USBモジュール(カーネル2.6)
UHCIUSB1.1usb-uhciuhci_hcd
OHCIUSB1.1usb-ohciohci_hcd
FHCIUSB2.0サポートされていないehci_hcd
プログラムの実行時に、共有ライブラリの場所を検索するために使用されるファイル
・/etc/ld.so.cache
すでにマルチユーザモードで起動しているシステムを、メンテナンスのためにシングルユーザモードに変更
・telinit S
・init s
・telinit 1
Linuxの動作モードのことをランレベルといいます。現在のランレベルはinitまたはtelinitコマンドで変更できます。
1/s/S:シングルモード
環境変数
HISTFILE:コマンド履歴保存ファイルのパス
HISTSIZE:現在のシェルでのコマンド履歴保存数
HISTFILESIZE:コマンド履歴保存ファイルへの保存数
HOSTNAME:ホスト名
HOME:ログインしているユーザのホームディレクトリ
LANG:ロケール(言語設定)
PATH:コマンドやプログラムを検索するディレクトリのリスト
PWD:カレントディレクトリのパス
USER:ログインしているユーザ
USBのデバイスクラス
HID(Human Interface Device):キーボード、マウス
Mass Storage Class:ハードディスク
ACM Communication Device Class:モデム
Audio Class:スピーカ、マイク
「/etc/inittab」を設定ファイルとして使用しないinitプログラム
・systemd
・Upstart
「/etc/fstab」ファイルを編集して、ext3ファイルシステムの「/dev/sda1」をシステム起動時から「/boot」に自動マウントするよう設定
・/dev/sda1 /boot ext3 auto 1 1
・/dev/sda1 /boot ext3 defaults 1 1
updatedbコマンドの設定ファイル
・/etc/updatedb.conf
「/etc/fstab」ファイルでファイルシステム「/dev/hda5」に以下のようにディスククォータの設定を行った。
グループ毎のディスククォータのみ有効にするコマンド
/dev/hda5 /export reiserfs defaults,usrquota,grpquota 0 3
・quotaon -g /export
・quotaon -g /dev/hda5
# dd if=/dev/zero of=/dev/sda bs=446 count=1
if(入力ファイル)オプションに「/dev/zero」を指定すると全データがnullであるファイルが作成され、
of(出力ファイル)オプション「/dev/sda」のデータが上書きされます。
bs(ブロックサイズ)オプションに446が指定されているため、
ブートローダ部分のみが初期化されます。count=1はコピーする回数です。
apt-getコマンドの「update」と「upgrade」サブコマンドの説明
・「update」はパッケージのデータベースを最新版に更新する
・「upgrade」はインストール済の全パッケージのアップグレードを行う
指定したコマンド、またそのマニュアル、ソースコードが格納されている場所を
検索し、絶対パスで表示するコマンド
・whereis
「/dev/sda2」のファイルシステムチェックを、
1週間に一度ファイルチェックを行えるように変更
・tune2fs -i 7 /dev/sda2
nice値は「-20」から「19」まであり、nice値が高いプロセスほど優先度が低くなります。
優先度を高くする「-」はrootのみ設定可能
niceコマンドを使用せずにコマンドを単体で実行した場合のデフォルトのnice値は「0」だが、
niceコマンドを使用した「# nice test」のような場合のデフォルトの
(nice値を指定しなかった場合の)nice値は「10」
「/etc/fstab」ファイルでディスククォータが設定されている全てのファイルシステムの
ディスククォータを無効にするコマンド
・quotaoff -a
・quotaoff -av
「/etc/mtab」ファイルに記載されているファイルシステムを全てアンマウントするumountコマンドのオプション
・-a
10Kバイトのサイズを指定してファイルを作成
・dd
catオプション
-n :空行含めてすべての行に番号
-b :空行は含まず
nlオプション
-b a :空行含めたすべての行に番号
-b t :デフォルト、空行含まず
作成したリンクがハードリンクかシンボリックリンクかを確認
・ls -i
・ls -l
Sambaというキーワードを一部に含むmanページを検索するコマンドは次のうちどれか。
・apropos samba
・man -k samba
manコマンドのオプション
-k :キーワードの部分一致
-f :キーワードの完全一致
umount [オプション] [マウントされているデバイス名、またはマウントポイント]
-a :/etc/mtabファイル記載のファイルシステムをすべてアンマウント
-t :指定した種類のファイルシステムのみをアンマウント
MBR形式、GPT形式のパーティションテーブルをサポートするパーティション操作コマンド
・parted
MBRとGPTの違い
MBR
・2TB以下
・最大4個までパーティションを分けれる
・32bit環境まで
・どのマザーボードでも使用可能
GPT
・2TB以上(最大8.5ZB)
・最大128個までパーティションを分けれる
・64bit環境が必要
・マザーボードがUEFIに対応している必要がある ※2
システムを今すぐ再起動させたい。適切なコマンドは次のうちどれか。(全て選択)
・telinit 6
・systemctl reboot
・shutdown -r now
・systemctl start reboot.target
splitコマンドでオプションを指定しなかった場合、正しいものを選べ。
・1000行ごとに分割される
ファイルの内容をページ(1画面)ごとに表示するが、編集はできないコマンド
・more
・less
sortコマンドのオプション
-b行頭空白文字を無視
-f大文字、小文字を区別しない
-r降順ソート
-t区切り文字指定
-n数字を文字でなく数値としてソート
-kソート対象のフィールド指定
inodeの使用状況を確認することができるコマンド
・df -i
起動中のカーネルから出力される情報を抑制したい。起動プロンプトにおいて下線部に当てはまる記述
・grub> linux /boot/vmlinuz-2.6.35 quiet
現在および1つ前のランレベルを調べることができるコマンド
・runlevel
「ping localhost > ping.txt」コマンドをログアウト後もバックグラウンドで実行し続けたい。
・nohup ping localhost > ping.txt &
標準入力元をキーボードからファイルに切り替えるリダイレクト演算子
・<
configure.bz2ファイルを展開
・bzip2 -d configure.bz2
・bunzip2 configure.bz2
ps ax ほぼ同義 ps -ef
コマンドラインからディスククォータの容量の設定を行うコマンド
・setquota
cpコマンドの場所を絶対パスで表示したい。適切なコマンドは次のうちどれか。
・whereis cp
・which cp
ubuntu@ik1-333-26510:~$ which cp
/bin/cp
検索用データベースを使用して高速でファイル検索を行うコマンドは次のうちどれか。
・locate
現在22:50である。「Rebooting in 10 minutes」というメッセージを表示して、
23:00にサーバを再起動するコマンドは次のうちどれか。
・shutdown -r +10 "Rebooting in 10 minutes"
・shutdown -r 23:00 "Rebooting in 10 minutes"
rebootコマンドはシステムを再起動しますが、時間およびメッセージを指定することはできませんので、誤りです。
再起動コマンド
・systemctl start reboot.target
・shutdown -r now
・systemctl reboot
・telinit 6
「configure」ファイルをxz形式で「configure.xz」というファイルに圧縮したい。
また、圧縮前の元ファイルも残したい。
・xz -k configure
※k:keep
スワップ領域を作成するコマンド
・mkswap
「test.txt」ファイル内の全ての「a」を「A」に、また「b」を「B」に置換
・sed y/ab/AB/ test.txt
・sed -e s/a/A/g -e s/b/B/g test.txt
「boot.img」というイメージファイルをUSB(ここでは/dev/sdcとする)にコピー
・dd if=boot.img of=/dev/sdc
現在マウントされているファイルシステムを確認するコマンドを全て選べ。
・mount
・cat /proc/mounts
・cat /proc/self/mounts
・cat /etc/mtab
「file.txt」の所有ユーザをtestからstaffに、所有グループをtestからstaffgroupに変更
・chown staff.staffgroup file.txt
・chown staff:staffgroup file.txt
所有ユーザと所有グループを同時に変更する場合の書式は以下のとおりです。
chown [-R] ユーザ名:グループ名 ファイルまたはディレクトリ
なお、「:」の部分は「.」としても同じです。
partedを使って、新しいハードディスクのパーティションテーブルの方式をGPTに設定
・# parted /dev/sdb -s mklabel gpt
・# parted /dev/sdb
(parted) mklabel gpt
(parted) q
YUMツールの設定ファイル
・/etc/yum.conf
「/home」ディレクトリの詳細情報のみを表示させたい
・ls -dl /home
XFSファイルシステムを作成するコマンド
・mkfs.xfs
command1を実行し、command1が失敗した場合のみcommand2を続けて実行
・command1 || command2
command1を実行し、command1が成功した場合のみcommand2を続けて実行
・command1 && command2
終了文字が現れるまで、コマンドの標準入力に入力を続けるリダイレクト演算子
・<<
バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるにはfgコマンドを利用
fgコマンドの書式
・fg [ジョブ番号]
また、ジョブ番号を引数に指定しない場合は、カレントジョブ(直前にバックグラウンドで実行されたジョブ、
または直前に一時停止されたジョブ)がフォアグラウンドに変更されます。
カレントジョブはjobsコマンドの実行結果にある「+」がついているジョブです。
フォアグラウンド動作に切り替えたいジョブはカレントジョブですので、引数にジョブ番号を指定する必要がありません。
ファイルシステムをチェックせずに「/dev/sda2」がマウント出来る回数を10回に変更したい。
・tune2fs -c 10 /dev/sda2
プロセスのnice値を表示するコマンド
・top
・ps l
ext2/ext3/ext4ファイルシステムの各種情報を表示するコマンド
・dumpe2fs
[root@floren postfix]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
tqsda1 8:1 0 1G 0 part /boot
mqsda2 8:2 0 19G 0 part
tqcl-root 253:0 0 17G 0 lvm /
mqcl-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
「/dev/sr0」として認識されている内蔵CD-ROMドライブを「/mnt/cdrom」にマウントしたい。
「/etc/fstab」ファイルには、これを実現する為のエントリを追加していない。適切なコマンド
・mount /dev/sr0 /mnt/cdrom
フォアグラウンドで実行中のジョブを一時停止したい。
・Ctrl+z
「file1」と「file2」ファイルを行単位で区切り文字「:」を使用して結合
・paste -d : file1 file2
「dir」ディレクトリのパーミッションを700から500に変更
・chmod u=rx dir
・chmod 500 dir
・chmod u-w dir
「:」で区切られている「/etc/passwd」ファイルから、ユーザー名(1番目のフィールド)とログインシェル(7番目のフィールド)を取り出したい。
・cut -d : -f 1,7 /etc/passwd
[root@floren postfix]# yum list postfix
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: download.nus.edu.sg
* updates: centos.usonyx.net
インストール済みパッケージ
postfix.x86_64 2:2.10.1-6.el7 @anaconda
[root@floren postfix]# yum list php
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: download.nus.edu.sg
* updates: download.nus.edu.sg
利用可能なパッケージ
php.x86_64 5.4.16-45.el7 base
[root@floren postfix]#
以下はユーザ毎にディスククォータの設定を行う手順
1.「/etc/fstab」のファイルシステムにusrquotaオプションを設定する
2. ファイルシステムをマウントしなおす
3. quotacheckコマンドでデータベースファイルを作成・更新する
4. quotaonコマンドでクォータを有効にする
5. edquotaコマンド、またはsetquotaコマンドでユーザのクォータを設定する
「/dev/sda5」のディスク使用量をチェックし、ユーザクォータのデータベースファイルを作成・更新するコマンド
・quotacheck -u /dev/sda5
・quotacheck /dev/sda5
「boot.img」というイメージファイルをUSB(ここでは/dev/sdcとする)にコピー
・dd if=boot.img of=/dev/sdc
testユーザが所有する「File1」というファイルが存在する。rootユーザで以下のコマンドを実行した後、
「File1」と「File2」で共通するファイル情報
# ln File1 File2
・ハードリンク数
・パーミッション
・所有ユーザ・グループ
・inode番号
検索用データベースを使用して高速でファイル検索を行うコマンド
・locate
yumコマンドを使用して、パッケージグループを一覧表示させたい。
・yum grouplist
systemdの動作するシステムにおいて、メンテナンスのために以下のコマンドでシングルユーザーモードに変更し、作業を行った。
# systemctl rescue
作業が終わったので通常の起動状態に戻したい。
・systemctl default コマンドを実行する
・Ctrl-Dを入力する
・systemctl reboot コマンドを実行する
sambaというキーワードを一部に含むmanページを検索するコマンドは次のうちどれか。
・apropos samba
・man -k samba
fdiskコマンドのサブコマンド
mサブコマンドのメニュー表示
lパーティションタイプの一覧表示
nパーティションの作成
dパーティションの削除
pパーティションテーブルの表示
tパーティションタイプの変更
wパーティションテーブルの変更を保存して終了
qパーティションテーブルの変更を保存せずに終了
psのオプションには、UNIXオプション(ハイフンで始まるもの)と
BSDオプション(ハイフンを付けないもの)の2つの流派があり、
それに加えてGNU psではハイフン2つで始まるロングオプションが使える。
現在実行中の全てのプロセスを表示するpsコマンドのオプション
・-ef
・ax
プロセスに終了や再起動などのシグナル(命令)を送ることができるコマンド
・pkill
・kill
・killall
プロセスのシグナル
HUP(SIGHUP) 1 ハングアップ(再起動)
INT(SIGINT) 2 割り込みによる終了
KILL(SIGKILL) 9 クリーンアップせずに終了
TERM(SIGTERM) 15 クリーンアップして終了※killコマンドで送られるシグナル
CONT(SIGCONT) 18 一停止のプロセスを再開
STOP(SIGSTOP) 19 一時停止
TSTP(SIGTSTP) 20 端末から入力された一時停止
apt-get
install パッケージのインストールまたはアップグレード
remove パッケージのアンインストール
upgrade インストール済みの全パッケージアップグレード
dist-upgrade ディストリビューションを最新版にアップグレード
upgrade パッケージのデータベースを最新版に更新
clean 過去に取得したパッケージファイルを削除
プロセスの稼動状況を一定時間ごとに更新して表示するコマンド
・top
「httpd.conf」ファイルの末尾500バイトを表示
・tail -c 500 httpd.conf
プログラム「file」をどのユーザが実行しても、プログラムを所有するグループの権限で実行させたい。
なお、「file」のパーミッションは755である。
・chmod g+s file
・chmod 2755 file
プログラムをどのユーザが実行しても、プログラムを所有するグループの権限で実行されるようにするにはSGIDを設定します。
SGIDは特殊なパーミッションの1つです。
設定方法は、chmodコマンドで通常のパーミッションの値に2000を加えた値を設定するか、
グループに「s」という権限を追加します(g+s)。
「/etc/fstab」について
・「mount -a」コマンド実行時にマウントされないマウントオプション指定は「noauto」である
・項目数は6つである
cat /etc/fstab
fdisk
m サブコマンドのメニュー表示
l パーティションタイプの一覧表示
n パーティション作成
d パーティション削除
p パーティションテーブル表示
t パーティションタイプの変更
w パーティションテーブルを変更の保存
q パーティションテーブルの変更を保存せずに終了
「spacefile.txt」ファイルにあるスペース1つ分(行頭以外にあるスペースも含む)をタブに置き換えて表示
・unexpand -t 1 spacefile.txt
・unexpand -a -t 1 spacefile.txt
空のディレクトリのみを削除することができるコマンド
・rmdir
MBR形式のハードディスクにおいて、パーティションの作成、削除、変更および情報表示を行うことができるコマンド
・fdisk
「test.txt」ファイルから、「.*」という文字列を含む行を抽出
・fgrep '.*' test.txt
・grep -F '.*' test.txt
・grep '\.\*' test.txt
「/etc/mtab」ファイルでディスククォータが設定されている全てのファイルシステムのディスク使用量をチェックし、
データベースファイルを作成・更新するコマンド
・quotacheck -a
systemdが稼働するシステムにおいて、次回起動時のターゲットを設定するためのsystemctlのサブコマンド
・set-default
systemctl set-default
カレントディレクトリにあるファイルやディレクトリをファイルタイプをつけて表示したい。
適切なコマンドは次のうちどれか。
・ls -F
ハードリンク:ファイルの実体を直接参照するリンク
inode番号はファイルシステム毎に別々に管理される為、
異なるファイルシステムへハードリンクを作成する事はできません。
※シンボリックリンクは異なるファイルシステムでも作成できます。
ディレクトリのハードリンクは作成できない
「/bin/ls」ファイル(lsコマンドのバイナリファイル)の内容を16進数で表示
・od -t x /bin/ls
yumコマンドを使用して、「php」パッケージがインストールされているかどうか確認
・yum list php
apt-cacheコマンドを使用して、「ssh」パッケージへ依存しているパッケージを含めた詳細情報を表示させたい。
・apt-cache showpkg ssh
apt-getコマンドを使用して、過去に取得したパッケージファイルを削除したい。
・apt-get clean
systemdが稼働するシステムにおいて、システム起動時にhttpdサービスが自動起動しないようにしたい。
・systemctl disable httpd
XFSファイルシステムのデバッグを行うコマンド
・xfs_db
sambaというキーワードを一部に含むmanページを検索するコマンド
・man -k samba
・apropos samba
システムを今すぐ再起動
・systemctl reboot
・systemctl start reboot.target
・shutdown -r now
・telinit 6
ubuntu@ik1-333-26510:~$ sudo find / -name .bash_history
/home/ubuntu/.bash_history
/home/wilkinson/.bash_history
/opt/wow/.bash_history
Debian形式のパッケージ管理ツール
●dpkgツール
Debian系パッケージを管理する基本的なツールです。
設定ファイルは「/etc/dpkg/dpkg.cfg」です。
dpkgツールの主なコマンドは以下のとおりです。
・dpkgコマンド
パッケージのインストール・アンインストールなど、基本的なパッケージ管理を行うコマンド
(RPM系Linuxでは、rpmがほぼ同等のコマンドにあたる)
・dpkg-reconfigureコマンド
インストール済みのパッケージを再設定するコマンド
●APT(Advanced Package Tool)ツール
APTツールはdpkgツールを拡張したツール群です。
インターネット上ないしはメディア上のパッケージ情報のデータベースを使い、
依存関係を調整しながらパッケージ管理を行うことができます。
パッケージの取得元(リポジトリ)は「/etc/apt/sources.list」ファイルで設定します。
APTツールの主なコマンドは以下のとおりです。
・apt-get
パッケージのインストール・アンインストールなどを行うコマンド
(RPM系Linuxでは、yumがほぼ同等のコマンドにあたる)
・apt-cache
パッケージ情報の検索・参照などを行うコマンド
・aptitude
apt-getやapt-cacheコマンドよりも高機能で、対話的なパッケージ管理が可能なコマンド
また、apt-getやapt-cacheコマンドとほぼ同じサブコマンドを使用したパッケージ管理も行える
「dir」ディレクトリの合計容量のみを分かりやすい単位を付加して表示したい。
適切なコマンドは次のうちどれか。
・du -sh dir
「/dev/hdc」として認識されているCD-ROMドライブを「/mnt/cdrom」にマウント
これを実現する為のエントリは既に「/etc/fstab」ファイルに追加してある
・mount /mnt/cdrom
・mount /dev/hdc
・mount -t iso9660 /dev/hdc /mnt/cdrom
dpkgツールにおいてインストール済みのパッケージを、
インストールした時と同じように再設定するコマンド
・dpkg-reconfigure
dpkgコマンドを使用して、「/usr/share/doc/ssh」ファイルのインストール元パッケージを表示させたい。適切なコマンドは次のうちどれか。(全て選択)
・dpkg -S /usr/share/doc/ssh
・dpkg --search /usr/share/doc/ssh
gzipのオプション
-d圧縮ファイルを展開
-c元ファイルを残して標準出力に出力
-rディレクトリ内のすべてのファイル圧縮
「/etc/fstab」ファイルに記述したディスククォータの設定を有効にするコマンド
・quotaon
接続されたUSBデバイスの情報を表示するコマンド
・lsusb
・cat /proc/bus/usb/devices
apt-cacheコマンドを使用して、「ssh」パッケージが依存しているパッケージの名前を一覧表示
・apt-cache depends ssh
ext3ファイルシステムを「/dev/sda2」に作成したい
・mkfs -t ext3 /dev/sda2
・mke2fs -j /dev/sda2
・mke2fs -t ext3 /dev/sda2
シンボリックリンクの説明
・lsコマンドで確認するとパーミッションの先頭に「l」が表示される
・異なったファイルシステム間でも作成可能
スクリプトなど
< =同義= 0< :標準入力の入力元指定
<< =同義= 0<< :標準入力の入力元指定、終了文字指定
> =同義= 1> :標準出力の出力先指定
>> =同義= 1>> :標準出力の出力先指定、終了文字指定
2> :標準エラー出力の出力先を指定
2>> :標準エラー出力の出力先を指定、出力先に追記
>&2 =同義= 1>&2 :標準出力の出力先を標準エラー出力の出力先を同じにする
2>&1 :標準エラー出力の出力先を標準出力の出力先を同じにする
コマンド1 2>&1 | コマンド2
・コマンド1の標準出力と標準エラー出力をコマンド2の標準入力に送る
環境変数とシェル変数
シェル変数LPICを設定→このシェル変数を環境変数にするコマンド・export LPIC
シェル変数を環境変数に変更するにはexportコマンドを利用
書式export シェル変数名
シェル変数:現在実行中のシェルだけで有効な変数
環境変数:シェルから実行したプロセスにも引き継がれる
環境変数
HISTFILEコマンド履歴保存ファイルのパス
HISTSIZE現在のシェルのコマンド履歴の保存数
HISTFILESIZEコマンド履歴保存ファイルへの履歴保存数
HOSTNAMEホスト名
HOMEログインしているユーザのホームディレクトリ
LANGロケール
PATHコマンドやプログラムの検索リスト
PWDカレントディレクトリのパス
USERログインしているユーザ
initプログラムであるUpstartの特徴
・サービスやタスクを「ジョブ」という単位で扱う
・イベント駆動型
・サービスの並列起動処理が可能
lpic1@lpic1-Virtual-Machine:~$ ls
hoge.sh テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
lpic1@lpic1-Virtual-Machine:~$ cat ./hoge.sh
#!/bin/sh
echo ${HOGE}
lpic1@lpic1-Virtual-Machine:~$ set | grep HOGE・・・HOGEには何も設定されていないlpic1@lpic1-Virtual-Machine:~$ echo $HOGE・・・何もでない
lpic1@lpic1-Virtual-Machine:~$ HOGE=hogehoge・・・HOGE設定
lpic1@lpic1-Virtual-Machine:~$ set | grep HOGE
HOGE=hogehoge
lpic1@lpic1-Virtual-Machine:~$ echo $HOGE
hogehoge・・・シェルの中では利用可能:シェル変数状態
lpic1@lpic1-Virtual-Machine:~$ sh hoge.sh・・・なので、スクリプトで表示しようとしても表示不可
lpic1@lpic1-Virtual-Machine:~$ export HOGE・・・環境変数化
lpic1@lpic1-Virtual-Machine:~$ sh hoge.sh
hogehoge・・・表示される
lpic1@lpic1-Virtual-Machine:~$
lpic1@lpic1-Virtual-Machine:~$ unset HOGE・・・消すときはunset
lpic1@lpic1-Virtual-Machine:~$ sh hoge.sh
lpic1@lpic1-Virtual-Machine:~$ set | grep HOGE
lpic1@lpic1-Virtual-Machine:~$
initのPID(プロセス ID)
・1
SysVinitを採用したシステムの設定ファイルで、デフォルトのランレベルの設定
・/etc/inittab
カーネルのログが記録されるなど、Linuxでメインで使用されるログファイル
・/var/log/messages
「/etc/fstab」ファイルに記述するマウントオプションで、グループ毎のディスククォータを設定するもの
・grpquota
100GBの記憶装置(HDD)を接続したが、実際の半分以下の容量で認識されてしまった。
もっとも適切な解決方法として考えられるのはどれか。
・BIOSをアップデートする
コンピュータの電源を入れると、まずBIOS(Basic Input Output System)が起動し、
記憶装置(HDD)等に関して最低限の認識を行います。
BIOSが古い場合、大容量の記憶装置(HDD)を正常に認識できない(実際より少ない容量を認識するなど)場合があります。
BIOSをアップデートすることで、この問題を解消できることがあります。
IRQに関する情報が格納されているファイル
・/proc/interrupts
※IRQに関する情報は「/proc/interrupts」ファイルで確認できる
IRQ(Interrupt ReQuest)とは、マウスやキーボードなどの周辺機器(デバイス)からCPUへの割り込み要求のことです。
IRQには0から15までの16個の番号がついており、そのうちのいくつかは特定のデバイスに割り当てられています。
例えば0はシステムタイマー、1はキーボードに割り当てられています。
なお、IRQ番号が重複しているとハードウェアが正常に動作しないことがあります。
lpic1@lpic1-Virtual-Machine:~$ cat /proc/interrupts
CPU0
0: 117536 IO-APIC 2-edge timer
1: 9 IO-APIC 1-edge i8042
6: 3 IO-APIC 6-edge floppy
システム起動時にブートローダからカーネルに渡されたパラメータが確認できるファイル
・/proc/cmdline
Linuxシステムを構築するに当たって、最低限必要なパーティション
・スワップ領域
・ルートパーティション
最低限必要なパーティションは、ルートディレクトリ(/)を持つルートパーティションと、スワップ領域
UEFIの特徴
・3TB以上のHDDからの起動をサポートする
・GUIでの操作が可能となる
コマンド関連
MBR形式、GPT形式のパーティションテーブルをサポートするパーティション操作コマンド
・parted
apt-getコマンドを使用して、ディストリビューションを最新版にしたい。
・apt-get dist-upgrade
rpmコマンドの「-V(--verify)」オプション
・検査する内容は主にファイルのサイズ、MD5チェックサム、所有ユーザ、所有グループ、タイムスタンプである
・RPMデータベースに格納されているファイルに関する情報と、インストールされたパッケージのファイルに関する情報を比較して変更(改ざんなど)が無いか検査する
mycommandを実行している全てのプロセスをクリーンアップして終了させたい。
・killall -SIGTERM mycommand
・killall -s 15 mycommand
・pkill mycommand
ext3ファイルシステムを「/dev/sda2」に作成したい。
・mke2fs -t ext3 /dev/sda2
・mke2fs -j /dev/sda2
・mkfs -t ext3 /dev/sda2
dpkgコマンドを使用して、インストールが中断しているパッケージを表示したい。
・dpkg --audit
・dpkg -C
「file.txt」ファイルに記載されているファイル名を元に、複数の新規ファイルを一度に作成したい。
・cat file.txt | xargs touch
locateコマンドが利用する検索用のデータベースを更新するコマンドは次のうちどれか。
・updatedb
ファイルやディレクトリのパーミッションを変更するコマンド
・chmod
SysVinitを採用したシステムの設定ファイルで、デフォルトのランレベルの設定を行う
・/etc/inittab
bzip2より圧縮率が高い圧縮形式
・xz
bzip2よりも圧縮率が高い圧縮形式として、LZMA2圧縮アルゴリズムを採用した
xzフォーマットがあります。xzはbzip2よりも多くのCPU/メモリを要求しますが、
その分圧縮率が高く、また展開速度はbzip2より短いためファイル配布時の圧縮形式
として採用されることが増えています。
Linuxカーネルソースの配布形式としても採用されています。
ext3ファイルシステムの「/dev/sda1」を「/export」に読み取り専用でマウント
・mount -t ext3 -o ro /dev/sda1 /export
シンボリックリンクを検索するfindコマンドの検索式
・-type l
共有ライブラリを格納するためのディレクトリを新たに作成した。
ldconfigコマンドを使用して共有ライブラリのキャッシュファイルを更新する
ためには、どのファイルに新しいディレクトリのパスを記述する必要があるか。
・/etc/ld.so.conf
ldconfigコマンドは、共有ライブラリの検索パスが記述されている「/etc/ld.so.conf」ファイルを参照し「/etc/ld.so.cache」ファイルを更新(作成)します。
変数DATEに「date」という文字列(現在の日時を表示するコマンド)を格納した。
以下のコマンドの実行結果は次のうちどれか。
$ echo '$DATE'
→$DATE
「'」(シングル・クォーテイション)はシェルによって特別に解釈されるメタキャラクタの1つです。
シェルは「'」で囲まれた部分を文字列と見なします(「'」で囲まれているメタキャラクタを無視)。
また、echoコマンドは引数に指定された文字列を表示するコマンドです。
通常、echoコマンドは「$」で始まる文字は変数とみなし、
その変数に格納された値を表示しますが、「'」で囲まれている「$」は変数を表すメタキャラクタではなく文字列と見なすため、
そのまま「$DATE」が実行結果として表示されます。
lsコマンドのオプション
-a隠しファイル表示
-A上記と同じ、ただし「.」「..」は表示しない
-d指定したディレクトリの情報を表示
-Fファイルタイプを表示
-iinode番号を付けて表示
-l詳細情報を表示
-Rサブディレクトリの内容も再帰的に表示
依存関係を考慮してカーネルモジュールをロードまたはアンロードするコマンド
・modprobe
odコマンドのオプション
-t出力フォーマット形式指定
cASCII
o8進数
x16進数
-o8進数表示
-x16進数表示
-cASCII文字表示
ディスククォータ管理のコマンド
quotacheckファイルシステムのディスク使用量のチェック
quotaon/etc/fstabの設定内容を有効化
quotaoff無効化
edquotaクォータ容量の設定(GUI)
setquotaクォータ容量の設定(CLI)
quota指定したユーザやグループのクォータ表示
repquota指定したファイルシステムのクォータ表示
「test」ディレクトリをxz形式で圧縮した「test.tar.xz」というアーカイブにしたい。
・tar cfJ test.tar.xz test
tar [オプション] [ファイルまたはディレクトリ名]
「ln fileA fileB」とした場合、「変化するもの:変化しないもの」の組み合わせ
・ハードリンク数:lsコマンドによるパーミッションの先頭表示
メモリの使用状況を確認できるファイル
・/proc/meminfo
マスク値が0の場合に使用されるデフォルトのパーミッションは、ファイルが「666」、ディレクトリが「777」です。これらの値から、指定したマスク値を引いた値が新たなデフォルトのパーミッションとして設定されます。
666 - マスク値 = ファイルのデフォルトのパーミッション
777 - マスク値 = ディレクトリのデフォルトのパーミッション
666を640、777を750にするマスク値は027です。
したがって正解は
・umask 027
です。
パーミッションの表記は各桁が独立して、左から所有ユーザ、所有グループ、その他のユーザを表します。ですのでumask値を引く際も各桁ごとに引きます。
6-0=6
6-2=4
6-7=-1 マイナスは無いので権限無し(0)と考えます。
fdiskコマンド
mサブコマンドのメニュー表示
lパーティションタイプの一覧表示
nパーティションの作成
dパーティションの削除
pパーティションテーブルの表示
tパーティションタイプの変更
wパーティションテーブルを変更保存して終了
qパーティションテーブルを変更保存せずに終了
バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるにはfgコマンドを利用します。
fgコマンドの書式は以下のとおりです。
fg [ジョブ番号]
したがって正解は
・fg 2
です。
また、ジョブ番号を引数に指定しない場合は、カレントジョブ(直前にバックグラウンドで実行されたジョブ、または直前に一時停止されたジョブ)がフォアグラウンドに変更されます。
カレントジョブはjobsコマンドの実行結果にある「+」がついているジョブです。
フォアグラウンド動作に切り替えたいジョブはカレントジョブですので、引数にジョブ番号を指定する必要がありません。
したがって「fg」も正解です。
ファイルシステムをチェックせずに「/dev/sda2」がマウント出来る回数を10回に変更したい。
・tune2fs -c 10 /dev/sda2
プロセスのnice値を表示するコマンド
・top
・ps l
ext2/ext3/ext4ファイルシステムの各種情報を表示するコマンドは次のうちどれか。
・dumpe2fs
[root@floren postfix]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
tqsda1 8:1 0 1G 0 part /boot
mqsda2 8:2 0 19G 0 part
tqcl-root 253:0 0 17G 0 lvm /
mqcl-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
「/dev/sr0」として認識されている内蔵CD-ROMドライブを「/mnt/cdrom」にマウントしたい。
「/etc/fstab」ファイルには、これを実現する為のエントリを追加していない。
・mount /dev/sr0 /mnt/cdrom
フォアグラウンドで実行中のジョブを一時停止したい。
・Ctrl+z
「file1」と「file2」ファイルを行単位で区切り文字「:」を使用して結合したい。
・paste -d : file1 file2
「dir」ディレクトリのパーミッションを700から500に変更したい。
・chmod u=rx dir
・chmod 500 dir
・chmod u-w dir
FHS(ファイルシステム階層標準)の説明
・ユーザがインストールしたプログラムの配置場所などを推測しやすくするためのもの
・ディストリビューションに依存しない、Linuxの標準的なディレクトリの構造を定めた規格のこと
[root@floren postfix]# yum list postfix
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: download.nus.edu.sg
* updates: centos.usonyx.net
インストール済みパッケージ
postfix.x86_64 2:2.10.1-6.el7 @anaconda
[root@floren postfix]# yum list php
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: download.nus.edu.sg
* updates: download.nus.edu.sg
利用可能なパッケージ
php.x86_64 5.4.16-45.el7 base
[root@floren postfix]#
以下はユーザ毎にディスククォータの設定を行う手順
1.「/etc/fstab」のファイルシステムにusrquotaオプションを設定する
2. ファイルシステムをマウントしなおす
3. quotacheckコマンドでデータベースファイルを作成・更新する
4. quotaonコマンドでクォータを有効にする
5. edquotaコマンド、またはsetquotaコマンドでユーザのクォータを設定する
「/dev/sda5」のディスク使用量をチェックし、ユーザクォータのデータベースファイルを作成・更新するコマンド
・quotacheck -u /dev/sda5
・quotacheck /dev/sda5
「boot.img」というイメージファイルをUSB(ここでは/dev/sdcとする)にコピーしたい。
・dd if=boot.img of=/dev/sdc
testユーザが所有する「File1」というファイルが存在する。rootユーザで以下のコマンドを実行した後、
「File1」と「File2」で共通するファイル情報
# ln File1 File2
・ハードリンク数
・パーミッション
・所有ユーザ・グループ
・inode番号
検索用データベースを使用して高速でファイル検索を行うコマンド
・locate
systemdの動作するシステムにおいて、メンテナンスのために以下のコマンドでシングルユーザーモードに変更し、作業を行った。
# systemctl rescue
作業が終わったので通常の起動状態に戻したい。
・systemctl default コマンドを実行する
・Ctrl-Dを入力する
・systemctl reboot コマンドを実行する
sambaというキーワードを一部に含むmanページを検索するコマンド
・apropos samba
・man -k samba
「configure.xz」ファイルを展開することができるコマンド
・xz -d -k configure.xz
・unxz configure.xz
・xz -d configure.xz
PIDが500のプロセスのnice値を-20に変更
・renice -20 500
・renice -20 -p 500
yumコマンドを使用して、「php」パッケージをアンインストール
・yum remove php
rpmコマンドを使用して、インストールされる前に「postfix-1.1.12-1.i386.rpm」ファイルで
パッケージの詳細情報を確認
・rpm --query --info --package postfix-1.1.12-1.i386.rpm
・rpm -qip postfix-1.1.12-1.i386.rpm
rpmコマンドを使用して、「procmail」パッケージを「procmail-3.22-9.i386.rpm」にアップグレード
・rpm -F procmail-3.22-9.i386.rpm
・rpm --freshen procmail-3.22-9.i386.rpm
変数DATEに「date」という文字列(現在の日時を表示するコマンド)を格納した。
以下のコマンドの実行結果は次のうちどれか。
$ echo "$DATE"
・date
「"」はシェルによって特別に解釈されるメタキャラクタ
シェルは「"」で囲まれた部分を文字列と見なす→「"」で囲まれているメタキャラクタを無視(エスケープ)します。
ただし、「$」、「`」、「\」、「"」のメタキャラクタは除きます。
日付を表示したい場合は
echo 'date'等
viエディタであるファイルを編集しているが、別ファイルである「test.txt」の内容をカレント行の次の行に読み込み
・:r test.txt
viエディタでファイルを編集しているが、viエディタを終了せずに、
ファイルの内容を最後に保存した状態に戻す。
・:e!
viエディタのコマンドモードにおいて、カーソルのある行をコピーし、下の行に挿入
・yyp
・Yp
viエディタのコマンドモードで、カーソルをファイルの5行目へ移動する
viコマンド
・:5
・5G
viエディタで、あるファイルを編集しているが、viエディタを終了することなく
カレントディレクトリにあるファイルを確認
・:!ls
viエディタを終了することなくLinuxコマンドを実行させるには、
コマンドモードで「:!コマンド」を実行
fdiskコマンドで作成したパーティションにファイルシステムを作成することができるコマンド
・mke2fs
・mkfs
コマンド説明
set全てのシェル変数と環境変数を表示
env全ての環境変数を表示
printenv一部、またはすべての環境変数を表示
「/etc/fstab」ファイルに記述するマウントオプションでSUIDとSGIDを有効化するもの
・suid
バックグラウンドで動作中または一時停止中のジョブをフォアグラウンド動作に切り替えるコマンド
・fg
ディスククォータの猶予期間を設定することが出来るコマンド
・edquota -t
yumコマンドを使用して、「Emacs」パッケージグループをインストール
・yum groupinstall Emacs
findコマンドの-print0アクション
・検索結果をNULL文字で区切って表示する
mycommandを実行している全てのプロセスをクリーンアップして終了
・pkill mycommand
・killall -SIGTERM mycommand
・killall -s 15 mycommand
ext2ファイルシステムを「/dev/hda1」に作成
・mkfs /dev/hda1
・mkfs -t ext2 /dev/hda1
・mke2fs /dev/hda1
systemdを管理するためのコマンド
・systemctl
動作中のプロセスの親子関係をツリー状で表示するコマンド
・ps axf
・pstree
すでに起動しているプロセスのnice値を変更するコマンド
・renice
プロセスにはnice値という実行優先度が設定されています。
優先度の高いプロセスにはCPUの使用時間が多く割り当てられます。
※プロセスのデフォルトのnice値:0
アーカイブを作成することができるコマンド
・cpio
ファイルシステムをマウントすることが出来るコマンド
・mount
「httpd.conf」ファイルの先頭500バイトを表示するコマンド
・head -c 500 httpd.conf
「/etc/fstab」ファイルでディスククォータが設定されている
全てのファイルシステムのディスククォータを無効にするコマンド
・quotaoff -av
・quotaoff -a
「/etc/passwd」ファイルのパーミッション、及び所有者
・-rw-r--r--. 1 root root
# ls -l /etc/passwd
-rw-r--r--. 1 root root 1929 Jan 18 14:17 /etc/passwd
dpkgコマンドを使用して、「ssh」パッケージからインストールされたファイルを一覧表示
・dpkg -L ssh
・dpkg --listfiles ssh
ddコマンドのオプションのうち、入出力のブロックサイズ(一度に読み書きするバイト数)を指定するオプション
・bs
「file」ファイルにある重複行のみを表示
・uniq -d file
-u:重複していない行のみ表示
-d:重複している行のみ表示
File1のハードリンクをFile2として作成
・ln File1 File2
「httpd.conf」ファイルの行数のみを表示
・wc -l httpd.conf
findコマンドでファイルを検索する際、ファイルのサイズを検索条件として使用
・-size
「file.txt」の所有グループのみをtestからstaffgroupに変更
・chgrp staffgroup file.txt
・chown .staffgroup file.txt
・chown :staffgroup file.txt
ファイルとディレクトリを新規作成した際のデフォルトのパーミッションを、
それぞれ「600」と「700」にしたい。
・umask 077
メモリやスワップ領域の使用状況を表示するコマンド
・free
・top
カレントディレクトリとそのサブディレクトリが占めている容量をメガバイト単位で表示
・du -m
「configure」ファイルをbzip2形式で「configure.bz2」というファイルに圧縮したい。
また、圧縮前の元ファイルも残したい。
・bzip2 -c configure > configure.bz2
systemctlコマンドを使って、postfixサービスに設定ファイルを再読み込みさせたい。
・systemctl reload postfix
ファイルを印刷用に整形するコマンド
・pr
1行あたりの最大文字数を指定してテキストを整形するコマンド
・fmt
「/etc/fstab」ファイルに記述するマウントオプションで、ユーザ毎のディスククォータを設定するも
・usrquota
親プロセスのPIDや実行優先度を決定するnice値なども併せて表示するpsコマンド
・l
・-l
オプション
a 他のユーザのプロセスも表示
f プロセスの親子関係表示
x 実行ユーザ名も表示
-e 全てのプロセスを表示
-f 完全なフォーマットでプロセス表示
-p/p 指定したPIDのプロセス表示
-l/l 親プロセス、nice値も表示
「/etc/hosts」ファイル内の英小文字を英大文字に変換して表示
・cat /etc/hosts | tr [:lower:] [:upper:]
・tr a-z A-Z < /etc/hosts
※trは引数にファイルを指定できないので「tr [:upper:] [:lower:] < /etc/hosts」は不正
ファイルの内容をページ(1画面)ごとに表示するが、編集はできないコマンド
・more
・less
「file.txt」の所有グループのみをtestからstaffgroupに変更
・chown .staffgroup file.txt
・chgrp staffgroup file.txt
・chown :staffgroup file.txt
あるプログラムが必要としている共有ライブラリを表示するコマンド
・ldd
例:ldd /bin/cat
YUMツールにおいてパッケージファイルのダウンロードのみを行うコマンド・yumdownloader
「dir」ディレクトリ内の全てのファイルをそれぞれgzip形式で圧縮
・gzip -r dir
オプション
-d 圧縮ファイルを展開
-c 元ファイルを残して標準出力に出力
-r ディレクトリ内のファイルを再帰的にそれぞれ圧縮
カレントディレクトリにあるtestディレクトリを内部にあるファイルやディレクトリも含めて再帰的に削除
削除するかどうか確認するメッセージを表示
・rm -iR test
・rm -ir test
オプション
-f 強制的に削除、確認無し
-i 削除して良いか問い合わせる
-r/-R ディレクトリ全体に再帰的に処理
findコマンドで検索したファイルに対してコマンドを実行
・-exec
systemctlコマンドのサブコマンドで、システムを停止させることができるもの
・halt
・poweroff
「httpd.conf」ファイルを「/etc」ディレクトリ以下から検索
・find /etc -name httpd.conf
「/etc/fstab」ファイルでディスククォータが設定されている全てのファイルシステムの
ディスククォータを有効にするコマンド
・quotaon -av
・quotaon -a
lpic1@lpic1-Virtual-Machine:~$ systemctl is-active ssh
active
lpic1@lpic1-Virtual-Machine:~$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Thu 2018-08-16 21:32:15 JST; 44min ago
Main PID: 667 (sshd)
Tasks: 1 (limit: 2232)
CGroup: /system.slice/ssh.service
mq667 /usr/sbin/sshd -D
8月 16 21:32:18 lpic1-Virtual-Machine systemd[1]: Reloaded OpenBSD Secure Shell
8月 16 21:32:18 lpic1-Virtual-Machine systemd[1]: Reloading OpenBSD Secure Shel
8月 16 21:32:18 lpic1-Virtual-Machine sshd[667]: Server listening on 0.0.0.0 po
8月 16 21:32:18 lpic1-Virtual-Machine sshd[667]: Server listening on :: port 22
8月 16 21:32:18 lpic1-Virtual-Machine sshd[667]: Received SIGHUP; restarting.
8月 16 21:32:18 lpic1-Virtual-Machine systemd[1]: Reloaded OpenBSD Secure Shell
8月 16 21:32:18 lpic1-Virtual-Machine sshd[667]: Server listening on 0.0.0.0 po
8月 16 21:32:18 lpic1-Virtual-Machine sshd[667]: Server listening on :: port 22
8月 16 22:16:25 lpic1-Virtual-Machine sshd[12345]: Accepted password for lpic1
8月 16 22:16:25 lpic1-Virtual-Machine sshd[12345]: pam_unix(sshd:session): sess
lpic1@lpic1-Virtual-Machine:~$
ext2/ext3/ext4ファイルシステムのパラメータを設定するコマンド
・tune2fs
root以外の一般ユーザで以下のコマンドを実行した結果
$ mount
→ 現在マウントされているファイルシステムの一覧が表示される
通常、一般ユーザによるファイルシステムのマウントは禁止されていますが、
「mount」のみを実行した場合は、現在マウントされているファイルシステムの一覧が、
「/etc/mtab」ファイルの情報を元に表示されます。
現在22:00である。23:00にサーバを停止するコマンド
・shutdown -h 23:00
・shutdown -h +60
ブートローダであるGRUB LegacyまたはGRUB2をインストールするコマンド・grub-install
rpmコマンドオプション
-i インストール
-U アップグレード
-F アップグレード
-e アンインストール
-v 詳細表示
-h 進行状況表示
--test 実際には実行せずにテストを実施
--nodeps 依存関係を無視
行頭にある連続したスペースをタブに変換するコマンド
・unexpand
指定したコマンドが通常のコマンドか、シェルの組み込みコマンドか、
エイリアスかなどの情報を表示するコマンド
・type
指定したコマンドの場所のみを絶対パスで表示するコマンド
・which
指定したコマンドおよび、そのコマンドのソースコード、マニュアルが置かれている場所を絶対パスで表示するコマンド
・whereis
ext2ファイルシステムの「/dev/hda5」をext3に変換するコマンド
・tune2fs -j /dev/hda5
ddコマンドのオプションのうち、入力ファイルから出力ファイルへブロックをコピーする回数を指定するオプション
・count
シャットダウン処理を行わず、メッセージ通知のみを行うshutdownコマンドのオプション
・-k
rpmコマンドを使用して、「postfix-1.1.12-1.i386.rpm」ファイルからインストールされる設定ファイルのみを表示
・rpm -qcp postfix-1.1.12-1.i386.rpm
・rpm --query -cp postfix-1.1.12-1.i386.rpm
dpkgコマンドを使用して、「procmail」パッケージを設定ファイルを残してアンインストール
・dpkg --remove procmail
・dpkg -r procmail
現在実行中のプロセスから特定の名前を持つプロセスIDを検索
・pgrep
プロンプト$ systemctl list-unit-files
UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount static
-.mount generated
プロンプト$ touch test
プロンプト$ file test
test: empty
プロンプト$ ls -dl /home/
drwxr-xr-x 4 root root 4096 12月 15 00:03 /home/
tarコマンドオプション
-c 新しいアーカイブを作成
-x アーカイブからファイルを展開
-t アーカイブの内容を一覧表示
-f アーカイブファイル名を指定
-v 処理の詳細情報を表示
-z gzipを通して圧縮/展開
-j bzip2を通して圧縮/展開
-J xzを通して圧縮/展開
「file」ファイルにある重複していない行のみを表示
・uniq -u file
「backup.cpio」というcpio形式のアーカイブからファイルを展開することができるコマンド
・cpio -i < backup.cpio
現在実行中のプロセスからtestユーザーが実行した特定の名前を持つプロセスIDを検索
・pgrep -u test
lspciコマンドで取得できる情報
・バスの速度
・I/Oポートアドレス
・IRQ番号
・ベンダー名(ベンダーID)
メモリやスワップ領域の使用状況を表示するコマンド
・top
・free
現在実行中のプロセスから特定の名前を持つプロセスIDを検索するコマンド
・pgrep
fdiskコマンドで作成したパーティションにファイルシステムを作成することができるコマンド
・mke2fs
・mkfs
「/dev/sda5」のディスク使用量をチェックし、グループクォータのデータベースファイルを作成・更新するコマンド
・quotacheck -g /dev/sda5
「test.txt」ファイルから、「.*」という文字列を含む行を抽出したい。
・grep '\.\*' test.txt
・fgrep '.*' test.txt
・grep -F '.*' test.txt
※grepのオプション
-c マッチした行の行数
-f 検索パターンをファイルから読み込み
-i 大文字小文字は区別しない
-n 先頭に行番号を付けてマッチした行を表示
-v マッチしなかった行を表示
-E =egrep
-F 正規表現を使わない
「file」ファイルにある重複した行を1行にまとめて、「newfile」ファイルに出力
・uniq file newfile
/etc/fstabに記載するマウントオプション
async 非同期で入出力
auto コマンド実行時にマウント
noauto コマンド実行時にマウントしない
defaults デフォルト指定
exec バイナリの実行許可
noexec バイナリの実行禁止
no 読み取り禁止
rw 読み書き禁止
suid SUID、SGIDを有効化
user 一般ユーザでマウント可、本人のみアンマウント可
users 一般ユーザでマウント、アンマウント可
nouser 一般ユーザによるマウントを禁止
ファイルやディレクトリを新規作成した際の、デフォルトのパーミッションを設定するコマンド
・umask
Linuxにおいて、ファイルを圧縮できるコマンド
・bzip2
・gzip
指定したファイルシステム全体のディスククォータ状況を表示するコマンド
・repquota
複数のファイルを行単位で結合するコマンド
・paste
「test.tar」というアーカイブの内容を表示できるコマンド
なお、アーカイブは展開しない
・tar ft test.tar
・tar ftv test.tar
tarオプション
-c:新しいアーカイブ作成
-x:アーカイブからファイルを展開
-t:アーカイブの内容を一覧表示
-f:アーカイブファイル名を指定
-v:処理の詳細情報を表示
-z:gzipを通じて圧縮、展開
-j:bzipを通じて圧縮、展開
-J:xzを通じて圧縮、展開
指定したコマンドが通常のコマンドか、シェルの組み込みコマンドか、
エイリアスかなどの情報を表示するコマンド
[root@floren ~]# type cp
cp は `cp -i' のエイリアスです
ファイルシステムをチェックせずに「/dev/sda2」がマウント出来る回数を10回に変更したい。
・tune2fs -c 10 /dev/sda2
プロセスのnice値を表示するコマンド
・top
・ps l
[root@floren ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 28992 28980 0 80 0 - 29108 do_wai pts/1 00:00:00 bash
0 T 0 29217 28992 0 80 0 - 40532 do_sig pts/1 00:00:00 top
0 R 0 29218 28992 0 80 0 - 38301 - pts/1 00:00:00 ps
ext2/ext3/ext4ファイルシステムの各種情報を表示するコマンド
・dumpe2fs
[root@floren postfix]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
tqsda1 8:1 0 1G 0 part /boot
mqsda2 8:2 0 19G 0 part
tqcl-root 253:0 0 17G 0 lvm /
mqcl-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
「/dev/sr0」として認識されている内蔵CD-ROMドライブを「/mnt/cdrom」にマウントしたい。
「/etc/fstab」ファイルには、これを実現する為のエントリを追加していない。
・mount /dev/sr0 /mnt/cdrom
「file1」と「file2」ファイルを行単位で区切り文字「:」を使用して結合したい。
・paste -d : file1 file2
「dir」ディレクトリのパーミッションを700から500に変更したい。
・chmod u=rx dir
・chmod 500 dir
・chmod u-w dir
[root@floren postfix]# yum list php
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: download.nus.edu.sg
* updates: download.nus.edu.sg
利用可能なパッケージ
php.x86_64 5.4.16-45.el7 base
[root@floren postfix]#
ユーザ毎にディスククォータの設定を行う手順
1.「/etc/fstab」のファイルシステムにusrquotaオプションを設定する
2. ファイルシステムをマウントしなおす
3. quotacheckコマンドでデータベースファイルを作成・更新する
4. quotaonコマンドでクォータを有効にする
5. edquotaコマンド、またはsetquotaコマンドでユーザのクォータを設定する
「/dev/sda5」のディスク使用量をチェックし、ユーザクォータのデータベースファイルを作成・更新するコマンド
・quotacheck -u /dev/sda5
・quotacheck /dev/sda5
「boot.img」というイメージファイルをUSB(ここでは/dev/sdcとする)にコピーしたい。
・dd if=boot.img of=/dev/sdc
testユーザが所有する「File1」というファイルが存在する。
rootユーザで以下のコマンドを実行した後、「File1」と「File2」で共通するファイル情報はどれか。
# ln File1 File2
・ハードリンク数(リンク数)
・パーミッション
・所有ユーザ・グループ
・inode番号
検索用データベースを使用して高速でファイル検索を行うコマンド
・locate
systemdの動作するシステムにおいて、メンテナンスのために以下のコマンドで
シングルユーザーモードに変更し作業を行った。
# systemctl rescue
作業が終わったので通常の起動状態に戻したい。
・systemctl default コマンドを実行する
・Ctrl-Dを入力する
・systemctl reboot コマンドを実行する
sambaというキーワードを一部に含むmanページを検索するコマンド
・apropos samba
・man -k samba
フォアグラウンドで実行中のジョブを一時停止
・Ctrl+z
[root@floren ~]# ping 8.8.8.8 > ping.txt
^Z
[1]+ 停止 ping 8.8.8.8 > ping.txt
[root@floren ~]# jobs
[1]+ 停止 ping 8.8.8.8 > ping.txt
[root@floren ~]# bg 1
[1]+ ping 8.8.8.8 > ping.txt &
[root@floren ~]# jobs
[1]+ 実行中 ping 8.8.8.8 > ping.txt &
[root@floren ~]# fg
ping 8.8.8.8 > ping.txt
^C[root@floren ~]#
バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替える
・fg [ジョブ番号]
また、ジョブ番号を引数に指定しない場合は、カレントジョブ(直前にバックグラウンドで実行されたジョブ、
または直前に一時停止されたジョブ)がフォアグラウンドに変更されます。
カレントジョブはjobsコマンドの実行結果にある「+」がついているジョブです。
フォアグラウンドで実行中のジョブを一時停止したい。
・Ctrl+z
findコマンドでファイルを検索する際、検索するディレクトリの階層を指定したい。
・-maxdepth
・-mindepth
「dir」ディレクトリと、サブディレクトリが占めている容量を分かりやすい単位を付加して表示したい。
ただし、「dir」ディレクトリの容量にサブディレクトリの容量を含めず、
また別途「dir」ディレクトリ内の合計容量を表示したい。
・du -chS dir
Linuxをインストールする際、ルートパーティションとは別のパーティションを割り当てる事が可能なディレクトリ
・/tmp
・/boot
xzコマンドのオプション
-d,--decompress:圧縮ファイルの展開
-k,--keep:圧縮、展開後に元のファイルを削除しない
-l,--list:圧縮ファイルの情報を表示する
dpkgコマンドの「-r」と「-P」アクションの説明
・「-r」は設定ファイルを残してパッケージをアンインストールする
・「-P」は設定ファイルを含め完全にパッケージをアンインストールする
論理ボリュームを作成する際の主な手順
・物理ボリューム(PV)の作成
pvcreateコマンドを使用して作成します。
・ボリュームグループ(VG)の作成
vgcreateコマンドを使用して作成します。
・論理ボリューム(LV)の作成
lvcreateコマンドを使用して作成します。
「/home/test」ディレクトリのシンボリックリンクを「/home/testlink」という名で作成したい。
・ln -s /home/test /home/testlink
[root@floren ~]# tail -c 500 /etc/postfix/main.cf.org
irectory: The location of the Postfix HTML documentation.
#
html_directory = no
# manpage_directory: The location of the Postfix on-line manual pages.
#
manpage_directory = /usr/share/man
# sample_directory: The location of the Postfix sample configuration files.
# This parameter is obsolete as of Postfix 2.1.
#
sample_directory = /usr/share/doc/postfix-2.10.1/samples
# readme_directory: The location of the Postfix README files.
#
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
[root@floren ~]#
cdコマンドで、ユーザのホームディレクトリに移動する方法
・cdコマンドの引数にホームディレクトリを表すメタキャラクタ「~」とユーザ名を指定する
「cd ~ユーザ名」とすることで、指定したユーザのホームディレクトリに移動します。
・cdコマンドの引数にホームディレクトリを表すメタキャラクタ「~」を指定する
「cd ~」とすることで、コマンドを実行したユーザのホームディレクトリに移動します。
・cdコマンドの引数に何も指定しない
cdコマンドを引数なしで実行することで、コマンドを実行したユーザのホームディレクトリに移動します。
ブートローダであるGRUB2の設定ファイルの内容を変更したい。
・grub-mkconfig
現在実行中のプロセスからtestユーザーが実行した特定の名前を持つプロセスIDを検索したい。
・pgrep -u test
[root@floren /]# od -t o /bin/ls
0000000 10623042577 00000200402 00000000000 00000000000
0000020 00017400002 00000000001 00020041704 00000000000
[root@floren /]# od /bin/ls
0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000002 000076 000001 000000 041704 000100 000000 000000
fsckのオプション
-t:ファイルシステムの種類を指定
-A:/etc/fstabの全ファイルシステムに対して実行
-N:実際には実行せず、実行する内容を表示
-a:問題を自動的に修復
-r:問題を対話的に修復
fdiskのオプション
m:サブコマンドメニュー
l:パーティション一覧
n:パーティション作成
d:パーティション削除
p:パーティションテーブル表示
t:パーティションタイプ変更
w:パーティションテーブルの変更を保存して終了
q:パーティションテーブルの変更を破棄して終了
現在および1つ前のランレベルを調べることができるコマンド
・runlevel
「file」ファイルを500行ごとに分割したものを別のファイルに保存したい。
また、保存するファイル名は「hogeaa」、「hogeab」などのようにしたい。
・split -500 file hoge
出力ファイル名を指定しない場合は、先頭が「x」で、末尾に「aa」、「ab」、「ac」などの文字列が順番に付いたファイルが出力されます。
PCIデバイスの情報を表示するコマンド
・lspci
・cat /proc/bus/pci/devices
依存関係を考慮してカーネルモジュールをロードまたはアンロードするコマンドは次のうちどれか。
・modprobe
「test」プログラムを最も高い優先度で実行したい。
・nice --20 test
・nice -n -20 test
systemdが稼働するシステムにおいて、次回起動時のランレベルの確認作業
・cd /etc/systemd/system
・ls -l default.target
RPM系パッケージをcpio形式のアーカイブに変換するコマンド
・rpm2cpio
APTツールではネットワーク経由で最新のパッケージを取得することができる。
パッケージの取得元(リポジトリ)を設定するファイル
・/etc/apt/sources.list
apt-cacheコマンドを使用して、「ssh」パッケージが依存しているパッケージの名前を一覧表示させたい。
・apt-cache depends ssh
接続されたUSBデバイスの情報を表示するコマンド
・cat /proc/bus/usb/devices
・lsusb
touchコマンド
-t 時刻:アクセス時刻と修正時刻を指定した時刻に変更
-a:アクセス時刻を変更
-m:修正時刻を変更
fsck [オプション] デバイス名
-t:ファイルシステムの種類を指定
-A:全ファイルシステムに対して実行
-N:実際には実行せず実行する内容を表示
-a:問題を自動的に修復
-r:問題を対話的に修復
hostoryコマンドで過去実行したコマンド番号を確認
!番号で実行
現在のランレベルが変更できるコマンド
・telinit
・init
prコマンドで「httpd.conf」ファイルを整形する際、ヘッダに表示されるファイル名を「testfile」に変更
1ページあたり30行とする
・pr -h testfile -l 30 httpd.conf
teeは画面出力と同時にファイルへも同時に出力するコマンド
以下のコマンドの実行結果
$ echo ping-t | tee | cat
・「ping-t」が表示される
lnコマンドの書式
・ln [-s] リンク元 リンク先
trコマンドで使用する文字クラスのうち、数字を表すもの
・[:digit:]
XFSファイルシステムのメタデータをバックアップするコマンド
・xfs_metadump
ディスククォータの容量の設定をテキストエディタで行うコマンド
・edquota
testgroupグループのディスククォータの容量を設定
・edquota -g testgroup
systemdが稼働するシステムにおいて、次回起動時にグラフィカルログインさせるようにしたい。
・rm -f /etc/systemd/system/default.target
・ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
「aa」「bb」「cc」の3ファイルを1つにまとめて「hoge.tar」というアーカイブにしたい。適切なコマンドは次のうちどれか。
・tar cf hoge.tar aa bb cc
現在ログインしているユーザはtestである。testユーザのホームディレクトリに移動できるコマンド
・cd ~
・cd
・cd ~test
「dir」ディレクトリおよびその配下にあるファイルの所有グループを「staffgroup」に変更
・chgrp -R staffgroup dir
・chown -R :staffgroup dir
rpmコマンドを使用して、「procmail-3.22-9.i386.rpm」パッケージをインストール
・rpm -U procmail-3.22-9.i386.rpm
・rpm -i procmail-3.22-9.i386.rpm
ファイル内の文字数や行数を調べることができるコマンド
・wc
ロードされているカーネルモジュールの情報を表示するコマンド
・cat /proc/modules
・lsmod
whatisデータベースを作成するコマンド
・makewhatis
※whatisデータベースとは、オンラインマニュアルページ(manページ)に関する情報を蓄積するデータベース
makewhatisコマンドを実行することで作成、または更新されます。
lpic1@lpic1-Virtual-Machine:~$ whatis man
man (1) - オンラインマニュアルのインターフェース
man (7) - macros to format man pages
行頭にある連続したスペースをタブに変換するコマンド
・unexpand
command1を実行し、続けてcommand2を実行
・command1 && command2
「configure」ファイルをbzip2形式で「configure.bz2」というファイルに圧縮
圧縮前の元ファイルも残したい。
・bzip2 -c configure > configure.bz2
親プロセスのPIDや実行優先度を決定するnice値なども併せて表示するpsコマンドのオプション
・-l
「/bin/bash」を実行するときに必要となる共有ライブラリを調べるコマンド
・ldd /bin/bash
lpic1@lpic1-Virtual-Machine:~$ ldd /bin/bash
linux-vdso.so.1 (0x00007ffc937b8000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fdf67966000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdf67762000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdf67371000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdf67eaa000)
共有ライブラリとは、複数のプログラムが共通して利用するライブラリの事です。
あるプログラム(コマンドなど)が必要としている共有ライブラリを表示するコマンドはlddです。
現在使用しているシステムの情報を表示するコマンド
・uname
lpic1@lpic1-Virtual-Machine:~$ uname
Linux
「dir」ディレクトリと、その配下にあるディレクトリおよびファイルが占めている容量を、
分かりやすい単位を付加して表示するコマンド
・du -ah dir
lpic1@lpic1-Virtual-Machine:~$ du -ah /bin/
36K /bin/cat
12K /bin/fgconsole
4.0K /bin/zforce
trコマンドの文字クラス
[:alpha:]英字
[:lower:]英小文字
[:upper:]英大文字
[:digit:]数字
[:alnum:]英数字
[:space:]スペース
論理ボリュームを作成するまでの手順
・pvcreate, vgcreate, lvcreate
1.物理ボリューム(PV)の作成
pvcreateコマンドを使用して作成します。
2.ボリュームグループ(VG)の作成
vgcreateコマンドを使用して作成します。
3.論理ボリューム(LV)の作成
lvcreateコマンドを使用して作成します。
lpic1@lpic1-Virtual-Machine:~$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
udev 931 0 931 0% /dev
tmpfs 192 2 191 1% /run
/dev/sda1 50139 7713 39851 17% /
XFSファイルシステムのメタデータをバックアップするコマンド
・xfs_metadump
lpic1@lpic1-Virtual-Machine:~$ ps f
PID TTY STAT TIME COMMAND
3284 pts/0 Ss 0:00 -bash
3832 pts/0 R+ 0:00 \_ ps f
「file」ファイルを行番号をつけて出力
・nl file
・cat -b file
lpic1@lpic1-Virtual-Machine:~$ cat -b hoge.sh
1 #!/bin/sh
2 echo ${HOGE}
lpic1@lpic1-Virtual-Machine:~$ nl hoge.sh
1 #!/bin/sh
2 echo ${HOGE}
「httpd.conf」ファイルの内容を1行あたり30文字に整形して表示・fmt -w 30 httpd.conf
「/etc/mtab」ファイルでクォータが設定されている
全てのファイルシステムのクォータ状況を表示するコマンド
・repquota -a
「ping-t」ファイルのパーミッションを、
所有者は読み取りと書き込みのみが可能で、
グループとその他のユーザは読み取りのみが出来るように設定
・chmod u=rw,go=r ping-t
・chmod 644 ping-t
23:00にシステムを停止するようshutdownコマンドを実行したが、キャンセルしたい。
・shutdown -c
「dir」ディレクトリ内において、自分以外のユーザが所有するファイルを
削除できないようにしたい。
なお、「dir」ディレクトリのパーミッションは755である。
・chmod 1755 dir
・chmod o+t dir
あるディレクトリ内において、自分以外のユーザが所有するファイルを削除出来ないようにするには
スティッキービットをディレクトリに設定します。
スティッキービットは特殊なパーミッションの1つです。
設定方法は、chmodコマンドで通常のパーミッションの値に1000を加えた値を設定するか、
その他ユーザに「t」という権限を追加します(o+t)。
dpkgオプション
-E:同じバージョンがインストールされていればインストールを行わない-G:新バージョンがインストールされていればインストールを行わない
-R:ディレクトリを再帰的に処理
sedコマンドの書式と主なオプション・編集コマンド
sed [オプション] 編集コマンド [ファイル名]
sed [オプション] -e 編集コマンド1 [-e 編集コマンド2 ...] [ファイル名]
sed [オプション] -f スクリプト [ファイル名]
・s/文字列1/文字列2/ :各行の最初の文字列1を文字列2に変更
・s/文字列1/文字列2/g :各行のすべての文字列1を文字列2に変更
・/文字列1/d :文字列が含まれる行を削除
mkdirオプション
-m:指定したアクセス権でディレクトリ作成
-p:引数に階層のあるディレクトリを指定した場合、中間のディレクトリも作成
systemdが利用できるユニットの一覧を取得
lpic1@lpic1-Virtual-Machine:~$ systemctl list-unit-files
UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount static
-.mount generated
dev-hugepages.mount static
dev-mqueue.mount static
media-floppy0.mount generated
proc-sys-fs-binfmt_misc.mount static
snap-core-4486.mount enabled
snap-core-4830.mount enabled
snap-core-4917.mount enabled
wcコマンドのオプション
-l:行数表示
-w:単語数表示
-c:文字バイト数表示
lpic1@lpic1-Virtual-Machine:~$ wc hoge.sh
3 3 24 hoge.sh
lpic1@lpic1-Virtual-Machine:~$ cat hoge.sh
#!/bin/sh
echo ${HOGE}
オプションを指定せずに実行すると行数、単語数、文字(バイト)数が順に表示されます。
dpkgコマンドを使用して、「ssh」パッケージの詳細情報を表示
lpic1@lpic1-Virtual-Machine:~$ dpkg --status ssh
Package: ssh
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 104
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: openssh
Version: 1:7.6p1-4
Depends: openssh-client (>= 1:7.6p1-4), openssh-server (>= 1:7.6p1-4)
Pre-Depends: dpkg (>= 1.17.5)
Description: secure shell client and server (metapackage)
This metapackage is a convenient way to install both the OpenSSH client
and the OpenSSH server. It provides nothing in and of itself, so you
may remove it if nothing depends on it.
Original-Maintainer: Debian OpenSSH Maintainers <debian-ssh@lists.debian.org>
Homepage: http://www.openssh.com/
lpic1@lpic1-Virtual-Machine:~$ dpkg -s ssh
Package: ssh
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 104
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: openssh
Version: 1:7.6p1-4
Depends: openssh-client (>= 1:7.6p1-4), openssh-server (>= 1:7.6p1-4)
Pre-Depends: dpkg (>= 1.17.5)
Description: secure shell client and server (metapackage)
This metapackage is a convenient way to install both the OpenSSH client
and the OpenSSH server. It provides nothing in and of itself, so you
may remove it if nothing depends on it.
Original-Maintainer: Debian OpenSSH Maintainers <debian-ssh@lists.debian.org>
Homepage: http://www.openssh.com/
パーテションの作成・parted /dev/sdb
・mklabel msdos
・mkpart primaryext4 1 1000MB・print
「DATE=`date`」というコマンドの実行結果・"現在の日時"
apt-cacheコマンドを使用して、キーワード「ssh」を含むパッケージを表示
・apt-cache search ssh
$ tr -s '#' < file1 > file2
・「file1」ファイル内の連続した「#」を1つに置き換えて「file2」ファイルに出力する
trコマンドはファイル内の文字を変換・削除するコマンド
tr [オプション] [文字列1 [文字列2]]
-d:指定文字削除
-s:連続した場合、1文字削除
エディタでファイルを編集する際、行番号を付けてファイルを表示
※コマンドモードで実行・:set number
・:set nu
共有ライブラリのキャッシュファイル「/etc/ld.so.cache」を更新するコマンド
・ldconfig
依存関係を考慮してカーネルモジュールをロードまたはアンロードするコマンド
・modprobe
プロセスIDが5884のプロセスをクリーンアップせずに強制的に終了
・kill -SIGKILL 5884
・kill -9 5884
dpkgコマンドを使用して、「procmail_3.22-16_i386.deb」パッケージをインストールしたい。
但し、既に新しいバージョンのパッケージがインストールされている場合には、インストールを行わない。
・dpkg -Gi procmail_3.22-16_i386.deb
・dpkg -G --install procmail_3.22-16_i386.deb
「test.txt」ファイルから、「PINGT」または「pingt」という文字列を含む行を抽出
・grep -E 'PINGT|pingt' test.txt・egrep 'PINGT|pingt' test.txt
yumコマンドを使用して、キーワード「yum」を含むパッケージを表示
・yum search yum
yumコマンドは、インターネット上ないしはメディア上のパッケージ情報のデータベースを使い、
依存関係を調整しながら、パッケージのインストール・アンインストールなどを行えるコマンド
dpkgコマンドを使用して、「procmail_3.22-16_i386.deb」パッケージをインストール
・dpkg -i procmail_3.22-16_i386.deb
・dpkg --install procmail_3.22-16_i386.deb
アーカイブファイル「test.tar.xz」をカレントディレクトリに展開
・tar xvJf test.tar.xz
・tar xfJ test.tar.xz
コマンドを使用してカレントディレクトリ内にある「dir」ディレクトリと、
その子ディレクトリの「dir/dir2」を削除
・rmdir -p dir/dir2
※-p(parents)は親ディレクトリが空の場合、親ディレクトリも削除する
「test.txt」ファイルに含まれる全ての「pingt」という文字列を「hoge」に置換
・sed s/pingt/hoge/g test.txt
・sed -e s/pingt/hoge/g test.txt
動作中のプロセスの親子関係をツリー状で表示するpsコマンドのオプション
・f
rpmコマンドを使用して、インストールされている「postfix」パッケージの変更履歴を調べたい。
・rpm --query --changelog postfix
・rpm -q --changelog postfix
ユーザのディスク使用状況の表示
・quota pingtgroup
・quota -u pingtgroup
指定したファイルシステムのディスククォータ状況を表示するコマンド
・repquota -g pingtgroup・repquota pingtgroup
1行あたりの最大文字数を指定してテキストを整形するコマンド・fmt
file1とfile2ファイルはそれぞれの2番目のフィールドが共通している部分がある。
その行を結合して表示するコマンド
・join -j 2 file1 file2
fsckコマンドでファイルシステムの整合性をチェックする際、障害箇所を自動的に修復
・-a
apt-cacheコマンドを使用して「ssh」パッケージへ依存しているパッケージを含めた詳細情報を表示
・apt-cache showpkg ssh
systemdが稼働するシステムにおいて、次回起動時のターゲットが確認できる
systemctlのサブコマンド
・get-default
lpic1@lpic1-Virtual-Machine:~$ systemctl get-default
graphical.target
systemctlのサブコマンド
disable :サービスの自動起動を無効にする
enable :サービスの自動起動を有効にする
get-default :次回起動時のターゲットを表示する
halt :システムを停止し、halt状態にする
is-active :サービスが稼働しているかを表示する
list-unit-files :全てのUnit定義ファイルを一覧表示する
reboot :再起動
reload :設定ファイルの再読み込み
restart :サービスを再起動
set-default :次回起動時のターゲットを設定する
start :サービスを起動する
status :サービスの状態を表示する
stop :サービスを停止する
poweroff :システムを停止、電源停止
テキストファイルの「file.txt」にある「PINGT」を「pingt」に変換してディスプレイに表示
・tr PINGT pingt < file.txt
・cat file.txt | tr PINGT pingt
cpコマンドの場所を絶対パスで表示
・which cp
・whereis cp
findコマンドでファイルを検索する際、ファイルの最終アクセス日を検索条件として使用
・-atime
「/home/test/file.txt」ファイルのシンボリックリンクを「/export/file.txt」という名で作成
「/home」と「/export」は異なったファイルシステム
・ln -s /home/test/file.txt /export/file.txt
カレントディレクトリ以下にある全てのファイルを1つにまとめて、
ユーザのホームディレクトリに「backup.cpio」というアーカイブを作成
・find . | cpio -o > ~/backup.cpio
現在バックグラウンドで動作しているジョブと一時停止中のジョブを表示するコマンド・jobs
「file.txt」の所有ユーザをtestからstaffに、所有グループをtestからstaffgroupに変更
・chown staff.staffgroup file.txt
・chown staff:staffgroup file.txt
# ln File1 File2
共通事項
・所有ユーザ・グループ
・パーミッション
・inode番号
・ハードリンク数
File2はFile1のハードリンクのため、inode番号が同じ
この状態でFile1を削除しても、File2が実体にリンクしているため実体は残る
File2も削除し、ハードリンクが0になると、実体がはじめて削除される
【シンボリックリンク】
シンボリックリンクとは、Windowsでのショートカットのようなもので、
元ファイルの場所を指し示すリンクの事です。
シンボリックリンクが持っている情報は「元ファイル(ディレクトリ)が
どこにあるのか」というパス情報のみです。
cpコマンドのオプション
・-R/-r :ディレクトリをコピー
・-f :同名のファイルやディレクトリがある場合、強制的に上書き
・-i :上書きするかどうか問い合わせ
・-p :ファイルの属性を保持したままコピー
quotaonコマンドのオプション
・-a :全てのファイルシステムのクオータ有効化
・-u :ユーザごとのクォータ有効化
・-g :グループごとのクォータ有効化
・-v :詳細情報表示
「original」というファイルに対して、コマンド発効後、
タイムスタンプ等のファイル情報が更新されないコマンドのはどれか。
・file original
更新される
・echo "original" > original
・ls -l original > original
・touch original
ファイルシステムの対話的なデバッガであり、
ext2/ext3/ext4ファイルシステムの状態の調査・変更を行えるコマンド
・debugfs
「/bin/ls」ファイル(lsコマンドのバイナリファイル)の内容を8進数で表示
・od /bin/ls
・od -t o /bin/ls
passwdというキーワードと完全に一致した名前を含むmanページを検索するコマンド
・whatis passwd
・man -f passwd
ping-tユーザが起動している全てのプロセスのnice値を10にしたい。
・renice 10 -u ping-t
「/etc/passwd」ファイルの各行の2番目の文字を取り出して表示・cut -c 2 /etc/passwd
「httpd.conf」ファイルを1ページあたり30行として整形して表示
1ページから2ページまで
・pr -l 30 +1:2 httpd.conf
-l :行数
-h :文字列
+ :開始ページ
: :終了ページ
「configure.gz」ファイルを展開できるコマンド
・gunzip configure.gz
・gzip -d configure.gz
APTツールにおいてパッケージ情報の検索・参照などを行うコマンド
・apt-cache
sortコマンドのオプション
-b :行頭の空白無視
-f :大文字小文字の区別なし
-r :降順ソート
-t :区切り文字指定
-n :数字を文字でなく数値としてソート
-k :ソート対象とするフィールドを指定
expandコマンドはタブをスペースに変換するコマンドです
-i :行頭のタブのみ置換
-t スペース数 :一つのタブをいくつのスペースに置き換えるか
ファイルシステムのディスク使用量をチェックし、
データベースファイルを作成(初期化)・更新するコマンド
・quotacheck
rpmコマンドを使用して、インストールされている
「postfix」パッケージの詳細情報を表示
・rpm --query --info postfix
・rpm -qi postfix
ログイン中の全ユーザーにメッセージを送信するコマンド
・wall
プロセスIDが1756のプロセスのみの情報を表示
・ps -p 1756
・ps p 1756
PTツールにおいて、apt-getやapt-cacheコマンドよりも高度なコマンド
対話的なパッケージ管理が行えるコマンド
・aptitude
「/etc/fstab」ファイルに記述するマウントオプションで、
「mount -a」コマンドを実行した際にマウントしないように指定するもの
・noauto
yumコマンドを使用して、アップデート可能なパッケージを確認・yum check-update
検索パターンをファイルから読み込むgrepコマンドのオプション
・-f
指定した文字を変換・削除するコマンド
・tr
メンテナンス用にシングルユーザモードで起動
grub> kernel /boot/vmlinuz-2.6.35 (1 or single or s)
プログラム「file」をどのユーザが実行しても、プログラムの所有者の権限で実行させたい。
なお、「file」のパーミッションは755である。
・chmod u+s file
・chmod 4755 file
「/bin/ls」ファイル(lsコマンドのバイナリファイル)の内容を8進数で表示
・od -t o /bin/ls
・od /bin/ls
quotaonまたはquotaoffコマンドでディスククォータの設定を有効・無効にする際、詳細情報を表示
・-v
コマンドの標準エラー出力先をディスプレイからファイルに切り替えるリダイレクト演算子
・2>
・2>>
「test.txt」ファイルから、「PINGT」または「pingt」という文字列を含まない行を抽出
・grep -Ev 'PINGT|pingt' test.txt
・egrep -v 'PINGT|pingt' test.txt
MBR方式のハードディスク「/dev/sda」デバイスのパーティションテーブルを確認
・fdisk -l /dev/sda
「/etc/fstab」ファイルに記述するマウントオプションで、
読み書きを許可してマウント
・rw
「configure.xz」ファイルを展開することができるコマンド
・xz -d -k configure.xz
・unxz configure.xz
・xz -d configure.xz
$ cat << world
> Hello world 1
> Hello world 2
> world
実行結果
Hello world 1
Hello world 2
※リダイレクト演算子の「<<」で終了文字を指定してcatコマンドを実行すると、
終了文字を入力するまで標準入力への入力を続けることができます。
アーカイブファイル「test.tar.xz」をカレントディレクトリに展開
・tar xfJ test.tar.xz
・tar xvJf test.tar.xz
※tarオプション
-c:新しいアーカイブ作成
-x:アーカイブからファイルを展開
-t:アーカイブの内容表示
-f:アーカイブのファイル名を指定
-v:処理の詳細を表示
-z:gzipを通して圧縮/展開
-j:bzip2を通して圧縮/展開
-J:xzを通して圧縮/展開
「/etc/fstab」ファイルに記述するマウントオプションで、出入力を非同期で行うコマンド
・async
ファイルシステムをアンマウントするコマンド
・umount
XFSファイルシステムの情報を表示するコマンド
・xfs_info
rpmコマンドを使用して、インストールする前に「postfix-1.1.12-1.i386.rpm」ファイルの変更履歴を確認したい。・rpm -qp --changelog postfix-1.1.12-1.i386.rpm
・rpm --query -p --changelog postfix-1.1.12-1.i386.rpm
rpmコマンドを使用して、システムにインストールされている全てのパッケージを表示させたい。
・rpm --query --all
・rpm -qa
接続されたUSBデバイスの情報を表示するコマンド
・cat /proc/bus/usb/devices
・lsusb
GPT形式のハードディスクにおいて、パーティションの作成、削除、変更および情報表示を行うことができるコマンド・gdisk
edquotaのオプション
-u:ユーザを指定
-g:グループを指定
-p:指定したユーザの設定をコピー
-t:ファイルシステムごとに猶予期間を指定
command1を実行し、続けてcommand2を実行
command1 ; command2
findコマンドでファイルを検索する際、ファイルの所有者を検索条件として使用したい
・-user
findコマンドでファイルを検索する際、検索するディレクトリの階層を指定したい
・-mindepth
・-maxdepth
apt-getコマンドを使用して、過去に取得したパッケージファイルを削除
・apt-get clean
2つのファイルを読み込み、共通するフィールドがある行を結合して表示するコマンド
・join
「test.txt」ファイルからPINという文字列を含む行を抽出
・cat test.txt | grep PIN
・grep PIN test.txt
sedコマンドを使用して「test.txt」ファイルの内容を編集して表示する際、
編集コマンドを記述したスクリプトファイル「editfile」を使用したい。適切なコマンドは次のうちどれか。
・sed -f editfile test.txt
e2fsckコマンドで「/dev/sda4」をチェックする際、全ての問題を自動的に修復したい。
・e2fsck -p /dev/sda4
sortコマンド
sort オプション ファイル名
オプション
-b 行頭空白を無視
-f 大文字小文字区別しない
-r 降順ソート
-t 指定した文字を区切りとする
-n 数字を文字でなく数値でソート
-k ソートする対象フィールドを指定
指定したコマンドが格納されている場所を、環境変数PATHで設定しているディレクトリから検索し、
その場所を絶対パスで表示するコマンド
・which
テキストファイルの「file.txt」にある「PINGT」を「pingt」に変換してディスプレイに表示
・cat file.txt | tr PINGT pingt
・tr PINGT pingt < file.txt
zip形式で圧縮したアーカイブファイル「test.tar.gz」の内容を展開せずに表示
・gzip -cd test.tar.gz | tar ftv -・tar ftvz test.tar.gz
teeコマンドは標準入力の内容を、まさにTの字のように、標準出力先(デフォルトはディスプレイ)と
ファイルの双方に出力するコマンド
起動時にカーネルが出力したメッセージを表示するコマンド
lpic1@lpic1-Virtual-Machine:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-30-generic root=UUID=fdb8bb77-3bb7-4c42-a7db-4dd6f8981cc7 ro quiet splash vt.handoff=1
lpic1@lpic1-Virtual-Machine:~$
lpic1@lpic1-Virtual-Machine:~$ ls -al | grep testfile
-rw-rw-r-- 1 lpic1 lpic1 10 8月 12 16:07 testfile
lpic1@lpic1-Virtual-Machine:~$ touch -t 201808130000.00 testfile
lpic1@lpic1-Virtual-Machine:~$ ls -al | grep testfile
-rw-rw-r-- 1 lpic1 lpic1 10 8月 13 2018 testfile
teeコマンドを使用する際、標準入力の内容を標準出力に出力すると共にファイルに追記
・-a
vi関連
vi
i カーソル左から入力
a カーソル右から入力
I カーソル行の先頭から入力
A カーソル行の末尾から入力
o カーソル行の下に空白行を追加し、そこから入力
O カーソル行の上に空白行を追加し、そこから入力
viコマンド
yy/Yカーソル位置の行をバッファにコピー
ywカーソル位置の単語をバッファにコピー
ddカーソル位置の行をバッファに切り取り
dwカーソル位置の単語をバッファに切り取り
xカーソル位置の文字をバッファに切り取り
Xカーソル位置の左文字をバッファに切り取り
pペースト
Pペースト(右側)
uもとに戻す
viエディタで編集しているファイルにある「ping-t」という文字列を、
全て「hoge」に置換
・:%s/ping-t/hoge/g
viエディタでコマンドモードから入力モードに移行する際、カーソルのある行の上に空白行を挿入し、
その行で文字を入力
・O
エディタでコマンドモードから入力モードに移行する際、カーソルのある行の下に空白行を挿入し、その行で文字を入力
・o
コマンドモードにおいて、カーソル位置の単語をバッファにコピーするviコマンド
・yw
コマンドモードで、画面を次の画面へ移動するviコマンド
・Ctrl+f
viエディタのコマンドモードで、カーソルを行頭へ移動するviコマンド
・0(ゼロ)
コマンドモードで、画面を前の画面へ移動するviコマンド・Ctrl+b
viエディタの検索
/検索文字列 :検索文字列をカーソルの位置から末尾に向かって検索
?検索文字列 :検索文字列をカーソルの位置から先頭に向かって検索
viエディタのコマンドモードにおいて、カーソルのある行を含めてn行をバッファにコピー
・nyy
viエディタのコマンドモードにおいて、カーソルのある行を含めてn行を切り取り、バッファにコピー
・ndd
viエディタで読み取り専用でファイルを開くためのオプション
・-R
viエディタで編集しているファイルにある「ping-t」という文字列を全て「hoge」に置換したい。
・:%s/ping-t/hoge/g
viエディタで、パラメータなしで起動した場合の動作
・空のファイルで起動する
・ファイル名は保存する際に指定する
h:一文字左
l:一文字右
k:1文字上
j:1文字下
0:行頭
$:行末
H:画面の西城行
L:画面の最下行
gg:ファイルの先頭行
G:ファイルの最終行
nG:ファイルのn行目
:n:ファイルのn行目
Ctrl+f:次のページ
Ctrl+b:前のページ
編集しているファイルをエディタを終了することなく保存したい。
・:w
※:qの場合、警告が出て終了できない
viエディタで、「/sbin」として文字列「sbin」をカーソル位置からファイルの末尾に向かって検索している。
次の候補を検索するviコマンド
・n
※Nは前の候補
Linux構成関連
現在マウントされているファイルシステムの情報が格納されているファイル
・/etc/mtab
「ctrl+alt+del」キーを押下した際のシステムの動作を設定するファイル
・/etc/inittab
一時停止しているプロセスを再開するシグナル・CONT
以下のコマンドでプロセスID「1234」に送られるシグナル
$ kill 1234
・TERM(SIGTERM)
デバイスが使用中のDMAチャネルに関する情報が確認できるファイル
・/proc/dma
lpic1@lpic1-Virtual-Machine:~$ cat /proc/dma
2: floppy
4: cascade
ディレクトリのアクセス権
・書き込み権限があるディレクトリ内で、ファイルやディレクトリを作成・削除できる・実行権限があるディレクトリに移動できる
systemdの動作するシステムにおいて、次回起動時にメンテナンスを行うために最低限のシステムサービス状態で起動させたい。
・runlevel1.target
・rescue.target
フォアグラウンドで実行しているプロセスに割り込みシグナルを送信し、プロセスを終了したい。
・killまたはkillallコマンドでINT(SIGINT)シグナルを送信する
・Ctrl+cキーを押下する
Linuxのルートファイルシステムに使用できるファイルシステム
・ext3
・XFS
・ext4
Linuxをインストールする際、ルートパーティションから分割できないディレクトリ
・/etc・/bin
・/sbin
GRUB Legacy(GRUB1)は設定ファイル「/boot/grub/menu.lst」を変更しても、実行するコマンドはありません。
USBについて
・USB1.1はカーネル2.4からサポートされている
・USB2.0はカーネル2.6からサポートされている
ハードディスク、USBメモリーなどが属しているUSBのデバイスクラス
・Mass Storage Class
共有ライブラリが格納されているディレクトリ
・/usr/lib
MBR方式のハードディスクに作成できる基本パーティション数:最大4
スワップ領域とは、物理メモリ(実メモリ)に収まらなかった情報を
一時的に格納する為の、通常ハードディスク上に作成する領域
ハードディスク上にある為、物理メモリよりも動作は格段に遅くなる
スワップ領域は通常、物理メモリと同じサイズまたは2倍程度のサイズを設定する
次世代のLinux標準ファイルシステムとなるべく開発中のファイルシステム
・Btrfs
端末上で複数の仮想端末を開くことのできるプログラム
・screen
・tmux
「/etc/fstab」ファイルを編集して、ext3ファイルシステムの「/dev/sda1」をシステム起動時から「/boot」に自動マウントするよう設定
・/dev/sda1 /boot ext3 auto 1 1
・/dev/sda1 /boot ext3 defaults 1 1
umountコマンドを発行したが、使用中である「busy」を示すエラーが表示された原因
・アンマウントしようとしているファイルシステムに、ユーザーがアクセスしている
・アンマウントしようとしているファイルシステムを、プロセスが使用している
カレントディレクトリの内容を表示させたい。
また、カレントディレクトリ内にあるディレクトリ(サブディレクトリ)の内容も再帰的に表示させたい。
・ls -R
MBR形式のハードディスクである「/dev/sda」デバイスのパーティションを操作したい。・fdisk /dev/sda
ファイルシステム
ext2 :以前のLinuxで標準的に使用されていた規格
ext3 :ext2の後継、ジャーナリングファイルシステム
ext4 :ext3の後継、ジャーナリングファイルシステム
XFS :動的inode、ジャーナリングファイルシステム
JFS :動的inode、ジャーナリングファイルシステム
ReiserFS :動的inode、ジャーナリングファイルシステム
※inodeの数が制限されるファイルシステムは、動的inodeの機能がないファイルシステム
現在、次世代のLinux標準ファイルシステムとなるべくBtrfs(バターエフエス、またはビーツリーエフエスと発音します)が開発中です。
Btrfsはカーネル2.6.29に取り込まれ、現在も開発が続けられています。
ブートローダであるGRUB Legacyの設定ファイル
・/boot/grub/menu.lst
・/boot/grub/grub.conf
systemdの動作するシステムにおいて、次回起動時にメンテナンスを行うために
最低限のシステムサービス状態で起動させたい。
次回起動時のターゲットとしてどれを指定すればよいか
・rescue.target
・runlevel1.target
0 :poweroff.target
1 :rescue.target
2,3,4 :multiuser.target
5 :graphical.target
6 :reboot.target
GRUB2でパーティションを指定する際は、
「(hdディスク番号,パーティション番号)」と指定
ディスク番号は0から、パーティション番号は1から数える
1番目のディスクの1番目のパーティション → (hd0,1)
1番目のディスクの2番目のパーティション → (hd0,2)
2番目のディスクの2番目のパーティション → (hd1,2)
Linuxのディレクトリ
/home :一般ユーザのホームディレクトリ
/usr :起動には不要なプログラムを格納
/var :ログファイルやメールなどの可変ファイル
/opt :追加でインストールしたパッケージ
/boot :Linuxカーネルの起動ファイル
/tmp :一時ファイル
/bin :一般ユーザのコマンド格納
/sbin :管理者用のコマンド格納
/etc :システムの設定用ファイル
/lib :共有ライブラリ
/dev :デバイスファイル
/etc/mtab :現在マウントされているファイルシステムの情報が格納されているファイル
box
1.セキュリティとリスクマネジメント(C… 2019年04月22日 コメント(3)
DBに向けて 2019年03月03日
lpic101-2 2019年02月11日