Corredor

ウェブ、プログラミングの勉強メモ。

Bash

色々な設定ファイルにプロキシ設定が含まれていないか確認するスクリプト

自分は、社内ネットワーク内で仕事をする時と、インターネットに直接繋いで作業する時とで、設定ファイルを使い分けている。.bashrc や .gitconfig、.npmrc などのファイルだ。 社内ネットワークで仕事する場合は、これらのファイルに社内ネットワーク向けの…

Bash での変数展開・真偽判定のまとめ

Bash における変数展開、および真偽判定の書き方を色々と試した。ただの学習記録。 変数展開 Bash 変数展開 · GitHub 真偽判定 Bash 条件式の真偽を判定する · GitHub 以上。 入門bash 第3版作者: Cameron Newham,Bill Rosenblatt,株式会社クイープ出版社/メ…

LINE Notify を使ってシェルスクリプトから LINE に通知を送る

LINE Notify というサービスを利用すると、コマンドラインから LINE アプリに対して通知を送れたりするので試してみた。 パーソナルアクセストークンを発行する curl でメッセージを送ってみる 以上 パーソナルアクセストークンを発行する まずは LINE Notif…

Mac のデスクトップ通知をシェルスクリプトから送る

MacOS Mojave で検証。Mac で Slack などを使っていると、画面の右上に表示されるデスクトップ通知。コレをシェルスクリプトから送ってみる。内部的には AppleScript を使っている。 $ osascript -e 'display notification "お知らせです" with title "タイ…

Windows GitBash で Python・Node.js・Docker が上手く動かない場合は winpty を設定する

Windows GitBash にて、$ python や $ node コマンドを叩いて、プロンプト上で簡単なコードを動かしてみたかったのだが、どうもプロンプトの応答が戻ってこない。 また、$ docker 関連のコマンドを使うと、以下のようなエラーメッセージが返ってきた。 $ doc…

Bash で一括リネームするアイデア

Bash でファイルを一括リネームしたく、やり方を調べていた。 今回リネームしたいファイル群は、 01 hoge.png 02 fuga.png 03 foo.png 04 bar.png …と、こんな風に「連番 + テキスト」となっている画像ファイルで、「テキスト」部分を除去して連番のみのファ…

history コマンドに日時も記録する

以前、ターミナルのプロンプト PS1 に \D{%F %T} という書式を加えて、現在日時を画面上に表示するようにした。コレはターミナルの実行結果をまるごとコピペすれば作業日時付きの証跡になるので有用だと思っている。 しかし、プロンプト込みで記録を取らなか…

zip・unzip コマンドでパスワードを指定する

MacOS で検証。zip・unzip コマンドを使って圧縮する時、解凍用パスワードを設定する方法。 Zip 圧縮時のパスワード指定 $ zip -e -P='【パスワード】' 【Zip ファイル名】.zip 【入れたいファイル指定…】 -e = --encrypt -P = --password -P とだけ書けば、…

Kubernetes で Pod が再起動しまくった原因は、コンテナのプロセスが終了したから

Kubernetes で動かすコンテナを作ってデプロイしたところ、Docker コンテナとして単体で動かしていた時は上手く動いていたのに、Kubernetes Pod としては正常に起動しない問題に遭遇した。 $ kubectl get pod で Pod のステータスを見ると、CrashLoopBackOff…

Bash プロンプトに日付と時刻を入れる

僕は MacOS 環境でも、GitBash (Git For Windows) 風の Bash プロンプト (PS1) を導入している。 # ~/.bash_profile にて export PS1='\n\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ ' 手前のコマンドから1行開け、「ユーザ名@…

いい加減 tar コマンドを覚えるためのまとめ

ファイルのアーカイブ、圧縮、解凍を行える tar コマンド。オプション引数が覚えられずいつも調べてしまうので、いい加減覚える。 ヘルプを見てみる BSD tar GNU tar サンプルコードについて cvf : アーカイブを作成する czvf : gzip で圧縮する cjvf : bzip…

OCI CLI・OKE・OCIR 利用時に異なるアカウントを切り替えるには

OCI (Oracle Cloud Infrastructure) 環境の参照・操作に使う OCI CLI (oci コマンド)。 なかなかいないかもしれないが、複数のテナンシーを管理していて、OCI CLI で複数の環境を操作したいという人向けに、設定ファイルの切り替え方を考えたのでご紹介。 OC…

kubectl コマンドを使うとき異なる Kubernetes 環境を切り替えるには

前回、複数のプライベート Docker レジストリを切り替えて使う方法を紹介した。 今回は Kubernetes における環境切り替えの方法。 Kubernetes の設定ファイルは、デフォルトでは ~/.kube/config というパスに配置される。特に環境変数での設定などがなければ…

異なるプライベート Docker レジストリを切り替えるには

プライベート Docker レジストリを使う際、$ docker login コマンドでそのレジストリにログインするワケだが、プライベート Docker レジストリが複数ある場合に、どうやって切り替えるか。 そもそも $ docker login している状況はどこに保持されているのか…

sed でスラッシュを含む文字列を置換したい

sed コマンドでスラッシュ / を含む文字列を置換したくなった。 普通にやるなら、文字列中のスラッシュを \/ とエスケープしてやれば良い。 $ echo 'hoge/fuga' | sed 's/e\/f/E-And-F/' hogE-And-Fuga しかし、別の変数から値を拾って使用したりする時に、…

複数の Zip ファイルを一括で解凍するシェルスクリプト

複数の Zip ファイルがあるディレクトリで、それらを一括で解凍していくスクリプトを書きたかったけど、xargs が上手く使えなかった。 ls *.zip | xargs unzip こんな感じにしてみたけどダメ。 1行でやるなら、以下のようにやると上手く行った。 $ find . -n…

Oracle Management Cloud の Log Analytics とやらを使ってみる

Oracle Management Cloud (OMC) というサービスがある。サーバのログを収集・分析して、問題が発生した場合はアラートを上げたりできる。 今回はこの OMC の中の Log Analytics 機能を中心に、使い始めてみる。 OMC の特徴 前提とするサーバ環境 OMC インス…

Oracle Application Container Cloud をコマンドラインで操作できる PSM CLI と、さらにもうちょっとだけ便利にするシェルスクリプト

Oracle Application Container Cloud (ACC) は、アプリケーション資材をデプロイしたり、ログファイルを確認したりするのにブラウザ上でポチポチしないといけないのが面倒だ。 そこで、Oracle が提供する PSM CLI というコマンドラインツールを使って、これ…

Mac の ls -l でアットマーク @ が付いているファイルがあった : Extended Attributes と xattr コマンド

Mac で ls -l してファイルを見ていた時に、何やらパーミッションの後ろにアットマーク記号 @ が付いたファイルがあることに気が付いた。 $ ls -l -rw------- 1 Neo staff 17809 1 9 15:54 my-file-1.md -rw-------@ 1 Neo staff 25246 1 16 10:14 my-file-2…

Bash でコマンド実行前に確認するイディオムおさらい

毎回忘れるので専用の記事を作ることにした。 Windows コマンドプロンプトだと set /p を使うヤツ。 Set confirm= Set /p confirm=よければ Enter を押してください・ダメなら n を入力してください: If '%confirm%'=='n' ( Rem キャンセルの場合 Goto LABE…

2つの年月日から経過日数を表示する Bash スクリプト (Mac・Windows 両対応)

2つの年月日から経過日数を表示する Bash スクリプトを作った。MacOS・Windows GitBash の両対応。 コレを date-diff みたいな名前で PATH の通っているところに保存して実行権を設定する。あとは以下のように叩く。 $ date-diff 2019-01-01 2018-01-01 365 …

CotEditor で開いているファイルを VSCode で開く Bash コマンド (AppleScript 併用)

Windows における WSH ばりに GUI ウィンドウを操作できる、MacOS の AppleScript。 今回は、「今 CotEditor で開いているファイルを、VSCode で開き直したいなぁ」という時の操作を Bash コマンド化してみる。 結論からいくと、コマンドとしてはコレだけ。 …

指定の URL・ファイルを複数のブラウザで一気に開く Bash スクリプト (Mac・Windows 両対応)

ウェブサイトのデザイン確認のため、色々なブラウザで同じページを開きたいことがある。 それを自動化するため、こんな Bash スクリプトを書いてみた。Mac と Windows (GitBash) で使える。 #!/bin/bash target="$1" if [ "$target" == "" ]; then echo 'URL…

Mac で「CotEditor で開いているファイルを Google Chrome で開く」コマンドを作る

僕は普段、Mac では「CotEditor」というテキストエディタを使っている。Windows における Notepad++ のような、軽量かつ高機能なエディタである。 僕はこの CotEditor で Markdown ファイルを書くことが多いのだが、Markdown のプレビューは Chrome ブラウザ…

Git For Windows・Git SDK の起動を爆速にする

Git For Windows やその上位互換である Git SDK (以降「GitBash」で総称する) の起動時のトロさといったら。Mac のターミナルくらい爆速で起動して使い始めたいのに、git-bash.exe を起動して最初のプロンプトが表示されるまで2・3秒待たないといけない。 今…

Excel ドキュメントの納品時に毎回やっていることを一括自動処理する Excel VBA マクロを作った

Excel で作った設計書などを納品する際にやっていることを一括で自動処理する Excel VBA マクロを作った。 まずはコード紹介 このマクロがやれること Windows・MacOS ともに動作するクロスプラットフォームを実現 他に課題とか 以上 まずはコード紹介 先にマ…

素振り環境として package.json の用意と Git 管理を一気に始めるシェルスクリプト

普段、npm パッケージを使った素振り環境を作るために、 mkdir して cd して、 npm init -y して package.json を調整して、 git init して .gitignore を作って、 git commit --allow-empty で初回コミットを打つ、 みたいなことをやっているのだが、コレを…

MacOS 版 Excel VBA で Dir() 関数の代わり・ファイル一覧を取得する

前回紹介したとおり、Mac 版の Excel VBA では、Dir() 関数がまともに動かない。特に Dir() 関数でファイルの一覧を取得するような処理が全く動かず、Windows 版とは違うコードを書かないといけない。 色々調べてみると、Excel VBA から AppleScript を実行…

カレントディレクトリ配下のファイルの作成日と更新日を指定の日時に一括変更する Mac 専用シェルスクリプト

ニホンノエスイーの皆さん用。 カレントディレクトリ配下にあるファイルの、作成日時と更新日時を、それぞれ任意の日時に変更できるシェルスクリプトを作った。date コマンドのオプションの書式や、setfile コマンドを使用したりしていることから、Mac 専用…

複数の Git ブランチを一括で削除するシェル関数

以前からなんとかならないかなーと思っていた、複数のローカルブランチを一気に消すコマンドを作った。いつ使うかというと、主に feat/ で始まるローカルブランチを一気に消したい時とか。 ほとんど以下のコードを参考にした。 参考:shellutils/git-rmbranc…