暗記

marronnier 2024年04月24日 カード218 いいね0

LinuC Level1 101 コマンド中心の単語帳です。
#LinuC #Linux #プログラミング #インフラ #資格 #IT #ITエンジニア #SE #コマンド #CUI

ビューア設定

[Enter]でカードをめくります。キーボードショートカット

LinuC Level 1 102
  • 設定されている環境変数を表示
    printenv
    env
  • シェル変数と環境変数を表示(関数も含む)
    set
    declare
  • 環境変数HOMEの値を表示する
    printenv HOME
    echo $HOME
  • シェルのオプションを有効にする
    set -o オプション名
  • シェルのオプションを無効にする
    set +o オプション名
  • 【シェルのオプション】
    作成・変更した変数を自動的にエクスポートする
    Emacs風のキーバインドにする
    vi風のキーバインドにする
    Ctrl+Dによるログアウトを拒否する
    出力リダイレクトによる上書きを禁止する
    メタキャラクタを使ったファイル名展開を無効にする
    【シェルのオプション】
    allexport
    emacs
    vi
    ignoreeof
    noclobber
    noglob
  • シェルでメタキャラクタを使ったファイル展開を無効にする設定をする
    set -o noglob
  • シェルで設定されているオプションを確認する
    set -o
  • エイリアスを解除する
    unalias エイリアス名
  • 一時的にエイリアスを使用せずにコマンドを実行する
    \コマンド
  • echo "test"を行う関数funcを定義する
    function func() { echo "test"; }
    function func() {
    echo "test"
    }
    ※functionはなくても可
  • 定義されているすべての関数の内容を表示する
    declare -f
  • 定義されている関数funcの内容を表示する
    declare -f func
  • ログイン時に実行され、全ユーザーから参照されるbashの設定ファイル
    /etc/profile
  • bash起動時に実行され、全ユーザーから参照されるbashの設定ファイル
    /etc/bash.bashrc
  • ~/.bashrcから参照されるbashの設定ファイル
    /etc/bashrc
  • ログイン時に実行されるユーザー固有のbashの設定ファイル
    ~/.bash_profile
  • ~/.bash_profileがない場合に実行される、ユーザー固有のbashの設定ファイル
    ~/.bash_login
  • ~/.bash_profileも~/.bash_loginもない場合に実行される、ユーザー固有のbashの設定ファイル
    ~/.profile
  • bash起動時に実行されるユーザー固有のbashの設定ファイル
    ~/.bashrc
  • ログアウト時に実行されるbashの設定ファイル
    ~/.bash_logout
  • シェルスクリプトのファイル名を表す変数
    $0
  • シェルスクリプトの1番目の引数を表す変数
    $1
  • シェルスクリプトの引数の数を表す変数
    $#
  • シェルスクリプトのすべての引数のリストを表す変数(スペース区切り)
    $@
  • シェルスクリプトで、変数に格納された引数を一つずつずらす(FIFO)
    shift
  • コマンド1の正常終了時にのみコマンド2を実行する
    コマンド1 && コマンド2
  • コマンド1が正常終了でない場合のみコマンド2を実行する
    コマンド1 || コマンド2
  • 【testコマンドの条件式】
    (ディレクトリを除く)ファイルが存在すれば真
    ディレクトリが存在すれば真
    ファイルが存在し、読み込み可能であれば真
    ファイルが存在し、書き込み可能であれば真
    ファイルが存在し、実行可能であれば真
    サイズが0より大きいファイルがあれば真
    シンボリックリンクであるファイルがあれば真
    (ディレクトリ含む)ファイルが存在すれば真
    【testコマンドの条件式】
    -f ファイル
    -d ディレクトリ
    -r ファイル
    -w ファイル
    -x ファイル
    -s ファイル
    -L ファイル
    -e ファイル
  • 【testコマンドの条件式】
    file1がfile2より修正時刻が新しければ真
    file1がfile2 より修正時刻が古ければ真
    条件式が偽であれば真
    両方の条件式が真であれば真
    いずれかの条件式が真であれば真
    【testコマンドの条件式】
    file1 -nt file2
    file1 -ot file2
    !条件
    条件1 -a 条件2
    条件1 -o 条件2
  • 【testコマンドの条件式】
    数値1=数値2ならば真
    数値1≠数値2ならば真
    数値1≥数値2ならば真
    数値1>数値2ならば真
    数値1≤数値2ならば真
    数値1<数値2ならば真
    【testコマンドの条件式】
    数値1 -eq 数値2
    数値1 -ne 数値2
    数値1 -ge 数値2
    数値1 -gt 数値2
    数値1 -le 数値2
    数値1 -lt 数値2
  • 【testコマンドの条件式】
    文字列の長さが0より大きければ真
    文字列の長さが0であれば真
    二つの文字列が等しければ真
    二つの文字列が等しくなければ真
    【testコマンドの条件式】
    -n 文字列
    -z 文字列
    文字列1 = 文字列2
    文字列1 != 文字列2
    ※変数は必ず""などで囲って展開する
  • if else文
    if 条件式
    then
    実行文1
    else
    実行文2
    fi
  • case文
    case 式 in
    値1)
    実行文1 ;;
    値2)
    実行文2 ;;
    ...
    esac
  • for文
    for 変数名 in リスト
    do
    実行文
    done
  • 10から15までの連続した数値のリストを生成する
    seq 10 15
  • while文
    while 条件
    do
    実行文
    done
  • iを1増加させる
    let i=i+1
    i=`expr $i + 1`
  • 信頼性の高い通信を実現するためのコネクション型のプロトコル
    TCP
  • TCPやUDP、ICMPなどのデータ転送(ルーティング)を司る、コネクションレス型のプロトコル
    IP
  • データの転送速度に重点を置いたコネクションレス型のプロトコル(トランスポート層)
    UDP
  • エラーメッセージや制御メッセージを伝送する、コネクションレス型のプロトコル
    ping、tracerouteなど
    ICMP ( Internet Control Message Protocol)
  • ホスト部のビットをすべて1にしたアドレス
    ブロードキャストアドレス
  • IPアドレスとサブネットマスクの論理積
    ネットワークアドレス
  • クラスAのプライベートアドレスの範囲
    10.0.0.0〜10.255.255.255
  • クラスBのプライベートアドレスの範囲
    172.16.0.0〜172.31.255.255
  • クラスCのプライベートアドレスの範囲
    192.168.0.0〜192.168.255.255
  • 一つのネットワークインターフェースを識別するIPv6アドレス
    ユニキャストアドレス
  • 複数のホストの集合に割り当てられるIPv6アドレス
    エニーキャストアドレス
  • IPv4のブロードキャストアドレスに相当する IPv6のアドレス
    マルチキャストアドレス
  • IPv4でネットワーク部に相当するIPv6の部分
    プレフィックス
  • IPv4でホスト部に相当するIPv6の部分
    インターフェースID
  • TCP or UDP, port:FTP データ転送
    TCP, 20
  • TCP or UDP, port:FTP コントロール
    TCP, 21
  • TCP or UDP, port:SSH
    TCP, 22
  • TCP or UDP, port:TELNET
    TCP, 23
  • TCP or UDP, port:SMTP
    TCP, 25
  • TCP or UDP, port:DNS
    TCP/UDP, 53
  • TCP or UDP, port:DHCP server
    UDP, 67
  • TCP or UDP, port:DHCP client
    UDP, 68
  • TCP or UDP, port:HTTP
    TCP, 80
  • TCP or UDP, port:POP3
    TCP, 110
  • TCP or UDP, port:NTP
    UDP, 123
  • TCP or UDP, port:IMAP
    TCP, 143
  • CentOSやRHELで採用されている、ネットワーク管理システム
    NetworkManager
  • NetworkManagerの状態を表示する
    nmcli general status
    nmcli g status
  • NetworkManagerでホスト名を表示する
    nmcli general hostname
    nmcli g hostname
  • NetworkManagerで指定したホスト名に変更する
    nmcli general hostname ホスト名
    nmcli g hostname ホスト名
  • NetworkManagerのネットワークを有効にする
    nmcli networking on
    nmcli n on
  • NetworkManagerのネットワークの状態を表示する
    nmcli networking connectivity
    nmcli n connectivity
  • NetworkManagerでWi-Fiの状態を表示する
    nmcli radio wifi
    nmcli r wifi
  • NetworkManagerでWi-Fiの接続を有効にする
    nmcli radio wifi on
    nmcli r wifi on
  • NetworkManagerでモバイルブロードバンド接続を有効にする
    nmcli radio wwan on
    nmcli r wwan on
  • NetworkManagerですべての無線接続を有効にする
    nmcli radio all on
    nmcli r all on
  • NetworkManagerで接続インターフェース情報の一覧を表示する
    nmcli connection show
    nmcli c show
  • NetworkManagerで現在アクティブな接続インターフェース情報の一覧を表示する
    nmcli connection show --active
    nmcli c show --active
  • NetworkManagerで指定したenp0s3の接続を設定sる
    nmcli connection modify enp0s3 パラメータ
    nmcli c modify enp0s3 パラメータ
  • NetworkManagerで接続を有効にする
    nmcli connection up UUID
    nmcli c up UUID
  • NetworkManagerで接続を無効にする
    nmcli connection down UUID
    nmcli c down UUID
  • NetworkManagerでデバイスの状態を表示する
    nmcli device status
    nmcli d status
  • NetworkManagerで指定したデバイスの情報を表示する
    nmcli device show インターフェース名
    nmcli d show インターフェース名
  • NetworkManagerで指定したデバイスを接続する
    nmcli device connect インターフェース名
    nmcli d connect インターフェース名
  • NetworkManagerで指定したデバイスを切断する
    nmcli device disconnect インターフェース名
    nmcli d disconnect インターフェース名
  • NetworkManagerでWi-Fiアクセスポイントを表示
    nmcli device wifi list
    nmcli d wifi list
  • NetworkManagerでWi-Fiアクセスポイントに接続
    nmcli wifi connect SSID
  • ネットワークインターフェースのデータリンク層の情報を表示する
    ip link show
    ip link
  • 【ipコマンドの出力のいみ】
    mtu
    qdisc
    state
    qlen
    link/loopback
    brd
    dev
    inet
    default via IPアドレス
    【ipコマンドの出力のいみ】
    1回の転送パケットサイズ上限(max transmission unit)
    送信パケットの送信順や廃棄に関する設定(Queueing Discipline)
    ネットワークインターフェースの状態
    キューの長さ
    MACアドレス
    ブロードキャストアドレス
    デバイス名
    IPv4アドレス
    デフォルトゲートウェイ
  • ネットワークインターフェースeth0に、IPアドレス192.168.162.0、サブネットマスク255.255.255.0を設定
    ifconfig eth0 192.168.162.0 netmask 255.255.255.0
  • eth1を有効にする
    ifup eth1
  • eth1を無効にする
    ifdown eth1
  • 192.168.162.30にICMPパケットを4回0.5秒ごとに送り、その反応を表示する
    ping -c 4 -i 0.5 192.168.162.40
  • example.comまでにパケットが伝わる経路を表示する
    traceroute example.com
    tracepath example.com
  • ホスト名を表示する
    hostname
  • ホスト名をtesthost.comに変更する
    hostname testhost.com
  • 利用しているすべてのTCPポートを表示
    netstat -at
    ss -at
  • ルーティングテーブルを表示
    ip route show
    ip route
    route
    netstat -r
  • 利用しているすべてのUDPポートを、PIDとプロセス名含めて表示
    netstat -aup
    ss -aup
  • ポート12345番で待ち受けて受け取ったデータをlisten.logファイルに出力する
    nc -l -p 12345 -o listen.log
  • ホストexample.comの12345ポートに対して、data.txtの内容を出力する
    nc example.com 12345 < data.txt
  • 192.168.0.0/24のネットワーク宛のパケットを、ゲートウェイ172.30.0.254に送られるように設定
    route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.30.0.254
  • デフォルトゲートウェイを192.168.162.30に設定
    route add default gw 192.168.162.30
    ip route add default via 192.168.162.30
    ip r a default via 192.168.162.30
  • 「192.168.0.0/24宛のパケットをすべて172.30.0.254経由にする」という設定を削除する
    route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.30.0.254
  • DNSの設定ファイル
    (内容)
    ホストが属するドメイン名を記述する行
    ドメイン名省略時に補完するドメイン名
    参照先DNSサーバーのIPアドレス
    /etc/resolv.conf
    (内容)
    domain
    search
    nameserver
  • 名前解決の手段の順序を指定するファイル
    /etc/nsswitch.fonf
  • ホスト名の一覧を取得する
    getent hosts
  • www.example.comのIPアドレスを問い合わせる
    host www.example.com
    dig www.example.com
  • IPアドレスが192.168.162.30であるホストのホスト名を問い合わせる
    host 192.168.162.30
  • mail.example.comのメールサーバー情報を詳しく問い合わせる
    dig mail.example.com mx
  • DNSサーバーを8.8.8.8と指定して、www.example.comのIPアドレスを問い合わせる
    dig @8.8.8.8 www.example.com
  • ユーザーuser1を作成する。
    ホームディレクトリを/home/test
    デフォルトシェルを/bin/bash
    プライマリグループはデフォルト
    subgroup1,subgroup2グループにも所属する。
    useradd -d /home/test -s /bin/bash -G subgroup1,subgroup2 user1
  • ホームディレクトリを作成し、user2を作成する
    useradd -m user2
  • user2のプライマリグループをgroupA に変更する
    usermod -g groupA user2
  • user3を一時的に無効化する
    usermod -L user3
  • user4を削除する。ホームディレクトリは残す
    userdel user4
  • user4を削除する。ホームディレクトリも消す
    userdel -r user4
  • パスワードを変更する
    passwd
  • グループを作成する
    groupadd
  • グループ名をbeforeからafterに変更する
    groupmod -n after before
  • グループを削除する
    groupdel グループ名
  • ユーザーuser1が所属するグループを調べる
    id user1
  • シャドウパスワードの記録先
    /etc/shadow
  • user1のcrontabファイルの配置先
    /var/spool/cron/user1
    /var/spool/cron/crontabs/user1
  • crontabファイルを編集する
    crontab -e
  • crontabファイルの内容を表示する
    crontab -l
  • crontabファイルを削除する
    crontab -r
  • crontabの書き方
    m h dom m dow command
  • システム用のcrontabファイルの配置先と、これが呼び出すファイル(メタキャラクタで)
    /etc/crontab
    /etc/cron.*
  • 各種のcronジョブを記述したファイルを収めたディレクトリ
    /etc/cron.d/
  • 1時間に1度実行されるcronジョブを記述したファイルを収めたディレクトリ
    /etc/cron.hourly/
  • 日次実行されるcronジョブを記述したファイルを収めたディレクトリ
    /etc/cron.daily/
  • システム停止中に経過してしまったスケジュールのcronジョブを実行する仕組み
    anacron
  • anacronのスケジューリングの記述先
    /etc/anacrontab
  • 明日の5時にtest_jobを実行する
    at -f test_job 5:00 tomorrow
    または
    at 5:00 tomorrow で対話に入り
    at> test_job
    at> ^D
  • /etc/cron.allowと/etc/cron.denyの両方があった場合、どうなるか
    /etc/cron.allowに記述されたユーザーのみがcronを利用でき、
    /etc/cron.denyファイルは無視される
  • /etc/at.allowと/etc/at.denyの両方があった場合、どうなるか
    /etc/at.allowに記述されたユーザーのみがatコマンドを利用でき、
    /etc/at.denyファイルは無視される
  • 利用者の地域情報のことをなんというか
    ロケール
  • 【ロケールカテゴリ】
    文字の種類
    文字の照合・整列
    メッセージ表示に使用する言語
    通貨
    数値の書式
    日付や時刻の書式
    すべてのカテゴリをまとめて設定
    すべてのカテゴリのデフォルト値を設定
    【ロケールカテゴリ】
    LC_CTYPE
    LC_COLLATE
    LC_MESSAGES
    LC_MONETARY
    LC_NUMERIC
    LC_TIME
    LC_ALL
    LANG
  • 【ロケール名】
    英語
    日本語/Uniclde
    日本語/EUC-JP
    日本語/シフトJIS
    英語(米)/Unicode
    【ロケール名】
    C、POSIX
    ja_JP.utf8またはja_JP.UTF-8
    ja_JP.eucJP
    ja_JP.shiftJIS
    en_US.utf8
  • 現在のロケール名を確認する
    locale
  • ロケールに利用できる文字コード一覧を確認する
    locale -m
  • コマンド実行時に一時的にロケールを英語に変更する
    LANG=C コマンド
  • 【文字コード】
    7ビットで表される基本的な128種類の文字
    ↑の拡張版で、8ビットの文字コードで表せる256種類の文字
    Unicldeを使った文字コードで、1文字を1〜6バイトで表す
    UNIXで標準的に利用されていた日本語の文字コード
    Windowsで利用される日本語の文字コード
    電子メールなどで利用される日本との文字コード
    【文字コード】
    ASCII
    ISO-8859
    UTF-8
    EUC-JP(日本語EUC)
    シフトJIS
    ISO-2022-JP
  • file1の文字コードをEUC-JPからUTF-8に変換し、file2に保存する
    iconv -f euc-jp -t utf8 file1 > file2
  • 変換可能な文字コードの一覧を表示
    iconv -l
  • ユーザー作成時に自動的にホームディレクトリにコピーされたい雛形を配置するディレクトリ
    /etc/skel
  • システム時刻を表示する
    date
  • システム時刻を今年の3月4日12時に設定する
    date 030412002023
    date 03041200
  • システム時刻を2023-03-04 12:00 (Sun)みたいな書式で表示する
    date "%Y-%m-%d %H:%M (%a)"
  • ハードウェア時刻を表示する
    hwclock -r
    hwclock --show
  • システム時刻をハードウェア時刻に合わせる
    hwclock -w
    hwclock --systohc
  • ハードウェア時刻をシステム時刻に合わせる
    hwclock -s
    hwclock --hctosys
  • systemdで現在の日付・時刻とタイムゾーン、NTPを表示する
    timedatectl
    timedatectl status
  • systemdで現在の日時を2020-03-12 13時45分に設定する
    timedatectl set-time 2020-03-12 13:45:00
  • systemdでNTPを使ってシステム時刻を同期させる
    timedatectl set-ntp yes
  • systemdで設定できるタイムゾーンを一覧表示する
    timedatectl list-timezones
  • タイムゾーン情報が格納されている場所
    /usr/share/zoneinfo/*
  • システムでタイムゾーンをAsia/Tokyoに設定する方法
    以下6つの方法がある
    timedatectl set-timezone Asia/Tokyo
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    環境変数TZ="Asia/Tokyo"を設定
    /etc/timezoneファイルにAsia/Tokyoと設定
    tzselectで対話的に設定
  • 指定したNTPサーバーexample.ntp.orgから現在時刻を取得する
    ntpdate example.ntp.org
  • ntpでNTPサーバーの設定を行うファイル
    (設定パラメータ)
    補正情報ファイルを/etc/ntp.driftに設定
    NTPサーバーをexample.ntp.orgに指定
    ログファイルを/var/log/ntp.logに指定
    /etc/ntp.conf
    (設定パラメータ)
    driftfile /etc/ntp.drift
    server example.ntp.org
    logfile /var/log/ntp.log
  • ntp/ntpdateの代替となるNTPサーバー・クライアントソフトウェア
    デーモンプロセス
    コマンド
    Chrony
    chronyd
    chronyc
  • ChronyでNTPサーバーの設定を行うファイル
    (設定パラメータ)
    補正情報ファイルを/var/lib/chrony/driftに設定
    NTPサーバーをexample.ntp.orgに指定
    ログファイルを/var/log/chrony下に入れる
    ハードウェア時刻と同期させる
    /etc/chrony.conf
    (設定パラメータ)
    driftfile /var/lib/chrony/drift
    server example.ntp.org iburst
    rtcsync
    logdir /var/log/chrony
  • ChronyでNTPサーバーごとの情報を表示する
    chronyc sources
  • システムログを取得して処理するソフトウェア
    syslog, rsyslog, syslog-ng
  • ChronyでNTPサーバーのオンライン・オフライン数を表示
    chrony activity
  • Chronyで時刻ソースの統計情報を表示する
    chrony sourcestats
  • Chronyで時刻ソースの情報を表示する
    chrony sources
  • rsyslogの設定ファイル
    /etc/rsyslog.conf
    /etc/rsyslog.d/*
  • rsyslog設定ファイルでimuxsockモジュールを有効にする
    $ModLoad imuxsock
  • rsyslog設定ファイルで作業ディレクトリを/var/lib/rsyslogに設定
    $WorkDirectory /var/lib/rsyslog
  • rsyslog設定ファイルで/etc/rsyslog.d以下の設定ファイルを読み込む設定
    $IncludeConfig /etc/rsyslog.d/*.conf
  • rsyslog設定ファイルでmailとauthpriv以外のinfoメッセージを/var/log/messagesに出力する
    *.info;mail.none;authpriv.none /var/log/messages
  • rsyslog設定でcron関連ログをすべて/var/log/cronに保存する
    cron.* /var/log/cron
  • 【rsyslogのファシリティ(生成元)】
    認証システム
    cron
    各種デーモン
    カーネル
    印刷システム
    メールサービス
    ユーザーアプリケーション
    ローカルシステムの設定
    【rsyslogのファシリティ(生成元)】
    auth, authpriv
    cron
    daemon
    kern
    ipr
    mail
    user
    local0~local7
  • rsyslogのプライオリティ高い順に並び替える
    crit warning info debug emerg notice alert err
    emerg
    alert
    crit
    err
    warning
    notice
    info
    debug
  • 【rsyslogアクションフィールド】
    ログファイル/var/log/messagesに出力
    コンソールtty1に出力
    ホストu.example.comにUDPで出力
    ホストt.example.comにTCPで出力
    ユーザーuser1の端末に出力
    ログイン中のすべてのユーザーの端末に出力
    【rsyslogアクションフィールド】
    /var/log/messages
    /dev/tty1
    @u.example.com
    @@t.example.com
    user1
    * または:omusrmsg:*
  • rsyslogの再起動
    systemctl restart rsyslog
  • rsyslog設定ファイルでログをUDPで受け取る設定
    $ModLoad imudp
    $UDPServerRun 514
  • rsyslog設定ファイルでログをTCPで受け取る設定
    $ModLoad imtcp
    $InputTCPServerRun 514
  • rsyslogですべてのログをUDPでu.example.comに送る設定
    *.* @u.example.com:514
  • rsyslogですべてのログをTCPでt.example.comに送る設定
    *.* @@t.example.com:514
  • ファシリティをsyslog、プライオリティをinfoとして、タグにTestをつけて
    ログメッセージを生成する。内容は「test message」
    logger -p syslog.info -t Test "test message"
  • systemdでコマンドの実行結果をジャーナルで書き込む
    その結果を見る(最新情報詳細表示)
    systemd-cat コマンド
    journalctl -xe
  • systemdのログを閲覧するコマンド
    (オプション)
    末尾を表示し続ける
    新しい順に表示
    末尾のみ表示
    詳細表示
    カーネルメッセージのみ表示
    ブート時のメッセージを表示
    指定したプライオリティ以上のメッセージを表示
    指定したUnitのログを出力
    プレーンテキストで出力
    カレントユーザーによるサービスのメッセージのみ
    1ページごとではなく、すべて表示
    journalctl
    (オプション)
    -f, --follow
    -r, --reverse
    -e, --pager-end
    -x, --catalog
    -k, --dmesg
    -b, --boot
    -p, --priority プライオリティ
    -u, --unit Unit名
    --full
    --user
    --no-pager
  • httpd関連のログをsystemdで表示する
    journalctl -u httpd
  • journalctlで表示されるログについての設定ファイル
    (設定)
    永続的にログを残す(デフォルトは揮発性)
    ログファイルのサイズ上限を10GBとする
    /etc/systemd/journald.conf
    (設定)
    Storage=Persistent
    SystemMaxUse=10GB
  • 【ログファイルのローテーション設定】
    周期を1週間とする
    バックアップログを4周期分保存する
    ローテーションさせたら、空のログファイルを作成する
    ローテーションさせたら、空のログファイルをパーミッション664、所有者root、グループgroup1で作成する
    ログファイルを圧縮する
    【ログファイルのローテーション設定】
    weekly
    rotate 4
    create
    create 0664 root group1
    compress
  • 直ちにログのローテーションを実施する
    logrotate -f /etc/logrotate.conf
  • 25番のポートを開いているソフトウェアを調べる
    netstat -anp | grep 25
    fuser -n tcp 25
  • コマンドラインでメールを送信する
    題名はtest、宛先をユーザーuser1
    内容はHello Worldの一行とする
    mail -s test user1
    Hello World
    .
  • コマンドラインでメールボックスに届いているメールを確認する
    mail
  • root宛に届いたメールをadminとuser1で受け取れるように設定する
    設定ファイルとその内容
    この設定を有効にするコマンド
    /etc/aliasesファイルで、
    root: admin, user1 を設定し、
    newaliasesで更新
  • user1宛に届いたメールをtest@example.comで受け取れるようにする
    /home/user1/.forwardにtest@example.comと記述する
  • SUIDが設定されているファイルをすべて検索する
    find / -perm -u+s -ls
  • 対話的にパスワードに有効期限を設定する
    chage ユーザー名
  • コマンドでuser1のパスワードに有効期限を設定する
    変更してから変更できるまでの最短日数を3日、
    最大有効期限日数を90日、
    有効期限切れの警告開始を7日前、
    有効期限切れ後、7日後に使用不能に、
    アカウント自体は2024年6月30日に無効になる
    ように設定する。
    chage -m 3 -M 90 -W 7 -l 7 -E 2024-06-30 user1
  • ログイン中のユーザーを確認する
    who
  • ログイン中のユーザーとシステム情報を確認する
    w
    またはwhoとuptime
  • 最近ログインしたユーザーの一覧を表示
    last
  • ローカルで開いているポートを確認する
    netstat
    ss
    lsof -i
  • example.comで開いているポートを確認する
    nmap example.com
  • user1のログインを禁止する
    usermod -s /sbin/nologin user1
  • 10分間端末への入力がなければ自動でログアウトするには
    環境変数TMOUT=600を設定
  • 各ユーザーが利用できるリソースを制御するコマンド
    ulimit
  • visudoコマンドで開かれるファイル
    /etc/sudoers
  • /etc/sudoersでuser1に対してすべてのroot権限必要なコマンドの実行を許可
    user1 ALL=(ALL) ALL
  • /etc/sudoersでuser2に対して/usr/sbin/shutdownのみ許可する
    user2 ALL=(ALL) /usr/sbin/shutdown
  • rootアカウント以外のログインを禁止するには
    /etc/nologinファイルを作成する
  • user1のアカウントをロックする
    passwd -l user1
    usermod -L user1
  • リモートホストexample.comのuser1ユーザーのホームディレクトリに、ローカルホストのdata.txtをコピーする
    scp data.txt user1@example.com:
  • リモートホストexample.comの/etc/hostsファイルを、ローカルホストのカレントディレクトリにコピーする
    scp example.com:/etc/hosts .
  • 秘密鍵ファイルを利用する際に、パスフレーズを入力しないで済むbashシェルを起動する
    ssh-agent bash
    ssh-add
  • ローカルホストの10110番ポートに接続すると、リモートホストpop.example.comの110番ポートに接続できるようにSSHポートフォワーディングを行う
    ただし、これをバックグラウンドで転送のみを実行させる
    ssh -f -N -L 10110:pop.example.com:110 user1@pop.example.com
  • 著作権を放棄したソフトウェアのこと
    パブリックドメインソフトウェア
  • GPLソフトウェア利用時の注意点
    GPLを改変したソフトウェアにもGPLを適用する必要がある(コピーレフト)
    ソフトウェアを公開・販売する場合はソースコードの公開が必要
  • LGPLとGPLの違い
    LGPLはGPLより制限が緩い
  • AGPLとGPLの違い
    GPLではソフトウェアをネットワーク越しに利用するユーザーにソースコードを知らせる義務はない
    AGPLにはある
  • BSDソフトウェアのライセンス内容と派生ライセンス
    ソースコード公開は不要、BSD以外のライセンスでの配布が可能
    MIT、Apache
  • GPLとMPLの違い
    MPLのソフトウェア自体はソースコードの公開が必要だが、
    これを利用したソフトウェアのソースコード公開は不要
  • テストする
よく頑張りました
暗記スタート