すがブロ

sugamasaoのhatenablogだよ

シェル

Windows のバッチスクリプトから脱却し、WSHを用いて JavaScript でWindows用スクリプトを書く

Windows のバッチスクリプトは結構難しい ちゃんと調べればそこそこ使えるのだけど、Linux のシェルに慣れた身としてはパワー不足が否めない。 かといって、Ruby やらで実装しようにも、対象のクライアントPCに入っているか気にしなくてはいけないので、でき…

おれが使うシェル操作まとめその2

前回の続き ここの続き。 id:seiunsky:20081029:1225298769 sort と uniq -c で出現頻度を計算する よくパフォーマンス測定でログから処理性能を導きだすのに使う。 uniq -c で回数をカウントできるのだけど、連続したデータじゃないと別々のデータとして入…

おれが使うシェル操作まとめ

シェルでの文字列操作メモ 文字列の長さを調べる STR="TEST" echo ${#STR} # 4 文字列から特定の箇所の文字を抜き出す STR="TEST" echo ${STR:0:2} # TE ただし、この書き方は Bash 2.0 以降のみ可能。代替コマンドとして GNU expr コマンドなら以下を使う。…

sed を使わなくて許されるのは小学s(ry

はじめて使いました>< クソでかい(100M級)のファイルから一部分置換したいよ! でもファイルが多すぎるから vi で開いてもとても重いよ! って言う状態になったので sed ならストリームで扱えるからサクサク行けるんじゃね? と思い使ってみた。 結論か…

for 等の区切り位置を変更する

for in 等を使う時に 改行だけで分割してくれ! とか思う時ってあるよね。 デフォルトで、区切り文字はIFS という変数に持っているので、こいつを一時的に変更してあげれば区切り文字をすきなようにできる。 1 #!/bin/sh 2 3 LIST="test1\ttest2 test3 4 tes…

実行しているシェルのディレクトリを求める

実行したシェルスクリプトのおいてあるディレクトリを取得する 実行したシェルスクリプトと同じディレクトリの下に、テンポラリのファイルを置いたりディレクトリを置いたりしたくなる事があると思うのだけど、そういったときにはそのシェルスクリプトを実行…

ユーザ名を見たい!

実行ユーザの確認 例えば、以下のようにすると、現在のユーザ名が見れる。 echo ${USER} # -> ログインユーザ名 で、ユーザをチェンジしてみる [masa@www]~% su パスワード: [root@www masa]# echo ${USER} masa root のはずが、ログイン前のユーザ名だ。su …

プロセス監視

プロセスの使っている CPU やメモリ情報を集める こんな感じのスクリプトを作ってみた。 1 #!/bin/sh 2 3 while true; 4 do 5 ps -eo "comm,pid,pcpu,pmem,rss,stat" 6 sleep 5 7 done 左から、コマンド名、PID、CPU使用率、メモリ使用率、メモリ物理使用量…

失敗したら実行する

失敗した時のみ実行する記述方法 以下のように書くと、左辺の処理が成功(exitコード 0*1)の場合に右辺を実行するようになる。 gcc hoge.c && ./a.outつまり gcc のコンパイルが正常に終了した場合にはプログラムの実行を行う、ということだ。 おれは良くこ…

MySQLのテーブル一覧を取得するスクリプト

知ってる人は当然のように使うけれど 普段シェルを使わないのでスッと書けなかったのだけど、ようやっと覚えられた気がする。 以下、MySQLにワンライナーで接続して、データベース一覧を取得、そのデータベース一つずつからさらにテーブルを一覧にするスクリ…