シェルスクリプトで使えるファイルサイズのみを取得するコマンドls -lでのファイルサイズの取得 ls -lコマンドでファイルサイズを取得できる。 しかしファイル名やその他の情報も表示されるため処理が必要となる。 $ ls -l ファイル名 -rw-r--r-- 1 user group 123456 May 28 23:04 ファイル名 wc -cでのファイルサイズの取得 wc -cコマンドに標準入力でファイルを流すと、ファイルのバイト数のみを取得できる。LINUX 2025-05-28 2025-05-28
dateコマンドでファイルの最終更新日時を取得する(date -r)date -r ls -lコマンドでファイルの更新日時を取得できる。 しかし更新日時の他に権限やオーナーなどの情報も表示されるため、シェルスクリプトなどで日時だけ欲しい場合などに不便。LINUX 2025-05-28 2025-05-28
jqコマンドでURIエンコードjqコマンドでURIエンコーディング 以下のように@uriフィルターを使用してURIエンコードができる。 $ echo -n '"テスト"' | jq '@uri' "%E3%83%86%E3%82%B9%E3%83%88" @uriフィルターはURIエンコードを行う。 入力をRawモードで扱う -Rオプションを指定すると、入力がJSON形式ではなくただの文字列(Rawモード)で扱える。 先述のコマンド例ではダブルクオートで囲って無理やりJSONとしているが、Rawモードを使用するとそのまま文字列を扱える。LINUX 2025-05-27 2025-05-27
【Shell Script】長い処理を待っている間に別の処理を実行するシェルスクリプトで長い処理を待っている間に別の処理を実行する 長いコマンドを処理している間に別のコマンドを実行したい場合、以下のようにすればよい。 long_command & # 長い処理をバックグラウンドで実行 jobid=$! # プロセスIDを取得 other_command # 待っている間に別の処理を実行 wait $jobid # 長い処理が終わるのを待つ &で長い処理をバックグラウンドで実行し、$!でそのプロセスIDを取得する。 other_commandで待っている間に別の処理を実行する。other_commandは&をつけずに実行しているのでブロックする。 wait $jobidで長い処理が終わるのを待つ。 プロセスIDの変数 $!は直前にバックグラウンドで実行したジョブのプロセスIDを取得するための変数。 後の処理でkillしたり、ジョブの状態を確認したりするために使用できる。LINUX 2025-05-27 2025-05-27
【Homebrew】brew installでの自動更新を無効化するHOMEBREW_NO_AUTO_UPDATE=1 brew installの実行時に、インストールしようとしているパッケージ以外のパッケージも自動的に更新される。 これを無効にするには、環境変数HOMEBREW_NO_AUTO_UPDATE=1を設定する。MAC 2025-05-27 2025-05-27
Linux OS のディストリビューションとバージョンをざっくりと確認するLinux OS のディストリビューションとバージョンを確認する方法 Linux OSの多くのディストリビューションでは/etc/os-releaseが存在し、OSのディストリビューション名やバージョン情報が記載されている。 /etc/os-releaseが存在しない場合もあるが、例えばAmazon Linux 2023では/etc/system-releaseや/etc/amazon-linux-releaseが存在する。 これらの/etc/*-releaseファイルをすべて見ればどこかにはOSのディストリビューション名やバージョン情報を取得できる。LINUX 2025-05-25 2025-05-25
【VSCode】vscodevimがCopilot Next Edit Suggestions(NES)のキー入力を邪魔する問題を解決するvscodevimがCopilot Next Edit Suggestions(NES)のキー入力を邪魔する GitHub CopilotのNext Edit Suggestionsは次の編集を提案する機能。 2025年2月現在はpreview段階で以下をsettings.jsonに追加すると有効になる。VSCODE 2025-02-23 2025-02-23
【Docker】docker-composeでホスト名を指定して立ち上げるdocker-composeでホスト名を指定して立ち上げる docker-composeでたちあげるコンテナのホスト名を指定するにはhostnameプロパティを使う。 services: web: image: rockylinux:9.3 command: tail -f /dev/null hostname: ホスト名 例 例えば以下のようにhostnameプロパティを指定する。LINUX 2025-02-02 2025-02-02
【Terraform】removedブロックでリソースを破棄せずにtfstateからのみ削除するtfstateからのみ削除する Terraformでリソースを破棄せずにtfstateからのみ削除するにはremovedブロックのlifecycle設定を使う。 removed { from = リソース lifecycle { destroy = false } } ポイントは lifecycle { destroy = false } を指定すること。 この指定により実際のリソースは削除されず、tfstateからのみ削除される。TERRAFORM 2025-01-20 2025-01-20
【Terraform】import ブロックで既存リソースを取り込むimportブロック Terraformのimportブロックは既存のリソースをTerraformの管理下に取り込むための機能。 terraform importコマンドでも同様にリソースを取り込めるが、importブロックを使うとコードで記述できる。 そのためバージョン管理化でインポートした事実を残せたり、コードレビューしたりできる。TERRAFORM 2025-01-18 2025-01-19