まくまくLinux/Shellノート
🏠HOME
Linux 全般のメモ。Bash や Linux シェルプログラミングなど。
ツイート
シェア
Pocket
シェルスクリプト / Bash プログラミング
シェルスクリプトのコーディングスタイル
変数
変数の基本
定数を定義する (readonly)
シェル変数/環境変数がセットされているか調べる
Bash の変数展開機能を活用する(文字列の置換、デフォルト値など)
配列
配列を作成する
配列をループ処理する
配列のサイズ(要素数)を調べる
配列に要素を追加する
配列と配列を結合する
数値
数値変数を加算/減算する
ランダムな数値を取得する ($RANDOM)
制御構文
if-else による分岐処理
case による分岐処理
for/while によるループ処理
ループ内での複数の出力をまとめてリダイレクト、パイプ処理する
起動時の処理
コマンドライン引数を取得する (
$1
,
$@
,
$*
)
コマンドライン引数の数が正しいかチェックする (
$#
)
名前付きのコマンドラインオプションを扱う (
getopts
)
ある環境変数が定義されているかチェックする (
test -z
)
ある外部コマンドが使用できるかチェックする (
type -P
)
関数
関数を定義する (function)
関数へパラメータを渡す
関数内でローカル変数を扱う
関数から戻り値を返す
関数のデフォルト引数を定義する
パス
絶対パスと相対パスの変換 (basename, dirname)
指定したファイルの絶対パスを取得する
カレントディレクトリの絶対パスを取得する
実行中のシェルスクリプトのファイル名を取得する
実行中のシェルスクリプトがあるディレクトリの絶対パスを取得する
実行中のシェルスクリプトがあるディレクトリに移動する
入出力 (I/O)
echo の結果を標準エラー出力 (stderr) に出力する (
1>&2
)
echo で出力した文字列の中の連続するスペースが 1 つのスペースになってしまうのを防ぐ
echo で出力する文字の色を変える
ユーザ入力を取得する (
read
)
ディレクトリ内のファイルを順に処理する (
for
,
while
)
外部コマンドの実行結果を 1 行ずつ処理する (
for
,
while
,
read
)
テキストファイルを 1 行ずつ読み込む (
read
)
expect で外部コマンドの出力を待機する
日時
今日の日付から YYYYMMDD のような文字列を作成する (date)
トラブルシューティング
改行コードが原因の関数定義の syntax error
D-Bus
D-Bus 全般
D-Bus 関連用語
D-Bus 関連リンクと関連ツール
GDBus と dbus-glib
dbus-glib
dbus-glib 開発用ライブラリをインストールする
dbus-glib で method call を実装する(ヘッダファイルの生成)
dbus-glib で method call を実装する(サーバ側の実装)
dbus-glib で method call を実装する(クライアント側の実装)
GDBubs
GDBus で簡単な P2P(クライアント&サーバ)アプリを実装する
GDBus サーバから signal を発行する
GDBus でバイナリデータ(バイト配列)を受け取る方法
glib の GVariant を使ってみる
D-Bus Java
D-Bus Java をインストールする
D-Bus Java で Session bus に接続してメソッドを呼び出す
D-Bus Java で P2P D-Bus サーバに接続してメソッドを呼び出すサンプル
dbus-python
dbus-python の公式サンプルコード
dbus-python で Session bus を使用するサーバ&クライアントを実装する(単純なメソッドの実装)
dbus-python で Session bus を使用するサーバ&クライアントを実装する(シグナルの実装)
dbus-python で D-Bus の P2P クライアントを実装する
Linux システム/管理
コマンド
Linux カーネル/OS のバージョンを調べる
bash のバージョンを調べる ($BASH_VERSION)
Linux の各種 ID(プロセス ID やユーザ ID など)についてのメモ
カーネルに渡されたパラメータを調べる (/proc/cmdline)
Linux のメモリ情報を調べるコマンド
NTP でシステム時刻を設定する
ディレクトリ内のファイルを zip ファイルにバックアップする
Deep Learning や仮想通貨のマイニング時に CPU 使用率が 100% になってしまうのを防ぐ (cpulimit)
プログラミング
Linux システムコールを使用して core dump を吐かないようにする (setrlimit)
Linux コマンド全般
Linuxコマンド: ファイルやディレクトリを検索する (find, grep)
Windows で Linux 系のコマンドを使用できるようにする (Gow)
rsync コマンドでディレクトリを同期する
行番号付きでテキストファイルの内容を出力する (cat -b)
あるファイルがテキストファイルかどうか調べる (file)
リダイレクトとパイプ処理のまとめ
Linux でリダイレクトによってファイルが上書きされてしまうのを防ぐ
ls コマンドが使えないときに echo コマンドで代用する
いずれかの文字列を含むファイルだけを列挙する
curl コマンド
プロキシ経由で curl コマンドを実行する
curl で HTTP のレスポンスヘッダのみを確認する
ツイート
シェア
Pocket
カテゴリ一覧
いろいろ
Android
Ansible
Blender
C/C++
Docker
Git
Go言語
Gradle
HTML/CSS
Hugo
Java
JavaScript
Kotlin
Linux/Shell
Mac
Middleman
Meta Trader
Node.js
Octave
Perforce
Perl
PHP
Python
R
Ruby
Rust
Sass
sed/awk
SQL
トレードステーション
Vagrant
VBA
Vim
Windows
天才まくまくノート
🏠HOME