シェルスクリプトでターミナルのサイズ・カーソルの現在位置を取得する
bashのシェルスクリプトで、ターミナルのウィンドウサイズやカーソルの現在位置を取得させたいということがあったので、備忘で残しておく。 1.ターミナルのサイズを取得する ターミナルのサイズを取得するのは簡単で、bashでcheckwinsizeが有効になっていれば$LINES、$COLUMNS変数に値が入る。 #!/bin/bash shopt -s checkwinsize; (:;:) echo...
View Articleシェル芸で文字列のNグラムを出力する
文字列のNグラムをシェル芸で出す場合、色々とやり方があるようなので、念の為忘れないように残しておく。 前に「響け!ユーフォニアム」でNグラムを生成していた場合は、以下のようにsedでループさせる方法で行っていた。 echo 響け!ユーフォニアム|sed ':a;p;s/\(.\)\(.*\)/\2\1/;ba' | head blacknon@BS-PUB-UBUNTU-01:~$ echo...
View Articleaptやyumなどいろいろなパッケージマネージャのラッパーとして使える『Sysget』を使ってみる
ちょっと調べ物中に、aptやyumなどのラッパーとして動作するという『Sysget』なるツールを見かけたので、試しに入れてみることにした。 READMEを見ると、以下のパッケージマネージャのラッパーとして動作するらしい。 apt-get xbps dnf yum zypper eopkg pacman emerge pkg chromebrew homebrew nix snap npm pip3...
View Articletmux.confでバージョンに応じて読み込ませる設定を変える
最近、ローカルにおいてあるtmux.confをリモートサーバで利用することが多いのだけど、その時にリモートサーバのtmuxのバージョンが古いとうまく動かないことがある。 そのため、特定の設定についてtmux.conf側でバージョンに応じて読み込みをさせる必要がでてきた。...
View Articlepecoやfzf、fzyのようにインクリメンタルサーチを行えるbashシェル関数を作成する
先日、ローカルのrcファイルをssh経由でそのまま利用する方法を知ってから色々とシェル関数を作成してる。 で、ふと「pecoとかfzf、fzyのようなインクリメンタルサーチしてくれるコマンド、ANSI Escape Codeを使えばシェルスクリプトで作れるのでは?」ということを思いついたので、ちょっとやってみた。 Contribute to blacknon/boco development by...
View Articlexargsとawkを組み合わせたようなrustで書かれたCLIツール『rargs』を試してみる
ぼーっとネットで調べものしてたところ、xargsとawkを組み合わせたようなツール『rargs』なるものを見かけたので、試しに使ってみることにする。 xargs + awk with pattern matching support. `ls *.bak | rargs -p '(.*)\.bak' mv {0} {1}` - lotabout/rargslotabout/rargs -...
View Articleローカルのrcファイルをssh越しに読み込ませるシェル芸とbocoを組み合わせてリモートのbashでhistoryのインクリメンタルサーチを行う
ちょっと前に、ssh接続時にローカルのrcファイルをそのまま読み込ませる方法について書いたけど、それと組み合わせられるようにインクリメンタルサーチ用のシェル関数で「boco」というものを作ってみた。これはANSIエスケープコードを利用してプロンプト下に標準入力で受け付けた内容を出力させて選択した内容を標準出力で表示させるシェル関数で、外部コマンドとしてgrepとsort、あとはbashの機能のみで動...
View Articlebashの組み込みtimeコマンドの結果をリダイレクトしたり別のコマンドに渡す
bashの組み込みtimeコマンドの結果を含めた状態で、リダイレクトして別のファイルに出力したりパイプで別のコマンドに渡す場合、以下のように()で囲ってグループとして扱うことで対応できる。 ( time command ... ) 2>&1 blacknon@BS-PUB-UBUNTU-01:~$ (time pwd) 2>&1 /home/blacknon real...
View ArticleWSLでリモートマシンにx11フォワーディング接続をさせる
最近はあまり使うこともないのだけど、Oracleのインストールとかをする際にsshでリモートサーバにx11フォワーディング接続をしてGUIを転送させるようなことをしていた。 で、その際はTeraterm + Xmingの組み合わせで対応することが多かったのだが、それをWSLを使ってやってみることにする。 なお、WSLで利用するOSはUbuntu...
View Articleシェル芸でブラインドSQLインジェクションを行う
ちょっと前に意図的に脆弱なシステムを作る機会があって、そこでブラインドSQLインジェクションを利用して値を取得させるように作った。...
View ArticleGNU grepであいまいな文字列(1文字違いor1文字ずれている文字列)の検索をさせる
Typoしたものが大半なのだけど、指定した文字列とN文字違ったり、1文字ずれている(「あいうえお」→「いあうえお」みたいな)文字列をヒットさせたいということがごくごくたま~にあって、それをgrepでときどきやっている。...
View Articleyum/rpmでファイルがどのパッケージに含まれるか、逆にパッケージにどのファイルが含まれるのかを調べる
yum/rpmを使っていて、指定したファイル名がどのパッケージに含まれるのか、その逆に指定したパッケージにはどのようなファイルが含まれるのかを調べる必要があったので、備忘で残しておく。 1.指定したファイル名がどのパッケージに含まれるかを調べる 指定したファイル名がどのパッケージに含まれるかを調べる場合、yumで行う場合は「yum provides」を利用する。...
View Articleシェル芸でttylogのように他のターミナルの操作をのぞき見する
数年前に、他のターミナルの操作をのぞき見できるttylogというツールについて書いてたのだけど、そのツールの動作を調べてGolangで書き直したという内容の記事を見かけた。 この記事は (http://qiita.com/advent-calendar/2015/livesense_1) 24日目の記事です。今日はクリスマスイブというこ...ターミナル画面を勝手に共有して他人の作業を覗いてみる -...
View Articleターミナル上でファイルをSyntax Highlightして表示してくれる『bat』
数年前に、LinuxでソースファイルをSyntaxHighlightして出力させるコマンドについて書いたことがあるのだが、最近batというRustで書かれたものも出たらしい。 A cat(1) clone with wings. Contribute to sharkdp/bat development by creating an account on GitHub.sharkdp/bat -...
View Articleシェル芸botに入ってるunko.towerの中、外にテキストを差し込んで遊ぶ
よく、Twitterにあるシェル芸bot(フォローされてたら「#シェル芸」 というハッシュタグ付きのツイートをつぶやくとそのシェル芸を実行して結果を引用リツイートで出してくれるボット)というボットで遊んでるのだけど、そこでよく遊んでたシェル芸を残してなかったので、備忘。...
View Articleいい感じに色分けして表示してくれるCUIのバイナリビューア『hexyl』
ネットをぼけーっと見てたところ、バイナリの値をいい感じに色分け表示してくれるCUIのバイナリビューア『hexyl』なるコマンドを見かけた。 Rustで書かれているらしい。 A command-line hex viewer. Contribute to sharkdp/hexyl development by creating an account on GitHub.sharkdp/hexyl -...
View Articleローカルorリモートマシン(ssh)でsuによるユーザ切り替え時に自動でパスワード入力をさせる
諸事情があり、sudoを使わずにsuだけでユーザを切り替えてコマンドを実行したい、その時にパスワードの入力をキーボードから行わずに自動化させたいということがあったので、調べてみた。...
View Articlesshから直接suでスイッチしつつコマンドを実行する際に仮想端末(tty)を有効にさせる
前回、sshからsuでユーザを切り替えて、ログインユーザではないユーザから直接コマンドを実行させるという内容について記述していたが、この方法だとttyの払い出しがなされないということに気づいた。 sshから直接suコマンドでユーザを切り替えてコマンドを-cオプションで実行させる場合、残念ながら仮想端末が有効にならないし、そのためのオプションというのも用意されていない。...
View ArticleVirtualBox 6.0でVMでホストオンリーアダプタでの接続をさせる
実は2019年1月で転職をしたのだけど、転職先では仮想マシンは自分のクライアントマシンで動作させるようになって、VMware FusionとかParallelsではなくVirtualBoxを使うらしい。...
View Articleapt/dpkgでファイルがどのパッケージに含まれるか、逆にパッケージにどのファイルが含まれるのかを調べる
前に、yum/rpmコマンドでファイルがどのパッケージに含まれるか、逆にパッケージを指定してどのようなファイルが展開されるかについて書いたので、今回はapt/dpkgコマンドで同様のことをする方法について残しておく。 1.指定したファイル名がどのパッケージに含まれるかを調べる...
View Article