タグ

ブックマーク / rcmdnk.com (36)

  • Batsを使ったシェルスクリプトのテスト

    B! 58 0 0 0 (Bashの)シェルスクリプトに関してテストを導入するために フレームワークとしてBatsを導入します。 bats batsの使い方 assertion シェルスクリプトでなくても使える bats シェルスクリプトのテストツールとして恐らく一番有名なツール。 オリジナルはこちら。 こちらは4年くらい前に更新が止まっていますが、 個人でメンテナンスを続けていくことが難しくなったときに みんなで続けていこうとして使われる様になったのが 以下のレポジトリ。 batsというアカウントはすでに他に取られていたのでこういう名前になった模様。 Call for Maintainers · Issue #150 · sstephenson/bats Information about community-maintained fork · Issue #236 · sstephen

    Batsを使ったシェルスクリプトのテスト
  • 多段sshでGitを使う

    B! 46 0 1 0 外部から直接アクセスできないサーバーなどに 踏み台サーバーを通して一発でsshを行う設定がありますが、 Gitのsshを使ったアクセスについても同じようなことが出来ます。 sshを使ったGitアクセス 多段ssh ssh -Wオプションは使えない? まとめ sshを使ったGitアクセス Gitではコマンドラインからサーバーにいくつかの方法でアクセスすることが出来ますが、 認証を要する接続では鍵認証を使ったsshの接続が一番良く使われています。 ~/.ssh/git_rsaの様な鍵を用意しておいて、 同時に作ったgit_rsa.pubをサーバー側に登録し 以下の様な設定を~/.ssh/configに加えます。 ~/.ssh/config 1 2 3 4 Host github.com HostName github.com User git IdentityFile

    多段sshでGitを使う
  • .bashrc/.zshrcを再読込した際にPATHを余計に追加しないようにする方法

    B! 9 0 0 0 BashやZshで設定ファイルである.bashrcや.zshrcをちょっと変更して 再び読み込む場合、 PATHの値などは基付け加えていく様な設定になってるため、 読み込む度に同じPATHが付け加えられていってやたら長いPATHの値になったりしてしまいます。 そういったことを避けるために最初にちょっと付け加えておく設定について。 .bashrc/.zshrcでのPATHなどの設定 _reset_path PATHを追加する時のもチェックする .bashrc/.zshrcでのPATHなどの設定 .bashrc/.zshrc の中で export PATH=/home/USER/bin:$PATH みたいな設定をして自分用のPATHを追加する事があると思います。 この設定のまま.bashrc/.zshrcを再び読み込むと $ echo $PATH /home/USER/

    .bashrc/.zshrcを再読込した際にPATHを余計に追加しないようにする方法
  • Macでフォルダの中身を全部取り出すサービスをAutomator作る

    B! 14 0 2 0 Macでフォルダの中身をその場で一つ上のフォルダに取り出したい時に 右クリックから一発で出来る様なサービスを Automatorを使って作ってみました。 やりたいこと Automatorからサービスを作る ショートカットに割り当てる まとめ やりたいこと 例えば沢山のフォルダに分かれてるファイルを 一つのフォルダにまとめたいとき、 一つ一つ移動させたりする必要があります。 また、Zip等に圧縮されたファイルを展開すると 余計に一つフォルダが出来て中身を直接その場に置きたいこととかがあります。 XtraFinderを を使っていればGUIでもカット&ペースト出来たりシますが、 そうでないと移動させるには2つFinderを立ち上げてドラッグしたり 結構面倒。 /blog/2014/05/19/computer-mac-finder/#xtrafinder/ そういった時

    Macでフォルダの中身を全部取り出すサービスをAutomator作る
  • bash-powerline: Bashのプロンプトをリッチに

    B! 10 0 7 0 ターミナルで作業する際に常に目にするプロンプト部分ですが、 bash-powerlineを使うと簡単にリッチなプロンプトにすることが出来ます。 bash-powerline bash-powerline インストールは スクリプト(https://raw.githubusercontent.com/riobard/bash-powerline/master/bash-powerline.sh) を適当な所に置いて.bashrcなどで読み込む様にしてあげれば良いだけです。 こんな感じで灰色の背景の上に現在のディレクトリと 環境に合わせたマークが出ます。 環境はMac (uname=Darwin):(リンゴマーク)、Linux(uname=Linux):$, その他:% と言うマークが出るようになっています。 このマークは通常は緑背景、コマンドが失敗した直後は赤い背景

    bash-powerline: Bashのプロンプトをリッチに
  • lessの一歩踏み込んだ使い方

    B! 44 0 2 0 ターミナルでドキュメントを開く手軽なコマンドのlessですが、 小さなものならcatで良かったり、 サイズがそこまで大きく無ければvim等のエディタで開いてみてしまったりすることが多いです。 というのもlessの機能を余り知らないのでvimなどで見た方が色々と便利だったりするので。 しかしlessも実は結構高機能で便利だったりするので知っていると 使えることも結構あります。 その辺の一歩踏み込んだlessの使い方について。 less オプションのプレセット指定 表示中にオプションを切り替える シンタックスハイライト(source-hilight、ついでにlesspipe.shについて) 途中からエディタで開く 複数のファイルを扱う tail -fの代わりに使う less lessはMark Nudelman氏によって書かれたもので、今は GNU Projectの一つ

    lessの一歩踏み込んだ使い方
  • プロンプトの戯れ

    B! 10 0 2 0 最近色々.bashrcだとか整理している時に、プロンプトの表示を変更しようと思い、 結局何が必要なのか考えたのですが、 普通、ディレクトリ名やユーザー名、ホスト名などを入れていると思いますが、 普段はGNU screenを使っていて、 常に各領域にディレクトリパスも表示させてるので、プロンプトに情報を表示 させとく必要が特に無いわけです。 そこで、プロンプト表示でちょっと遊んでみました。 これまでのプロンプト 顔文字にしてみる ランダムに顔を変えてみる これまでのプロンプト ここではbashでの話です。 プロンプトはPS1というシェル変数を変更してやることで表示を変えてやることが出来ます。 手元の環境だと、デフォルトでは/etc/bashrc内で次のように設定されています。 # System-wide .bashrc file for interactive bas

    プロンプトの戯れ
  • Macで使えるターミナルエミュレーターアプリ達

    B! 26 0 1 0 MacWindowsに比べて便利な点として 最初からUnixベースのターミナルコマンドが使える事があるかと思いますが、 ちょっと現時点でMacで使えるターミナルエミュレーターを調べてみました。 ターミナル.app iTerm2 Alacritty kitty Hyper Cathode cool-retro-term Black Screen Atom + platformio-ide-terminal TotalTerminal まとめ ターミナル.app 最初から入っているターミナルアプリ。 /Applications/Utilitiesの下に入っています。 日語表示は問題なく出来ます。 Windowsと比べてmacOSが使われる理由の一つがこのターミナルアプリが 最初から入っている事だと思います。 もちろん、そもそもMacがUnixベースなため そのターミ

  • shell-logger: シェルスクリプトで良い感じにログアウトプットを管理する

    B! 13 0 0 0 プログラムを書いている時に出力をDEBUGやERRORと言った レベルに分けておいたりすることがよくあると思いますが、 シェルスクリプトでそんなツールを用意してみました。 ちょっと工夫としては、ファイルへ出力されたりパイプでコマンドに渡す様な時は、 grepとかでやっているように色の装飾などを消す、という作業をしてる点。 shell-logger 使える関数 オプション shell-logger内で使ってるShell技 出力がファイルなどへの出力かどうか調べる 変数が数値であるかどうかチェックする 標準エラー出力を直接行うコマンド Zshの配列の調整 シェルスクリプトで使う色のチェックなど shell-logger このレポジトリにあるetc/shell-logger.shをsource .../etc/shell-logger.sh等として読み込むと errやwa

    shell-logger: シェルスクリプトで良い感じにログアウトプットを管理する
  • GNU screenで再接続時に二重起動を防ぐスクリプト

    B! 7 0 0 0 GNU screenは何と言っても一度ターミナルを落としたりsshが切れたりしても 再度ログインした時に同じ状態に戻せるのが便利なところですが、 たまにちょっとした作業をして残っているセッションがあるにも関わらず 新たにセッションを立ち上げてしまうことがあります。 そんな二重起動を防ぐスクリプトについて。 GNU screenの二重起動防止スクリプト GNU screenの二重起動防止スクリプト 以下の様なスクリプトを.bashrc等の設定スクリプトの中でsourceするなり 直接設定スクリプトの中に書くなりします。 screenと言うラッパー関数を作って来のscreenコマンドの代わりに これが呼ばれる様になります。 セッションが一つだけ存在する場合は $ screen -d -r します。現在Attachされていても他のターミナルでのセッションを落として 新たに

    GNU screenで再接続時に二重起動を防ぐスクリプト
  • /bin/shと/bin/bashの違い(とcronでのシェル)

    B! 29 0 1 0 シェルスクリプトを書く時にShebangに#!/bin/shの様にシェルの指定をしますが Bashの機能を使いたい場合はきちんとbashを指定しないといけません。 その辺の違いは早いうちに気づくことがあると思いますが、 cronの中でのシェルについてちょっと見落としていたのでその辺について。 /bin/shと/bin/bash RedHat系やMacなどでの/bin/sh UbuntuなどDebian系の/bin/sh シェルスクリプトに書くShebang cronジョブの時に使われるシェル /bin/shと/bin/bash RedHat系やMacなどでの/bin/sh RedHat系のLinuxで/bin/shを見てみると、 $ ls -l /bin/sh 0 lrwxrwxrwx 1 root root 4 Sep 27 2014 /bin/sh -> bas

    /bin/shと/bin/bashの違い(とcronでのシェル)
  • ターミナル作業が爽快になるターミナルエミュレーター: HyperTerm

    B! 21 0 0 0 HyperTerm はJS/HTML/CSSで作られたターミナルエミュレーターです。 プラグインを入れることによって色々な機能を持たせることが出来ます。 HyperTerm インストール 設定 HyperTerm + hyperpower その他のプラグイン その他良い所 惜しい所 まとめ HyperTerm インストール 現在はMac版のみでWindowsLinux版は開発中、とのこと。 Macでは直接 ホームページにあるDownloadリンクからダウンロードするか、 Homebrewを使っていればCaskを使って $ brew cask install hyperterm で入ります。 追記: 2016/10/31 プロジェクトがHyperという名前になり、 アプリの名前やホームページも全てHyperTermからHyperに変更されています。 コレに伴い、Ca

    ターミナル作業が爽快になるターミナルエミュレーター: HyperTerm
  • シェルスクリプトで文字列のハイライトをsedで削除する

    B! 13 0 0 0 sentaku というシェルスクリプトのツールをアップデートしている時に、 文字列のハイライト部分を変換したいことがあったのでそのメモ。 シェルスクリプトでの文字列の装飾 sedで削除する sentaku シェルスクリプトでの文字列の装飾 printfのコマンドで文字列を出力する際、 printf "\e[7maaa\e[m" とすると、aaaをバックグランドと文字色を反転させて表示させる事が出来ます。 (文字列はクォートで囲う必要あり。) ここで最初の\eはエスケープで[とmで挟まれた7の数字がこの反転を指定しています。 N 表示 0 デフォルト 1 太字(Bold)、または強調表示 2 薄く表示、もしくはsecond colorの指定があればそれ 3 イタリック 4 アンダーライン 5 ゆっくり点滅 (<150/分) 6 素早く点滅 (%gt;150/分) 7

    シェルスクリプトで文字列のハイライトをsedで削除する
  • Python2.XとPython3.Xを共存させる: Brew-fileのアップデート

    B! 7 0 0 0 Brew-file はpython製ですが、基自分の環境が2.7なので 3.Xの方では全然テストしてませんでしたが、 3.Xで動かない、といったissueが来たので 全面的に見なおして3.Xでも動くようにしてみました。 2.7でも引き続き使える様にPython2.XとPython3.Xの共存コードになっています。 Python2.XとPython3.Xの共存 print_function xrangeは無い exceptの待受 map/filter subprocessの出力のdecode StringIO urllib2 Python2.XとPython3.Xの共存 Pythonは2.Xと3.Xで非互換な変更があり、大体のスクリプトはどちらかでしか動きません。 非互換部分が多すぎて、別途書き直したほうが良い位の事もあったりしますが、 今回、Brew-fileではは

    Python2.XとPython3.Xを共存させる: Brew-fileのアップデート
  • tmuxに慣れてみる: tmuxとGNU screenの違いなど

    B! 216 0 1 0 ターミナルマルチプレクサとして GNU Screen を普段使っていますが、 tmux の方が活発に開発されてる様に見えたり 乗り移ってく人も沢山居るみたいなので気になって何度か試してみましたが、 イマイチ違いを吸収出来ずにScreenに戻ってきてました。 無理に移行する理由もそれ程無いですが、また試してみたので 取り敢えず違いなどのメモ。 設定ファイル Prefix (Escape) コマンドモード キー設定一覧 デタッチ/アタッチ キーバインド コピーモード/履歴スクロールバック Session/Layout/Window/Pane split 全Paneに同時入力 swap-paneの問題 Status表示 .bashrcなどでの判断方法 違いが理解できたら 設定ファイル screen tmux ファイル名 ~/.screenrc ~/.tmux.conf

    tmuxに慣れてみる: tmuxとGNU screenの違いなど
  • Travis CIを使ってみた: GitHubのレポジトリにバッジを貼りたかったから

    B! 92 0 0 0 GitHubを使っていて他の人のレポジトリを見てる時によく見る このbuildのバッジが欲しくて Travis CIを使ってみました。 Travis CI Travis CIでの設定 レポジトリ側での設定: .travis.yml 実行されるコマンドの流れ 言語設定 OS設定 環境変数設定 結果の通知手段 あまり長い表示になる様なコマンドは実行できない インタラクティブなコマンドは避けるように sudoは使える バッジを貼る travisコマンド Pushした際にコマンドを走らせないようにする Travis CIのページがやたら重くなった時の対処 まとめ Travis CI Travis CIのCIはContinuous Integrationの略で、 プログラムのビルドやらテストを継続的に行っていく事を指す プログラマ用語だそうです。 自分でも大事なものはテスト用

    Travis CIを使ってみた: GitHubのレポジトリにバッジを貼りたかったから
  • multitailで複数のログを同時に監視

    B! 52 0 17 0 tail -fとかのコマンドでログ等のアウトプットを プロンプト上に表示させ続ける事が出来ますが、 MultiTail というコマンドを使うと 複数のログを一つのコマンドで一気に表示し追い続ける事が出来ます。 Multitail インストール 主な起動方法 起動中のコマンド まとめ Multitail インストール インストールは Macなら、 $ brew install multitail Linuxとかなら $ yum install multitail または $ apt-get install multitail 等。 Cygwinなら $ apt-cyg install multitail もしくは自分で Download してコンパイル。 主な起動方法 インストールするとmultitailというコマンドが使えるようになります。 基的な使い方は $

    multitailで複数のログを同時に監視
  • 英文法チェックソフトのまとめ

    B! 84 0 12 0 ちょっと前に Grammarly という英文法チェックソフトがSafari/Firefox/Chromeで 無料で使えるようになったよ!というメールが来てて ちょっと気になったのでついでに他の英文法ソフトを 含めて色々チェックしてみました。 Grammarly Ginger 1Checker PaperRater GrammerCheck, GrammerChecker.me SpellCheckPlus Reverso After the Deadline 有料版いくつか Microsoft Wordの文章校閲 Vim & LanguageTool 比較してみる まとめ Grammarly Grammarly は英文法チェックソフト、 と言うより英語の文章を色々チェックしてくれるソフトです。 英文法、スペルチェックに加え、 文章の言い回しの公正もしてくれます。

    英文法チェックソフトのまとめ
  • Pythonでcallbackに引数を使う方法と注意点

    B! 20 0 0 0 Pythonでcallbackを使う時に引数を取り扱う方法について。 Pythonでcallback callbackに引数を渡す callbackへ渡す引数に変数を使う時の注意 Pythonでcallback Pythonでcallbackを使う方法として最も簡単な形としては以下の様な感じ。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 >>> class CallbackExecutor(): ... ... def __init__(self, callback): ... self.callback = callback ... ... def execute(self): ... self.callback('execute') ... ... def echo(v): ... print 'echo: %s' % v ... >>>

    Pythonでcallbackに引数を使う方法と注意点
  • ターミナルにリッチなモニターを表示させる

    B! 512 0 0 0 以前、 sparkという シェルスクリプトで棒グラフを表示するコマンドを紹介しましたが、 さらに複雑なグラフや地図などもターミナルに表示してしまおうと言う プロジェクトの紹介。 blessed-contrib termui wopr ブラウザに表示させる blessed-contrib nodeがインストールされている必要がありますが、 nodeが入っているなら取り敢えず $ git clone https://github.com/yaronn/blessed-contrib.git $ cd blessed-contrib $ npm install $ node ./examples/dashboard.js を実行してみてください。 ターミナル上に こんな感じのものが表示されると思います。 追記: 2015/11/30 上のgifはGNU screenを立

    ターミナルにリッチなモニターを表示させる