Folioscope

“sh” タグのついた記事

  • シェルスクリプトでIPアドレスの計算

    IPAMやDHCPサーバーを実装するとき、IPアドレスを機械的に生成するために、IPアドレスの計算をする事があります。 例えばIPAMがラックやデータセンターから機械的にIPアドレスを割り当てたり、DHCPサーバーが連番のIPアドレスを割り当てたりします。 この記事ではシェルスクリプトでIPアドレスを計算する方法を紹介します。 IPアドレスと数値の変換 IPアドレスを計算する上で欠かせない操作が、IPアドレスと数値の相互変換です。 IPv4アドレスは長さ4のバイト列に過ぎませんが、通常 …

  • 温かみある、手grep作った

    シェル芸人初心者や、grepコマンド使うより手動で選んだほうがいいという状況のために、手grepツール tegrep を作りました。 ueokande/tegrep hand-grep github.com 使い方 通常のgrepのようにパイプでつなげるだけです。 command1 | tegrep | command2 あるいはファイルから読み出すこともできます。 tegrep file tegrep は $EDITOR 環境変数を見ます。また $EDITOR …

  • Bashでstdout/stderr/exit codeをキャプチャ

    Shell Script Advent Calendar 2015 7日目の記事です。BashのちょっとしたTipsです。Bashに限らないかも知れませんが、検証環境がBashしかありませんでした。 問題 Bashで $(command) と書くと、commandがサブシェルで実行され、 stdout(標準出力)を変数に格納することができます. hoge_value=$(echo 'hoge') # hoge_value => "hoge" ただ …

  • Bash用ユニットテストフレームワーク作りました

    Bash用テストフレームワークに、Batsやshunit2がありますが、イケてないなーと思ってたら、気づいたら自分で作ってました。 ueokande/bashtub Tiny unittest framework for Bash. github.com テストの結果はモダンなテストフレームワークのように、カラフルに表示します。 またFAIL時は、FAILしたテストの結果を表示します。 自分の Arch Linux 上の Bash 4.3.42 および、Travis CI 上で動作すること …

  • 新生活が捗るディレクトリ移動のaliasたち

    大きなプロジェクトは、ディレクトリ構造が深くなりがち。 そうなるとディレクトリの上下移動が激しくなり指が死ぬ。 そこで自分がいつも使っているaliasを紹介します。 気に入ったaliasは.bash_profileや.bashrcにメモしましょう。 ../.../.... ディレクトリを上下に激しく移動する人が、何度もcd ..タイプするのもムダなので、..とかにaliasします。 alias ..='cd ..' alias ...='cd ../..' …

  • BashでChefっぽいこと

    photo by Éole Itamae便利説 Chefっぽいことと言っておきながら、軽量ChefのItamaeしか触ったことありません。 しかし便利ですよね。 Itamae - Infra as Code 現状確認会 // Speaker Deck しかしChefにせよ、itamaeにせよ、環境を入れないと使えません。 とくにローカルの環境を構築したいとき、Rubyの環境やらgemやらを入れる必要があるので、本末転倒感ある。 そこでBashのChefっぽいのを試作してみした。 Bachef - …

  • VAIO Care for Linux

    VAIO Proが届いて3日、Linuxを入れて快適に作業できています。ArchWikiを見て知ったのですが、VAIO特有のいたわり充電などの機能ががLinuxでも使えるそうです。/sys/以下からアクセスできるあたり、ハードウェアかミドルウェアあたりで制御しているのでしょうか。どちらにせよWindows固有でのドライバではなさそうなので、Linuxからも制御できるみたいです。 ファイルを直接触ってもいいのですが、せっかくなのでリッチなdialogを区使った設定ツールを作りました。 英語がひ弱な …

  • ターミナルでバッテリの状態を取得

    ターミナルでバッテリー残量が表示できれば便利ですね。Linuxだと/sys/class/power_supply/BAT*にバッテリー情報があります。 デバイスをファイルとしてアクセスできるのは便利ですね。 それが黒い画面でも取得すれば便利という話。 あとはプロンプトに表示するもよし、figletに投げるもよし。

  • これまでshだと信じていたものがbashだった

    openSUSEやCentOSの場合 $ ls -la /bin/sh lrwxrwxrwx 1 root root 4 Mar 25 2013 /bin/sh -> bash shはbashのエイリアスだった. Mac OS Xの場合 $ ls -la /bin/sh -r-xr-xr-x 1 root wheel 1228304 Oct 23 13:59 /bin/sh 本物のsh(Bourne Shell)かと思いきや $ /bin/sh --version GNU bash, …

  • ターミナルにドットを描画

    LinuxなどのコンソールはANSIが制定した画面制御機能を使用することで,カーソルの移動や文字色・背景色を設定できる. 例えば"\033[${y};${x}f"をコンソールに出力することで(${x},${y})にカーソルを移動する. また"\033[$attr;${bg};${fg}m"を出力することで背景色,文字色をそれぞれ${bg},${fg}に設定できる. これらを組み合わせることで,ターミナルの任意の場所にドットを打つ関数を次のように実装できる. …

Page 1 of 2 >