Bash
(2025-05-24 初稿) Bashを使うようになってかなり経つが、恥ずかしながら組み込みコマンドのヘルプの出し方が知らなかったので、以下にメモする。 筆者の環境 Linux hoge 6.1.0-35-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.137-1 (2025-05-07) x86_64 GNU/L…
(2025-05-20 初稿) 最初に言っておくけど、CSVファイルを扱うときに、pythonで import csvするのが最も簡単な方法だと思う。 ただ、ちょっとした処理で、わざわざpythonまで使う必要がないと思いBashで書こうと思ったら、少しハマったので記事にする。 Excel…
(2025-02-23 初稿) はじめに ずっと面倒なので見て見ぬふりをしていたが、以下の記事も出たことだし、いつまでも避けて通れなさそうなので、pyhon3のvenvを使うことにした。 第850回 UbuntuにおけるシステムPythonと、Pythonの仮想環境を使い分ける方法 | gi…
(2025-02-01 初稿) 今朝、Bashを使っていて、ちょっとハマったのでメモを残す。 短いスクリプトなのでグローバル変数を使って、さらっとスクリプトを作ろうと思ったが、関数の中でグローバル変数を変更しようとして、正常動作する場合と動作しない場合がある…
(2024-09-17 初稿 ) PDFファイルの任意の複数ページを選んで、新たなPDFファイルを作成したいときがある。 このようなときDebian等Linuxでは、コマンドラインで操作する pdftk が便利だ。 pdftkは、任意ページの抽出だけでなく、結合や回転等、様々な操作を…
(2024-06-06 初稿) Bashにヒヤドキュメントがあるのは知っていたが、ヒヤストリングというのがあるのをつい最近知った。 ヒヤストリングを使ってみると、便利なので備忘録としてアップする。 ヒヤドキュメント まずは、ヒヤドキュメント。 $ cat << EOC こち…
(2024-05-21 初稿) Bashには、プロセス置換という便利な機能があるが、ちょっと使い方やそのメリットがわかりにくかったので、そのメリットについていくつかの例を考えてみた。 今回の記事は、以下のサイトを参考にさせて頂いた。多謝。m(__)m Bash初心者か…
(2024-05-09 初稿) 先日からBashを使って、CSVファイルを操作してエクセルファイル(xlsx)を作成する等の記事をアップした。 Bashでカンマ区切りのCSVファイルを扱う - ひゃまだのblog LibreOfficeを使ってコマンドラインでCSVファイルをエクセルファイル(xls…
(2024-05-08 初稿 - 2024-08-19 追記) (2024-08-19 追記) 最近、株価だけでなくドル円の為替の変動も大きいね。(-_-;) そこで、スクリプトにドル円の為替レートも取得するように追加した。 (追記ここまで) 新NISAが始まって、株を始めた方も多いのではと思う…
(2024-05-01 初稿) よく言われていることだが、Bashでパイプを使うと、サブシェルを使うと思わぬ弊害がでる記事はよく見ていたのだが、自分でスクリプトを作成してハマってみて、ようやく理解できた。 確認のサンプルスクリプト 関数の呼び出しの引数をつな…
(2024-04-30 初稿 -2024-05-01 追記) 先日からCSVファイルを操作するスクリプトを作成している。 作成する中で、LibreOfficeにコマンドラインでCSVファイルをエクセルファイル(xlsx)に変換する機能があることを見つけた。 Linuxでシェルコマンドからエクセル…
(2024-04-26 初稿) こちらのblogは、ちょっと久しぶりにアップする。 最近、株の乱高下が激しいので、楽天証券の保有株一覧を見ているのだけど、不要な列があったり、ちょっと特殊な集計をしたかったりするので、自分で表計算ソフトにちまちまとコピぺしてい…
(2024-02-11 初稿) Bashの while と for を利用していて、どうしてそのような仕様になっているのか、不思議なので記事にしてみた。 まずは、whileを使った無限ループは、以下のとおり。 なお、無限ループを抜けるのは、Ctrl+c(コントロールとcを同時に押す)…
(2024-02-08 初稿 ) Bashにはブレース展開と呼ばれる便利な機能がある。 このページでは、以下のサイトを参考に作った筆者の備忘録である。 Bash Reference Manual 第42回 bashの便利な機能 | gihyo.jp bashのブレース展開についてまとめ #Linux - Qiita 基…
(2024-02-02 初稿 - 2024-02-05 追記) Bashの文字列演算子については、以前、以下のページに記述した。 Bashの文字列演算子 - ひゃまだのblog 先日ネットを検索していたら、Bash 4.0以降のバージョンでは、アルファベット文字の大文字や小文字に変換すること…
(2023-01-29 初稿 ) はじめに 筆者は、Bashスクリプトをよく利用しているが、その独自の記述方法のためにエラーが起きたり、思いどおりに動作させられないことがしばしばある。 最近、ネットで shellcheck のことを知り、シェルスクリプトの強力な助っ人にな…
(2024-01-16 初稿 ) 本日、Bashスクリプトを作っていて、ちょっとハマったのでメモ。 Emsg="ファイル数が合ってないよ" [[ $(ls -1 | wc -l) -ne 10 ]] && { echo $Emsg; exit 1 } /home/hoge/bin/bash-test: 行 28: 構文エラー: 予期しないファイル終了 (EO…
(2023-01-02 初稿) Bashで if 文の書き方があまり好きではない。 具体的には、if ; then と判定文とthenの間に、「;」(セミコロン)が入るのがどうも気にいらない。 できれば、ruby や python等のように、print("true") if a=0等のように if 文を最後に書く書…
(2023-12-25 初稿 - ) 今更感が半端ないけど、Debian 12(bookworm)でLXDE環境を新規にインストールしたときに、~/binにpathが通らないので不便だ。 ちなみに、筆者が使っているログインシェルは、Bash。 どうも、CUIやsshでログインした時と、Xからlightdmで…
(2023-12-08 初稿 - 2024-05-07 修正) Dockerをしばらく使っていると、いろいろなImageとconteinerが溜まって来るとともに、Dockerfileも溜まってきて、どれがどのDockerfileかわからなくなって来る。 (もちろん、Dockerfileに名前を付けて、呼び出すことも…
(2023-10-31 初稿 - ) これまで、Webサーバーを立ち上げたり、Javascriptで日付や時間、CGIを動かしてきた。 PythonでWeb Serverを立ち上げる Javascriptでホームページに日付と時刻を表示する JavascriptでCGIを起動して、起動元のページにCGIの出力を表示…
(2023-10-25 初稿 - ) Debian 11 (bullseye) から Docker で、TensorFlowを使ってきたけど、12(Bookworm)もマイナーアップデートしていることだし、そろそろDockerの環境を入れ替えて末永く使おうと思った。 Debian 11(Bullseye)にDockerのインストール Dock…
(2023-10-17 初稿 - 2023-10-27 追記) (2023-10-27 追記) いつの間にかRaspberry Pi OSも、12(bookworm)が公開され、Pi 4または5でwaylandを利用している場合は、後述する autostart の方法では自動起動することができなくなった。 Waylandを使っている場合…
(2023-08-22 初稿) 恥ずかしながら、つい最近までbashでprintfが使えることを知らなかった。 これまで、echoで一生懸命整形したり加工したりして出力してたこと。^^; さて、printfの使い方は、man 3 printf等を見て欲しいが、echoと違ってとても高機能。 い…
(2023-08-21 初稿 - 2023-08-22 追記) bash等のスクリプトをファイルに記述する場合は、先頭行にshebang(シバン)を記述する。shebangでスクリプトを実行する処理系(インタプリタ)を指定することになる。 bashでは、以下のように記述することが多い。 $ which…
(2023-07-24 初稿) bashスクリプトで、改行を含む複数行のメッセージを出力したいときがある。 ヒヤドキュメントを使う方法等、様々方法があるようだが、一番シンプルな方法が以下のサイトに記述があったので、筆者のメモとして書き残す。 bashで複数行の文…
(2023-07-19 初稿) Bashスクリプト等でディレクトリを作る際は、いつも既にディレクトリが有るか無いかを確認してからディレクトリを作成していた。 例えば、カレントディレクトリにtempディレクトリを確認して、無い場合にディレクトリを作成していた。 if …
(2023-06-13 初稿 - 2025-02-24 修正) Bashスクリプトを作っていて、コメント化する場合、1行のみや行の途中からの場合は、#を用いてコメント化できる。 ただし、複数行をコメント化するのは、少々面倒だ。 筆者の場合、vimを使うことが多いので、C-v、j(矩…
(2023-06-11 初稿 - 2023-06-12 修正) sedを用いて、途中の行を抽出する。自分用のメモ。 $ cat test.txt 1: a 2: b 3: c 4: d 5: e 上記のようなファイル(test.txt)がある場合、3〜4行を抽出する場合、sedでは以下のように記述する。 $ cat test.txtt | sed…
(2023-06-07 初稿 - 2023-06-11 追記) 元ネタは、以下のサイトの「フォルダ内のファイルをランダムに10個コピーする」で、素晴らしいアイデア。 フォルダ内のファイルをランダムに10個コピーする - Qiita ワンライナーで汎用性が高いのだけど、筆者はすぐに…