シェル
Windows のバッチスクリプトは結構難しい ちゃんと調べればそこそこ使えるのだけど、Linux のシェルに慣れた身としてはパワー不足が否めない。 かといって、Ruby やらで実装しようにも、対象のクライアントPCに入っているか気にしなくてはいけないので、でき…
前回の続き ここの続き。 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 コマンドなら以下を使う。…
はじめて使いました>< クソでかい(100M級)のファイルから一部分置換したいよ! でもファイルが多すぎるから vi で開いてもとても重いよ! って言う状態になったので sed ならストリームで扱えるからサクサク行けるんじゃね? と思い使ってみた。 結論か…
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にワンライナーで接続して、データベース一覧を取得、そのデータベース一つずつからさらにテーブルを一覧にするスクリ…