LoginSignup
21
24

Linux研修テキストまとめ

Last updated at Posted at 2023-10-25

1.Linuxとオープンソース

OSとは
OS:ハードウェアとアプリの仲介役(ハードの違いを中和してくれる為、アプリが作成しやすい)

Linuxとは
システムを動かす為の基盤

    Linuxの特徴
  1. (UNIXで出来る事は大体出来る、逆も同様)
  2. 無償
  3. 自由度高い

Linuxを使って組まれたシステムをLinuxディストリビューションという。

代表例

Red Had系ディストリビューション
Red Hat Linux(現在はRed Hat Enterprise Linux)がベースに開発されたもの

Debian系ディストリビューション
フリーソフトウェアだけを採⽤する無償ディストリビューション(Ubuntu等)

その他ディストリビューション
代表的な例:SlackwareやopenSUSE


オープンソースとは
ソースコード(開発に必要な言語)を公開していて、自由に誰でも開発を進めれるスタイルのこと

2.Linuxの基本操作

ユーザーインターフェースには$\color{red}{\rm CUI}$と$\color{blue}{\rm GUI}$がある。Linuxでは基本$\color{red}{\rm CUI}$を使用

  • $\color{red}{\rm CUIとは}$
  • 文字情報で操作
  • $\color{blue}{\rm GUIとは}$
  • マウスを使用してアイコンやメニュー等で操作  (使用例:x window system)

Linuxの使用はユーザーパスワードが必須

管理者用の[rootユーザー]とそれ以外の[一般ユーザー]がある

オンラインマニュアルに関して

man : オンラインマニュアル確認(ファイル:/usr/share/man)   終了:q

    マニュアルページのセクション番号(用途)
  1. ⼀般ユーザのコマンド
  2. システムコール (カーネルが提供する関数)
  3. ライブラリー呼び出し (プログラムライブラリーに含まれる関数)
  4. デバイスファイル
  5. 設定ファイルの書式
  6. ゲーム
  7. その他
  8. システム管理コマンド
  9. Linux独⾃のカーネル⽤ドキュメント
コマンド一覧 su -   一般 → root

exit    root → 一般

cal    カレンダー

whatis   セクションの確認

--help   軽く使い方を確認

  • shutdown [オプション] 時間
  •   
    • -r:再起動
    •   
    • -h:シャットダウン
    •   
    • -c:シャットダウンをキャンセル

    ⇒【時間】 now:今   +(数字):何分後   (数字:数字):何時何分

3.ファイルとディレクトリ

【 ファイルとは 】
通常ファイル、ディレクトリ、リンクファイル、特殊ファイル 4つがある。

ファイル名には、「*」「!」「? 」等を含んではいけない

  • ls [オプション] [ファイル名 または ディレクトリ名] ファイル一覧
    • -l  ファイルやディレクトリの属性や詳細情報などを表⽰
    • -a  隠しファイルを含めて表⽰
    • -R  ディレクトリ内に存在するディレクトリの中⾝も表⽰

ディレクトリ(フォルダ)について

ルートディレクトリ:ディレクトリの頂点
相対カレント、絶対ルート

ユーザーことに「/home/ユーザー名」というホームディレクトリが割り当てられる

【コマンド】
cd [オプション] [移動先ディレクトリ]  カレントディレクトリの移動

cat [ファイル名] テキストファイルの内容表示

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

iノード  ファイルやディレクトリの番号

ハードリンク  1つのiノードに複数のファイル名を設定  ln:作成コマンド

シンボリックリンク  別iノードを設定         ln -s:作成コマンド

イメージ
iノード(部屋 (データ) に入る為のドア)
ハード(1つのドアに複数のドアノブ (ファイル名) を作成)
シンボ(ドアノブが1つしか付けれない新しいドアを作成)

4.ファイル管理

cp [オプション] 元名 新名  ファイルコピー

$\color{blue}{オプション}$ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 -p  属性ごと

 -i  上書き確認

 -R  ディレクトリを配下ごと

 -d  シンボリックリンクのままコピー

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

mv [オプション] 元名 新名  ファイル移動
$\color{blue}{オプション}$ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 -t  元ファイルを全て移動

 -i  上書き確認

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

rm [オプション] ファイル名  ファイル削除
$\color{blue}{オプション}$ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 -f 削除確認なし

 -i 削除確認あり

 -r ディレクトリ削除時付与

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

mkdir             ディレクトリ作成

 -p   同名があれば作成せず、無ければ作成
    $\color{red}{※他は大体ファイル操作コマンド同様}$

ファイル・ディレクトリの圧縮と展開

【コマンド一覧】
gzip [オプション] ファイル名    ファイル圧縮

zip [-r] 圧縮ファイル名 ファイル名orディレクトリ名     
     ファイル圧縮+名前変更

gunzip 圧縮ファイル名  解凍

unzip 圧縮ファイル名   解凍、圧縮ファイルは削除されない

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

アーカイブ作成

tar ()vf アーカイブファイル名 対象ディレクトリ名 
() には【c作成 x展開 v詳細 fアーカイブファイル指定 j圧縮(bzip2) J圧縮(xz) z圧縮(gzip)】


拡張⼦「.tgz」は、tarコマンドで作成されたアーカイブファイルをgzip形式で圧縮させたもの

5. ユーザとグループ

UID(ユーザーID)
・⼀般ユーザー    100以上
・システムユーザー  1~99
・rootユーザー    0

sudo コマンド :コマンド作動に一時的にrootの権限が使える 
   ※求められるパスワードは元ユーザーのパスワードを入力

グループ     ※ユーザーはグループに所属必須、複数所属OK。
・プライマリグループ、それ以外サブ
===========================================

【コマンド一覧】

groups [ユーザー名]  所属グループ情報
id [ユーザー名]   所属グループ情報

useradd [オプション][ユーザー名] 作成


  • passwd [オプション][ユーザー名]
  • オプション
    • -d   無効
    •   
    • -i 日数   有効期限が切れてから使用不可になるまでの日数を設定
    •   
    • -l   アカウントロック
    •   
    • -u   ロック解除
    •   
    • -w 日数    有効期限が切れる何日前から警告を表示するかを設定
    •   
    • -x 日数    有効日数を設定

usermod [オプション] [ユーザー名]   ユーザー情報を変更

-c コメント  $コメント変更$
-d ホームディレクトリのパス   $ホームディレクトリ変更$
-g グループID   $主グループ変更$
-G グループID   $サブグループ変更 複数指定可能$
-l [新ユーザー名]   $ユーザー名変更$
-s シェルのパス   $ログインシェル変更$
-aG       $グループ追加$

userdel [オプション] [ユーザー名]   ユーザーを削除する

 -r   $ホームディレクトリ毎ユーザーを削除する$

groupadd [オプション][グループ名]   グループを作成

 -g グループID   $指定したグループIDでグループ作成$


groupmod [オプション] [グループ名]   グループ情報変更

 -g グループID   $変更後グループIDを指定$
 -n グループ名   $変更後グループ名を指定$
 -o グループID   $既に存在するグループIDへの変更$
  

groupdel [グループ名]   グループ削除

6.パーミッション

ファイルやディレクトリ
所有者(u)・グループ(g)。その他(o)、この3つに対してアクセス権限を設定

chown [オプション] 所有者名 ファイル名またはディレクトリ名  所有者変更

chgrp   所有グループの変更 
   -R $指定したディレクトリとその中にあるファイルすべての所有グループ変更$

chown [オプション] グループ名 ファイル名またはディレクトリ名

パーミッション:所有者や所有グループごとのアクセス権

(例)$\color{red}{\rm d}$$\color{blue}{\rm rwx}$$\color{green}{\rm rw-}$$\color{ Orange}{\rm r-x}$
 $\color{red}{\rm d}$:ディレクトリ("誰"を表す)      $\color{blue}{\rm rwx}$:所有者の権限
 $\color{green}{\rm rw-}$:所有グループの権限       $\color{Orange}{\rm r-x}$:その他の権限

権限付与方法
   誰: a全て  u所有者  gグループ  oその他
   動作: +追加  ー削除  =設定
   権限: w書き込み  r読み取り  x実行
・もしくは2進数で表現 ※上記の例だと 765

7.テキストファイルの編集

---コマンドモード---
Esc コマンドモード
x1   削除
dd   1行削除 
yy   1行コピー
p    貼り付け
o    次の行から入力モード
a   カーソルの次の文字から入力モード
gg   ファイルの最初へ
G    ファイルの最後へ
$   行の最後へ
^    行の最初へ
d$   カーソルから行の最後までを削除
d^   カーソルから行の先頭までを削除
dG   カーソルからファイルの最後までを削除
dgg   カーソルから最後の行まで削除
:set nu  行番号の表示
「行番号」 G  行番号へ移動


: w   保存 (後ろにファイル名を加えるとそのファイルに保存)
: q   viコマンド終了
: wq   保存して終了
: q!  保存せず、強制的に終了

8. シェルについて

シェル・・・コマンド実行→結果を表⽰しているプログラム


リダイレクト
コマンドの標準出⼒を端末画⾯ではなく、任意のファイルに切り替える
 [ コマンド > ファイル名 ]
ファイルの末尾に追記したい場合は、「>>

パイプ  
コマンドの実⾏結果を別のコマンドで処理できる
 [ コマンド | コマンド ]

メタキャラクタ

history コマンド履歴

エイリアス コマンドのあだ名
[alias 【付与名】= "【コマンド】"]   あだ名決定

※エイリアス永続化方法(bashの設定ファイルに書き込む)
1⃣vi ~/.bashrc
2⃣ファイル内で、新しいエイリアスを追加
3⃣source ~/.bashrc

unalias [別名] エイリアス解除 
  ll:$さっき作ったエイリアス解除 $
  -a:$全て$

シェル変数  1つのシェル内だけで使える変数

環境変数:設定したシェルと、 シェル上で起動したシェルや実⾏したコマンドでも使える変数

シェルスクリプト:一連のコマンドをまとめた1つのファイル
 ⇒viにてファイル内で[#!/bin/bash]入力して設定


【コマンド】
printenv $環境変数を表⽰$
set   $設定されているシェル変数と環境変数をすべて表⽰$

9.シェルスクリプト

⼀連のコマンド操作を⾃動化

bash シェルスクリプトファイル名  実行
source シェルスクリプトファイル名 シェル変数をシェルスクリプト内で参照できる点

シェルスクリプトにも引数を指定可能

10. ファイルの操作

find パス 検索条件 アクション  通常の検索
find / -name "<ファイル名>"  名前指定 ※ワイルドカードを使用しざっくり検索OK

オプション

  -d    $ディレクトリのみ$   
  -f    $ファイルのみ$  
  -size  $サイズ指定$
  -perm  $パーティション指定$  
  -user  $ユーザー指定$
  -(a,c,m)(min,time)  
組み合わせて  a最終アクセス時刻 c最終ステータス m最終変更時刻 min分単位 time日単位

========================================

locate   高速検索
例)locate *.txt 

grep[オプション] <検索パターン> <ファイル名> テキストファイルの内容表示
  -n $(マッチした行の行番号を表示)$
  -i $(大文字小文字区別なし)$
  -V $(マッチしなかった行を表示)$
  -E $(拡張正規表現)$


メタ文字
 .       任意の1文字
 \       メタ文字効果打ち消し
 [文字]    文字指定 (文字の前に^を入れるとその文字以外をマッチ)
 文字 - 文字   例:a-k, a-zA-Z 等
 文字$     指定した文字が行末に来る文字列のみ検索

 +      直前の⽂字の1回以上の繰り返し(拡張表現)
 ?      直前の⽂字の0回または1回の繰り返し(拡張表現)
 ^      行の先頭が○○

11. ソフトウェアとパッケージ

パッケージ  ソフトウェア動作の為に必要なファイルをまとめたもの
パッケージ管理システム  パッケージの依存関係を管理するシステム

RPMパッケージ、debパッケージなどがある

rpm オプション   $\color{red}{\rm RPMパッケージを管理}$

 -ivh   指定したパッケージをインストール
 -Uvh   指定したパッケージをアップグレード
 -e    指定したパッケージをアンインストール
 -q    指定したパッケージがインストールされているか確認
 -qa   インストール済みパッケージを⼀覧表⽰
 -qi   指定したパッケージの説明を表⽰

yum サブコマンド  $\color{blue}{\rm パッケージの管理}$

 update   システム全体をアップデート
         (パッケージ名を後ろに付けると指定した1つをアップデート)
 install   インストール
 remove   アンインストール
 list    パッケージを⼀覧表⽰(未インストールも含む)
 info    パッケージ名
 search   指定したキーワードでパッケージを検索

12.ファイルシステム

外部記憶装置のデータをファイルとして管理する仕組み

デバイスファイル デバイスを表すファイルのこと(/devディレクトリ以下に配置)

主なデバイスファイル
/dev  /sda 等

パーティーションの作成

1台のハードディスク=4つのパーティション(領域)を基本パーティション

基本パーティションの内1つを拡張パーティションに変更可能

fdisk デバイスファイル名   デバイスファイル作成
  $\color{red}{\rm ※パーティションだけではその中にファイルを保存出来ない。}$

mkfs [-t ファイルシステム] デバイスファイル名  ファイルシステム作成


マウント
マウント:ディレクトリツリーに他のファイルシステムを接続すること
マウントポイント:デバイスを接続するディレクトリのこと


mount デバイスファイル マウントポイント  マウント実⾏

FHS (ファイルシステム階層標準)とは、ディレクトリやファイルの配置の規定

FHSで規定されているディレクトリの配置

bin   システムに必須のコマンド
boot  起動関連
dev  デバイスファイル  
home  ホームディレクトリ
lib   共有ライブラリ
root   rootのホーム

13.プロセスとジョブ

ps [オプション]  プロセス情報確認
 a   $他のユーザーのプロセスも$
 u   $ユーザ名$
 x   $端末から実⾏されたものではないプロセス(サーバプロセス)も$

表示例「PIO TTY TIME CMD         PID  : ID
    19262 ttyl 00: 00: 00 bash      TTY  : 実⾏した端末名
    19325 ttyl 00: 00: 00 ps  」    TIME : 実⾏時間
                     CMD : 実⾏コマンド

top  実行状況モニタリング

シグナル・・・プロセスへの命令
 9   KILL    強制終了 ※使用するのはTERMが有効で無かった時のみ
 15   TERM    終了
 18   CONT    再開
 19   STOP    ⼀時停⽌
【シグナルを送信するkillコマンド】
$ kill - [シグID] プロID
$ kill -s [シグID] プロID

(例1)kill 28000  (例2) kill -15 28000 (例3) kill -s TERM 28000

kill シグIDを入力しない場合TERMが命令される

ジョブの管理

$\color{red}{\rm フォアグラウンドジョブ}$と$\color{blue}{バックグラウンドジョブ}$

実行すると終了するまで他のジョブは行えない:$\color{red}{\rm フォアグラウンドジョブ}$での実行状態
コマンドラインの末尾に「&」を付けると$\color{blue}{バックグラウンドジョブ}$で実行可能

jobs 実行中のジョブ確認

fg [%ジョブID ]  $\color{red}{\rm フォアグラウンドジョブ}$実行
bg [%ジョブID ]  $\color{blue}{バックグラウンドジョブ}$実行

14.ネットワークの利⽤

プロトコル:通信関連のルール

TCP:高信頼性、パケット(分割されたデータ)が届いたかを確認する
IP:32ビットがIPv4、128ビットがIPv6
UDP:TCPのパケット確認を行わない版、その分早い
ICMP:エラーやメッセージなどを伝送するプロトコル

IPアドレス:ネットワーク部()とホスト部がある 
サブネットマスク:IPアドレスを2進数で表現したもの
 例)$\color{red}{\rm 192.172.}$$\color{blue}{\rm 46.45}$$\color{green}{\rm /16}$ 
  $\color{red}{\rm 192.172.}$がネットワーク部、$\color{blue}{\rm 46.45}$がホスト部、$\color{green}{\rm /16}$がネットワーク部がどこまでかを表す

ネットワークセグメント:同じネットワーク部のIPアドレスは1つのネットワークに属している。
                                   その範囲のこと。
ネットワークアドレス:先頭のIPアドレス

ブロードキャストアドレス:末尾のIPアドレス

クラス:IPアドレスを分類したもの、Aが0~127、Bが128~191、Cが192~223 

グローバルIPアドレス:インターネットに直接接続するIPアドレス

プライベートIPアドレス:インターネットに直接接続するわけではないIPアドレス


ポート番号:送信元や送信先のアプリケーションを識別するための番号
25   メール送信
80   HTTP
110  メール受信
443  HTTPS

主な設定ファイル

/etc/hostname ファイルのホスト名設定
/etc/hosts
/etc/resolv.conf


【コマンド】
ifconfig [ネットワークインタフェース名】     ネットワークインターフェース情報

ss [オプション]  開いているポートを表示
 -a   $すべてのソケット (接続) 情報を表⽰$
 -1   $サーバが開いているポートを表⽰$
 -t   $TCPポートのみ表示$

host ホスト名または IPアドレス   対応するIPアドレスを確認

15.システムの管理

【コマンド】
last  最近ログインしたユーザー
who  ログイン中のユーザー
w   ログイン中のユーザーと実行中のコマンド、システム情報

21
24
0

Register as a new user and use Qiita more conveniently

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