テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

CLI

jqで配列の番号を追加する

以下のような配列に対して、配列の番号が知りたいときがあるかと思います。 [ "a", "b", "c" ] jqを使うことで、配列の各要素に配列番号(index)を追加することができます。 echo '["a", "b", "c"]' | \ jq 'to_entries | map({name: .value, index: .key})…

CloudWatchのログ確認を便利にする

CloudWatchのログの確認はAWSコンソールや公式のCLIよりもawslogsのほうが便利です。 pecoと連携することで、さらに便利になります。 以下のようなfunctionを.bashrcとかに書いておきます。(※zshで動作確認しています。) awslog() { local res=$(awslogs g…

Clickのテストで例外をキャッチしない

PythonのCLIフレームワークであるClickでは、テストツールも用意されており、容易にテストを書くことができます。 invokeを使えば、コマンドと引数を渡すことができますが、デフォルトでは例外をキャッチします。 通常は、exit_codeの値を比較すればよいので…

Clickでコマンド別にファイル分割する

PythonのCLIフレームワークの1つにclickがあります。 デコレータを使って簡単にCLIが作成できますが、1ファイルにすべてのコマンドのコードを書いていくと長くなります。 そこで、CommandCollectionを使って複数のコマンドをマージすることで、コマンド別に…

ArgumentParserをテストする

argparse を使うと簡単にCLIが作成できます。 そのままテストすることが少し難しかったので、調べた結果、parseするとことを別の関数に切り出して、その部分をテストするのが良さそうです。 # main.py def main(): args = parse_args(sys.argv[1:]) def pars…

freeコマンドやtopコマンドをインストールする

プレーンなDockerイメージを使っていると基本的なコマンドがインストールされていないことがあります。 その場合、 procps をインストールすることで free や top などのコマンドをインストールすることができます。 apt install procps yum install procps …

ファイルの種類が判別できるfileコマンドでできること

CLI

文字コードが判別できる テキストファイルは文字コードがいくつかあり、開けないアプリケーションもあったりするので、異なるOSの人に渡す際には事前確認しておくと良いでしょう。 $ file sample.txt sample.txt: ASCII text $ file sample.md sample.md: UT…

ファイルの文字コードをCLIで変換

CLI

文字コードを変換できるnkfコマンドを紹介ます。 インストール # mac $ brew install nkf # ubuntu $ sudo apt install nkf # centos $ sudo yum install nkf 使い方 文字コードを確認 $ nkf -g sample.txt UTF-8 fileコマンドでも確認することができます。 …

anyenv v1 のインストール/アップグレード

CLI

anyenv は pyenvやrbenvなどをまとめて管理できるツールです。 インストール $ git clone https://github.com/anyenv/anyenv ~/.anyenv $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.your_profile $ echo 'eval "$(anyenv init -)"' >> ~/.your_pr…

Google Cloud SDKのCLIを使う

インストール # macの場合のみ $ brew cask install google-cloud-sdk ... ==> Linking Binary 'bq' to '/usr/local/bin/bq'. ==> Linking Binary 'docker-credential-gcloud' to '/usr/local/bin/docker-credenti ==> Linking Binary 'gcloud' to '/usr/loc…

CLIでスピードテストを行う

CLI

リモートホストの速度測定するには、Python製のspeedtest-cliが便利です。 インストール $ pip install speedtest-cli OR $ wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py $ chmod +x speedtest-cli 実…

macのターミナルでコピペ

macOSの場合、ターミナルでコピペができます。 クリックボートにコピー $ echo 'hoge' | pbcopy クリックボートからペースト $ pbpaste hoge pbpasteはCtl+Vを使えば良いのであんまり出番はありませんが、pbcopyはそれなりに使います。 個人的に一番よく使う…

パスワードなしでsudoする

username ALL=(ALL) NOPASSWD:ALL を /etc/sudoers.d/ 配下のファイルに書き込めば良い。 echo "$(logname) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(logname) とすると楽。

ターミナルの移動ショートカット

CLI

先頭へ移動 Ctrl + a 末尾へ移動 Ctrl + e 単語の先頭へ移動(削除される) Ctrl + w 先頭へ移動(削除される) Ctrl + u

AWSのCLIをもっと便利に使うツール

AWS #2 Advent Calendar 2018 25日目の記事です。 はじめに AWS CLIを使っていますか?まだの方はぜひインストールしてみください。 www.xn--ebkc7kqd.com この記事では、AWS CLIをさらに便利に使うことができるaws-shellについて紹介したいと思います。 aws…

awscliをインストールする

インストール # macの場合のみ $ brew install awscli OR $ pip install awscli 設定 $ aws configure AWS Access Key ID [None]: xxxx AWS Secret Access Key [None]: xxxxxx Default region name [None]: ap-northeast-1 Default output format [None]: js…

Gitブランチをきれいにするワンライナー

今すぐalias登録すべきワンライナー by ゆめみ① Advent Calendar 2018 10日目の記事です。 開発していると、マージされたfeature/xxxとか不要なブランチが結構でてくるので、一括で削除するコマンドをalias登録しておくと良いです。 git checkout develop &&…