シェルスクリプト / Bash プログラミング
変数
制御構文
起動時の処理
- コマンドライン引数
- ある環境変数が定義されているかチェックする (
test -z) - ある外部コマンドが使用できるかチェックする (
type -P) - シェルスクリプトを実行したユーザの名前を調べる (
$USER)
関数
パス
- 絶対パスと相対パスの変換 (
basename,dirname) - カレントディレクトリや指定したファイルの絶対パスを取得する
- 実行中のシェルスクリプトのファイル名を取得する (
$0) - 実行中のシェルスクリプトがあるディレクトリの絶対パスを取得する
- 実行中のシェルスクリプトがあるディレクトリに移動する
入出力 (I/O)
echoの結果を標準エラー出力 (stderr) に出力する (1>&2)echoで出力した文字列の中の連続するスペースが 1 つのスペースになってしまうのを防ぐechoで出力する文字の色を変える- ユーザ入力を取得する (
read) - ディレクトリ内のファイルを順に処理する (
for,while) - 外部コマンドの実行結果を 1 行ずつ処理する (
for,while,read) - テキストファイルを 1 行ずつ読み込む (
read) expectで外部コマンドの出力を待機する
日時
トラブルシューティング
Linux コマンド全般
コマンド
- ファイルやディレクトリを検索する (
find,grep) - ディレクトリ内のファイルを
zipファイルにバックアップする rsyncコマンドでディレクトリを同期する- 行番号付きでテキストファイルの内容を出力する (
cat -n,cat -b) - あるファイルがテキストファイルかどうか調べる (
file) - リダイレクトとパイプ処理のまとめ
- Linux でリダイレクトによってファイルが上書きされてしまうのを防ぐ (
set -o noclobber) - Windows で Linux 系のコマンドを使用できるようにする (Gow)
curlで HTTP のレスポンスヘッダのみを確認する例lsコマンドが使えないときにechoコマンドで代用するlsコマンドでパターンに一致するファイルだけを列挙する
システム/管理
- Linux カーネル/OS のバージョンを調べる
- bash のバージョンを調べる (
$BASH_VERSION) - Linux の各種 ID(プロセス ID やユーザ ID など)についてのメモ
- カーネルに渡されたパラメータを調べる (
/proc/cmdline) - Linux のメモリ情報を調べるコマンド
- NTP でシステム時刻を設定する
- Deep Learning や仮想通貨のマイニング時に CPU 使用率が 100% になってしまうのを防ぐ (
cpulimit) - Linux システムコールを使用して core dump を吐かないようにする (
setrlimit)
D-Bus
- D-Bus 全般
- dbus-glib
- GDBubs
- D-Bus Java
- dbus-python