基本コマンドを使いこなそう！
・LinuC 試験の出題範囲対応「1.02.2 基本的なファイル管理の実行」「1.03.2 フィルタを使ったテキストストリームの処理」「1.03.4 正規表現を使用したテキストファイルの検索」

担当：河原木忠司© LPI-Japan / EDUCO all rights reserved.

自己紹介◼河原木忠司（かわらぎただし） 20数年ほど、講師/エンジニアとして活動しております。
 最近は講師、研修コンサルティング、執筆業に従事させていただいております。
- サーバーインフラ系のコース、セキュリティ系のコースを中心に担当させていただいております。
- LinuC Lv.1/Lv.2のver.10試験開発にも協力させていただきました。
https://linuc.org/linuc/thanks.html◼最近執筆したもの「基礎からしっかり学ぶ Linux入門」（技術評論社）
https://gihyo.jp/book/2022/978-4-297-12545-5「最短突破 LinuCレベル1合格教本 ver.10対応」（技術評論社）
好評発売中です。
https://gihyo.jp/book/2020/978-4-297-11527-2「標準テキスト CentOS8 構
築・運用・管理パーフェクトガ
イド[CentOS Stream対応] 」（共著、SBクリエイティブ）
https://www.sbcr.jp/product/4815602567/© LPI-Japan all rights reserved.

2

セミナーの内容◼LinuCの位置づけ / 基本コマンドを学習する必要性◼基本コマンドの使い方◼基本コマンドの活用例◼このセミナーでお話しする内容
catコマンドなどのテキスト処理コマンドなど、基本となるコマンドを学習する必要性を把握した上で、基本的な使い方を紹介。
その上で、それらのコマンドをシステム管理操作において実践的に利用する例を紹介。

© LPI-Japan all rights reserved.

3

LINUCの位置づけ /「基本コマンド」を学習する必要性© LPI-Japan all rights reserved.

4

LinuCレベル１／レベル２ Version10.0とは◼LinuCとはクラウド時代の即戦力エンジニアであることを証明するLinux技術者認定
https://linuc.org/✓現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化・コンテナを問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知見「Linux技術」に関する資格✓全面的に見直した「今」身につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込み✓Linuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan all rights reserved.

5

クラウドを活用できるITエンジニアに必須の技術がまとまっている
AWSなどのパブリッククラウドを活用するための技術

AWSなどのパブリッククラウドを活用するための技術間が欠けている状態

仮想マシン／コンテナ技術、クラウドセキュリティ、アーキテクチャ、ほか

オンプレミスのサーバーサイドLinux技術

オンプレミスのサーバーサイドLinux技術【今まで／その他】

Version10.0© LPI-Japan all rights reserved.

6Linuxが活用されている場面◼Linuxは様々な環境で利用されている
AndroidはLinuxカーネルをカスタマイズしたもの

PC

サーバー

スマホ

ChromeOSはLinuxカーネルをカスタマイズしたもの

IoT端末/情報家電

通信機器© LPI-Japan all rights reserved.

7

Webサーバーで利用されているOS◼UNIX系：79.9%
 w3tech https://w3techs.com/technologies/overview/operating_system より
 多くのWebサーバーがLinux環境で動作- Webサーバー（Webアプリ）環境を活用する上で、Linuxに関する知識が役立つ© LPI-Japan all rights reserved.

8

主な「基本コマンド」◼ファイル操作やテキスト処理を行うコマンド ◎がついているコマンドは今回ご紹介するコマンド
コマンドと引数意味

cat ファイル名◎

テキストファイルの内容を表示

cd ディレクトリ名◎

カレントディレクトリの変更

ls ディレクトリ/ファイル名

ディレクトリの内容を表示

mkdir ディレクトリ名

ディレクトリの作成

cp コピー元 コピー先◎

ファイルのコピー

mv 移動元 移動先ファイルの移動/ファイル名の変更rm ファイル名

ファイルの削除

head ファイル名

テキストファイルの先頭を表示

tail ファイル名◎

テキストファイルの末尾を表示

wc ファイル名◎

テキストファイル内の文字数や行数をカウントして表示

grep キーワード ファイル名◎

テキストファイルの中から指定したキーワードが書かれた行だけを表示© LPI-Japan all rights reserved.

9

「基本コマンド」学習の必要性◼catコマンドはテキストファイルの内容を表示
 なぜ「テキストファイルの内容を表示」するコマンドを学習する必要があるか？
 Windowsではtypeコマンドで「テキストファイルの内容を表示」できるが、Windowsの研修でそれを学習する？

◼Linuxでは、設定ファイル(設定情報が書かれたテキストファイル）で設定を行う
 設定情報を参照するには、catコマンドなどを活用
 cpコマンドで設定ファイルのバックアップが可能◼Linuxでは、テキストログを多く扱う
 /var/log ディレクトリ以下のログファイルの多くがテキストデータのログファイル
 OSやサービスの状態を把握するには、テキスト処理コマンドを活用
OSやサービスの設定、状態の確認をする上で、ファイル操作コマンドやテキスト処理コマンドは必須© LPI-Japan all rights reserved.

10基本コマンドの使い方© LPI-Japan all rights reserved.

11

catコマンドの使い方
書式

cat [オプション] [ファイル]

概要

指定したファイルの内容を表示、ファイルの結合

主なオプション

オプション

説明-n

行番号をつけて表示

引数⚫

ファイル：表示するファイルを指定➢

ファイル名を省略すると、入力された内容をそのまま出力◼実行例[root@centos7 ~]# cat test2.txt
test2[root@centos7 ~]# cat test1.txt test2.txt
test → test1.txtの内容
test2 → 続けてtest2.txtの内容を表示© LPI-Japan all rights reserved.

12

cdコマンドの使い方
書式

cd

概要

カレントディレクトリを変更

引数⚫

ディレクトリ名

ディレクトリ名：カレントにするディレクトリを指定➢

引数を省略すると、ホームディレクトリをカレントにする➢-を指定すると、1 つ前のカレントディレクトリに変更◼実行例[root@centos7 ~]# cd /testdir → カレントディレクトリを/testdirに変更[root@centos7 testdir]# ls → 現在のカレントディレクトリである/testdirの内容を表示
1.txt 4.txt[root@centos7 testdir]# pwd → カレントディレクトリをフルパスで表示/testdir[root@centos7 testdir]# cd → 引数を省略するとホームディレクトリへ変更[root@centos7 ~]# pwd/root© LPI-Japan all rights reserved.

13

cpコマンドの使い方
書式

cp [オプション] ファイル 1

概要

ファイルのコピー

主なオプション

オプション

説明

-r

ディレクトリをコピー-f

上書き時、確認メッセージを非表示にする-i

上書き時、確認メッセージの表示を強制する-p

タイムスタンプやパーミッションなどのファイル属

ファイル 2or ディレクトリ

性を維持したままコピー-d
引数

シンボリックリンクをそのままコピー⚫

ファイル 1：コピー元のファイルを指定⚫

ファイル 2or ディレクトリ：コピー先を指定➢

存在するディレクトリを指定したら、指定したディレクトリにコピーする。存在しない名前を指定したら、同じ内容のファイルを作成© LPI-Japan all rights reserved.

14

cpコマンドの使い方◼実行例[root@centos7 ~]# cp /etc/hosts .
[root@centos7 ~]# cat hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1
localhost localhost.localdomain localhost6 localhost6.localdomain6→ /etc/hostsをカレントディレクトリにコピー[root@centos7 ~]# cp testa.txt testc.txt[root@centos7 ~]# cat testa.txt
test1
test2
[root@centos7 ~]# cat testc.txt
test1
test2 → cp:第2引数をディレクトリとして存在しない名前にすると、同じ内容のファイルを作成© LPI-Japan all rights reserved.

15

tailコマンドの使い方
書式

tail [オプション] ファイル

概要

指定したファイルの末尾部分を表示

主なオプション

オプション

説明-行数 / -n 行数

指定した行数を表示（既定は 10 行）-f

末尾をリアルタイムに表示し続ける

引数⚫

ファイル：表示するファイルを指定◼実行例[root@centos7 ~]# tail –n 3 test4.txt
98
99
100 → 末尾3行を表示© LPI-Japan all rights reserved.

16

wcコマンドの使い方
書式

wc [オプション] ファイル

概要

ファイル内の行数、単語数、文字数をカウントして表示

主なオプション

オプション

説明-l行数を表示

引数⚫

ファイル：表示するファイルを指定◼実行例[root@centos7 ~]# wc testwc.txt15 99 717 testwc.txt⇒ファイル内の行数、単語数、文字数をカウントして表示[root@centos7 ~]# wc -l testwc.txt
15 testwc.txt⇒ファイル内の行数を表示/etc/passwd: ユーザー情報の設定ファイル[root@centos7 ~]# wc -l /etc/passwd
1行につき、1ユーザーの情報を記録
46 /etc/passwd⇒行数をカウントすると、ユーザー数のカウントになる⇒ファイル内の行数を表示© LPI-Japan all rights reserved.

17

grepコマンドの使い方
書式

grep [オプション] キーワード ファイル

概要

指定したファイルから、キーワードが書かれている行のみを抽出して表示

主なオプション

オプション

意味

-e

検索キーワードの指定（複数のキーワード指定時に利用）-E

拡張正規表現の利用（egrep と同じ）

-v

否定条件

-i

大文字、小文字の区別を無視-c

キーワードと合致する行数を表示-n出力される行の行番号を表示引数⚫

キーワード：検索するキーワードを指定⚫

ファイル：検索対象となるファイルを指定© LPI-Japan all rights reserved.

18

grepコマンドの使い方◼実行例[root@centos7 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
dockerroot:x:987:981:Docker User:/var/lib/docker:/sbin/nologin⇒rootと書かれた行のみを表示[root@centos7 ~]# grep root /etc/passwd | grep bash
root:x:0:0:root:/root:/bin/bash⇒ rootと書かれた行で、かつbashと書かれた行のみを表示• パイプ（|）をつけることで、左側のコマンドの結果を右側に送って処理「前のコマンドの標準出力を次のコマンドの標準入力に送る」

grep root /etc/passwd | grep bash

© LPI-Japan all rights reserved.

19

grepの使い方◼実行例[root@centos7 ~]# cat testwc.txt-*- text -*GNU Wget========
Current Web home: http://www.gnu.org/software/wget/
GNU Wget is a free utility for non-interactive download of files from：[root@centos7 ~]# grep 'free utility' testwc.txt
GNU Wget is a free utility for non-interactive download of files from⇒「free utility」というキーワードが書かれた行のみ表示© LPI-Japan all rights reserved.

20

メタキャラクタの抑止◼コマンドライン上で、特別な意味を持つメタキャラクタ（記号）をキーワードとして指定する場合は、シングルクォーテーションなどで囲む
 「スペース」はコマンド名や引数を区切るという特別な意味を持つメタキャラクタ◼実行例[root@centos7 ~]# grep free utility testwc.txt
grep: utility: そのようなファイルやディレクトリはありません
testwc.txt:GNU Wget is a free utility for non-interactive download of files from⇒freeというキーワードで、utility、testwc.txtというファイルの内容を検索するという意味になる[root@centos7 ~]# grep 'free utility' testwc.txt
GNU Wget is a free utility for non-interactive download of files from⇒「free utility」というキーワードが書かれた行のみ表示© LPI-Japan all rights reserved.

21

基本コマンドの活用例© LPI-Japan all rights reserved.

22前提として・・

ssh 192.168.56.11
sshd◼sshdの設定ファイル
 /etc/ssh/sshd_config
 誤った記述をしたまま、サービスを再起動すると、起動しない◼sshdのログ /var/log/secure 例： Mar 25 23:18:09 centos7 sshd[1968]: Failed password for root from
192.168.56.1 port 56580 ssh2⇒「Failed password」：誤ったパスワードを入力し、認証失敗© LPI-Japan all rights reserved.

23

設定ファイルの内容を確認◼実行例[root@centos7 ~]# cat /etc/ssh/sshd_config#$OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $：⇒設定ファイルの内容をすべて表示[root@centos7 ~]# grep Password /etc/ssh/sshd_config#PasswordAuthentication yes「#」ではじまる行はコメント行#PermitEmptyPasswords no⇒説明などを記述。設定として読み込まれない
PasswordAuthentication yes# PasswordAuthentication. Depending on your PAM configuration,# PAM authentication, then enable this but set PasswordAuthentication⇒設定ファイルの中からPasswordと書かれた行のみを表示[root@centos7 ssh]# grep Password /etc/ssh/sshd_config | grep -v '#'PasswordAuthentication yes⇒ Passwordと書かれた行の中から、「#」と書かれていない行を表示-v：否定条件の指定© LPI-Japan all rights reserved.

24設定ファイルのバックアップ◼設定ファイルの内容を読み込んで、サービス（sshd）が起動
 設定ファイルの内容に誤りがあると、サービスが起動しない 以下のようにバックアップを取っておくことで、誤りがあったときにも元に戻せる◼実行例[root@centos7 ~]# cd /etc/ssh[root@centos7 ssh]# cp sshd_config sshd_config.bak[root@centos7 ssh]# ls sshd*
sshd_config sshd_config.bak
誤りがあったときは、バックアップファイルの内容を設定ファイルにコピー

cp sshd_config.bak sshd_config© LPI-Japan all rights reserved.

25

ログの確認◼ログは末尾に最新の情報を記録
 ファイルの末尾を参照すると、最新のログを確認できる◼実行例[root@centos7 ssh]# cat /var/log/secure
Mar 23 11:14:13 centos7 polkitd[749]: Registered Authentication Agent for unixprocess:4297:656329 (system bus name :1.149 [/usr/bin/pkttyagent --notify-fd 5 -fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ja_JP.UTF-8)
Mar 23 18:42:02 centos7 polkitd[718]: Loading rules from directory /etc/polkit-1/rules.d：[root@centos7 ssh]# tail -n 3 /var/log/secure
Mar 29 13:36:18 centos7 sshd[3818]: Failed password for root from 192.168.56.1 port
63308 ssh2
Mar 29 13:36:18 centos7 sshd[3818]: Received disconnect from 192.168.56.1 port
63308:11: authentication cancelled [preauth]Mar 29 13:36:18 centos7 sshd[3818]: Disconnected from 192.168.56.1 port 63308 [preauth]© LPI-Japan all rights reserved.

26

ログの確認◼サービス名や出力されるキーワードなどで、特定の情報をログの中から検索できる
 「fail」⇒失敗。パスワード入力ミスなどによる認証失敗など。

◼実行例-i：大文字/小文字の区別を無視[root@centos7 ssh]# grep -i fail /var/log/secure
Mar 29 13:36:16 centos7 sshd[3818]: pam_unix(sshd:auth): authentication failure;logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.56.1 user=root
Mar 29 13:36:18 centos7 sshd[3818]: Failed password for root from 192.168.56.1
port 63308 ssh2
⇒ログの中からfailと書かれた行を表示[root@centos7 ssh]# wc -l /var/log/secure66⇒ログファイルの行数を表示[root@centos7 ~]# grep -i fail /var/log/secure | wc -l2
認証失敗に関する行の数を表示⇒ログファイルの中からfailと書かれた行数を表示© LPI-Japan all rights reserved.

27

Q&A / おわりに◼ご参加いただき、ありがとうございました。
◼ご質問がありましたら、よろしくお願いいたします。
◼参考文献「最短突破 LinuCレベル1
合格教本 ver.10対応」（技術評論社）
好評発売中です。
https://gihyo.jp/book/2020/978-4-297-11527-2「Linux標準教科書」（LPIJapan）※オンラインでダウンロードして利用できます「基礎からしっかり学ぶ Linux入門」（技術評論社）
https://gihyo.jp/book/2022/978-4-297-12545-5「標準テキスト CentOS8 構
築・運用・管理パーフェクトガ
イド[CentOS Stream対応] 」（共著、SBクリエイティブ）
https://www.sbcr.jp/
product/4815602567/© LPI-Japan all rights reserved.

28