POSIX準拠シェルスクリプトだけで1秒未満sleepを実現する
はじめにいつもと違って今回のはネタです。でも本当に POSIX 準拠シェルスクリプトだけで 1 秒未満のスリープを実現しています。bash 依存もしていません。使うのはシェルと POSIX 準拠では最小 1 秒単位でしか指定できないはずの sleepコマンドだけです。ネタというのは精度が良くないのと最近の...
View ArticleBashとZshの "**" (globstar) の挙動の違い
https://makiuchi-d.github.io/2020/04/11/bash-zsh-globstar.ja.html
View ArticleMSYS2_ARG_CONV_EXCL="*" によるパス変換の抑制
概要NSIS で作ったセットアップは /Sオプションの指定により、サイレントセットアップになるのですが…MinGW の bash から起動するとうまくいきません。ところが、こうすると /Sを渡せるようになりました:MSYS2_ARG_CONV_EXCL="*" ./Setup_pdftifgather.exe /S うまくいかない理由./Setup_pdftifgather.exe /S...
View Articleテレワーク時代の MacOS X Terminal の Proxy切り替え
先月から本格的な自宅勤務体制が始まりました。ネットワーク環境が変わると、TerminalのProxy設定やらsshの設定やらを変える必要があり、従来までは、Mac OS X で...
View ArticleBashでポートスキャン
概要ペネトレーションテストなどで侵害したLinuxホストから内部のネットワークに対してポートスキャンを実施することがあります。Nmapが無いことはほとんどですが、そのような時はBashの簡単なスクリプトでtimeoutコマンドをかましながら実行していましたが、timeoutコマンドがないことがありましたのでURL(※1)を参考にスクリプトを書いてみました。スクリプトportscan.sh#!/bin...
View Articleシェルスクリプトで文字列を置換するreplace_all関数を作りました(実はコーディングスタイルの解説)
はじめにタイトルのとおりですがシェルスクリプトで文字列を置換する replace_all関数を作りました。一応テストはしているのですがまだ実戦投入はしていません。もしかしたら仕様変更するかもしれないしバグもあるかもしれませんありました、後日修正しますが、関数だけでも十分利用価値がある(例えば HTML...
View ArticleGitとGitHub(とTortoiseGit)を連携させる方法
異業種転職から1年が経過し、仕事で初めてソースを触った際にGit(とAWSのCodeCommit)を使用しました。仕事ではスケジュールの関係で先輩が手取り足取り準備を進めて下さったのですが、「自分でも出来るようにしておこう」ということで試行錯誤しました。今回GitHubで試してみたのは、個人学習に使えそうだと考えたためです。 私の環境 ・Windows 10 Pro(64bit) ・Ver...
View ArticleBash と cURL で YouTube DATA API からプレイリストを取得するサンプル
YouTube API(YouTube Data API)を cURL で叩いて、YouTube プレイリストの一覧を取得したい。「youtube api curl プレイリスト 取得」と Qiita 記事に絞ってググってもピンポイントでヒットしなかったので、自分の備忘録として。TL; DR発行した API キーには「YouTube DATA...
View Article# fishの導入
fishとはインタラクティブシェル補完機能が充実インストールまずはインストール$ brew install fish $ fish -vデフォルトシェルの変更$ sudo vi /etc/shells # 末尾に /usr/local/bin/fish を追加$ chsh -s /usr/local/bin/fish # デフォルトシェルを fish...
View Articleシェルスクリプトのreadを末尾改行なしやWindows改行コードに対応させる方法
はじめにシェルスクリプトの readを使ってファイルを読み込む場合、対象のファイルの最後の行は末尾に改行がなければ読み込めないというのはある程度シェルスクリプトを書いてる人なら一度はハマったことがあるかと思います。一般的には改行で終わらせましょうという話ですが、対応せざるを得ない場合もあるかと思います。その場合の対応のさせかたです。なお(いつもどおり)POSIX...
View Articleログインシェルを変更する
ログインシェルを変更する際は、chshコマンドを使います。シェルとは人間の入力をコンピュータに伝えるプログラムのこと。ターミナル(黒い画面)を用いて操作します同じ日本語でも地域によって方言があるように、同じシェルでも様々な種類が存在します。代表的なものだと、Mac OSで使われているbashやzsh、Cシェル系のtcshなどがあります。利用できるシェルを確認する$ chsh...
View Articleラズパイでファイルマネージャーを開くとすぐに消える場合の対処法メモ
事象ラズパイでファイルマネージャーを開こうとすると、一瞬開いてすぐに消える。再起動しても現象は変わらない。↓ファイルマネージャーのアイコン直前までやっていたことラズパイのアップデートを行っていた。$ sudo apt-get update $ sudo apt-get upgrade 原因アップデートに失敗、保留があり全て完了していなかった。$ sudo apt-get upgrade...
View Articleわがままな要望を叶えたシェルスクリプトのusage関数の書き方
はじめにコマンドの使い方を表示する usage関数、書いていますか?書いていますよね?でも不満がありますよね?それは・・・ $\huge{インデント}$ 普通に書くとusage(){cat<<USAGE Usage: command [-h | --help] USAGE...
View Article" a server is already running" エラー対応の自動化(シェルスクリプト使用)
エラーの原因Dockerを使用して立ち上げたRailsコンテナのプロセスを「Ctrl + c」で強制終了し、「rails s」で再びサーバーを立ち上げようとすると" a server is already running" というエラーが発生することがあります。原因は、pids/server.pid...
View Articlebash と jq で sqlite3 をいじるためのメモ
シェル芸で sqlite3 を叩く知見がわりと溜まったのでメモついでにまとめておきます。$ sqlite3 --version 3.22.0 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2alt1 あと jq 使います。便利なので。$ jq -V jq-1.6 まず適当な tsv...
View ArticleDockerFileから、引数つきのエイリアスを通す
やりたいことDockerコンテナで引数のあるエイリアスを叩けるようにしたい。やりかた.bashrcにfunctionをEchoで記述するコードをDockerFileに書く。今回の事例では、jupyter labの立ち上げ時に任意のポートを開くコードを使用しました。例RUN echo "function jlab() { \n command jupyter lab --ip=0.0.0.0...
View ArticleWSLで末尾の".exe"を補完してコマンドを実行する
WSLはWindowsのバイナリを実行できますが、hoge.exeをhogeとして実行できません。数が多くない場合は alias...
View ArticleBashズンドコ(until, 正規表現)
たまたま3年前に流行ったズンドコキヨシの記事 in clispを見たのでBashで短く書いた(なんで)ズンドコキ・ヨ・シ!(120B)until[[${a[*]}=~(ズン\ ){4}ドコ ]];do a[++j]+=`shuf-en1ズン ドコ`;echo${a[j]};done;echo キ・ヨ・シ! 多分これが一番短いと思います
View ArticleBash でタイムスタンプを扱う
Bash でタイムスタンプや、その比較を行いたかったが、やり方を知らないことに気づいたので、焦らずしっかり調べて理解する。現在の時間の取得dateコマンドは現在時間を取得する。$ date Fri Apr 17 14:54:18 PDT 2020 上記のは現在のタイムゾーンの値であるので、大小比較が可能な、1970-01-01 00:00:00...
View ArticleBashでechoに色付けする
set-eu# Color echo# usage: echo_color -b <backcolor> -t <textcolor> -d <decoration> [Text]## Text Color# 30 => Black# 31 => Red# 32 => Green# 33 => Yellow# 34 => Blue#...
View Article