先日、 ssh接続先でローカルのbashrcを使うシェル芸 というのを書いたのだが、同じような方法を使えばvimrcやtmuxの設定ファイルも持っていけることに気づいた。 bashの--rcfileオプションのように、vimでも-uオプションで使用するvimrcファイルを指定できるので、bashと同じようにプロセス置換を利用してやればいい。

ただ、vimrcやtmux.confの場合、bashrcのように1回だけ読み込ませればそれでおしまいにはならない。 コマンドを実行するたびに設定ファイルを読み込むことになるので、起動してつなげっぱなしのbashとはすこしやり方が異なる。 vim...


たまに、awkでパースした要素を使ってOSのコマンドを実行させたりすることがある。 で、さらにOSのコマンドだけではなく、さらにawkの処理を組み合わせてやりたいことがある。そういう時、ただ単にOSのコマンドを実行後に処理を記述すると、実行されるタイミングの違いによって意図した結果が得られない場合がある。

blacknon@BS-PUB-UBUNTU-01:~$ # 先にrevを実行しているが、処理速度の違いから後から実行しているprintが先に出力されている
blacknon@BS-PUB-UBUNTU-01:~$ echo TEST123 | awk '{print $0|"rev";print $0}'
TEST123
321TSET

先日実施された、第35回シェル芸勉強会に参加してきたのでその復習(第34回は腰をやって参加してないので、1個空いちゃったなー…)。 今回は、前半はそこまで厳しく無かったのだが、後半が結構難しかったので中々疲れた。

問題及び模範解答はこちら。最初に、問題等に使用するファイルをgitからcloneしておくといい。

git clone https://github.com/ryuichiueda/ShellGeiData.git

Q1.

ちょっと前に話題になっていた、curlでアクセスするとアスキーアートのParty Parrotがターミナル上で動き出すサービスをの出力をファイル...


先日のシェル芸勉強会の問題を解いている際、sedでブレース展開させてその値を置換後の値として利用させる方法を思いついたので、忘れないように備忘で残しておく。 といっても、実際やってることは前に書いた複数回ごとにヒットした箇所に対しての置換処理の応用みたいなものなんだけど。

処理方法だが、以下のようにsedを実行することで置換後の値にブレース展開をした値を順番に置き換えていく事ができる。

echo {a..g} | sed 's/ /\n \n/g' | sed -z -e's/ /'{1..100}'/'


コンソール上で、ネットワークアドレスとCIDRを指定して対象範囲のIPアドレス一覧を出力したい場合、どんな方法があるかなと思いちょっと調べてみた。 大体3個くらい(PythonとかRubyでスクリプト書くって方法を入れればもっとあるけど)を思いついたので、とりあえず残しておく。

1. nmapを使う

疎通できるネットワークにいると疎通確認が行われてしまうのでちょっと問題があるが、nmapの疎通可能IPアドレスを調査する -sL オプションを利用してやることで、対象範囲のIPアドレスの一覧を取得できる。

nmap -sL 172.16.0.0/24|grep "Nmap scan...

コンソール上で特定の文字列をワンライナーで指定回数リピートさせたい(例えば、0を10回リピート等)ということがあったので、備忘で残しておく。 いくつか方法があるようなので、それぞれ分けて残しておく。

1. ブレース展開を利用する

真っ先に利用する方法として思いつくのはブレース展開だと思う。 ただ、以下のように普通にechoにくっつけて利用すると展開時にはスペース区切りになってしまう。

echo 0{,,,,,}
blacknon@BS-PUB-UBUNTU-01:~$ echo 0{,,,,,}
0 0 0 0 0 0

一応、前にブレース展開の出力区切り文字を変更するの...


コンソール上に一行のグラフを表示させる『spark』コマンド

前々から知ってはいたのだが、コンソール上にフォント使ってグラフを描くという『spark』コマンドをインストールしてみる。
シェルスクリプトのようなのだが、フォントをうまいこと使ってグラフを書いてるのでちょっと面白い。

インストールは、以下のコマンドで行える。

sudo sh -c "curl https://raw.githubusercontent.com/holman/spark/master/spark -o /usr/local/bin/spark && chmod +x /usr/local/bin/spark"


ログなどでキーワードをハイライト表示させるのに便利なコマンド『rainbow』

先日紹介した『colout』と似たようなコマンドで、『rainbow』というコマンドがあるので今回はそれを触ってみる。

1.インストール

まずはインストール。
以下のコマンドを実行する。

git clone git://github.com/nicoulaj/rainbow.git
cd rainbow
sudo python setup.py install

2.使ってみる

インストールされたr...