2014年4月1日火曜日

シェルでコマンド履歴を検索する

「~/.inputrc」に以下の記述を追加すると上下矢印キーで履歴検索を行える

"\e[B":history-search-forward
"\e[A":history-search-backward

保存後

$ bind -f .inputrc

2013年11月24日日曜日

modprobeとinsmodの違い

「modprobe」と「insmod」の違いは、依存関係を調べて関連するモジュールをロードするか否かの違い。

「modprobe」コマンドは、「modules.dep(モジュールの依存関係のリスト)」を参照し関連するモジュールを先にロードする。

「module.dep」ファイルは、「depmod 」コマンドで更新を行う

2013年10月30日水曜日

空白を含む「xargs」

findで検索した結果に空白(スペース)が含まれているディレクトリやファイル名があった場合、xargsは正しく処理してくれない。
なので

find -name "検索ファイル名" -print0 | xargs -0 grep "検索文字”

のように行う。

2010年8月11日水曜日

ホスト名の変更

しばらく放置していたおかげでドメインの契約期限が過ぎてました
なので新たに別のドメインを取得今度はちょっと高めの汎用jpのドメインにしてみました

そんでもって
早速、借りてるVPSのホスト名変更にチャレンジ(By CentOS)

1.) まずは、/etc/hostsファイルを修正
127.0.0.1 "前のホスト名.net" "前のホスト名" localhost localhost.localdomain

"前のホスト名"のトコを新しいホスト名に

2.) /etc/sysconfig/networkファイルを修正
NETWORKING="yes"
GATEWAY="xxx.255.255.1"
HOSTNAME="前のホスト名.net"    <-- data-blogger-escaped-br="">


3.) ネットワークを再起動
# /etc/rc.d/init.d/network restart


で、新しいホストに更新される訳なのだが・・・・
更新されません

もしやリブートしないとイケナイ??
やってみたものの
さっき更新したファイルが前のホスト名で書き直されてる

はてはてどうしたのもか

一応、hostnameコマンドで新しいホスト名に変えてから上の手順
再度リブートしても変えられませんでした[emoji:i-202]

仕方ないのでVPSのコントロールパネルでドメイン変更を行い、再度リブートしたら変わってた

う~ん、やはりホスト名はVPS側で管理されてるのか??

疑問は残る

論理演算子の使われ方について

bashでも論理演算子の意味はC言語と同じ
けどシェルスクリプト内で変わった使われ方をしている部分を発見したので調べてみた

◆使われ方が独特な個所
[ -z "${COLUMNS:-}" ] && COLUMNS=80

普通、ANDやORは条件式で使われるのだが、if文がないけど
これいかに??


シェルスクリプトではこうゆう書き方が使われるようで
ある条件(左辺式)が成功(true:真)したら、別の条件(右辺式)を実行する
とゆう場合に使われるらしい

ANDの場合、左辺の条件式を先に判断し失敗(false:偽)だった場合、右辺は評価しない
なので上記の例だと

COLUMNSがnullだった場合、COLUMNSに80をセットする

という意味になる。

また、ORも同じような感じで使われるようで
左辺式が失敗(false:偽)した場合、右辺式を実行する
という感じで使われる。

例えば、あるファイルが存在していない場合、スクリプトを終了する場合など
[ -f "とあるファイル" ] || exit 0



ま、C言語に慣れた人だとifを使えよ!!
と言いたくなる書き方だけどね

2010年8月10日火曜日

展開の演算子

他にも以下のような展開の演算子があるのでまとめてみた

展開の演算子意味
${変数:-規定値}変数が定義されていてnullではないとき変数の値を返し、それ以外で規定値を返す
${変数:=規定値}上と同じだが、規定値を変数にセットするとこが違う
${変数:?メッセージ}変数が定義されていてnullではないとき変数の値を返し、それ以外でメッセージを出力しスクリプトを終了する
${変数:+規定値}変数が定義されていてnullではないとき規定値を返し、それ以外でnullを返す


2010年8月9日月曜日

環境変数

◆環境変数の定義
$ export 変数名=値     <--- data-blogger-escaped-br="" data-blogger-escaped-value_abc="TEST" data-blogger-escaped-x.="">

◆定義されている環境変数の確認
$ export -p

◆環境変数の削除
$ unset 変数名