タイムゾーン,etc(LPIC)

タイムゾーン,etc /etc/localtime タイムゾーンファイル、もしくはタイムゾーンファイルへのシンボリックファイルが格納されています。 /usr/share/zoneinfo タイムゾーンファイルが格納されている。 locale.conf LC_TIME: 時刻の形式 LC_TELEPHONE: 電話番号の形式 LANG: 言語を定義 サンプル アメリカの東海岸のタイムゾーンを設定する シンボリックリンクで設定する方法です。 $ ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime タイムゾーンファイルをコピーする方法です。 $ cp /etc/localtime /usr/share/zoneinfo/US/Eastern


last(LPIC)

last 最近ログインしたユーザーのリストを表示するコマンドです。 このコマンドはログイン履歴が記録された /var/log/wtmp を参照します。 $ last root pts/0 182.170.108.180 Thu Aug 25 12:47 still logged in root pts/0 182.170.108.180 Wed Aug 24 23:53 - 01:52 (01:58) root pts/0 182.170.108.180 Wed Aug 24 15:54 - 17:06 (01:12) root pts/0 182.170.108.180 Wed Aug 24 12:00 - 14:36 (02:35) root pts/0 182.170.108.180 Wed Aug 24 00:51 - 03:53 (03:02) root pts/0 182.170.108.180 Tue Aug 23 16:08 - 19:55 (03:47) snorlax pts/1 182.


/etc/resolv.conf(LPIC)

/etc/resolv.conf /etc/resolv.confは名前解決の設定を行うファイルです $ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN # 127.0.0.53 is the systemd-resolved stub resolver. # run "systemd-resolve --status" to see details about the actual nameservers. nameserver 127.0.0.53


/etc/hosts(LPIC)

/etc/hosts IPアドレスとホスト名の対応情報を格納するファイルです。 $ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters


systemdのタイマー(LPIC)

systemdのタイマー cronのようなタイマーを作ることができます。 1時間ごとに実行するタイマーを作成する スクリプト timer-per-hour.sh を作成します。 $ vi /usr/local/bin/timer-per-hour.sh 以下のような内容を記述します。 #!/bin/bash date >> /var/log/timer-per-housr.log 権限を付与します。 $ chmod 755 /usr/local/bin/timer-per-hour.sh timer-per-hour.timer を作成します。 $ vi /etc/systemd/system/timer-per-hour.timer [Unit] Description="Per hour" [Timer] OnActiveSec=1hour OnUnitActiveSec=1hour Unit=timer-per-hour.service [Install] WantedBy=multi-user.target $ systemctl enable timer-per-hour.timer $ systemctl list-timers サンプル 登録されているタイマーの一覧を表示 $ systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTI> Wed 2022-08-24 17:03:43 JST 58min left Tue 2022-08-23 17:03:43 JST 23h ago update-notifier-download.timer upda> Wed 2022-08-24 17:13:48 JST 1h 8min left Tue 2022-08-23 17:13:48 JST 22h ago systemd-tmpfiles-clean.


ulimit(LPIC)

ulimit


gpg(LPIC)

gpg


ssh,ssh-keygen,ssh-agent,etc(LPIC)

ssh,ssh-keygen,ssh-agent,etc ssh オプション -i 秘密鍵を指定する -p ポート番号を指定する -o Port ポート番号を指定する


xinetd(LPIC)

xinetd,TCP Wrapper,etc


su,sudo,etc(LPIC)

su,sudo,etc /etc/sudoers sudoコマンドは /etc/sudoers ファイルを参照して、ユーザーがコマンドの実行権限を持っているか判定します。


Postfix,Exim,Sendmail,MTA,newaliases,etc(LPIC)

Postfix,Exim,Sendmail,MTA,newaliases,etc newaliases /etc/aliases ファイルを参照して、/etc/aliases.db ファイルを更新するコマンドです。 ~/.foward Sendmail, Postfix, Exim などの MTAで、ユーザーが受信メールのリダイレクトを行うファイルです。 mama@example.com mama@mylpic.com その他 /etc/aliases ファイルの変更を有効にするには newaliases コマンドを実行します。


dig(LPIC)

dig DNSサーバーへの問い合わせをするコマンドです オプション swiswiswift.comのIPアドレスを調べる $ dig swiswiswift.com ; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> swiswiswift.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39724 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;swiswiswift.com. IN A ;; ANSWER SECTION: swiswiswift.com. 60 IN A 13.225.173.24 swiswiswift.com. 60 IN A 13.


host(LPIC)

host DNSサーバーへの問い合わせをするコマンドです。 swiswiswiftのIPアドレスを調べる $ host swiswiswift.com swiswiswift.com has address 13.225.173.24 swiswiswift.com has address 13.225.173.42 swiswiswift.com has address 13.225.173.78 swiswiswift.com has address 13.225.173.3


hostname(LPIC)

hostname ホスト名の設定、変更をするコマンドです。 ホスト名を表示 $ hostname ホスト名を更新 $ hostname new.host.name.com


nmcli(LPIC)

nmcli NetworkManagerの制御を行うコマンドラインツールです。 オブジェクト general device connection networking サンプル Wi-FiのアクセスポイントのSnorlax-WiFiに接続する $ nmcli device wifi connect Snorlax-WiFi


route(LPIC)

route ルーティングテーブルの設定と表示を行うコマンドです。 表示 $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default v160-251-100-1. 0.0.0.0 UG 100 0 0 eth0 cache12.cloud.z v160-251-100-1. 255.255.255.255 UGH 100 0 0 eth0 160.251.100.0 0.0.0.0 255.255.254.0 U 100 0 0 eth0 v160-251-100-1. 0.0.0.0 255.255.255.255 UH 100 0 0 eth0 cache13.cloud.z v160-251-100-1. 255.255.255.255 UGH 100 0 0 eth0 追加 $ route add { -net | -host } 宛先 [ネットマスク] ゲートウェイ [インターフェース名] 削除 $ route del { -net | -host } 宛先 [ネットマスク] ゲートウェイ [インターフェース名] サンプル 以下の様なルートテーブルの場合、192.


ip(LPIC)

ip ネットワークインターフェース、ルーティングテーブルなどを管理するコマンドです。 routeコマンドや、ifconfigコマンドを合わせたようなコマンドです。 ネットワークインターフェースのデータリンク層の情報を表示する $ ip link show ルーティングテーブルを表示 $ ip route show ネットワークインターフェース eth0 の送受信のバイト数を表示する $ ip -s link show dev eth0


ifconfig,ifup,ifdown,etc(LPIC)

ifconfig ネットワークI/Fの設定、表示するコマンドです。 $ ifconfig ネットワークインターフェース eth0 の送受信バイト数を表示 $ ifconfig eth0 ネットワークインターフェースeth0に、IPアドレス 192.168.0.50、サブネットマスク 255.255.255.0 を設定する $ ifconfig eth0 192.168.0.50 netmask 255.255.255.0 ifup 指定したネットワークインターフェースを有効にするコマンドです。 $ ifup [ネットワークインターフェース] ifdown 指定したネットワークインターフェースを無効にするコマンドです。 $ ifdown [ネットワークインターフェース]


lsof(LPIC)

lsof プロセスによってオープンされているファイルの一覧を表示します。 オプション -i オープンしているインターネットファイルとプロセスを表示する。 サンプル オープンされているすべてのファイルを表示する $ lsof


traceroute,tracepath(LPIC)

traceroute サンプル ローカルホストからswiswiswift.comへの経路をトレースして表示する $ traceroute swiswiswift.com traceroute to swiswiswift.com (13.225.173.24), 30 hops max, 60 byte packets 1 v160-251-100-2.wbeh.static.cnode.io (160.251.100.2) 0.548 ms 0.502 ms 0.473 ms 2 150.95.5.241 (150.95.5.241) 3.932 ms 3.994 ms 4.078 ms 3 150.95.5.117 (150.95.5.117) 0.972 ms 0.960 ms 0.948 ms 4 150.95.5.102 (150.95.5.102) 1.378 ms 1.353 ms 1.326 ms 5 150.95.5.61 (150.95.5.61) 1.303 ms 1.270 ms 150.95.5.77 (150.95.5.77) 0.861 ms 6 101.203.88.207 (101.203.88.207) 4.469 ms 3.051 ms as16509-3.


ping(LPIC)

ping


netstat(LPIC)

netstat TCPとUDPのサービスポートの状態、UNIXドメインソケットの状態、ルーティングルーティング情報などを表示します。 オプション -a すべてのプロトコル(TCP、UDP、UNIXソケット)を表示 -l 接続待ちのソケットを表示 -n ホスト、ポート、ユーザーなど名前を解決せず、数字のアドレスを表示 -p ソケット/ポートをオープンしているプログラムのPIDと名前を表示 -r ルーティングテーブルを表示 -s 統計情報を表示 -t TCPソケットを表示 -u UDPソケットを表示 -x UNIXソケットを表示 サンプル すべてのプロトコル(TCP、UDP、UNIXソケット)を表示 $ netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 348 v160-251-101-197.3f:ssh fpb6aa6cb4.ap.nur:59895 ESTABLISHED ... ルーティングテーブルを表示 $ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default v160-251-100-1.


UDP,TCP(LPIC)

UDP,TCP TCP コネクションを確立し、確立した通信路で転送を行う 受信データのエラー訂正機能がある UDP コネクションを確認しない TCPのような喪失パケットの再送、シーケンス制御、エラー訂正機能はない。


IPアドレス(LPIC)

IPアドレス IPV4 プライベートアドレス 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 サンプル 192.168.1.64/28 プレフィックスが /28 なので、32-28となり、下位4ビットがホスト部となります。 つまり、192.168.1.64 - 192.168.1.79 の16個が使用できます。 192.168.1.64はネットワークアドレス、192.168.1.79はブロードキャストアドレスとなります。 ホストのアドレスは 192.168.1.65 - 192.168.1.78 となります。 IPV6 NetworkManager 接続性の状態 none portal limited full unknown


iconv(LPIC)

iconv ファイルのエンコードを変更するコマンドです。


locale(LPIC)

locale ロケール情報の表示の表示はlocaleコマンドで行います。 サンプル 現在設定されているロケール情報を全て表示する $ locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=


プリンター,etc(LPIC)

プリンター,etc Postscript Printer Description(PPD) PPDはフォント、用紙サイズ、解像度などPostScriptプリンタの機能を記述し制御するためのファイルです。 /etc/cups/printers.conf 登録されたプリタンタのDeviceURIが指定されている設定ファイルです。 lpadmin CUPSでのプリンタの登録や削除はlpadminコマンドで行うことができます。 オプション -p 作成するプリンタ名を指定する。 Ghostscript 入力されたPostScriptを解釈し、PDFやEPSなどに書き出すことができます。 lpr BSD系で使われる印刷コマンドです。 サンプル fileをプリンタlp1で印刷する $ lpr -P lp1 file fileを2部印刷する $ cat file | lpr -#2 フィルタを通さずにfileを印刷する $ lpr -o raw file $ lpr -l file lp System V系で使われる印刷コマンドです。 fileをプリンタlp1で印刷する $ lp -d lp1 file $ cat file | lp -n2 フィルタを通さずにfileを印刷する $ lp -o raw file lpstat System V系で使われるプリンタのキューを表示するコマンドです。 lpq BSD系で使われるプリンタのキューを表示するコマンドです。 lpc BSD系で使われるプリンタのキューを表示するコマンドです。 cupsdisable 指定したプリンタを停止状態にするコマンドです。


syslog,rsyslog,syslog-ng,systemd journal,logger,etc(LPIC)

syslog,rsyslog,syslog-ng,systemd journal システムログを収集するソフトウェアです。 syslog ファシリティ ファシリティはメッセージの生成元を表します。 kern: カーネルによる出力 user: ユーザアプリケーションによる出力 mail: メールサービス関連による出力 daemon: システムデーモンによる出力 プライオリティ プライオリティはメッセージの重要度を表します。 emerg: パニック状態でシステムは使用不能 alert: 緊急に対処が必要 crit: 緊急に対処が必要。alertよりは緊急度は低い err: エラー発生 debug: デバッグ情報 none: ログメッセージを記録しない。 etcsyslog.conf ファイルで kern.crit と設定すると crit以上のすべてのメッセージが /var/log/messages に記録される。 /etc/syslog.conf syslogdの設定ファイルです。 すべてのカーネルメッセージをコンソールに表示する kern.* /dev/console rsyslog Syslogプロトコルをベースとして作成されました。 設定ファイル rsyslog.conf は syslog の設定ファイル syslog.conf と後方互換性があります。 syslog-ng 設定ファイルである syslog-ng.conf は。syslog の設定ファイル syslog.conf とは書式が異なるため互換性がありません。 systemd journal systemdを採用するシステムでシステムを収集するプログラムです。 rsyslogなどの他のsyslogソフトウェアと連携することができます。 /var/log/journal 不揮発性ストレージを使う場合(デフォルト)は /var/log/journal に保存される。 /run/log/journal 揮発性ストレージを使う場合は /run/log/journal に保存される。 サンプル 2022年8月28日以降のログを取得 $ journalctl --since="2022-08-28 00:00:00" 2022年8月28日以前のログを取得 $ journalctl --until="2022-08-28 00:00:00" systemd-cat メッセージをログに記録するコマンドです。


chronyc,chronyd(LPIC)

chronyc,chronyd 従来のntpdデーモン、ntpdateコマンドに代わり、機能及びパフォーマンスを改善したものです。 読み方はクローニーです。 設定ファイルは /etc/chrony.conf です。 chronyを起動 $ systemctl start chronyd


groupadd,groupdel(LPIC)

groupadd,groupdel groupadd $ groupadd pokemon $ cat /etc/group | grep pokemon pokemon:x:1001: groupdel $ groupdel pokemon


getent(LPIC)

getent ネームサービススイッチ(/etc/nsswitch.conf)の設定に従い、引数で指定したデータベースの内容を表示します。 サンプル システムの全ユーザーのアカウントを表示する $ getent passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin ...


Wayland(LPIC)

Wayland WaylaはXに変わる新しいディスプレイサーバーです。


cron,crontab,anacron,etc(LPIC)

cron,crontab,anacron,etc cron crontab /etc/cron.allow, /etc/cron.deby /etc/cron.allow に記述があるユーザーはcrontabを作成することができる。 /etc/cron.deby に記述があるユーザーはcrontabを作成することができない。 /etc/cron.allow と /etc/cron.deby の両方が作成されている場合は /etc/cron.deny は無視される。 /etc/cron.allow と /etc/cron.deby の両方が存在しない場合はrootユーザーだけがcrontabを作成できる。 1 2 3 4 5 6 * * * * * * 分 時 日 月 曜日 コマンド ユーザーのcrontabファイル ユーザーのcrontabファイルは /var/spool/cron/crontabs/ に格納されます。 rootの場合は /var/spool/cron/crontabs/root に格納されます。 /etc/cron.allow /etc/cron.allow がある場合、ファイルに記述されているユーザーがcronを利用できる。 /etc/cron.deby /etc/cron.deby がある場合、ファイルに記述されていないユーザーがcronを利用できる。 サンプル 毎分/var/log/cron.logにhelloと追記する $ crontab -e * * * * * /usr/bin/echo "hello" >> /var/log/cron.log 2>&1 crontabを表示する $ crontab -l crontabを削除する $ crontab -r anacron /etc/cron.


/etc/group(LPIC)

/etc/group グループの設定は /etc/group に保存されています。 1 2 3 4 pokemon:x:1002:snorlax,ditto グループ名 グループパスワード。 グループID グループメンバー


/etc/passwd(LPIC)

/etc/passwd ユーザーのアカウント情報は /etc/passwd ファイルに保存されます。 1 2 3 4 5 6 7 snorlax:x:1000:1000:I Love Snorlax! :/home/snorlax:/bin/bash ユーザー名 パスワード。shadow が使われている場合は x が入ります ユーザーID グループID コメント ホームディレクトリ デフォルトシェル ユーザーをログインできないようにする /etc/passwd の最初の:の後を* もしくは ! にするとログインできなくなります。 snorlax:*:1000:1000::/home/snorlax:/bin/sh


X.org(LPIC)

X.org,etc xorg.conf 設定ファイルです。 /etc/X11/xorg.conf xorg.conf.d 以下に設定ファイルが分割されて格納されている場合もあります。 /etc/X11/xorg.conf.d/* /usr/share/X11/xorg.conf.d/* ディスプレイマネージャー XDM(X Display Manager) GDM(Gnome Display Manager) SDDM(Simple Desktop Display Manager) LightDM ウィンドウマネージャー Mutter metacity kwin デスクトップ環境 GNOME(GNU Network Object Model Environment) 標準ディスプレイマネージャー: gdm 標準ウィンドウマネージャー: metacity, mutter KDE 標準ディスプレイマネージャー: kdm, sddm 標準ウィンドウマネージャー: kwin X Window System 標準ディスプレイマネージャー: xdm 標準ウィンドウマネージャー: twm アクセシビリティ オンスクリーンキーボード gok(GNOME Onscreen Keyboard)はGonome2のオンスクリーンキーボード テキスト読み上げプログラム emacspeakはEmacsに読み込んだテキストや電子メールなどを音声を読み上げるソフトです。 スティッキー・キー 2つのキーを同時に起こすことが困難な場合に有効にする設定です。 スロー・キー 指定した時間より長く押し続けないとそのキー入力を有効としない設定です。 バウンス・キー 同じキーを素早く押したとき場合はそのキー入力を有効としない設定です。 xdpyinfo Xサーバーについての情報を表示するコマンドです。 xwininfo クリックした特定のウィンドウの情報を表示するコマンドです。 環境変数DISPLAY Xのアプリケーションは環境変数DISPLAYで指定されたディスプレイを表示します。 xhost xなんとかを動かす MacにXquartzをインストールする


LPIC101直前まとめ(LPIC)

LPIC101直前まとめ テスト直前に確認することを想定したページです。 setはシェル変数の一覧を表示するコマンド。シェルのパラメーターも設定できる envは環境変数の一覧を表示するコマンド pwdは現在のディレクトリパスを表示するコマンド $PWDは現在のディレクトリパスが格納された環境変数 exportは環境変数を設定するコマンド manコマンドが実行時に参照するドキュメントファイルは /usr/share/man と /usr/local/share/man に格納されてる su - rootはrootでログインし直すコマンド mkdirコマンドは-pオプションをつけるとパス途中のディレクトリも作成される $ mkdir -p snorlax/ditto mvはファイルを移動させるコマンド。-fオプションは移動先にファイルが存在しても強制的に上書きする。*を使うとすべてのファイルを移動する。 $ mv -f snorlax/* ditto cpはファイルをコピーさせるコマンド。-Rオプションはコピー元のディレクトリ構造をそのままコピーする。 $ cp -Rf snorlax/* ditto trはキーボードやファイルから入力された文字を変換して表示するコマンド。小文字を大文字に変換したり、文字を削除したりできる。 $ tr -d 'lax' < file.txt Ditto Sowpoke Snor $ tr 'a-z' 'A-Z' < file.txt DITTO SLOWPOKE SNORLAX wcはテキストファイルの文字数や行数を数えるコマンド chownコマンドは指定されたファイルの所有者とグループを変更する $ chown ユーザー名.グループ名 ファイル名 chownコマンドでスティッキービットを指定する場合は「1000」、もしくは「o+t」 一時的に利用するライブラリのパスはLD_LIBRARY_PATH環境変数に格納する rpmでパッケージファイルを指定して、そのパッケージが依存するパッケージを表示する $ rpm -qpR パッケージファイル名 rpmでインストールzみのパッケージを指定して、そのパッケージに含まれるファイル名リストを表示する $ rpm --query --list rpmで指定したファイルを含むrpmパッケージを表示する $ rpm -qf /etc/mke2fs.


pkill(LPIC)

pkill サンプル nginxを終了させる $ ps ax | grep nginx 5241 ? Ss 0:00 nginx: master process /usr/sbin/nginx 5242 ? S 0:00 nginx: worker process 5244 pts/0 S+ 0:00 grep --color=auto nginx $ pkill nginx `` $ ps ax | grep nginx 5249 pts/0 S+ 0:00 grep –color=auto nginx 5241, 5242, 5244 のプロレスが終了していることがわかります。 5249 のプロセスは終了した後にできたプロセスだと思います。


parted(LPIC)

parted


gdisk(LPIC)

gdisk GPTに対応したパーティションの作成や削除などに使うコマンドです。


chgrp(LPIC)

chgrp


cpio(LPIC)

cpio ファイルをアーカイブファイルにコピーしたり、アーカイブからファイルをコピーします。


debugfs(LPIC)

debugfs ex2, ex3, ex4ファイルシステムのファイワ的なデバッガツールです。


systemd(LPIC)

systemd サンプル nginxサービスを起動する $ systemctl start nginx.service nginxサービスを停止する $ systemctl stop nginx.service nginxサービスを再起動する $ systemctl restart nginx.service nginxサービスのステータスを表示 $ systemctl status nginx.service nginxサービスが起動しているか表示 $ systemctl is-active nginx.service nginxサービスを自動起動の設定をする $ systemctl enable nginx.service nginxサービスを自動起動の設定を解除する $ systemctl disable nginx.service ランレベル Red Hat Enterprise Liux, CentOS. Fedoraでのランレベル 0: 停止 1: シングルユーザーモード 2: マルチユーザーモード(テキストログイン、NFSサーバーは停止) 3: マルチユーザーモード(テキストログイン) 4: 未使用 5: マルチユーザーモード(グラフィカルログイン) 6: 再起動 s: シングルユーザーモード Ubuntu, Debian GNU/Linux でのランレベル 0: 停止 1: シングルユーザーモード 2: マルチユーザーモード 3: マルチユーザーモード 4: マルチユーザーモード 5: マルチユーザーモード 6: 再起動 s: シングルユーザーモード その他 /lib/systemd/system ディレクトリ以下にはsystemd のデフォルトのUnit定義さいるが格納されています。 現在のランレベルを調べるには runlevel コマンドを使用します。


SysVinit(LPIC)

SysVinit SysVinitの起動手順 init が /etc/inittab ファイルを読み込む init が /etc/rc.sysinit スクリプトを読み込む init が /etc/rcスクリプトを実行する /etc/rc スクリプトが「/etc/rc<ランレベル>.d」ディレクトリ以下のスクリプトを実行する


dd(LPIC)

dd 入力側に指定したファイルからの入力をファイルもしくは標準出力に送るコマンドです。


shutdown(LPIC)

shutdown オプション -r 再起動する。 -h シャットダウン後システムを停止する。 -k 実際にはシャットダウンを行なわず、 ログイン中のユーザ全員へのメッセージ送付のみを行なう。 サンプル 5分後に再起動する $ shutdown -r +5 Reboot scheduled for Sun 2022-08-14 15:58:19 JST, use 'shutdown -c' to cancel. ログイン中のユーザ全員へのメッセージを送る $ shutdown now -k "I love snorlax!"


journalctl(LPIC)

journalctl systemd-journaldが収集したログを表示するためのコマンドです。 サンプル 保管されている一番古いログから順番に確認する $ journalctl Aug 13 00:05:00 localhost kernel: Linux version 5.14.0-39.el9.x86_64 (mockbuild@x86-03.stream.rdu2.redhat.com) (gcc (GCC) 11.2.1 20211019 (Red Hat 11.2.1-6), GNU ld version 2.35.2-13.el9) #1 SMP PREEMPT Fri Dec 24 04:03:40 UTC 2021 Aug 13 00:05:00 localhost kernel: Command line: BOOT_IMAGE=(hd0,gpt2)/boot/vmlinuz-5.14.0-39.el9.x86_64 root=UUID=4683850f-07fa-4ac1-96ff-4ae48affa2ba ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8r Aug 13 00:05:00 localhost kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' Aug 13 00:05:00 localhost kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' Aug 13 00:05:00 localhost kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' .


ntpd,ntpdate,etc(LPIC)

ntpd,ntpdate,etc ntpd NTPにより時刻の同期を取るデーモンです。 /etc/ntp.conf ntpdの設定ファイルです。 オプション driftfile restrict server リモートサーバーのIPアドレスかDNS名、あるいは参照クロックのアドレスを指定する。 iburst iburstオプションを指定するとNTPサーバーとの初期の同期時に2秒間隔で8個のパケットを送信して同期を取ります。 通常より早く同期を取ることができます。 /etc/ntp.conf のサンプル # /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help driftfile /var/lib/ntp/ntp.drift # Leap seconds definition provided by tzdata leapfile /usr/share/zoneinfo/leap-seconds.list # Enable this if you want statistics to be logged. #statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable # Specify one or more NTP servers.


hwclock(LPIC)

hwclock ハードウェアクロックをシステムクロックに合わせる $ hwclock -u --systohc システムクロックをハードウェアクロックに合わせる $ hwclock -u --hctosys


chage(LPIC)

change サンプル snorlaxユーザーのパスワードの有効期限を調べる $ chage -l snorlax snorlaxのパスワードの有効期限を30日後に設定する $ chage -M 30 snorlax $ chage -l snorlax Last password change : Aug 23, 2022 Password expires : Sep 22, 2022 Password inactive : Dec 31, 2022 Account expires : Aug 24, 2022 Minimum number of days between password change : 0 Maximum number of days between password change : 30 Number of days of warning before password expires : 7 snorlaxのパスワードの有効期限が切れてからアカウントが無効になるまでの期間を15日後に設定する $ chage -I 15 snorlax $ chage -l snorlax Last password change : Aug 23, 2022 Password expires : Sep 22, 2022 Password inactive : Oct 07, 2022 Account expires : Aug 24, 2022 Minimum number of days between password change : 0 Maximum number of days between password change : 30 Number of days of warning before password expires : 7


date(LPIC)

date サンプル 現在時間を表示 $ date Tue Aug 23 05:19:08 PM JST 2022 日付が入りでファイルを生成 $ touch `date "+%Y%m%d-snorlax.txt"` UTCで現在時刻を表示 $ date --utc Tue Aug 23 08:19:39 AM UTC 2022 タイムゾーンをNew_Yorkに指定してdateコマンドを実行する $ TZ=New_York date タイムゾーンをUTCに指定してdateコマンドを実行する $ TZ=UTC date


userdel(LPIC)

userdel ユーザーを削除するコマンドです。 サンプル snorlaxユーザーを削除する(snorlaxのホームディレクトリは残る) $ userdel snorlax snorlaxユーザーとホームディレクトリを削除する $ userdel -r snorlax


zypper(LPIC)

zypper Libzyppライブラリを利用したコマンドラインによるパッケージ管理ツールです。 サンプル


at,batch(LPIC)

at,batch 指定したコマンドを1回だけ実行するコマンドです。 at /etc/at.allow /etc/at.allow に登録されたユーザーは、atコマンドとbatchコマンドの実行を許可されます。 /etc/at.deny /etc/at.deny に登録されたユーザーは、atコマンドとbatchコマンドの実行を拒否されます。 サンプル 今日の17:30に/var/log/at.logにログを出力する $ at 17:30 today at Tue Aug 23 17:30:00 2022 at> date > /var/log/at.log at> <EOT> キューに入っている実行待ちのジョブを表示 $ atq 1 Tue Aug 23 17:30:00 2022 a root キューに入っている実行待ちジョブを削除 ジョブを追加します。 $ at 17:30 today at Tue Aug 23 17:30:00 2022 at> date > /var/log/at.log at> <EOT> $ atq atqコマンドでジョブ一覧を表示します。 2 Wed Aug 24 17:30:00 2022 a root 2番のジョブを削除します。 $ at -r 2 atqコマンドでジョブ一覧を表示します。 2番のジョブが消されていることを確認します。


BIOSとUEFI(LPIC)

BIOSとUEFI BIOS、UEFIはマザーボードに搭載されているプログラムです。 UEFIはBIOSの後継で、直感的なインターフェイス(マウスでも操作可能)、ハードディスクの容量が2.2TBを超えても対応可能、ネットワーク機能などがあります。 BIOS BIOS -> MBR -> ブートローダー -> Kernel -> OS UEFI UEFI -> GPT, EFIブートローダー -> Kernel -> OS


/etc/hostsでホスト名とIPアドレスを対応させる(LPIC)

/etc/hostsでホスト名とIPアドレスを対応させる


wall(LPIC)

wall


uname(LPIC)

uname


systemctl(LPIC)

systemctl サンプル sshd.serviceを開始する $ systemctl start sshd.service システム起動時にsshd.serviceを自動起動する $ systemctl enable sshd.service


init, telinit(LPIC)

init, telinit ランレベルを変更するコマンドです。


dd(LPIC)

dd サンプル


GRUB(LPIC)

GRUB ブートローダーです。 GRUBの設定ファイルは /boot/grub/menu.lst と /boot/grub/grub.conf です。 設定項目 default デフォルトで起動するOSを定義する timeout OSを自動起動するまでの待機時間を指定する title 起動するOSに対して名前を定義する。 root GRUBのルートデバイスを定義する。 kernel カーネルのイメージファイルとカーネルオプションを指定する。 initrd 初期RAMディスクのイメージファイルを指定する その他 カーネル選択メニューが表示されているときに「A」もしくは「E」のキーを押すとカーネルオプションを編集できるようになります。 GRUB2 ブートローダーです。 GRUBの設定ファイルは /boot/grub2/grub.cfg と /etc/default/grub です。 grub-mkconfig /etc/default/grub に設定を記述し、grub-mkconfig を実行すると /boot/grub2/grub.cfg が生成されます。 grub-install GRUBをインストールコマンドです。 サンプル /dev/sdaのMBRにGRUBをインストールする $ grub-install /dev/sda


GPTとMBR(LPIC)

GPTとMBR MBRとGPTは、マスターブートレコード(Master Boot Record)とGUIDパーティションテーブル(GUID Partition Table)の略語です。 GPTとMBRの違い ブートモードの違い MBRディスクがBIOSをサポートし、GPTディスクがUEFIをサポートしています。 サポートするディスク容量が異なる MBRディスクでは2TBまでの領域しか扱うことができません。 一方でGPTディスクは2TBを超える領域を扱うことができます。


ACPI(LPIC)

Advanced Configuration and Power Interface(ACPI) ACPIはPC/AT互換機の電源制御の統一規格として採用されたハードウェアコンポーネントの電源管理のための規格です。 systemd-logind デーモン systemd-logind は systemd を採用したシステムで、ACPIイベントの処理おw行うデーモンです。


modprobe(LPIC)

modprobe 指定したモジュールの依存関係を確認し、必要なモジュールを自動的に追加、もしくは削除します。 モジュールに対する設定を行う場合は /etc/modprobe.d ディレクトリの下に、.confファイルを配置します。


システムアーキテクチャ(LPIC)

システムアーキテクチャ PCI PCI Express USB eDP DDR SDRAM


type(LPIC)

type コマンドのパスや種類を表示するときに使うコマンドです。 WindowsとLinuxでは挙動が異なります。 サンプル lsのパスを表示 $ type ls is /bin/ls


xfs_repair(LPIC)

xfs_repair XFSファイルシステムを検査、修復するコマンドです。


fsck,e2fsck(LPIC)

fsck,e2fsck ファイルシステムにエラーがないかどうかのチェックと修復を行うコマンドです。 オプション -A /etc/fstabにあるファイルシステムを全て検査する サンプル /dev/vda2 をチェックする $ fsck /dev/vda2 /etc/fstab にあるファイルシステムを全て検査する $ fsck -A


tune2fs(LPIC)

tune2fs ext2/ext3/ext4 ファイルシステムのパラメーターを調整するコマンドです。 オプション -c [回数] チェックなしでマウントできる最大回数を指定する。 -i [時間] ファイルシステムをチェックする最大の時間間隔を指定する。 -j 「ext3」ジャーナル領域を「ext2」ファイルシステムに追加し、「ext3」ファイルシステムに移行する。 -L ファイルシステムのボリュームラベルを設定する。 -l スーパーブロックの内容を表示する サンプル /dev/vda2のスーパーブロックの内容を表示する $ tune2fs -l /dev/vda2 ファイルシステムをチェックする時間間隔を20日に設定する $ tune2fs -i 20 /dev/vda2 数字の後に d, m, w を付けると日、月、週をそれぞれ設定できます。 数字のみの場合は日扱いになります。


man(LPIC)

man コマンドのマニュアルを表示するためのコマンドです。 オプション -a すべてのセクションのmanページが表示される -C 設定ファイルを指定する サンプル slコマンドのマニュアルを表示する $ man sl slコマンドの第一セクションのマニュアルを表示する $ man 1 sl


特殊文字のエスケープ(LPIC)

xargs 標準入力から受け取った値を引数に渡すコマンドです。 サンプル ls に ‘-li’ を渡して実行する ls -li と同等です。 $ echo '-li' | xargs ls


特殊文字のエスケープ(LPIC)

エスケープ バックスラッシュ \ で特殊文字はエスケープできます。 サンプル (^^)/ をechoで出力する $ echo \\\(^^\)\/ $ echo '\(^^)/'


正規表現(LPIC)

正規表現 ## サンプル 以下のようなファイルからNginxという文字列が入った行を抽出する logNginx0 logNginx1 logApache0 logNginx2 logApache1 logDatadog0 $ grep -e 'logNginx[012]' file.txt $ grep -e 'logNginx[0-2]' file.txt logNginx0 logNginx1 logNginx2 以下のようなファイルから10時代のログを抽出する 2022-01-23 04:23:43 log 2022-01-26 04:23:43 log 2022-01-28 10:23:43 log 2022-01-30 04:23:43 log 2022-02-02 04:23:43 log 2022-04-23 10:23:43 log $ grep -e '10:[0-5][0-9]' file.txt 2022-01-28 10:23:43 log 2022-04-23 10:23:43 log


stat(LPIC)

stat ファイルやディレクトリの属性や日付、iノード番号などを表示するコマンドです。 サンプル $ stat file.txt 16777222 84363776 -rw-r--r-- 1 snorlax staff 0 10 "Aug 9 17:56:08 2022" "Aug 9 17:56:06 2022" "Aug 9 17:56:06 2022" "Aug 9 17:56:06 2022" 4096 8 0 file.txt


変数の展開(LPIC)

変数の展開 ダブルクオート内で変数を展開する $ echo "I am ${USER}." I am snorlax. 鉤括弧を使わなくても変数を展開できます。 $ echo "I am $USER." I am snorlax. シングルクオートでは変数は展開されません。 $ echo 'I am ${USER}.' I am ${USER}.


split(LPIC)

split


シェル変数と環境変数の違い(LPIC)

シェル変数と環境変数の違い シェル変数と環境変数を設定します。 $ export POKEMON_ENV=Snorlax # 環境変数を設定 $ POKEMON_SHELL=Ditto # シェル変数を設定 $ cat << END > pokemons.sh # pokemons.shを作成 #!/bin/sh echo \$POKEMON_ENV echo \$POKEMON_SHELL END $ chmod 777 pokemons.sh # 権限を付与 シェル変数のPOKEMON_SHELLは子プロセスに引き継がれません。 $ bash pokemons.sh Snorlax 子プロセスを作らなければ環境変数もシェル変数も表示されます。 $ . /Users/snorlax/Desktop/pokemons.sh Snorlax Ditto $ source pokemons.sh Snorlax Ditto


lscpu(LPIC)

lscpu CPUの情報を表示するコマンドです。 /proc/cpuinfo にもCPUの情報が格納されています。


/etc/fstab(LPIC)

/etc/fstab マウントするファイルシステムとマウントポイント、マウント時に指定するオプションなどmountコマンドの実行に必要な情報を記述するファイルです。 設定例 1 2 3 4 5 6 /dev/sdb /data ext4 user,auto 0 0 デバイスファイル名(デバイスファイル名、ラベル名、UUID) マウントポイント ファイルシステムの種類 マウントオプション バックアップの指定 ファイルシステムのチェック マウントオプション async ファイルシステムの書き込みを非同期で行う sync ファイルシステムの書き込みを同期で行う auto -aふぁ指定された時にマウントされる noauto -aが指定された時にマウントされない user 一般ユーザーにマウントを許可する。


umount(LPIC)

umount ファイルシステムをルートファイルシステムから切り離す(アンマウントする)ためのコマンドです。 オプション -a /etc/fstab ファイルに記載されているファイルシステムをすべてアンマウントする -r アンマウントが失敗した場合、読み取り専用での再マウントを試みる -t 指定したファイプのファイルシステムのみに対してアンマウントする


lsblk(LPIC)

lsblk 利用可能なブロックデバイスの一覧を表示するコマンドです。 サンプル 利用可能なブロックデバイスの一覧を表示する $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 44.7M 1 loop /snap/snapd/15534 loop1 7:1 0 79.9M 1 loop /snap/lxd/22923 loop2 7:2 0 62M 1 loop /snap/core20/1587 loop3 7:3 0 47M 1 loop /snap/snapd/16292 loop4 7:4 0 61.9M 1 loop /snap/core20/1405 sr0 11:0 1 494K 0 rom vda 252:0 0 30G 0 disk ├─vda1 252:1 0 1M 0 part └─vda2 252:2 0 30G 0 part /myapp /


複数の画像をpdfに変換する

複数の画像をpdfに変換する方法です。 ImageMagicがインストールされていない場合はインストールします。 Macの場合はbrewでインストールすると楽だと思います。 $ convert ./images/*.PNG 102-chap1.pdf


Conohaでディスクを追加する

Conohaでディスクを追加する方法です。 まずはサーバーを立ち上げ、ファイルシステムの使用状況を確認します。 $ df -T -h Filesystem Type Size Used Avail Use% Mounted on tmpfs tmpfs 47M 1000K 46M 3% /run /dev/vda2 ext4 30G 6.0G 23G 22% / tmpfs tmpfs 235M 0 235M 0% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs tmpfs 235M 0 235M 0% /run/qemu tmpfs tmpfs 47M 4.0K 47M 1% /run/user/0 /dev ディレクトリを確認します。 $ ls /dev ... vda vda1 vda2 ... こちら を参考にしながらディスクを追加します。 ディスク追加時はサーバーを一度シャットダウンする必要があります。


wall(LPIC)

wall


uname(LPIC)

uname


telinit(LPIC)

telinit


init(LPIC)

init


dmesg(LPIC)

dmesg システム起動時にカーネルが画面に表示するメッセージを表示するコマンドです。 メッセージを表示 $ dmesg [269117.247721] [UFW BLOCK] IN=eth0 OUT= MAC=02:01:85:82:59:71:64:f6:9d:a6:3a:bf:08:00 SRC=192.241.203.248 DST=133.130.89.113 LEN=40 TOS=0x00 PREC=0x00 TTL=240 ID=54321 PROTO=TCP SPT=60243 DPT=137 WINDOW=65535 RES=0x00 SYN URGP=0 [269130.481176] [UFW BLOCK] IN=eth0 OUT= MAC=02:01:85:82:59:71:64:f6:9d:a6:3a:bf:08:00 SRC=195.230.103.247 DST=133.130.89.113 LEN=40 TOS=0x00 PREC=0x00 TTL=227 ID=54321 PROTO=TCP SPT=54674 DPT=500 WINDOW=65535 RES=0x00 SYN URGP=0 [269173.921804] [UFW BLOCK] IN=eth0 OUT= MAC=02:01:85:82:59:71:64:f6:9d:a6:3a:bf:08:00 SRC=123.160.221.3 DST=133.130.89.113 LEN=52 TOS=0x00 PREC=0x00 TTL=47 ID=4224 DF PROTO=TCP SPT=36430 DPT=9519 WINDOW=65535 RES=0x00 SYN URGP=0 [269188.440730] [UFW BLOCK] IN=eth0 OUT= MAC=02:01:85:82:59:71:64:f6:9d:a6:3a:bf:08:00 SRC=103.


dmesg(LPIC)

dmesg


ブートローダー(LPIC)

ブートローダー


ハードウェア(LPIC)

ハードウェア


lsmod(LPIC)

lsmod 現在システムにロードされているモジュールの状態を表示するコマンドです。 またモジュールの状態は /proc/modules に格納されています。 $ lsmod Module Size Used by xt_recent 24576 0 xt_multiport 20480 1 tls 106496 0 intel_rapl_msr 20480 0 intel_rapl_common 36864 1 intel_rapl_msr joydev 32768 0 input_leds 16384 0 serio_raw 20480 0 mac_hid 16384 0 xt_hl 16384 22 ip6_tables 32768 52 ip6t_rt 20480 3 ip6t_REJECT 16384 3 nf_reject_ipv6 20480 1 ip6t_REJECT xt_LOG 20480 10 nf_log_syslog 20480 10 xt_comment 16384 2 nft_limit 16384 13 xt_limit 16384 0 xt_addrtype 16384 4 xt_tcpudp 20480 20 xt_conntrack 16384 16 nf_conntrack 167936 1 xt_conntrack nf_defrag_ipv6 24576 1 nf_conntrack nf_defrag_ipv4 16384 1 nf_conntrack ipt_REJECT 16384 110 nf_reject_ipv4 16384 1 ipt_REJECT nft_compat 20480 251 nft_counter 16384 283 nf_tables 241664 611 nft_compat,nft_counter,nft_limit nfnetlink 20480 2 nft_compat,nf_tables ramoops 32768 0 pstore_blk 16384 0 reed_solomon 28672 1 ramoops pstore_zone 28672 1 pstore_blk mtd 73728 0 sch_fq_codel 20480 2 dm_multipath 40960 0 scsi_dh_rdac 20480 0 scsi_dh_emc 16384 0 ipmi_devintf 20480 0 efi_pstore 16384 0 scsi_dh_alua 20480 0 ipmi_msghandler 122880 1 ipmi_devintf msr 16384 0 ip_tables 32768 8 x_tables 53248 15 xt_conntrack,nft_compat,xt_LOG,xt_multiport,xt_tcpudp,xt_addrtype,xt_recent,ip6t_rt,xt_comment,ip6_tables,ipt_REJECT,ip_tables,xt_limit,xt_hl,ip6t_REJECT autofs4 49152 2 btrfs 1527808 0 blake2b_generic 20480 0 zstd_compress 229376 1 btrfs raid10 69632 0 raid456 163840 0 async_raid6_recov 24576 1 raid456 async_memcpy 20480 2 raid456,async_raid6_recov async_pq 24576 2 raid456,async_raid6_recov async_xor 20480 3 async_pq,raid456,async_raid6_recov async_tx 20480 5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov xor 24576 2 async_xor,btrfs raid6_pq 122880 4 async_pq,btrfs,raid456,async_raid6_recov libcrc32c 16384 4 nf_conntrack,btrfs,nf_tables,raid456 raid1 49152 0 raid0 24576 0 multipath 20480 0 linear 20480 0 hid_generic 16384 0 bochs 16384 0 crct10dif_pclmul 16384 1 crc32_pclmul 16384 0 drm_vram_helper 24576 1 bochs ghash_clmulni_intel 16384 0 drm_ttm_helper 16384 2 bochs,drm_vram_helper ttm 86016 2 drm_vram_helper,drm_ttm_helper drm_kms_helper 307200 4 bochs,drm_vram_helper syscopyarea 16384 1 drm_kms_helper sysfillrect 20480 1 drm_kms_helper sysimgblt 16384 1 drm_kms_helper aesni_intel 376832 0 crypto_simd 16384 1 aesni_intel fb_sys_fops 16384 1 drm_kms_helper cryptd 24576 2 crypto_simd,ghash_clmulni_intel cec 61440 1 drm_kms_helper usbhid 65536 0 rc_core 65536 1 cec virtio_net 61440 0 net_failover 20480 1 virtio_net psmouse 176128 0 virtio_blk 20480 1 drm 606208 6 drm_kms_helper,bochs,drm_vram_helper,drm_ttm_helper,ttm failover 16384 1 net_failover i2c_piix4 28672 0 hid 147456 2 usbhid,hid_generic pata_acpi 16384 0 floppy 118784 0 $ cat /proc/modules xt_recent 24576 0 - Live 0xffffffffc0869000 xt_multiport 20480 1 - Live 0xffffffffc0853000 tls 106496 0 - Live 0xffffffffc0917000 intel_rapl_msr 20480 0 - Live 0xffffffffc0859000 intel_rapl_common 36864 1 intel_rapl_msr, Live 0xffffffffc0839000 joydev 32768 0 - Live 0xffffffffc07b8000 input_leds 16384 0 - Live 0xffffffffc07b3000 serio_raw 20480 0 - Live 0xffffffffc07ad000 mac_hid 16384 0 - Live 0xffffffffc07a8000 xt_hl 16384 22 - Live 0xffffffffc07a3000 ip6_tables 32768 52 - Live 0xffffffffc079a000 ip6t_rt 20480 3 - Live 0xffffffffc0794000 ip6t_REJECT 16384 3 - Live 0xffffffffc078f000 nf_reject_ipv6 20480 1 ip6t_REJECT, Live 0xffffffffc0789000 xt_LOG 20480 10 - Live 0xffffffffc0783000 nf_log_syslog 20480 10 - Live 0xffffffffc077d000 xt_comment 16384 2 - Live 0xffffffffc0778000 nft_limit 16384 13 - Live 0xffffffffc0773000 xt_limit 16384 0 - Live 0xffffffffc076e000 xt_addrtype 16384 4 - Live 0xffffffffc0769000 xt_tcpudp 20480 20 - Live 0xffffffffc071b000 xt_conntrack 16384 16 - Live 0xffffffffc0764000 nf_conntrack 167936 1 xt_conntrack, Live 0xffffffffc073a000 nf_defrag_ipv6 24576 1 nf_conntrack, Live 0xffffffffc0733000 nf_defrag_ipv4 16384 1 nf_conntrack, Live 0xffffffffc072e000 ipt_REJECT 16384 110 - Live 0xffffffffc0729000 nf_reject_ipv4 16384 1 ipt_REJECT, Live 0xffffffffc0724000 nft_compat 20480 251 - Live 0xffffffffc0715000 nft_counter 16384 283 - Live 0xffffffffc0710000 nf_tables 241664 611 nft_limit,nft_compat,nft_counter, Live 0xffffffffc06d4000 nfnetlink 20480 2 nft_compat,nf_tables, Live 0xffffffffc06ce000 ramoops 32768 0 - Live 0xffffffffc06b5000 pstore_blk 16384 0 - Live 0xffffffffc06c9000 reed_solomon 28672 1 ramoops, Live 0xffffffffc06bf000 pstore_zone 28672 1 pstore_blk, Live 0xffffffffc06a1000 mtd 73728 0 - Live 0xffffffffc066a000 sch_fq_codel 20480 2 - Live 0xffffffffc0664000 dm_multipath 40960 0 - Live 0xffffffffc0654000 scsi_dh_rdac 20480 0 - Live 0xffffffffc064e000 scsi_dh_emc 16384 0 - Live 0xffffffffc0649000 ipmi_devintf 20480 0 - Live 0xffffffffc0640000 efi_pstore 16384 0 - Live 0xffffffffc062f000 scsi_dh_alua 20480 0 - Live 0xffffffffc0636000 ipmi_msghandler 122880 1 ipmi_devintf, Live 0xffffffffc0610000 msr 16384 0 - Live 0xffffffffc060b000 ip_tables 32768 8 - Live 0xffffffffc05e6000 x_tables 53248 15 xt_recent,xt_multiport,xt_hl,ip6_tables,ip6t_rt,ip6t_REJECT,xt_LOG,xt_comment,xt_limit,xt_addrtype,xt_tcpudp,xt_conntrack,ipt_REJECT,nft_compat,ip_tables, Live 0xffffffffc05d8000 autofs4 49152 2 - Live 0xffffffffc05cb000 btrfs 1527808 0 - Live 0xffffffffc0455000 blake2b_generic 20480 0 - Live 0xffffffffc044f000 zstd_compress 229376 1 btrfs, Live 0xffffffffc0416000 raid10 69632 0 - Live 0xffffffffc0404000 raid456 163840 0 - Live 0xffffffffc03db000 async_raid6_recov 24576 1 raid456, Live 0xffffffffc03d4000 async_memcpy 20480 2 raid456,async_raid6_recov, Live 0xffffffffc03ce000 async_pq 24576 2 raid456,async_raid6_recov, Live 0xffffffffc03c7000 async_xor 20480 3 raid456,async_raid6_recov,async_pq, Live 0xffffffffc03c1000 async_tx 20480 5 raid456,async_raid6_recov,async_memcpy,async_pq,async_xor, Live 0xffffffffc03bb000 xor 24576 2 btrfs,async_xor, Live 0xffffffffc03b4000 raid6_pq 122880 4 btrfs,raid456,async_raid6_recov,async_pq, Live 0xffffffffc0395000 libcrc32c 16384 4 nf_conntrack,nf_tables,btrfs,raid456, Live 0xffffffffc0279000 raid1 49152 0 - Live 0xffffffffc0388000 raid0 24576 0 - Live 0xffffffffc0381000 multipath 20480 0 - Live 0xffffffffc037b000 linear 20480 0 - Live 0xffffffffc0375000 hid_generic 16384 0 - Live 0xffffffffc0370000 bochs 16384 0 - Live 0xffffffffc036b000 crct10dif_pclmul 16384 1 - Live 0xffffffffc0366000 crc32_pclmul 16384 0 - Live 0xffffffffc0361000 drm_vram_helper 24576 1 bochs, Live 0xffffffffc02f1000 ghash_clmulni_intel 16384 0 - Live 0xffffffffc02ec000 drm_ttm_helper 16384 2 bochs,drm_vram_helper, Live 0xffffffffc0109000 ttm 86016 2 drm_vram_helper,drm_ttm_helper, Live 0xffffffffc034b000 drm_kms_helper 307200 4 bochs,drm_vram_helper, Live 0xffffffffc02ff000 syscopyarea 16384 1 drm_kms_helper, Live 0xffffffffc02fa000 sysfillrect 20480 1 drm_kms_helper, Live 0xffffffffc025b000 sysimgblt 16384 1 drm_kms_helper, Live 0xffffffffc013e000 aesni_intel 376832 0 - Live 0xffffffffc028f000 crypto_simd 16384 1 aesni_intel, Live 0xffffffffc0219000 fb_sys_fops 16384 1 drm_kms_helper, Live 0xffffffffc0256000 cryptd 24576 2 ghash_clmulni_intel,crypto_simd, Live 0xffffffffc0212000 cec 61440 1 drm_kms_helper, Live 0xffffffffc027f000 usbhid 65536 0 - Live 0xffffffffc0201000 rc_core 65536 1 cec, Live 0xffffffffc01f0000 virtio_net 61440 0 - Live 0xffffffffc0269000 net_failover 20480 1 virtio_net, Live 0xffffffffc0263000 psmouse 176128 0 - Live 0xffffffffc022a000 virtio_blk 20480 1 - Live 0xffffffffc0220000 drm 606208 6 bochs,drm_vram_helper,drm_ttm_helper,ttm,drm_kms_helper, Live 0xffffffffc015b000 failover 16384 1 net_failover, Live 0xffffffffc0153000 i2c_piix4 28672 0 - Live 0xffffffffc0147000 hid 147456 2 hid_generic,usbhid, Live 0xffffffffc0119000 pata_acpi 16384 0 - Live 0xffffffffc0111000 floppy 118784 0 - Live 0xffffffffc00eb000


lsusb(LPIC)

lsusb USBバスと、接続されているデバイスに関する情報を表示します。 $ lsusb Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU USB Tablet Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub $ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M


lspci(LPIC)

lspci システムのすべてのPCIバスと、接続されているデバイスに関する情報を表示するコマンドです。 $ lspci 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] 00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01) 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:02.0 VGA compatible controller: Device 1234:1111 00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device 00:04.


仮想マシン(VM)とコンテナ(LXC)(LPIC)

仮想マシン(VM)とコンテナ(LXC)


apt-get(LPIC)

apt-get サブコマンド install upgrade update dist-upgrade remove apt-get update と apt-get upgrade と apt-get dist-upgrade の違い apt-get update パッケージのリストを更新する インストールされているパッケージの更新は行わない apt-get upgrade インストールされているパッケージを更新する. さきにupdateを実行しておく ただし、更新によって新規にパッケージのインストールや削除が発生するような場合は、それを行わない つまり、安全なアップデート apt-get dist-upgrade インストールされているパッケージを更新する. 更新によって新規にパッケージのインストールや削除が発生するような場合、それらも実行する 参考: yum update と yum upgradeの違い(ついでにDebianも) サンプル インストールされているパッケージの更新を行う $ apt-get upgrade パッケージ情報の依存関係情報のキャッシュを最新の情報に更新する $ apt-get update lolcatをインストールする $ apt-get install lolcat lolcatをアンインストールする $ apt-get remove lolcat apt-cache サンプル slが依存するパッケージの情報を表示します $ apt-cache depends sl


uniq(LPIC)

uniq 重複する内容の行を1行にまとめることができます。 ソートされていない場合は事前にソートする必要があります。 サンプル file.txtの重複する行を1行にまとめる $ cat file.txt Ditto Ditto Snorlax Snorlax Snorlax Slowpoke Slowpoke $ cat file.txt | uniq Ditto Snorlax Slowpoke sort後にuniqを使う file.txtが以下のようにソートされていない場合、uniqコマンドだけではまとめることができません。 Ditto Slowpoke Snorlax Snorlax Snorlax Ditto Ditto Snorlax Slowpoke Snorlax Ditto Slowpoke Ditto $ cat file.txt | uniq Ditto Slowpoke Snorlax Ditto Snorlax Slowpoke Snorlax Ditto Slowpoke Ditto 事前にファイルの内容をソートしてからuniqコマンドでまとめる必要があります。 $ cat file.txt | sort | uniq Ditto Slowpoke Snorlax ```


dselect(LPIC)

dselect


dpkg,etc(LPIC)

dpkg オプション -l, –list インストール済みの全debパッケージの情報を表示します。 -s, –status 指定したパッケージの情報を表示。 -L, –listfiles 指定したパッケージに含まれるすべてのファイルを表示 -S, –search インストール済みのパッケージから指定されたファイルを検索 -I, –info 指定したパッケージの詳細情報を表示 -C, –audit インストールが完了していないパッケージを検索 -c, –contents インストールされたパッケージではなく、指定したdebパッケージファイルに含まれるファイルの一覧を表示 -r, –remove パッケージは削除するが、設定ファイルは残したままとする。 -P, –purge 設定ファイルも含め完全にパッケージを削除する サンプル slに含まれるファイルをすべて表示する $ apt install sl $ dpkg -L sl -L は --listfiles の省略形です。 $ dpkg --listfiles sl インストール済みのパッケージから /etc/mke2fs.conf ファイルが含まれているパッケージを表示する $ dpkg -S /etc/mke2fs.conf e2fsprogs: /etc/mke2fs.conf エラーなどで部分的にインストールされたパッケージを検索する $ dplg -C dpkg-reconfigure インストール済みパッケージを再設定する。 $ dpkg-reconfigure postfix


id(LPIC)

id


SGID(LPIC)

SUID


SUID(LPIC)

SUID


adduser(LPIC)

adduser 対話形式でユーザーを作成するコマンドです。


userdel(LPIC)

userdel ユーザーを削除するコマンドです。


Linuxのファイル(LPIC)

Linuxのファイル /etc/apt/sources.list Debian系のパッケージのダウンロード先(リポジトリ)が書かれたファイル /etc/fstab デバイスとマウントポイント、ファイルシステムについて記述されたファイル /etc/passwd ユーザーのパスワードや属性情報を保存したファイル。現代ではパスワード情報は記載せずに /etc/shadow (シャドウファイル)に分離する運用が一般的となっている。 /etc/inittab システム起動後のデフォルトのランレベルが定義されているファイルです。 /etc/rc[0-6].d or /etc/rc.d/rc[0-6].d SysV initで起動時に使用するスクリプトをランレベルごとに管理しており、例えばランレベル5であれば /etc/rc.d/rc5.d ディレクトリに格納しています。 /etc/hosts /etc/nsswitch.conf /etc/resolv.conf /etc/shadow ハッシュ化されたパスワードが保存されたファイルです。 /etc/services サービス名とポート番号の対応が記述されたファイルです。 /etc/pam.d /etc/updatedb.conf updatedbコマンドの設定が記述されたファイル /etc/yum.conf yumの基本設定ファイル /etc/yum.repos.d/ リポジトリサーバーの設定情報が記述されたファイルを保存するディレクトリです。 /etc/hostname ホスト名が記述されたファイルです。 /etc/ntp.conf /etc/nologin このファイルが存在するとroot以外のユーザーは対話的ログインができなります。 /lib64 64bitのPCを使用している際の一般的な共有ライブラリの配置場所です。 /proc/cpuinfo プロセッサの情報が格納されたファイルです。 /proc/cmdline ブート時にカーネルに渡された引数を確認できるファイルです。 /proc/interrupts 割り込み要求(IRQ: Interrupt ReQuest)の情報を確認できるファイルです。 /proc/ioports /proc/sys/net/ipv4/ip_forward /proc/mounts 現在のマウント状態が格納されているファイル /proc.modules ロードされたモジュールの情報が格納されたファイル /proc/self/mounts 現在のマウント状態が格納されているファイル /var/log/dmesg システム立ち上げ時にカーネルが出力するメッセージが格納されているファイル


mount(LPIC)

mount オプション -a /etc/fstab ファイルに記載されているファイルシステムをすべてマウントする。 -r ファイスシステムを読み取り専用でマウントする -w ファイスシステムを読み書き可能なモードでマウントする(デフォルト) -t ファイルシステムタイプを指定してマウントする -o マウントオプションを指定する –bind サブツリーをどこか他の場所に再マウントする サンプル 現在マウントされているファイルシステムをすべて表示する $ mount /dev/sbd を /data にマウントする $ mount /dev/sbd /data /opt/myapp ディレクトリを /myapp にマウントする $ mount --bind /opt/myapp /myapp /opt/myapp ディレクトリを /myapp にマウントするとディレクトリ同士が同期されたような状態になり、/myapp/file.txt を作成すると /opt/myapp/file.txt にもファイル存在するようになります。 /etc/fstabファイル内のオプションフィールドがautoのエントリをすべてマウントする mount -a


mkfs(LPIC)

mkfs,mke2fs ファイルシステムの作成(初期化)を行うコマンドです。 オプション -t ファイルシステムのタイプを指定します。 このオプションを使って指定しなかった場合は ext2 ファイルシステムを作成します。 サンプル $ mkfs -t ext3 /dev/vda2


ファイルシステム(LPIC)

ファイルシステム ext ext2 ext3 ext4 reiserfs ジャーナル機能を持ったファイルシステム。 ディスクの使用効率が良く、クラッシュからの高速な回復機能がある。 xfs jfs vfat LinuxとWindowsの両方で読み書き可能なファイルシステム。 exfat btrfs ntfs NF File System(ntfs)はWindows NT系の標準ファイルシステム。


passwd(LPIC)

passwd パスワードの変更を行うコマンドです。 サンプル snorlaxのパスワードを設定する $ passwd snorlax snorlaxのパスワードの有効期限を60日後に設定する $ passwd -x 60 snorlax $ chage -l snorlax Last password change : Aug 23, 2022 Password expires : Oct 22, 2022 Password inactive : never Account expires : Aug 24, 2022 Minimum number of days between password change : 0 Maximum number of days between password change : 60 Number of days of warning before password expires : 7 snorlaxのパスワードの有効期限が切れてからアカウントが無効になるまでの期間を30日後に設定する $ passwd -i 30 snorlax $ chage -l snorlax Last password change : Aug 23, 2022 Password expires : Oct 22, 2022 Password inactive : Nov 21, 2022 Account expires : Aug 24, 2022 Minimum number of days between password change : 0 Maximum number of days between password change : 60 Number of days of warning before password expires : 7 アカウントをロックする /etc/shadow の暗号化されたパスワードの先頭に!


useradd(LPIC)

useradd,usermod,userdel ユーザーを追加したり、削除したりするコマンドです。 useradd ユーザーを追加するためのコマンドです。 似たコマンドにadduserコマンドがあります。 オプション -c コメント コメントを指定 -d パス ホームディレクトリを指定 -g グループ名/GID プライマリグループを指定 -G グループ名/GID プライマリグループ以外に所属するグループを指定 -s パス デフォルトシェルを指定 -e アカウント失効日の指定 -m ホームディレクトリを作成する サンプル snorlaxユーザーを作成する $ useradd snorlax snorlaxユーザーをホームディレクトリ付きで作成する ユーザー作成時に /etc/skel 以下にあるものがコピーされます。 $ useradd -m snorlax $ ls /home snorlax snorlaxユーザーをコメント付きで作成する $ useradd -c 'I love snorlax!' snorlax $ cat /etc/passwd | grep snorlax snorlax:x:1000:1000:I love snorlax!:/home/snorlax:/bin/sh snorlaxユーザーを失効日付きで作成する 2022年8月24日になるとログインできなくなります。 $ useradd -e 8/24/2022 snorlax $ passwd snorlax # パスワードを入力 $ chage -l snorlax Last password change : Aug 23, 2022 Password expires : never Password inactive : never Account expires : Aug 24, 2022 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 usermod ユーザー情報を変更するコマンドです。


シェルスクリプト(LPIC)

シェルスクリプト シェル上で実行できるプログラミング言語です。 変数 $$ シェルのPID $? 最後に時効したコマンドの終了値 $# 引数の数 関数 $ function snorlaxFunc() { echo 'Snorlax' } $ snorlaxFunc() Snorlax サンプル snorlax.txtがあるか調べる if [ -f ./snorlax.txt ]; then echo 'snorlax.txt is exists!' fi if test -f ./snorlax.txt; then echo 'snorlax.txt is exists!' fi 引数の数を表示する #!/bin/sh echo $# ./script.sh snorlax ditto 2 30秒ごとにSnorlaxと出力する while true do echo Snorlax sleep 30 done


シェル変数(LPIC)

シェル変数 さまざまなシェル変数についてです。 特殊なシェル変数 $$ シェルのPID $? 最後に実行したコマンドの終了値 $# 因数の個数 $* 区切り文字で区切られたすべての引数 $0 実行ファイル名 $1, $2, … 1番目の引数、2番目の引数 サンプル シェル変数を設定する $ POKEMON_SHELL=Snorlax


unalias(LPIC)

unalias エイリアスを解除するコマンドです。 サンプル $ alias snorlax='echo Snorlax' $ snorlax Snorlax $ unalias snorlax $ snorlax zsh: command not found: snorlax


alias(LPIC)

alias エイリアスを設定するコマンドです。 サンプル $ alias snorlax='echo Snorlax' $ snorlax Snorlax


SSHキーを設定する(LPIC)

SSHキーを設定する サーバー側で鍵を生成し、クライアント側にダウンロードする方法です。 ubuntuでの設定方法です。 sshでサーバーにログインする sshでサーバーにログインします。 $ ssh root@example.com 鍵を作成する rsa形式で鍵を作成します。 ~/.ssh/id_rsa.pub、~/.ssh/id_rsa に公開鍵、秘密鍵が書き出されます。 $ ssh-keygen -t rsa 秘密鍵をクライアント側にダウンロードする 秘密鍵をクライアント側にダウンロードします。 $ scp root@160.251.101.197:/root/.ssh/id_rsa . ダウンロードが完了したら秘密鍵を削除します。 $ rm /root/.ssh/id_rsa 鍵を設定する 公開鍵を authorized_keys に追加し、id_rsa.pub を削除します。 $ cat id_rsa.pub >> authorized_keys $ chmod 600 authorized_keys $ rm id_rsa.pub サーバー側sshd設定変更 秘密鍵によるログインを有効にします。 $ vi /etc/ssh/sshd_config AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 $ systemctl restart sshd.service クライアント側からsshする 鍵を指定してログインします。 $ ssh -i id_rsa root@example.com


profile、.bash_profile、.profile、.bash_login(LPIC)

bash Linuxでコマンドなどの命令文を記述したシェルを実行するために使われます。 /etc/profile、.bash_profile、.bash_login、.profile /etc/profile -> ~/.bash_profile -> ./bash_login -> ~/.profile の順番で読み込まれる。 .bash_history .bash_history にはコマンド履歴が保存されます。 $ cat /root/.bash_history HISTFILE HISTFILE にはコマンド履歴を保存するファイルが指定されます。 $ echo $HISTFILE /root/.bash_history HISTSIZE $ echo $HISTSIZE 1000


rpm2cpio(LPIC)

rpm2cpio rpmコマンドをcpioアーカイブ形式に変換し、標準出力に出力するコマンドです。 サンプル rpmコマンドをcpioアーカイブ形式に変換し、標準出力に出力する $ pm2cpio sl-5.02-1.el7.x86_64.rpm | cpio -t ./usr/bin/sl ./usr/share/doc/sl-5.02 ./usr/share/doc/sl-5.02/LICENSE ./usr/share/doc/sl-5.02/README.ja.md ./usr/share/doc/sl-5.02/README.md ./usr/share/man/ja/man1/sl.1.ja.gz ./usr/share/man/man1/sl.1.gz 37 blocks


yum,etc(LPIC)

yum yum update と yum upgrade の違い yum update はインストール済みのパッケージをアップデートするコマンドです。 yum upgrade は yum update --obsoletes と同じです。 --obsoletes は、パッケージの更新時にのみ有効なオプションで、不要になったパッケージの削除を自動で行います。 /etc/yum.conf yumの基本設定ファイルです。 $ cat [main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True best=True skip_if_unavailable=False /etc/yum.repos.d/ リポジトリサーバーの設定情報が記述されたファイルを保存するディレクトリです。 $ ls /etc/yum.repos.d/ centos-addons.repo centos.repo epel-next.repo epel-next-testing.repo epel.repo epel-testing.repo redhat.repo サンプル slコマンドをインストールする $ yum install sl パッケージグループを一覧表示する $ yum grouplist インストール済みのパッケージの一覧を表示 $ yum list installed アップデートができるすべてのパッケージを表示 $ yum list updates $ yum check-update インストール済みのrpmパッケージをyumコマンドで削除 $ yum remove sl $ yum erase sl yum updateを実行した時のアップデート対象となるパッケージの一覧を表示 $ yum check-update nginxを検索する $ yum search nginx


rpm(LPIC)

rpm Red Hat Linux や Fedora linux、CentOS などの Red Hat 系のディストリビューションで採用されているパッケージ管理システムです。 rpmコマンドやyumコマンドを利用してrpmパッケージの管理を行います。 オプション -q, –query 指定したパッケージがインストールされていればバージョンを表示(後述) -U, –upgrade パッケージをアップグレードする。 インストール済みのパッケージが存在しない場合、新規にインストールを行う。 -F, –freshen パッケージをアップデートする。 インストール済みのパッケージが存在しない場合、何も行わない。 -V, –verbose 詳細な情報を表示する -h, –hash 進行状況を#記号で表示する -e, –erase パッケージを削除する –nodeps 依存関係を無視してパッケージを削除する –allmatches パッケージ名に一致するすべてのバージョンのパッケージを削除する query のオプション -a, –all インストール済みのrpmパッケージ情報を一覧で表示 -i, –info 指定したパッケージの詳細情報を表示 -c, –configfiles 指定したパッケージ内の設定ファイルのみを表示 -p, –package インストールされたrpmパッケージではなく、指定したrpmパッケージファイルの情報を表示 -R, –requires 指定したパッケージが依存しているrpmパッケージ名を表示 ファイル名 パッケージファイルのファイル名に規則がある。 sl-5.02-1.el7.x86_64.rpm パッケージ名: sl バージョン内容: 5.0.2 リリース番号: 1.el7 アーキテクチャ: x86_64(64bit) 拡張子: rpm サンプル インストールされているslコマンドのバージョンを表示 $ rpm -q sl $ rpm --query sl sl-5.


ldd(LPIC)

ldd lddコマンドは共有ライブラリへの依存関係を表示するコマンドです。 サンプル /usr/bin/slが必要とする共有ライブラリの一覧を表示する $ ldd /usr/bin/sl linux-vdso.so.1 (0x00007ffca1f76000) libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f233b61d000) libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f233b5ee000) libc.so.6 => /lib64/libc.so.6 (0x00007f233b3e5000) /lib64/ld-linux-x86-64.so.2 (0x00007f233b651000)


ldconfig(LPIC)

ldconfig リンクの作成やライブラリのキャッシュを行うコマンドです。 ldconfig を実行すると /etc/ld.so.conf に基づいて /etc/ld.so.cache を再構築します。 /etc/ld.so.cache のファイル更新日を確認します。 $ ls -l /etc/ld.so.cache -rw-r--r-- 1 root root 20231 Aug 15 15:17 /etc/ld.so.cache ldconfig を実行します。 $ ldconfig /etc/ld.so.cache のファイルが更新します。 $ ls -l /etc/ld.so.cache -rw-r--r-- 1 root root 20231 Aug 15 15:17 /etc/ld.so.cache


whereis(LPIC)

whereis 指定されたコマンドのバイナリー、ソース、マニュアルページの場所を表示するコマンドです。 サンプル slのバイナリとマニュアルの場所を表示する $ whereis sl sl: /usr/bin/sl /usr/share/man/man1/sl.1.gz


which(LPIC)

which 指定されたコマンドがどのディレクトリに格納されているかを、PATH環境変数で指定されたディレクトリをもとに探します。


locate,updatedb(LPIC)

locate,updatedb locateはファイルを名前で検索するコマンドです。 updatedbはlocate用の検索データベースを作成します。 サンプル snorlaxをファイル名に含むファイルを検索する $ find . -name snorlax


find(LPIC)

find 指定したディレクトリ以下で、指定した検索条件に合致するファイルを検索するコマンドです。 オプション -name 指定したファイル名で検索する -type ファイルのタイプで検索する -atime 指定した日時をもとに、最終アクセスがあったファイルを検索する -mtime 指定した日時をもとに、最終更新されたファイルを検索する -maxdepth 検索するサブディレクトリの深さを指定する サンプル snorlaxをファイル名に含むファイルを検索する $ find . -name "*snorlax*" カレントディレクトリのみでsnorlaxをファイル名に含むファイルを検索する $ find . -name "*snorlax*" -maxdepth 1 カレントディレクトリ内のsnorlaxをファイル名に含むファイルを削除する $ find . -name "*snorlax*" -maxdepth 1 -print0 | xargs -0 rm 参考: findとxargsコマンドで-print0オプションを使う理由(改) rootが所有するディレクトリとファイルをすべて表示する(-uidを使う場合) $ find . -uid 0 rootユーザーのuidは0 rootが所有するディレクトリとファイルをすべて表示する(-userを使う場合) $ find . -user root x日前、 x日以上のファイルを検索する 検索対象となるファイルを作成します。 $ touch --date="2022/8/4 12:00" 8-4.txt $ touch --date="2022/8/5 12:00" 8-5.txt $ touch --date="2022/8/6 12:00" 8-6.


ln(LPIC)

ln ファイルへのリンクを作成するコマンドです。 ハードリンクとシンボリックリンクの違い 複数の実名を付ける処理がハードリンクです。 ハードリンクの場合、複数あるファイル名はどれも対等なものとなります。 ただしハードリンクは異なるディレクトリ間で作成することはできません。 シンボリックリンクは別名を付けることに相当します。 シンボリックリンクを作成すると新たにファイルが生成され、リンク先のファイル名とパスが保持されます。 具体例で説明します。 まずはファイルを作成します。 $ touch file.txt ファイルの詳細を確認します。 $ ls -li file.txt 393491 -rw-r--r-- 1 root root 0 Aug 8 01:38 file.txt ハードリンクを作成します。 $ ln file.txt file-hard.txt 2つのファイルの詳細を確認します。 $ ls -li file.txt $ ls -li file-hard.txt 393491 -rw-r--r-- 2 root root 0 Aug 8 01:38 file.txt 393491 -rw-r--r-- 2 root root 0 Aug 8 01:38 file-hard.txt ハードリンクではiノードの値が共に 393491 であることがわかります。 またハードリンクを作成したことで、リンク数が1から2へと増えていることがわかります。 次にシンボリックリンクを作成します。 $ ln -s file.


chgrep(LPIC)

chgrep 指定されたファイルの所有者と所有グループを変更します。


chown(LPIC)

chown 指定されたファイルの所有者とグループを変更します。 オプション -R ディレクトリのみに指定が可能であり、サブディレクトリを含め再起的に所有者、グループが変更される。 サンプル ファイルの所有者、グループを変更する snorlaxでファイルを作成します。 $ su snorlax $ touch file.txt $ ls -l file.txt -rw-rw-r-- 1 snorlax snorlax 0 Aug 14 00:51 file.txt ファイルの所有者とグループをrootに変更します。 $ chown root:root file.txt $ ls -l file.txt -rw-rw-r-- 1 root root 0 Aug 14 00:51 file.txt ユーザー名:グループ名 ではなく、ユーザー名.グループ名 でも変更できます。 $ chown snorlax.snorlax file.txt $ ls -l file.txt $ -rw-rw-r-- 1 snorlax snorlax 0 Aug 14 00:51 file.txt


umask(LPIC)

umask デフォルトのパーミッションを決定するumask値を確認、設定するコマンドです。 ファイルの場合は666からumask値を削除したもの、ディレクトリの場合は777からumask値を削除したものがデフォルトのパーミッションになります。 サンプル umask値を確認する $ umask 022 umask値に027を設定する ファイルの場合は666から027を引いたものがパーミッションとなるため、640となり、rw-r----- となります。 $ umask 027 $ touch file.txt $ ls -l file.txt -rw-r----- 1 snorlax staff 0 8 2 23:28 file.txt ディレクトリの場合は777から027を引いたものがパーミッションとなるため、750となり、rwxr-x--- となります。 $ umask 027 $ mkdir mydir $ ls -l file.txt drwxr-x--- 2 root root 4096 Aug 16 00:59 mydir


chmod(LPIC)

chmod ファイルやディレクトリに設定されているパーミッションを変更するコマンドです。 オプション -R ディレクトリに指定した場合、サブディレクトリを含め再起的にパーミッションが変更される。 シンボリックモード 文字や記号を用いてパーミッションを指定します。 ユーザー u: 所有者 g: グループ o: その他 a: すべてのユーザー 操作 +: 許可を与える -: 許可を削除する =: 許可を設定する パーミッション r: 読み取り w: 書き込み x: 実行権 オクタルモード 数字で権限を指定します。 読み取り権は4、書き込み権は2、実行権は1、権限なしは0と権限を8進数で指定できます。 読み取り、書き込み、実行の権限を与える場合は7、読み取りと書き込みの権限を与える場合は6を設定します。 サンプル シンボリックモードでパーミッションをrwxrwxrwxに変更する $ chmod a=rwx file.txt すべてのユーザーに対するパーミッションを rwx に設定します。 $ ls -l file.txt -rwxrwxrwx@ 1 snorlax staff 58 7 31 11:26 file.txt シンボリックモードでパーミッションをrwxr–r–に変更する $ chmod u=rwx,g=r,o=r file.txt $ ls -l file.txt -rwxr--r--@ 1 snorlax staff 58 7 31 11:26 file.


パーミッション(LPIC)

パーミッション ディレクトリやファイルなどを操作するための権限です。 パーミッションの読み方 左からファイルの種類、ユーザーに対するパーミッション、グループに対するパーミッション、その他のユーザーに対するパーミッションです。 ファイルの種類 - 通常ファイル d ディレクトリ l シンボリックリンク サンプル -rw-rw-r– のパーミッション - rw- rw- r-- と分解できる。 - なのでファイル。 rw- なので所有者は読み取りと書き取りができる。 rw- なのでグループは読み取りと書き取りができる。 r-- なのでその他のユーザーは読み取りができる。


groups(LPIC)

groups ユーザーのグループを表示するコマンドです。 サンプル snorlaxのグループを表示する $ groups snorlax


du(LPIC)

du ファイル、ディレクトリの使用容量の表示するコマンドです。 オプション -a ディレクトリだけでなく、すべてのファイルについて容量を表示する。


df(LPIC)

df ファイルシステムの使用状況を表示するコマンドです。 オプション -k KB単位で表示する -h 容量に合わせた適切な単位で表示する


fdisk(LPIC)

fdisk パーティションを作成、削除するコマンドです。 オプション -d 領域を削除 -l パーテションのタイプを表示 -m 利用可能なメニューの表示 サンプル 作成済みのパーティションテーブルを表示する $ fdisk -l Disk /dev/loop0: 79.95 MiB, 83832832 bytes, 163736 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop1: 44.68 MiB, 46845952 bytes, 91496 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop2: 61.


pvcreate(LPIC)

pvcreate Logical Volume Manage(LVM)は複数のハードディスクやパーティションにまたがった記憶領域を、あたかも一つのディスクとして扱うことのできるディスク管理機能です。 pvcreateコマンドは複数のハードディスクやパーティションにまたがった記憶領域を、あたかも一つのディスクとして扱うことのできるディスク管理機能です。


Filesystem Hierarcchy Standard(LPIC)

Filesystem Hierarcchy Standard Filesystem Hierarcchy Standard(FHS)はディレクトリ構造の標準を定めた仕様書です。 / ファイルシステムの頂点にあたるディレクトリ /bin 一般ユーザー、管理者が使用するコマンドが配置 /dev デバイスファイルが配置。システム起動時に接続されているデバイスがチェックされ、自動的に作成される。 /etc システム管理用に設定ファイルや、各種ソフトウェアの設定ファイルが配置。 /lib /bin や /sbin などに置かれたコマンドやプログラムが利用する共有ライブラリが配置。 /lib64 64bit用の共有ライブラリが配置。 /media /opt Linuxインストール後、追加でインストールしたパッケージが配置。 /proc /root /sbin /tmp /var /var/log /boot /usr /usr/bin /usr/lib /usr/local Linuxインストール後、追加でインストールしたパッケージ(ソフトウェア)が配置 このディレクトリ以下には bin、sbin、libなどのディレクトリが配置される。 /usr/sbin /home


tmux(LPIC)

tmux tmuxは、1画面で複数の端末(ターミナル)を操作できるアプリケーションです。


watch(LPIC)

watch 指定されたコマンドを繰り返し実行するコマンドです。 サンプル 5秒ごとに echo “snorlax” を実行するコマンド # wip 動くか試してない $ watch -n 5 echo "snorlax"


killall(LPIC)

killall プロセス名を指定してシグナルを送信する際に使用するコマンドです。 主なシグナル SIGUP シグナル番号1、端末の切断によるプロセスの終了 SIGINT シグナル番号2、割り込みによるプロセスの終了([ctrl]+[c]) SIGKILL シグナル番号9、プロセスの強制終了 SIGTERM シグナル番号15、プロセスの終了(デフォルト) SIGCONT シグナル番号18、一時停止したプロセスを再開する


kill(LPIC)

kill シグナルを送信し、プロセスを終了させるためのコマンドです。 主なシグナル SIGUP シグナル番号1、端末の切断によるプロセスの終了 SIGINT シグナル番号2、割り込みによるプロセスの終了([ctrl]+[c]) SIGKILL シグナル番号9、プロセスの強制終了 SIGTERM シグナル番号15、プロセスの終了(デフォルト) SIGCONT シグナル番号18、一時停止したプロセスを再開する


nohup(LPIC)

nohup ログアウトしてもプログラムを実行し続けるためのコマンドです。 ## サンプル バックグラウンドで sl コマンドを実行する。 $ nohup sl & バックグランドでupdatedbコマンドを実行する $ nohup updatedb &


jobs(LPIC)

jobs 実行中のジョブを表示するコマンドです。


bg(LPIC)

bg 指定したジョブをバックグラウンドに移行します。


fg(LPIC)

fg 指定したジョブをフォアグラウンドに移行します。


renice(LPIC)

renice 動作中のプロセスの優先度を変更します。


nice(LPIC)

nice プロセスの優先度をデフォルトから変更して実行するコマンドです。 nice値は -20~19 の値で変更可能です。 niceコマンドで、オプションで数値を指定しない場合のnice値は10(0+10)の優先度を付与します。


ps(LPIC)

ps プロセスの情報を得るコマンドです。 BSDでのオプション a すべてのプロセスを表示する u 詳細情報を表示する x 制御端末のないプロセス情報も表示する サンプル アクティブなプロセスをすべて表示する $ ps ax $ ps -ef


vi(LPIC)

vi ファイルの作成、編集を行うコマンド(エディタ)です。 コマンドモード、入力モード、exモードを使い分けます。 環境変数EDITOR デフォルトのエディタは環境変数EDITORで設定できます。 $ export EDITOR=/usr/bin/vi コマンドモード [ctrl] + f ファイルの末尾に向かって1画面ずつスクロール [ctrl] + b ファイルの先頭に向かって1画面ずつスクロール [数字] + dd 数字の数だけ行を削除する。 例えば 3dd であればカーソルから3行削除する。 [数字] + . 直前のコマンドを数字の回数だけ繰り返す。 例えば dd と入力して1行消したとに 3. と入力すると追加で3行消されます。 / [文字列] 現在のカーソル位置からファイルの末尾に向かって検索 ? [文字列] 現在のカーソル位置からファイルの先頭に向かって検索 A 入力モードに切り替え、行の末尾にカーソルを移動する P カーソル行の上の行に貼り付ける。 p カーソル行の下の行に貼り付ける。 ZZ ファイルの更新が無ければタイムスタンプを更新せずに保存と終了を行う 入力モード exモード :w ファイル名を変更せずにそのまま保存 :q ファイルを保存せずに終了 :q! すべて破棄して終了する :wq タイムスタンプを更新して保存と終了を行う :! viを実行しながらコマンドを実行する。


fgrep(LPIC)

fgrep fgrepは正規表現を使用せずに検索したい時に使用します。 grep コマンドではこのように正規表現を使ってファイルを検索することができます。 以下の例では先頭が sno であるポケモンを検索しています。 $ grep ^sno pokemons.txt fgrep コマンドは正規表現を使用せずにそのままの単語を検索します。 そのため以下の例では何も出力されません。 $ fgrep ^sno pokemons.txt


pgrep(LPIC)

pgrep 現在実行中のプロセスを調べて、ユーザー名、UID、GIDなどを元にプロセスIDを検索します。 オプション -u 指定されたユーザーに該当するプロセスIDを検索 サンプル snorlax のプロセスを検索 $ pgrep -u snorlax


sha256sum(LPIC)

sha256sum SHA256ハッシュ値を求めるコマンドです。 $ sha256sum file.txt e1134eadacc182c3838b5121687b4cbb6a2fa46d18aeeb7ab09f3752766a9c56 file.txt sha512sum SHA512ハッシュ値を求めるコマンドです。 $ sha512sum file.txt 68e2768a313d196590d70a5045138cb42d752b634525b7404c397228a2b368833a51dc42c19a6b5d26baf9a0a9acba5df28e40111c652d606ddf1e8ce72e00c2 file.txt


od(LPIC)

od ファイルの内容を8進数で表示するコマンドです。 オプション -d Decimal(10進数)で表示する -x Hexa Decimal(16進数)で表示する サンプル pokeons.txt の内容を16進数で出力する $ od -x pokemons.txt


wc(LPIC)

wc テキストファイルの文字数や行数を数えるコマンドです。 オプション -c バイト数だけを出力する。 -l 行数だけを出力する。 -w 単語数だけを出力する サンプル pokeons.txt の行数を出力する $ wc -l pokemons.txt


tr(LPIC)

cut ファイル内の行中の特定部分のみを取り出すコマンドです。 オプション -c 指定された位置の各文字だけを表示する -d 区切り文字を指定する -f 必要な項目を項目数で指定する サンプル ファイルから3-5文字目を取り出す 以下のような内容の number.txt があるとします。 123456789 $ cut -c 3-5 number.txt $ cut -c 3-5 number.txt 345 行からから1つ目と4つ目の要素を取り出す 以下のような内容の pokemons.txt があるとします。 snorlax:143:normal:460.0kg ditto:132:normal:4.0kg eevee:133:normal:6.5kg 1つ目の要素であるポケモン名と4つ目の要素である体重を取り出します $ cut -d : -f 1,4 pokemons.txt snorlax:460.0kg ditto:4.0kg eevee:6.5kg


tr(LPIC)

sed テキストを置換するコマンドです。 オプション -i 編集結果をファイルに書き込む。 サンプル pokemons.txtの中の最初のsnorlaxをkabigonに置換して表示する $ sed 's/snorlax/kabigon/' pokemons.txt pokemons.txtの中のすべてのsnorlaxをkabigonに置換して表示する $ sed 's/snorlax/kabigon/g' pokemons.txt


tr(LPIC)

tr 標準入力であるキーボードから入力した文字を指定した文字に変換し、標準出力であるディスプレイに表示します。 オプション -d 文字群1で合致した文字を削除する -s 文字列1で合致した文字の繰り返しを1文字に置き換える サンプル 入力された文字を大文字にする $ tr 'a-z' 'A-Z' 入力された文字からsを削除する $ tr -d 's' file.txtの英小文字をすべて大文字にする $ cat file.txt Ditto Slowpoke Snorlax $ tr 'a-z' 'A-Z' < file.txt DITTO SLOWPOKE SNORLAX 以下のコマンドでも英小文字をすべて大文字にする $ cat file.txt | tr 'a-z' 'A-Z' $ tr [:lower:] [:upper:] < file.txt $ tr '[:lower:]' '[:upper:]' < file.txt file.txtからlaxを削除して表示する $ tr -d 'lax' < file.txt Ditto Sowpoke Snor


tail(LPIC)

tail テキストファイルの末尾部分を表示するコマンドです。 デフォルトでは10行目まで表示します。 オプション -n 行数を数字で指定する。 -f ファイルの最終部分を読み続けます。増えていくログファイルの確認に便利です。 サンプル pokemons.txtの末尾を表示 $ tail pokemons.txt pokemons.txtの末尾3行を表示 $ tail -3 pokemons.txt pokemons.txtの末尾を表示し続ける $ tail -f pokemons.txt このコマンドを実行後、pokemons.txtを変更すると末尾が更新されます。


head(LPIC)

head テキストファイルの先頭部分を表示するコマンドです。 デフォルトでは10行目まで表示します。 オプション -n 行数を数字で指定する。 サンプル pokemons.txtの先頭を表示 $ head pokemons.txt pokemons.txtの先頭3行を表示 $ head -3 pokemons.txt


grep(LPIC)

grep テキストデータ内の文字列検索を行うコマンドです。 オプション -v パターンに一致しない行を表示する -n 行番号を表示する -l パターンと一致するファイル名を表示 -i 大文字と小文字を区別しないで検索を行う -e パターンを使って検索を行う サンプル pokemons.txtからSnorlaxを検索する $ grep Snorlax pokemons.txt Snorlax pokemons.txtから大文字小文字の区別なくsnorlaxを検索する $ grep -i SNORLAX pokemons.txt Snorlax pokemons.txtからSnorlax以外を検索する $ grep -v Snorlax pokemons.txt Ditto Slowpoke pokemons.txtから末尾がlaxの行を検索する $ grep -e lax$ pokemons.txt Snorlax


コマンドを続けて実行する(LPIC)

コマンドを続けて実行する 複数のコマンドを続けて実行する方法です。 サンプル ;の前のコマンドの終了コードに関わらずコマンドを順々に実行する $ snorlax ; ls &&の前のコマンドの終了コードが0ならば&&の後のコマンドを実行する $ mkdir snorlax ; ls ||の前のコマンドの終了コードが0以外ならば||の後のコマンドを実行する $ snorlax ; ls


tee(LPIC)

tee 標準入力から読み込んだデータ尾を標準出力とファイルの両方に出力するコマンドです。 サンプル pokemons.txt を行番号付きで読み込み、pokemons-with-line.txt に保存し、最初の2行を表示する。 $ cat -n pokemons.txt | tee pokemons-with-line.txt | head -2 1 snorlax 2 ditto


リダイレクト(LPIC)

リダイレクト リダイレクトをすることで出力結果やエラーをテキストファイルに出力したりすることができます。 標準出力結果を file.txt に出力する $ echo "shorlax" > file.txt 上記の例は以下の例と同等です。 $ echo "shorlax" 1 > file.txt すでに file.txt が存在する状態で上記らのコマンドを実行すると上書きされます。 標準出力結果を file.txt に追記する $ echo "shorlax" >> file.txt ファイルが存在しない場合は作成されます。 $ echo "ditto" >> file.txt $ cat file.txt shorlax ditto 標準エラー出力されたといのみファイルに出力する $ snorlax 2> error.txt snorlx は存在しないコマンドです。 $ cat error.txt zsh: command not found: snorlax 標準出力、標準エラー出力の両方をファイルに出力(追記)する $ echo "snorlax" &>> log.txt $ snorlax &>> log.txt $ cat log.txt snorlax zsh: command not found: snorlax これらの同様に標準出力、標準エラー出力の両方をファイルに出力(追記)します。


cat(LPIC)

cat cat はテキストを表示するために使うコマンドです。 オプション -n 行番号を表示します。 サンプル file.txt を表示する $ cat file.txt file.txt を行番号付きで表示する $ cat -n file.txt 複数行の文字列を表示する $ cat << END I Love Snorlax END 複数行の文字列をファイルに保存する $ cat << END > snorlax.txt I Love Snorlax END


less(LPIC)

less less は1画面に収まらないような長いテキストを表示するために使うコマンドです。 似たコマンドに more があります。 末尾まで行くと自動的にプロンプトへ戻るのが more、戻らないのが less です。 サンプル file.txt を表示する $ less file.txt [Space]キーを押すと次のページが表示されます。


more(LPIC)

more more は1画面に収まらないような長いテキストを表示するために使うコマンドです。 似たコマンドに less があります。 末尾まで行くと自動的にプロンプトへ戻るのが more、戻らないのが less です。 サンプル file.txt を表示する $ more file.txt [Space]キーを押すと次のページが表示されます。 ファイルの最終ページまで閲覧すると同時に終了します。


xz,unxz(LPIC)

xz,unxz xz は圧縮に、unxz は解凍に使われるコマンドです。 サンプル file1.txt をxzで圧縮する $ xz file1.txt file1.txt.xz が生成され、file1.txt が消えます。 file1.txt.xz をunxzで解凍する $ unxz file1.txt.xz file1.txt が生成され、file1.txt.xz が消えます。 file1.txt.xz を snorlax.txt.xz とリネームした後に、unxz snorlax.txt.xz と実行すると snorlax.txt が生成されます。


bzip2,bunzip2(LPIC)

bzip2,bunzip2 bzip2 は圧縮に、bunzip2 は解凍に使われるコマンドです。 サンプル file1.txt をbzip2で圧縮する $ bzip2 file1.txt file1.txt.bz2 が生成され、file1.txt が消えます。 file1.txt.bz2 をbunzip2で解凍する $ bunzip2 file1.txt.bz2 file1.txt が生成され、file1.txt.bz2 が消えます。 file1.txt.bz2 を snorlax.txt.bz2 とリネームした後に、bunzip2 snorlax.txt.bz2 と実行すると snorlax.txt が生成されます。


gzip, gunzip(LPIC)

gzip, gunzip gzip は圧縮に、gunzip は解凍に使われるコマンドです。 サンプル file1.txt をgzipで圧縮する $ gzip file1.txt file1.txt.gz が生成され、file1.txt が消えます。 file1.txt.gz をgunzipで解凍する $ gunzip file1.txt.gz file1.txt が生成され、file1.txt.gz が消えます。 file1.txt.gz を snorlax.txt.gz とリネームした後に、gunzip snorlax.txt.gz と実行すると snorlax.txt が生成されます。 解凍せずに格納されているファイル名を確認する ファイルを作成します。 $ touch file1.txt file2.txt archive.tar を作成します。 $ tar cf archive.tar file1.txt file2.txt archive.tar を圧縮します。 archive.tar が削除され archive.tar.gz が作成されます。 $ gzip archive.tar archive.tar.gz を解凍せずに格納されているファイル名を確認します。 $ gzip -dc archive.tar.gz | tar -tvf - -rw-r--r-- 0 snorlax staff 0 8 9 17:04 file1.


tar(LPIC)

tar アーカイブファイルの管理に使用するコマンドです。 オプション -c アーカイブファイルを作成する -t アーカイブファイルの内容を表示する -X アーカイブファイルを展開する -f アーカイブファイル名を指定する -v 詳細情報を表示する -j アーカイブに対して、bzip2を使用する -J アーカイブに対して、xzを使用する -Z アーカイブに対して、gzipを使用する サンプル file1.txt file2.txt を含む archive.tar を作成する $ tar cf archive.tar file1.txt file2.txt file1.txt file2.txt を含む archive.tar.gz を作成する $ tar cfz archive.tar.gz file1.txt file2.txt gzipで圧縮されているのでgunzipで解凍できます。 $ gunzip archive.tar.gz tarコマンドでも解凍と展開ができます。 $ tar zxf archive.tar.gz file1.txt file2.txt を含む archive.tar.bz2 を作成する $ tar cfj archive.tar.bz2 file1.txt file2.txt bzipで圧縮されているのでbunzip2で解凍できます。 $ bunzip2 archive.tar.bz2 tarコマンドでも解凍と展開ができます。 $ tar jxf archive.


chsh(LPIC)

chsh ユーザーをログインをできないようにするコマンドです。 サンプル ユーザーを対話的なログインをできないようにする sshコマンドによるログインやsuコマンドによるアカウントの変更ができなくなります。 $ chsh -s /bin/false snorlax $ cat /etc/passwd | grep snorlax snorlax:x:1000:1000::/home/snorlax:/bin/false


メタキャラクター(LPIC)

メタキャラクター メタキャラクターは特別な意味や役割を持つ文字です。 サンプル .txt拡張子を持つファイルを表示 $ ls *.txt mem?.md(?部分は任意の文字)を表示 $ ls mem?.md


fileコマンド(LPIC)

file ファイルの種類を調べるコマンドです。 オプション -i MINEタイプで表示する サンプル file.txt のファイルの種類を調べる $ file file.txt file.txt: ASCII text


touchコマンド(LPIC)

touch ファイルを作成するコマンドです。 サンプル hello.txtを作る $ touch hello.txt タイムスタンプを指定してhello.txtを作る $ touch --date="2022/8/8 12:00" 8-8.txt $ ls -l 8-8.txt -rw-r--r-- 1 root root 0 Aug 8 12:00 8-8.txt


rmdirコマンド(LPIC)

rmdir ディレクトリを削除するコマンドです。 サンプル helloディレクトリを削除する $ rmdir hello helloディレクトリは空である必要があります。


rmコマンド(LPIC)

rm ファイルを削除するコマンドです。 オプション -i ファイルを削除する前にユーザーへ確認する -f ユーザーへの確認無しに削除する -R(もしくは-r) 指定されたディレクトリ内にファイル、ディレクトリが存在していても全て削除する サンプル memo3.txt を削除する $ rm memo3.txt /tmp ディレクトリの下にあるサブディレクトリを全て削除する $ rm -rf /tmp/*


mkdirコマンド(LPIC)

mkdir mkdirはディレクトリを作成するコマンドです。 サンプル helloディレクトリを作成する $ mkdir hello


mvコマンド(LPIC)

mv ファイルやディレクトリの移動に使用するコマンドです。 memo.txt を memo2.txt にリネームする $ mv memo.txt memo2.txt /tmp/snorlax ディレクトリにあるすべてのファイル、サブディレクトリをカレントディレクトリに移動させる $ mv -f /tmp/snorlax/ .


cpコマンド(LPIC)

cp ファイルやディレクトリを複製する場合に使うコマンドです。 オプション -i コピー先に同名ファイルが存在する場合、上書きするか確認する -f コピー先に同名ファイルが存在する場合、上書きするか確認する -p コピーした元の所有者、タイムスタンプ、アクセス権などの情報を保持したままコピーする -R(もしくは-r) コピー元のディレクトリ改装をそのままコピーする サンプル memo.txt を memo2.txt という名前でコピーする $ cp memo.txt memo2.txt ffmepg というディレクトリ内のすべてのファイル、サブディレクトリを ffmpeg2 という名前でコピーする $ cp -r ffmepg ffmpeg2 フォルダごとcpコマンドでコピーする $ tree . └── snorlax ├── charamander └── slowpoke $ cp -r snorlax ditto . ├── ditto │ ├── charamander │ └── slowpoke └── snorlax ├── charamander └── slowpoke コマンド1、コマンド2を終了コード関係なく順々に実行する $ コマンド1 ; コマンド2 コマンド1の終了コードが0ならコマンド2を実行する $ コマンド1 && コマンド2 コマンド1の終了ステータスが0以外ならコマンド2を実行する $ コマンド1 || コマンド2 headはテキストファイルの先頭部分を表示するコマンドです。-[数字]で行数を指定します。デフォルトは10行です。 $ head -5


lsコマンド(LPIC)

ls ファイルやディレクトリの情報を一覧表示するコマンドです。 オプション -F ファイルタイプを表す記号の表示。 /はディレクトリ、*は実行可能ファイル、@はシンボリックリンク。 -a 隠しファイル(ファイル名がドット「.」で始まるファイル)の表示 -l 詳細の情報を含めて表示 -d ディレクトリの内容ではなく、ディレクトリ自身の情報の表示 サンプル ディレクトリの情報を詳細な情報を含めて一覧を表示する $ ls -ld 隠しファイルも含めて表示 $ ls -a パーミッション、ファイルの所有者、所属するグループを表示 $ ls -l


LPICレベル1で出てくるLinuxコマンドのまとめ

LPICレベル1で出てくるLinuxコマンドのまとめです。 bzip2,bunzip2 bzip2 は圧縮に、bunzip2 は解凍に使われるコマンドです。 cat cat はテキストを表示するために使うコマンドです。 cp ファイルやディレクトリを複製する場合に使うコマンドです。 file ファイルの種類を調べるコマンドです。 gzip, gunzip gzip は圧縮に、gunzip は解答に使われるコマンドです。 ls ファイルやディレクトリの情報を一覧表示するコマンドです。 mv ファイルやディレクトリの移動に使用するコマンドです。 mkdir ディレクトリを作成するコマンドです。 rm ファイルを削除するコマンドです。 rmdir ディレクトリを削除するコマンドです。 touch ファイルを作成するコマンドです。 chsh ユーザーをログインをできないようにするコマンドです。 tar アーカイブファイルの管理に使用するコマンドです。 xz,unxz xz は圧縮に、unxz は解凍に使われるコマンドです。 tee 標準入力から読み込んだデータ尾を標準出力とファイルの両方に出力するコマンドです。 more more は1画面に収まらないような長いテキストを表示するために使うコマンドです。 less less は1画面に収まらないような長いテキストを表示するために使うコマンドです。 メタキャラクター メタキャラクターは特別な意味や役割を持つ文字です。 リダイレクト 出力結果やエラーをテキストファイルに出力したりすることができます。 コマンドを続けて実行する 出力結果やエラーをテキストファイルに出力したりすることができます。 grep テキストデータ内の文字列検索を行うコマンドです。 head テキストファイルの先頭部分を表示するコマンドです。 tail テキストファイルの末尾部分を表示するコマンドです。 tr 標準入力であるキーボードから入力した文字を指定した文字に変換し、標準出力であるディスプレイに表示するコマンドです。 sed テキストを置換するコマンドです。 cut ファイル内の行中の特定部分のみを取り出すコマンドです。 wc テキストファイルの文字数や行数を数えるコマンドです。 od ファイルの内容を8進数で表示するコマンドです。 sha256sum,sha512sum SHA256ハッシュ値を求めるコマンドです。


シェル変数と環境変数

シェル変数と環境変数の違いについての解説です。 シェル変数は子プロセスでその値を呼び出すことはできませんが、環境変数は可能です。 シェル変数 シェル変数は [変数名]=[値] で設定できます。 $ MY_SHELL_VAR="This is shell variable." 環境変数 環境変数は export [変数名]=[値] で設定できます。 $ export MY_ENV_VAR="This is environment variable." シェル変数と環境変数の違い どちらも変数であるのでこのように echo で変数の値を呼び出すことができます。 $ echo $MY_SHELL_VAR // This is shell variable. $ echo $MY_ENV_VAR // This is environment variable. シェル変数と環境の違いは子プロセスでその値を使えるか使えないかです。 シェル変数は子プロセスでその値を呼び出すことはできませんが、環境変数は可能です。 たとえば以下のような script.sh を作成して実行します。 echo $MY_SHELL_VAR echo $MY_ENV_VAR $ sh script.sh 1行目のシェル変数の部分は何も表示されず、2行目の環境変数の部分のみが表示されます。 シェル変数は子プロセスに値が引き継がれないためです。 This is enviroment variable. シェル変数を環境変数にする シェル変数を環境変数にすることもできます。 export [シェル変数] で変数を環境変数にすることができます。 $ export MY_SHELL_VAR 上記コマンド実行後に sh script.


findコマンドでディレクトリを探す

findコマンドでディレクトリを探す方法です。 findコマンドで2階層以内のsnorlaxディレクトリを検索します。 . ├── slowpoke │ └── snorlax └── snorlax └── snorlax └── snorlax └── snorlax └── snorlax find . -type d -maxdepth 2 -name "snorlax" ./snorlax ./snorlax/snorlax ./slowpoke/snorlax


cut コマンドで文字をカットする

cutコマンドを使うことで文字列を切り取ることができます。 2文字目から4文字目をカットしています。 echo "123456" | cut -b 2-4 # 234 また区切り文字を指定して切り取ることもできます。 /区切りで配列を作り、二要素目を取り出すイメージです。 0始まりではないので注意が必要です。 echo "slowpoke/snorlax/eevee/meowth/ditto" | cut -d "/" -f 2 # snorlax


id_rsa’ are too open.

以下のエラーが出てssh接続ができなくなりました。 原因は秘密鍵の権限を制限してあげることで解決しました。 WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for '/root/.ssh/id_rsa' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /root/.ssh/id_rsa $ chmod 600 /root/.ssh/id_rsa 参考 Error permission denied through ssh


tar (child): gzip: Cannot exec: No such file or directory

`tar` コマンドで解答ができずに困りました。 $ tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz tar (child): gzip: Cannot exec: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now 依存パッケージの gzip を入れてあげることで解決しました。 $ yum install gzip


sudo 時に PATH を引き継ぐ

which java と sudo which java でパスが違ったのでその解決 参考: sudo「コマンドが見つかりません」PATHが初期化されているときの対処法


CentOS7にRailsをインストールする

CentOS7にRailsをインストールした時のメモになります。 最終的なNginxの nginx.conf ファイルはこちらになります。


curlでpostでJson送るときにレスポンスヘッダーも確認したい

curlでpostでJson送るときにレスポンスヘッダーも確認したい時に使いました。 最後に --include をつけるとレスポンスヘッダーも表示されます。 http://localhost:3000/api/url -X POST -H "Content-Type: application/json" -d '{"email":"user@swiswiswift.com", "password":"password"}'--include


curlでpostでJson送る

Macのターミナルからcurlコマンドでjsonをpostする方法です。 ローカルで開発をしていて、apiの確認をしたい時によく使います。 curl http://localhost:3000/api/url -X POST -H "Content-Type: application/json" -d '{"email":"kabigon@swiswiswift.com", "password":"password"}'


rootのログインを禁止にする

VPSを借りて一番最初に行うrootのログインの禁止のメモです。 rootでサーバーにログインしてパスワードを入力します。 $ ssh -l root xxx.xxx.xxx.xxx ユーザーの追加をします。onojunというユーザーを追加します。 $ adduser onojun パスワードを設定します。OSによってはadduserの時に設定するはずです。 $ passwd onojun 一旦ログアウします。 $ exit 作成したonojunでログインできるか確かめます。SSHのログインコマンドはお好みで $ ssh onojun@xxx.xxx.xxx.xxx ログインできたらrootに切り替えます。 $ su - sshの設定ファイルを編集します。バックアップも作って上げます。 $ cd /etc/ssh $ cp sshd_config sshd_config.old vimで設定ファイルを編集します。PermitRootLogin noにしてあげます。 $ vim sshd_config 40行目ぐらいにあります。 PermitRootLogin no ssshの再起動 $ service sshd restart rootでログインできなかったら終わり!!