Macでgit-prompt.sh のPROMPT_DIRTRIM が効かない解決法
起こったことMac terminal(bash) で git-prompt.sh でCommand Lineをいい感じに整形しようとしたら現在pathの表示部分が長いときに折りたたむ PROMPT_DIRTRIM=2のように PROMPT_DIRTRIMが効かなかった。解決法bash のバージョンが古いらしい。(>= v4.0が対応のよう)ので、バージョンアップ。...
View Articleディレクトリを飛び回る z コマンド
z コマンドとはよく使用するディレクトリへのアクセスを簡単に行う便利コマンドです。通常は cdコマンドで相対パスや絶対パスを引数にしますが、 zコマンドを使うとディレクトリ名の一部が一致すれば最近アクセスしたディレクトリへ遷移します。何度もディレクトリを行き来する場合にとても便利なコマンドです。GitHubhttps://github.com/rupa/z動作シェルbash, zsh...
View Articleコマンド実行時刻と履歴を .bash_history に保存
はじめに初期設定だと実行したコマンドは分かるが時刻が分からないので、記録できるようにする。設定.bashrcを下記のように編集すると、コマンドの実行時刻を記録できる。ただし、.bash_historyに記録できるのはHISTFILESIZEの半分の件数となるので注意。...
View ArticleDockerfileのRUNやCMDをBashのログインシェルで実行させる
または、sdkman, rbenv, nvmなどのパッケージマネージャをDockerfileやコンテナで動かす方法について。TL;DRDockerfileのRUNがbashかつログインシェルで動いてほしいときDockerfileSHELL ["/bin/bash", "-l", "-c"]DockerfileのCMDや、docker...
View Articleいつ,どこで,どのファイルを実行したのか自動で記録する
はじめに日頃からシェルスクリプトとPythonのファイルを実行していると,いつ,どこで,どのような処理をしたのか,残しておきたくなります.ここでは,これらを記録するための,私なりの工夫をご紹介します.その日のための作業用ディレクトリまず,その日のための作業用ディレクトリを作成します.以下ではこれを「DF (Day...
View Articlebashでhealth check
bashでhealth checkのめもphp-fpmとcrondを監視します#!/bin/bashwhile true do PHP=`sudo ps ax | grep'php-fpm: master' | grep-vgrep | wc-l`CROND=`sudo ps ax | grep'crond' | grep-vgrep | wc-l`if[$PHP= 1...
View Article.bash_profile と .bashrc ってなに?
はじめによく.bash_profileに色々書くけど .bashrcの違いとか,全然わかってない...bash_profile とはbashとは 「シェル」の種類のひとつシェルとは 「人の入力をコンピュータに伝えるプログラム」シェルの種類: sh bash ksh csh tcsh zsh...
View Articlebashで連番のディレクトリを作成するワンライナー
dir001, dir002, ..., dir010のような感じにまとめて生成したい。$ for i in`seq-f %03g 1 10`;do mkdir dir${i};done結果$ ls dir001 dir002 dir003 dir004 dir005 dir006 dir007 dir008 dir009 dir010...
View ArticleBash の alias に date コマンドの結果をセットする
エイリアス機能bash(1) — manpages-ja — Debian buster — Debian Manpagesエイリアス(alias) を使うと、 ある単語が単純なコマンドの先頭の単語として使われた場合に、 この文字列を別の単語に置換できます。bash(1) — manpages-ja — Debian buster — Debian Manpagesalias [-p]...
View ArticleShellScript(bash)でconnpassの勉強会情報をslackに通知する
ShellScriptが得意な人もそうでない人もこんにちは。実務でAWSとShellScript(bash)を使っている者です。学習のために簡単なものを作ってみました。目的ShellScript(bash), AWS, EC2の手を動かした学習個人的にメールだと見落とすことが多いので、勉強会の情報を通知してほしい...
View Articleset -uを指定したシェルスクリプトで未指定を許容する
setで-uオプションを指定しておくと、未指定のまま変数を使うのを避けられるので便利です。ただ、以下のように明示的にエラーメッセージを出したい場合もあります。test.sh#!/bin/bashset-uif[[-z"$1"]];then echo"no arg">&2 echo"Usage: ..."exit 1 fi#...
View Articleシェルスクリプトで部分文字列の取得時に「substring expression < 0」と出るときの対処
ファイル名から.mdの拡張子のみ除外したいと思い、${str:start:end}の構文で以下のように実現しようと思った。#!/bin/bash str="hello.md" echo ${str:0:-3} この処理は「文字列の先頭から終端の3文字前までのstrを出力する」であるため、helloと表示されるのが望ましい。しかし、これを実行すると-2: substring expression...
View Articlebashのdate関数を使ってジョブの実行時間を有効活用する。
bashを使って計算時間を出力したい数値計算を行う方にとって長いジョブを実行する待ち時間を有効に使うことはとても重要である。私は長いジョブを実行する間に論文を読んだり、気分転換をするなどしている。数値モデルを使う場合などは、細かい条件を変えた場合に待ち時間はだいだいは把握できるが、正確に何分図っているか把握できていないことに気が付いた。そのため、似たようなモデルを実行することを想定して、ジョブが終了...
View Articlels コマンドの実行結果に不可視ファイル(隠しファイル)を含ませたい時
ls コマンドの実行結果に不可視ファイル(隠しファイル)を含ませたい時の備忘録。「-A」オプションを使う次のコマンドを実行することで、カレントディレクトリの不可視ファイルも表示される。ls-A
View Articlekubernetesを使う人のための便利なalias
はじめにこんにちは、インフラエンジニアです。普段はKubernetes(GKE)をよく使っています。なぜ書いたかK8sをCLIで操作する際にKubectlというコマンドがあるのですがタイプするのが面倒くさい!長い!なので、便利なエイリアスを設定したので記事にしました。本題Macの場合$ vim ~/.bash_profile 以下の二行を追加して保存bash_profilealias...
View Articlegithubのシェルスクリプトを実行するときに出る「/dev/fd/63: line 1: 404:: command not found」の対処法
はじめにだいぶ局所的なエラーですが、過去に何度もこのエラーに遭遇してはググるの繰り返しだったので、自分の備忘録として投稿しました。問題githubのリポジトリにあるシェルスクリプトを実行しようとしたらこのエラーに遭遇。解決原因: githubリポジトリのURLが正しくなかった。解決方法1. githubリポジトリのページ内にある「raw」をクリック2. 正しいURLをコピー3. 成功!
View Articlels コマンドの実行結果に不可視ファイル(隠しファイル)を含ませたい時
ls コマンドの実行結果に不可視ファイル(隠しファイル)を含ませたい時の備忘録。「-A」オプションを使う次のコマンドを実行することで、カレントディレクトリの不可視ファイルも表示される。ls-A
View ArticleBashのリダイレクト(`>`と`>&`)とパイプ等についてのまとめ
はじめに(この記事を書くに至った経緯)以下のコマンドを実行すると, 1.txtと2.txtで異なるハッシュ値が得られる。$ echo "hoge" | md5sum > 1.txt $ echo "hoge" > 2.txt $ md5sum 2.txt > 2.txt $ cat 1.txt c59548c3c576228486a1f0037eb16a1b - $ cat...
View Article