読者です 読者をやめる 読者になる 読者になる

百日半狂乱

Shut the fuck up and write some code!!

Linuxターミナル、コマンドtips その4: シェルスクリプトのハマリ所とデバッグ手法

このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.作成の経緯はその1の冒頭および注釈に書きました. 前回の話題 コマンドや自作プログラムの入出力…

Linuxターミナル、コマンドtips その3: stdin, stderr, stdout, リダイレクト, パイプ

このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.作成の経緯はその1の冒頭および注釈に書きました. 前回の話題 ファイルを見つける(locate, find)…

Linuxターミナル、コマンドtips その1: キーボードショートカットとディレクトリの移動

このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.きっかけはRebuild.fmのep41*1.少しでも端末操作が楽しく気持ち良くなればこれ幸い. Rebuild: 41…

シェル変数のデフォルト値を設定する、未初期化時にエラーメッセージを出力してスクリプトを強制終了する

二十五日半狂乱4日目(の分)の記事 前回引用したkilltreeスクリプトの中に以下のようなコードがあった. local _sig=${2:-TERM} この${2:-TERM}は、変数展開されたタイミングで、$2に値が設定されていない場合にTERMを出力する. すなわち、結果的に$2が空だ…

SIGSTOPで停止したプロセスにSIGTERMを送ってもプロセスが死なない?

二十五日半狂乱3日目の記事 もはや、Advent Calendarでもなんでもなくなっているけど、そんな悲しい現実はさておいて. 前回の話がstackoverflowですでに議論され尽くされていて、解答の一つに自分のスクリプト似た構造のシェルスクリプトがあった. #!/bin…

指定したプロセスIDのプロセスとその子孫全てを再帰的にkillするシェルスクリプト

二十五日半狂乱、2日目の記事. 実行中のプロセスをkillしたいが、対象のプロセスをkillすると子プロセスがゾンビ化しちゃうからプロセスツリーを丸ごとkillしたくなった. どうせならkillコマンドっぽくプロセスIDで指定して、指定したプロセスをrootとして…

bashのタブ補完で余分なスペースが入るようになった場合の対処

ある時を境に、 cp /et [Tab] ↓ cp /etc/ となっていたはずのbashのタブ補完が、 cp /et [Tab] ↓ cp /etc<space> となるようになってしまった場合、 rm /etc/bash_completion.d/acroread.sh とすれば元に戻ったという話. 同様の症状を訴えている人:参考1,参考2</space>