Corredor

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

Bash

find コマンドで対象ディレクトリ直下のファイルのみを絞り込みたい

find コマンドを使うと、対象ディレクトリのサブディレクトリ以下のファイルも検索対象に含んでしまう。 # カレントディレクトリ配下の Markdown ファイルを全て出力する $ find . -type f -name '*.md' ./AAA.md ./BBB.md ./CCC/ccc.md ./DDD/ddd/DdD.md そ…

グローバル IP アドレスを取得するウェブサービスまとめ

自身のグローバル IP アドレスを確認するためのウェブサービスをまとめる。いずれも curl コマンドで実行した時に、IP アドレスのみが返されるように調整している。 # 以下は IP アドレスのみがそのまま返ってくる $ curl inet-ip.info $ curl ifconfig.me $…

XREA のサーバに SSH 接続する

メインサイト Neo's World は、XREA というウェブホスティングサービスのかなり初期の頃に取得したアカウントだ。コレ以前に s15 サーバも取得していたし、別サイトで s38・s41・s58 サーバなどをレンタルしたことがある。さらに最近、Yahoo! Geocities の閉…

CentOS7 を日本語環境にする

GCP に登録して GCE をイジり始めた。CentOS 7 イメージを利用して VM を立ててみたのだが、デフォルトでは英語環境になっているので、いくつか日本語環境としての変更を入れてみる。 タイムゾーンを UTC から JST に変更する 標準出力の日本語表示化 man ペ…

SSH 鍵ペア・API 鍵ペアの作り方おさらい

ある VM に SSH 接続する時に使う鍵ペアとか、API Key として認証に使用する鍵ペアの作り方をおさらいする。それぞれは何らかの記事で紹介したことがあると思うが、コマンド単体で紹介したことがなかったので。 SSH 鍵ペアの作り方 API 鍵ペアの作り方 SSH …

man ページに出てくる (1) などのカッコ付き数字は何?

man コマンドに関する話。 以下は MacOS の場合だが、ターミナルで $ man chown と叩くと、次のように表示される。 CHOWN(8) BSD System Manager's Manual CHOWN(8) NAME chown -- change file owner and group …中略… SEE ALSO chgrp(1), find(1), chown(2)…

OCI CLI のプロファイルからテナンシの OCID を得る Bash スクリプト

OCI (Oracle Cloud Infrastructure) の各種操作・閲覧が行える OCI CLI。 OCI CLI を使う際は、接続先の環境などを記したプロファイルを用意する。$ oci setup config コマンドでプロファイルを作成すると、デフォルトでは ~/.oci/config というパスにファイ…

チートシートを検索・出力するコマンドラインツール「ch-sh」を作った

僕は自分用チートシートとして、よく Markdown ファイルにスニペットやコマンドなどを記載している。その Markdown ファイルたちが入っているディレクトリでよく grep するので、コマンド化してみた次第。その名も「ch-sh」。 GitHub - Neos21/ch-sh: チート…

grep -l で取得したファイル名リストを for in で回す

Bash の話。 grep -l コマンドで、検索文字列を含むファイル名のみを出力できる。こんな感じだ。 # -r オプションは指定ディレクトリ配下を再帰的に検索する $ grep -lr '検索文字列' './テスト ディレクトリ/Texts' ./テスト ディレクトリ/Texts/Test1.md .…

MacOS の /System/ ディレクトリ配下のファイルを削除したかったので SIP を解除した

MacOS Mojave で検証。 Finder で、「システム」や「ユーザ」などのディレクトリが日本語で見えているのが気になった。 これらの表記は、当該ディレクトリ直下にある .localized というファイルを削除すると英語表記に戻せるのだが、このファイルは Finder …

コマンドを1つずつ確認してもらいながら実行するシェルスクリプト

複数のコマンドを順に実行していくだけなら、シェルスクリプトとしてコマンドを羅列していけば良いが、 場合によって途中のコマンドだけ実行をスキップしたいことがある 間違いがあった時に途中で中断しやすくしたい などの理由から、コマンド群が一気に実行…

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

自分は、社内ネットワーク内で仕事をする時と、インターネットに直接繋いで作業する時とで、設定ファイルを使い分けている。.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} という書式を加えて、現在日時を画面上に表示するようにした。コレはターミナルの実行結果をまるごとコピペすれば作業日時付きの証跡になるので有用だと思っている。 neos21.hatenablog.com しかし、プロンプ…

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 レジストリを切り替えて使う方法を紹介した。 neos21.hatenablog.com 今回は 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…