パイプで渡した出力に対して、その出力の経過時間をいい感じに表示してくれる『gnomon』というツールを見かけたので、ちょっと試してみた。 Paypalが作成しているツールのようで、node.jsで書かれているようだ。moreutilsのtsコマンドが発想元らしい。

とりあえずインストールから。npmからインストールできるようだ。


bash/zshで実行したコマンドをクラウド上にあげてhistoryを共有する『Bashhub』

bashで実行したコマンドの履歴は\~/.bash_historyというファイルに記録され、上下キーやCtrl + Rで検索して実行することができる。 で、(当たり前の話だが)ローカルにしか記録されず、他のノードでは利用することができない。

今回紹介するBashhubは、クライアントを入れて実行したコマンドをBashhub上にも送信し、同じクライアントを入れているノードでも検索・実行できるようにするというOSSのサービス(当たり前だけど、MySQLとかのログイン時にパスワードとかオプションで指定するとその辺も一緒に送信されてしまうので注意)。 zshでも利用可能なようだ。

1.

...
『Piano-rs』でターミナル上でピアノの演奏をする

全然別件の調べ物をしていたところ、『Piano-rs』なるツールを見かけた。 何するツールかというと、その名の通りPianoを弾くツールである。 ターミナルで(エッ(´・ω・`))。

お試しは、今回はUbuntu 16.04 LTSにインストールする。 以下のコマンドを実行してインストールを行う。(Rustで書かれているようなので、事前にaptでcargoをインストールしておく。alsa.pcがないと言われた場合は「libasound2-dev」を入れるといいだろう)。

git clone https://github.com/ritiek/piano-rs
cd piano-rs...

諸事情があり、OSのrootユーザは持っているけどadminユーザのパスワードが分からない(変更も今はできない)+Web画面で新規ユーザの作成を制限しているGitlabに対し、ユーザを追加するという必要があった。 で、そういった場合には「gitlab-rails」コマンドを使って処理をすることで、コンソール上からadminユーザのパスワード変更やユーザの追加と言った処理を行えるようだ。

まず、以下のコマンドを実行してgitlab-railsでコンソールに接続する。 コンソールの起動まで少し時間がかかる。

gitlab-rails console production

コンソールが起...


Apache 2.4で設定を行っていた際、同じ文字列を多用して設定することが多かったので変数を利用することにした。 Apache 2.4以降であればDefineディレクティブというものが追加されているため、それを利用することで変数を定義することができる。

Define var Value
${var}

調べ物をしてたところ、ヒストリーからTUIで対象のコマンドを選択できる「HSTR」というツールを見かけたので、実際に使ってみることにする。 gifがgithubのREADMEに上がっているので、そちらを見れば大体のイメージは湧くと思う。

1. インストール

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

CentOSの場合

sudo yum install hstr

Ubuntuの場合

sudo add-apt-repository ppa:ultradvorka/ppa
sudo apt-get update
sudo apt-get install hh

ソースから

...

sshというと22番ポートを利用するものだが、環境によっては利用できない事がある。 で、そういった場合だと443番ポート(SSL)を利用する場合が多いのだが、Webサーバなんかの場合だとすでにhttpsで使用している場合が多い。 そんなとき、sshとsslを443番ポートで同居させて、それぞれのパケットのときは適切に割り振りをしてくれるリバースプロキシのような動作をしてくれるのが『SSLH』になる。

1. インストール

CentOSやDebian系のOSを使っている場合は簡単で、yum(epelが必要)やaptからインストールが可能だ。

Debian/Ubuntu系の場合

s...

コンソール上でリストから選択してsystemdの管理が行える『Chkservice』

調べ物をしていたところ、コンソール上でsystemdの内容をリスト表示し、そこから選択して管理が行えるTUIのツール『Chkservice』なるツールを見かけたので、試しに入れてみることにした。

1. インストール

Ubuntuの場合はリポジトリが用意されているようなので、そちらからインストールができる。

Ubuntuの場合

sudo add-apt-repository ppa:linuxenko/chkservice
sudo apt-get update
sudo apt-get install chkservice

CentOSの場合

CentOSなどにイン...


ふと、ネットワークアドレスとCIDRを指定して対象範囲で利用できるIPアドレスの一覧を取得する楽な方法ないかなー、と思って調べて見たところ、『prips』コマンドというものがあるようなので備忘として残しておく。 UbuntuやMacであれば、以下のコマンドでインストールできる。

sudo apt install prips  # Ubuntuの場合
sudo brew install prips # Mac OS Xの場合

インストールできたら、以下のようにコマンドを実行することで指定レンジのIPアドレスの一覧を取得できる(ネットワークアドレスとブロードキャストアドレスも含むけど)...


ぼけーっとネットサーフィンしてたところ、Linuxで(英語だけど)コンソール上で文章を打つと、Siriみたいに対応してくれる『Betty』なるツールを見かけたので、試しに入れてみることにした。 Rubyで書かれているようだ。

とりあえず、今回はUbuntu Server 16.04 LTS上にこれを入れてみることにする。 以下のコマンドでインストールができる。

git clone https://github.com/pickhardt/betty
cd betty
ruby install.rb
source ~/.bashrc

インストールできたら、実際に使ってみよう。 例...


なんとなく興味本位で他の人とターミナルの共有方法について調べていたところ、『tmate』なるツールを見かけたので触ってみることにした。 複数のOS向けにインストールコマンドが用意されているが、今回はUbuntu Server 16.04 LTSにインストールをしてみる。

sudo apt-get install software-properties-common && \
sudo add-apt-repository ppa:tmate.io/archive    && \
sudo apt-get update                             && \
s...

ボケーッと調べ物をしてたところ、curlからPOSTした文字列をAAのQRコードにして返してくれる『qrenco.de』なるサイトを見かけた。 つまり以下のようなコマンドを実行すると、パイプで渡した文字列をQRコードにして返してくれる。

echo -e ''$_{1..20}'\bうっほっほ' |  curl -F-=\<- qrenco.de

個人的な興味から、GPUを利用したハッシュ解析ツール『hashcat』をインストールしてみたので、その備忘。 Ubuntu Desktopの場合だとaptからインストールが可能(ドライバ等に関してはまた別途インストールが必要)だが、Ubuntu Serverの場合はコンパイルをする必要がある。 まず、以下のコマンドでコンパイル用のパッケージを導入する。

sudo apt update
sudo apt install cmake build-essential checkinstall git

パッケージの導入後、以下のコマンドでソースからコンパイルを行う。

git clone h...

調べ物中、いい感じにCPU使用率を棒グラフにして出力してくれるモニタリングツール『s-tui』なるものを見かけたので、試しにUbuntu Server 16.04 LTSへインストールしてみる。 Pythonで記述されており、pipからインストールができるようだ。

sudo pip install s-tui # sudoで実行する場合
pip install s-tui --user # user権限で実行する場合

ぼけーっとネットサーフィンしていたところ、標準入力などで受け付けた内容を一度暗号化した状態っぽく表示して、その後ジワジワと平文で出力してくれる『No More Secrets』なるえらいかっこいいツールを見かけたので、Ubuntu上で試してみる。

1. インストール

以下のコマンドでgitからソースを取得し、コンパイルをする。

git clone https://github.com/bartobri/no-more-secrets.git
cd ./no-more-secrets
make nms
make sneakers
sudo make install

これでイン...


ふと、コンソール上でアスキーアートでフロー図を作成する方法ってあるのかなと調べてみたところ、vim以外だと2つほど見かけたので記述してみる。

1. groffを用いる

manページの作成などに用いられるgroffを用いることで、roffのフォーマットを使ってアスキーアートでフロー図を簡単に生成できるらしい。 以下、実行例。

blacknon@BS-PUB-UBUNTU-01:~$ cat ascii.roff
.PS
box "box1";
line
box "box2";
.PE
blacknon@BS-PUB-UBUNTU-01:~$ groff -T ascii -p asc...

前にここで書いたlinkcheckerでログインの必要なページでのリンクチェックが必要になったのだが、どうもCookieを使って接続をしてもうまくログインできなかった。 で、linkcheckerrcにログイン情報を記述して読み込ませることで対応できるようなので、以下備忘で残しておく。

まず、以下のような内容で任意のPATHにlinkcheckerrcファイルを作成する。

linkcheckerrc
[authentication] entry=.* ユーザID パスワード loginurl=https://LoginページURL loginuserfield=ユーザ...

Windows 10/Mac OS Xで動く壁紙(動画、GIFなど)を設定できるツール8個

Windows 10において、壁紙に動画を設定できるツールってどんなのがあるんだろうなと思ったので、ちょっと調べてみた。

1. 動画ファイルを壁紙に設定できるツール

1-1. Wallpaper Engine(Windows)

一時期Twitterなどで話題になっていたツール。 Steamで販売されており、ローカルにある動画ファイルやWebページを壁紙に設定することが可能だ。値段は¥398ほど。

このツールについては一時期いろんなトコで取り上げられてたので、詳細についてはそちらで確認するといいだろう。


Webサイトを巡回してリンク切れを確認するPython製のCLIツール『linkchecker』を使ってみる

リンク切れページの調査について、前回wgetコマンドを使用した方法について記述したが、これだとリンク元のページがどこかがわからないため、あまり扱いやすいとはいえない。 で、リンク切れチェック用のツールを探してみたところ、『linkchecker』なるツールが良さそうだったのでこれを使ってみることにした(ただ、最近はあまりアップデートがされていないらしく、作者にも連絡が取れてない状態でどうなるかわからない様子。とりあえず新しくプロジェクトが作成されているようなので、今後はそちらに移っていくのかなと)。

今回は、この『linkchecker』をインストールして実際にサイトのリンク切れ情...


ファイルに合わせたアイコンを付けて表示してくれる『colorls』

ぼけーっとTwitter眺めてたところ、lsにファイルの種類に応じたアイコンを付けて表示してくれる『colorls』なるプロジェクトを見かけたので、実際に入れて触ってみることにした。 今回はUbuntu 16.04 LTSで確認をしている。

Rubyで書かれているので、事前にRubyをインストールしておく必要がある。 また、アイコンを表示させるため、ターミナルに設定するフォントが必要になるようだ。 ここでは、nerd-fontsをインストールする。

git clone https://github.com/ryanoasis/nerd-fonts
cd nerd-fonts
....

日曜の夜、ふと『コンソール上でカウントダウン後にコマンドの実行とかさせてみよう』と何故か思いついたので、ちょっとやってみた。 簡単なカウントダウンであれば、以下のようにコマンドを実行すればいい(bannerやlolcatは文字を大きく表示させるためのものなので、必要なければechoとかに書き換えればいい)。

echo {3..0} | xargs -d' ' -I@ -n1 bash -c 'clear;banner "@" && sleep 1' && banner 'Boom!!!!!!!!!' | lolcat

…まぁ、コレだけなんだけど。 で、似たような何かについて探してた...


ちょっとした調べ物中、指定したコマンドの出力結果を出力に応じてコマンド出力先を指定できる『pipexec』なるものを見かけたので、面白そうなのでちょっと試してみる。

1. インストール

まずはインストールから。 DebianやUbuntu系であれば、aptからインストールが可能だ。

sudo apt install pipexec

CentOSやMac OS Xなどでは別途コンパイルが必要になるので、以下のようにコマンドを実行しコンパイル、インストールを行う。

wget https://github.com/flonatel/pipexec/releases/downl...

ここのところ、ちょっとした対応のためにレインボーテーブルについて調べていたのだが、Python3製のワードリストからレインボーテーブルを生成できる『Leprechaun』なるツールを見かけたので、試しに使ってみることにする。 指定したワードリストからハッシュ値を生成できるので、よく利用されるパスワードをワードリストに入れておけば、ランダムな文字列で生成したレインボーテーブルよりも効率よくパスワード解析ができるかもしれない。 ワードリストからの生成の他、地味にソルト(前後対応)やストレッチングも指定できるので、結構便利そうだ。 今回はUbuntu Server 16.04 LTS上でテストを...


ぼけーっとネットで調べ物してたところ、ログの簡単な集計・分析用のコマンド『petit』なるものを見かけたので、ちょっと試してみた。 Debian/Ubuntu系であればaptから、RHEL系であればrpmファイルを指定してyumからインストールできるようだ。

sudo apt install petit # Debian/Ubuntu系の場合
yum install -y http://crunchtools.com/wp-content/files/petit/petit-current.rpm # RHEL系の場合

インストールができたら、以下のようにコマンドを実行することでログを...


『Open Visual Traceroute』を使ってパケットが世界のどこを辿っているのかを見てみる

ちょっと調べ物をしていたところ、『Open Visual Traceroute』という、tracerouteを実行した際にパケットが世界のどこを飛んでいるのかを3Dの地球儀上に表示してくれるツールを見かけた。 パケットスニッファとしても利用可能、Javaで書かれているためかWindows・Mac OS X・Linux(Ubuntu・OpenSuse)とマルチプラットフォームに対応していたりと、なかなか良さそう。

インストーラーはトップページにリンクがあるので、そこからダウンロードしてインストールしてやればいいだろう(今回は手元にGUIのある環境がWindows 10なのでexeを取得)。 なお、当たり前だがJavaが必要になるので注意。


xargsライクにパラレルでコマンドを実行させる『machma』

ネットで調べ物中に、xargsみたいな使い方でパラレルでコマンドを実行させることができる『machma』なるコマンドツールを見かけたのでお試し。 GNU拡張されたxargsの場合、並列でコマンドを実行させることができるのだが、実行結果の出力時に使用したパラメータを先頭に入れて表示してくれたりするので、使い勝手はこちらのほうが良いと思う。

Golangで記述されているので、まだGoのコンパイル環境がない場合は別途用意する必要がある。 環境が用意できたら、以下のコマンドでインストールを行う。

go get github.com/fd0/machma
go install github....

CentOS 7にOSSのWebアプリケーション用SSO(シングルサインオン)ツール『LemonLDAP::NG』をインストールする

WebアプリケーションのオープンソースSSOツールというと有名なのがOpenAMだと思うが、他にも無いのかなと調べて見たところ、『LemonLDAP::NG』なるツールを見かけた。 ドキュメントもかなり揃ってるし、スクリーンショットを見る限り良さげな感じ。

今回は、とりあえずCentOS 7にインストールをして動作させるまでをやってみる(ActiveDirectoryやOpenLDAPとの連携まではまた後日)。 複数台に役割を分散させることができるようなのだが、ここでは一台で全ての役割を担当させている。 ちなみにWebサーバはApacheかNginxを選べるようなのだが、ここではN...


SQL記述時にオートコンプリートしてくれるコマンドラインのMySQLクライアント『Mycli』

ちょっとした調べ物をしていたところ、SQLの記述中に対象のデータベースに合わせてオートコンプリートしてくれるMySQLクライアント『Mycli』というツールを見かけたので、試してみる。 Pythonで書かれており、pipからインストールが可能だ。

pip install -U mycli

MacOS X やDebian/Ubuntuの場合なら、brewやaptでもインストール可能。

brew update && brew install mycli
sudo apt-get install mycli