眞鍋 Key Result(3/13~3/17) - careerbeat/dit-ehime GitHub Wiki

3/13

Key Result 1

bashの起動について

  • ユーザーがログインした時に最初に起動されるシェルをログインシェルという
  • bashがログインシェルの場合、下記の順序でファイルが一度だけ読み込まれる
/etc/profile → ~/.bash_profile → ~/.bash_login → ~/.profile
  • bashが非ログインシェル(ログイン後に新たに起動されたシェル)の場合、シェルを起動するたびに**~/.bashrc**が読み込まれる
    ※ディストリビューションによっては、先に/etc/bash.bashrcが読み込まれる場合もある

シェルスクリプトの記述方法について

  • if文は下記の形式で記述する
 if 条件式 then
   実行文(コマンド)
 fi
 
  • for文は下記の形式で記述する
 for シェル変数 in 値のリスト
 do
   実行文(コマンド)
 done
 
  • while文は下記の形式で記述する
 while 条件式
 do
   実行文(コマンド)
 done
 
  • if文やwhile文の条件式は、testコマンドや「[」コマンドで記述する
 test 条件式
 [ 条件式 ]
 
  • 条件式は下記のように記述する
条件式 説明
-d ファイル名 ディレクトリがあるか
-f ファイル名 ファイルがあるか
-n 文字列 文字列が0より大きいかどうか
文字列1 = 文字列2 文字列1と2が等しいかどうか
整数1 -eq 整数2 整数1と2が等しいかどうか
整数1 -gt 整数2 整数1より2が大きいかどうか
整数1 -lt 整数2 整数1より2が小さいかどうか
  • shiftはN番目の引数をN-1番目の引数に移動するシェルの組み込み関数
  • readコマンドは標準入力から1行読み込んで、引数で指定したシェル変数を値を格納するbashの組み込みコマンド

3/14

ディスプレイマネージャとウィンドウマネージャ

  • ディスプレイマネージャ:グラフィカルなログイン画面を表示し、XサーバとXクライアントを起動するプログラム
    X Window Systemの標準ディスプレイマネージャ:xdm
  • ウィンドウマネージャ:ウィンドウのオープン、クローズ、移動、リサイズなどを管理するプログラム
    X Window Systemの標準ウィンドウマネージャ:twm

統合デスクトップ環境

  • ウィンドウマネージャだけでなく、アプリケーションまで含めて統一的な操作を提供するソフトウェア
    • GNOME(GNUプロジェクトで開発)、標準ディスプレイマネージャ:gdm、標準ウィンドウマネージャ:metacity, mutter
    • KDE(KDEコミュニティが開発)、標準ディスプレイマネージャ:kdm、標準ウィンドウマネージャ:kwin
  • GNOME、KDE共にX Window System上で稼働する

X Window Systemの設定

  • /etc/X11/xorg.confで設定を行う
 Section "[セクション名]"
   [エントリ]
 EndSection
 
主なセクション 概要 備考
ServerLayout InputDeviceやScreenの識別名など全体のレイアウトを記述
Files フォントのパスなどのファイルのパス名を記述 フォントサーバのフォントを参照する場合は、FontPath "unix/:7100"と指定
InputDevice キーボードやマウスなどの入力デバイスを記述
Device ビデオカードのドライバ名などのデバイスを記述
Monitor 垂直、水平周波数などモニタの記述
Screen 解像度、色深度などのスクリーンのコンフィグレーションを記述

環境変数DISPLAY

  • Xアプリケーションが表示されるディスプレイの指定
 DISPLAY=Xサーバー名(省略するとローカルホスト):ディスプレイ番号:.スクリーン番号; アプリケーション名
 
  • Xクライアントで設定を行う

xdmの設定ファイル

  • /etc/X11/xdm/xdm-config:xdmが最初に参照する基本設定ファイル
    • /etc/X11/xdm/Xsetup_0:xdm-configから参照され、壁紙など設定
  • /etc/X11/xdm/Xresources:ログイン画面の背景色やグリーティングメッセージ(ログイン画面に表示するメッセージ)の設定
  • /etc/X11/xdm/Xsession:ログイン後に起動するプログラムの設定

3/15

cronについて

  • 決められた時刻に特定のコマンドを定期的に実行する機能
  • crontabコマンドによって定期的に実行するコマンドと時刻を設定する
  • crontabコマンドはデーモンcrond(/usr/sbin/crond,RedHat)またはcron(/usr/sbin/cron,Deiban)によって実行される
  • cronから起動されるanacron(/usr/sbin/anacron)によって、システム保守ための定期なコマンド実行が行われる

crontabコマンド

  • システムの設定ファイルは/etc/crontab、ユーザーの設定ファイルは/var/spool/cronの下のユーザー名ファイルである
    [/etc/crontabの書式]
    分 時 日 月 曜日 (ユーザー名) コマンド
    

 ・分:0-59  ・時:0-23  ・日:1-31  ・月:1-12  ・曜日:0-6(0が日曜)

  • 数字指定以外に特殊なフィールド表記も使用できる
    • *:全範囲
    • -:指定範囲
    • ,:リスト
    • /:間隔
  • 設定ファイルの設定はcrontabコマンドで行う
    • -eオプション:編集
    • -lオプション:表示
    • -rオプション:削除
  • /etc/cron.allowと/etc/cron.denyによってユーザーのcrontabコマンドの実行を制限できる

at、batchコマンド

  • 指定したコマンドを1回だけ実行する(atは指定した時刻、batchはシステム負荷が低くなったとき)
    at オプション 時間
    batch オプション
    
  • /etc/at.allowと/etc/at.denyによってユーザーのat、batchコマンドの実行を制限できる

3/16

ネットワーク関連のコマンド

  • netstat:アクティブなネットワークの情報とUNIXドメインソケット接続、ルーティングテーブルを表示
    • -aオプション:全てのプロトコル、ソケットの接続待ちを表示
    • -lオプション:接続待ちソケットを表示
    • -nオプション:名前解決をせず、数字でアドレスを表示
    • -rオプション:ルーティングテーブルを表示
    • -sオプション:統計情報を表示
    • -tオプション:TCPソケットを表示
    • -uオプション:UDPソケットを表示
    • -xオプション:UNIXソケットを表示
  • ping:ホストとローカルホスト間でIPレベルで接続されているかを確認する
  • traceroute:IPパケットが宛先ホストに辿り着くまでの経路を表示
  • lsof:ポートをオープンしているプロセスを表示
  • ifconfig:ネットワークインタフェースの設定、表示
  • ip:ipconfigに変わるルーティングテーブルやARPキャッシュの管理などの機能を備えている
 ip addr { add | del } IPアドレス/プレフィックス dev インタフェース名 ← IPアドレスの設定、削除
 ip addr show インタフェース名 ← IPアドレスの表示
 ip addr { add | del } 宛先 via ゲートウェイ ← ルーティングテーブルのエントリ追加、削除
 ip addr { add | del } default via ゲートウェイ ← デフォルトルートのエントリ追加、削除(via ゲートウェイ不要)
 
  • route:ルーティングテーブルの設定と表示
 route -n ← 表示
 route { add | del } { -net | -host } 宛先(destination) [netmask ネットマスク] gw ゲートウェイ(gateway) [インタフェース名] ← 追加、削除
 route { add | del } default gw ゲートウェイ(gateway) [インタフェース名] ← デフォルトルートの追加、削除
 
  • hostname:ホスト名の設定、変更、表示

DNSサーバ

  • ホスト名とIPアドレスの対応情報を提供するサービス
  • /etc/resolv.confにどのDNSサーバに問い合わせを行うかを定義する
  • /etc/nsswitch.confでネットワークアプリケーションの名前解決の設定を行う(ネームサービススイッチ)
  • DNSサーバへの問い合わせはhostコマンドまたはdigコマンドを用いる
⚠️ **GitHub.com Fallback** ⚠️