【初学者用】Linuxを体系的に学ぶ – Part.1


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

この記事について

ウズウズカレッジ様のYouTube【LinuC/LPIC合格講座】を参考にLinuxについてまとめたものです。
動画がとてもわかりやすいため、初心者の方は是非動画を見ることをお勧めいたします。

※ボリューミーな為、Part.1とPart.2に分けて投稿いたします。

目次

  • Linuxの誕生
  • 主なディストリビューション
  • CUIとGUI
  • Linuxの起動の流れ
  • SSH

Linuxの誕生

Linuxが誕生したのは1991年。
フィンランドの大学生が作った無料のオープンソース。

Linuxのメリット・デメリット

★メリット
・ほとんど無料。
・スペックが低いコンピュータでも動く。
・業務のための環境(サーバなど)を構築するためのソフトウェアが多い。
・目的に応じたカスタマイズの自由度が高い。

★デメリット
・WondowsやMacで使えていたアプリケーションが使えないこともある(ExcelやWordなど)。
・基本的にサポートが充実していない。
・WindowsやMacに比べて用語や操作法が直感的ではない。

主なディストリビューション

★Red Hat系
・RHEL・・・有料/サポートが充実している。
・CentOS・・・無料で利用できるが、商用サポートは充実していない。

★Debian(デビアン)系
・ubuntu・・・初心者用。WindowsやMacと操作感が近い。ubuntuソフトウェアセンターで様々なフリーソフトを簡単に導入できる。

CUIとGUI

★CUI(Character-based User Interface)
コマンドを入力して操作すること。
パソコンの性能が低くても快適に動作する。
様々なコマンドを覚える必要がある。

★GUI(Graphical User Interface)
・キーボードだけでなく、マウスでも操作できる。
・絵やアイコンも表示される。
・学習しなくても直感的に操作できる。
・CUIに比べて高い性能が必要になる。

Linuxの起動の流れ

電源入る

BIOS/UEFIが起動
・ハードウェアをチェック
・ブートローダを実行しOSを起動

Linux(OS)が起動
・ユーザー選択
・パスワードを入力

CUI環境でのログインの方法

loginとpasswordを入力

以上

CUI環境のシャットダウンのコマンド

★前提として
Linuxは、マルチユーザー(複数のユーザー)で使っている場合が多いため、シャットダウンは滅多にしない。
基本的にはRootユーザーのみができる。

★ Debian系のコマンド

$ sudo shutdown -h now
 root権限を得て システムを終了して! 電源オフ! 今すぐ!

★RHEL系のコマンド

$ su -  ...rootユーザーに代わって
# shutdown -h now  ...システムを終了して! 電源オフ! 今すぐ!

※ #はrootユーザーになっているよ、という意味

shutdownコマンドのオプション

下記のオプションを組み合わせてコマンドを打つことができる。

-h, -p, --poweroff ...システムを終了して電源を切る。
-H, --halt ...システムを終了させる。
-r, --reboot ...システムを終了して再起動する。
-k ...システムを終了せずに、メッセージだけ送る。
-c ...システム終了をキャンセルする
--no-wall ...シャットダウンやキャンセルの時にメッセージを表示しない

例: 5分後にシャットダウンすることをメッセージで通知し、5分後にシステムを終了し電源を切る。

# shutdown -h +5 "shutdown in 5 minutes"
システムを終了して電源を切って! 5分後に! ””の中身はメッセージ。

SSH

SSH(Secure Shell)とは、ネットワークに接続された機器の通信を暗号化することで安全にする”仕組み”。
主にOpenSSHというソフトウェアを使って通信が行われる。

<認証するための方法>
★パスワード認証方式(人間が管理するので危ない)
・あらかじめ設定したパスワードを入力して接続
・安全性が低い(パスワード流出のリスクあり)
・設定が簡単

★公開鍵認証方式(一般的にはこちらを使う)
・公開鍵ファイル(文字の羅列)を用いて接続
・安全性が高い
・設定が難しい

公開鍵認証方式について

★前提として
SSHクライアント側(秘密鍵・公開鍵を持っている)

SSHサーバ(クライアント側から公開鍵を事前にもらっておく)

★通信開始するとき
①SSHクライアント → 「ログインしたい!」 → SSHサーバ
②SSHクライアント ← 「公開鍵で作った暗号化を送信」 ← SSHサーバ
③SSHクライアント → 「秘密鍵で復号化した内容を送信」 → SSHサーバ
④SSHクライアント ⇄ 暗号化された通信を開始 ⇄ SSHサーバ

渡した公開鍵を持っていることがわかれば、正しい接続先だ!と認識する。= これを「ホスト認証」と呼ぶ。

SSHに関係するファイル(クライアント側)

★SSHに関係するファイル名

ssh_config ...クライアント側のSSHの設定
id_rsa ...SSHの秘密鍵
id_rsa.pub ...SSHの公開鍵
known_hosts ...接続先サーバーの情報や送られてきたホスト認証のための公開鍵

★ディレクトリ
ユーザー別にホームディレクトリ直下の「.ssh」ディレクトリに保存される
例)/home/tanamoru/.ssh/ssh_congif  ※こちらが優先
例)/etc/ssh/ssh_config

SSHに関するファイル(ホスト側)

sshd_config ...ホスト側のSSHの設定
ssh_host_rsa_key ...SSHのホスト側の秘密鍵
ssh_host_rsa_key.pub ...SSHのホスト側の公開鍵
authorized_keys ...クライアント(ユーザー)によって登録された公開鍵のリスト

★ディレクトリ
基本的に「etc」ディレクトリの直下「ssh」ディレクトリに保存される。
「authorized_keys」のみ、ホームディレクトリ直下の「.ssh」ディレクトリに保存される。
例)etc/ssh/sshd_config
例)/home/tanamoru/authorized_keys

公開鍵と秘密鍵のペアを作成のコマンド

$ ssh-keygen ...公開鍵と秘密鍵を作成して!

公開鍵をリモートホストに登録

$ ssh-copy-id testuser@testhost ...ssh-copy-id 接続先アカウント名@接続先ホスト名IPアドレス

登録するためにはパスワード方式などの他の認証が有効である必要がある。
公開鍵はサーバ側の「~/.ssh」ディレクトリの「authorized_keys」ファイルに書き込まれる。

SSHでリモートホストにログイン

$ ssh testuser@testhost ...ssh 接続先アカウント@接続先ホスト名IPアドレス

SSHリモートホストからログアウト

$ logout
$ exit
Ctrl + D

Part.2へ続く

【初学者用】Linuxを体系的に学ぶ – Part.2

Last modified: 2023-07-03

Author