Corredor

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

Bash

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…

MacOS で設定する defaults コマンドをまとめてみた

これまでどこかで適当に調べては適当に実行していた defaults コマンドだが、この度一つのシェルスクリプトにまとめてみたので、それを紹介する。 Dotfiles/MacOS.sh at master · Neos21/Dotfiles · GitHub 現時点での内容は以下のとおり。 #!/bin/bash # ==…

MacOS Finder で開いているディレクトリにターミナル上で移動する Bash 関数

MacOS のターミナルで、カレントディレクトリを Finder で開きたい時は、$ open . と叩けば良い。 その逆で、「Finder で開いているディレクトリに、ターミナル上で移動したい」時のコマンドを用意する。 Finder 上からそのディレクトリのターミナルを開く際…

npm のグローバルインストールに失敗したら

macOS Mojave 環境にて。この前久々に npm パッケージをグローバルインストールしようとしたら、以下のようなエラーが出た。 $ npm install -g @neos21/neos21 npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules npm ERR! pat…

Node.js スクリプトをコマンドのように使えるようにする方法

2019年、あけましておめでとうございます。今年も宜しくお願い致します。 今日は、Node.js で書いたちょっとしたスクリプトを、コマンドとして使えるようにする手順をまとめる。大きく2種類のやり方があるのでそれぞれ紹介する。 試した環境は macOS Mojave…

Windows GitBash のプロンプト表示が遅いのをなんとかしたかった

Windows GitBash のプロンプト表示がやたらと遅い。何のコマンドも打たずに Enter を押しただけでも、何か表示がつっかえる。 何が原因かと思って調べてみたところ、どうも GitBash デフォルトのプロンプト内に設定されている __git_ps1 という関数が遅いよ…

シェルスクリプトに関する雑多な学習メモ

一つひとつを記事にするほどでもない雑多な学習メモたち。 Shebang は #!/bin/bash にしよう 命名規則 シェルスクリプトの関数 関数の戻り値が欲しい時 ローカル変数を宣言するには local を付与して宣言する 関数の引数 他ファイルに書いた変数や関数を利用…

Windows の VSCode で GitBash ターミナルを開いた時に .bash_profile が読み込まれない

最近 VSCode のターミナルを開くと、Windows GitBash ターミナルの起動時に ~/.bash_profile が読み込まれず、~/.bashrc だけが読み込まれる状態になっていた。 調べてみると、Bash を「ログインシェル」として開くようオプション引数を設定しないといけない…

Windows の VSCode 上の GitBash ターミナルで日本語表示がおかしくなった時

Windows の VSCode 上では、Git For Windows による Bash ターミナルを利用しているのだが、最近どうも日本語表示がおかしくなってしまった。 よくある「文字化け」とは違って、日本語の表示部分が <E3><83> のように、英数字と不等号記号で表現されるようになっ</e3>…

Diff に色付けする colordiff コマンドを試してみた

diff コマンドは git diff のように色付けされない。そこで、colordiff というコマンドを入れてみた。 colordiff macOS Mojave で試したので、$ brew install colordiff でインストールしたが、Linux なら apt-get とかでもインストールできるみたい。 Unifi…

Mac で指定の HTML ファイルを Chrome で開くコマンドを用意する

MacOS High Sierra にて検証。 僕は普段、.html ファイルを CotEditor というテキストエディタに関連付けしている。Finder から .html ファイルをダブルクリックすると、CotEditor で開くワケだ。 この状態で、ターミナルから $ open index.html のように op…

プロキシ環境下で ifconfig を使って自分の IP アドレスを調べる

よくグローバル IP を調べる方法として $ curl globalip.me こんな風に専用サービスを curl で叩く、というモノがあるが、プロキシ環境下では globalip.me にアクセスできなくて使えない。 参考:Shellで超簡単にグローバルIPを確認する方法 そこで調べてみ…

tar で複数ファイルを圧縮する時にワイルドカードと変数を併用する

以下のように、ある DB のデータをテーブル別にファイルを毎日吐き出すディレクトリがあるとする。 $ ls -1 data-fuga01.db data-fuga02.db data-fuga03.db # …中略… data-fuga29.db data-fuga30.db data-fuga31.db data-hoge01.db data-hoge02.db data-hoge…

コマンドプロンプト上で Unix・Linux コマンドを使えるようにする GnuWin32

GnuWin32 という、かなり古いツール群があるのだが、コレを試してみた。 簡単にいうと、Windows コマンドプロンプト上で使える Unix・Linux 風コマンドを多数提供しているコマンド集。PATH を通すだけでコマンドプロンプト上で ls とか grep とかできるよう…

Bash で利用可能なコマンド一覧を出力する compgen コマンド

以前、Bash で利用可能なコマンドを一覧表示するため、環境変数 PATH の中身を ls するようなスクリプトを紹介した。 neos21.hatenablog.com 今回さらに調べてみると、compgen というコマンドで利用可能なコマンドを一覧表示できることが分かったので紹介す…

find コマンドで特定の拡張子のみ指定 or 除外する

find コマンドがなかなか覚えられない。 特定の拡張子のファイルのみ表示する 特定の拡張子のファイルを除外する 複数の拡張子のファイルを除外する 特定の拡張子のファイルのみ表示する $ find . -type f -name "*.jpg" find . で ./、つまりカレントディレ…

Bash の Tab 補完でファイル名の大文字・小文字を区別しないようにする

Bash で cd とかする時に、ファイル名の大文字・小文字を区別しやがるのが鬱陶しいので、直し方を紹介。このやり方は Windows GitBash・Linux・MacOS で使える。 やり方は、以下の内容を書いたファイル .inputrc を、ユーザホームディレクトリ配下に置くだけ…

Bash 環境変数がどのファイルで定義されたか調べたい

Bash にて、export NO_PROXY=localhost といったように、ある環境変数をどこかのファイルで設定しているのだが、どこに書いてあるか分からない、という時に、その調べ方を調べてみた。 参考:bash - How to determine where an environment variable came fr…

Bash 上で使えるコマンド一覧を取得する!

ふと、Bash 上で使えるコマンドって全部でどれだけあるんだろう?と思い、一覧での取得方法を調べてみた。 ネットで見つけたやり方 参考:Linux - Linuxでコマンド一覧を表示するコマンドについて|teratail ↑ ドンズバな質問と回答が載っているページを見つ…

SSH 接続先でサーバを立ち上げっぱなしにしてログアウトするための Bash の書き方

自端末から、SSH で Linux (CentOS) サーバに接続し、その Linux サーバ上で Express サーバを立ち上げ、SSH 接続を切断したかった。 Express サーバは、$ npm install 後、$ node main.js と叩くと起動するようになっているのだが、ターミナルを閉じたり、…

Redmine API を利用してチケット ID からチケット情報を出力するシェルスクリプトを書いた

Redmine API を利用して、curl でチケット情報を取得し、jq で整形して出力するシェルスクリプトを書いた。引数チェックとかもするようにした。 以下のスクリプトを red とかいうファイル名で保存して、PATH が通っているところに置いて実行権限を付ければ O…

SSH 接続のパスワード入力を自動化するシェルスクリプトを作ってコマンド化した

MacOS にて実施。 SSH 接続する際、とある理由で公開鍵認証方式が使えず、sshpass という便利なツールも導入できなかったので、他の方法でパスワード入力を自動化する方法を調べた。 expect・spawn・send コマンドで作れる! 結論からいうと、以下のようなシ…