ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Linux

Bashのwhileとforの無限ループと{}(ブレース)への対応について

(2024-02-11 初稿) Bashの while と for を利用していて、どうしてそのような仕様になっているのか、不思議なので記事にしてみた。 まずは、whileを使った無限ループは、以下のとおり。 なお、無限ループを抜けるのは、Ctrl+c(コントロールとcを同時に押す)…

Bashの便利なブレース展開(Brace Expansion)

(2024-02-08 初稿 ) Bashにはブレース展開と呼ばれる便利な機能がある。 このページでは、以下のサイトを参考に作った筆者の備忘録である。 Bash Reference Manual 第42回 bashの便利な機能 | gihyo.jp bashのブレース展開についてまとめ #Linux - Qiita 基…

Bashのパラメータ展開による大文字、小文字変換

(2024-02-02 初稿 - 2024-02-05 追記) Bashの文字列演算子については、以前、以下のページに記述した。 Bashの文字列演算子 - ひゃまだのblog 先日ネットを検索していたら、Bash 4.0以降のバージョンでは、アルファベット文字の大文字や小文字に変換すること…

Raspberry Pi 3B+ に sonic-pi をインストールしてみた

(2024-02-01 初稿 - 2024-02-02 追記) はじめに 最近、自分で動画を作成してみようかと思っている。しかし、BGMのない動画はやや寂しいので、これまた自分で簡単な曲を作ってみようと思っている。 筆者は、Debianを使っているので、楽曲を作るソフトウェアと…

Shellcheckを使ってBashスクリプトのチェックと最適化

(2023-01-29 初稿 ) はじめに 筆者は、Bashスクリプトをよく利用しているが、その独自の記述方法のためにエラーが起きたり、思いどおりに動作させられないことがしばしばある。 最近、ネットで shellcheck のことを知り、シェルスクリプトの強力な助っ人にな…

DockerのDockerfileとrun、execのオプションの便利技

(2024-01-23 初稿 - ) はじめに Dockerを使い始めて1年以上になるのに、人様の作ったDokerfileやrun、execのオプションを見て、なるほどと感心することばかり。何か新しいことをやろうとする度に、新しいオプションや発見がある感じ。 しかし、残念なことに…

Raspberry Pi 3B+にfluxboxをインストールしてみた

(2024-01-19 初稿) X windowのインストール fluxboxのインストール fluxboxの設定 スタイルの選択(zimec_darkblue) メニューのカスタマイズ メニューのバックアップ 自分のメニューの登録 自分のメニューへの登録 各種ソフトウェアのインストール ターミナル…

bashの{} (Braces) に関するメモ

(2024-01-16 初稿 ) 本日、Bashスクリプトを作っていて、ちょっとハマったのでメモ。 Emsg="ファイル数が合ってないよ" [[ $(ls -1 | wc -l) -ne 10 ]] && { echo $Emsg; exit 1 } /home/hoge/bin/bash-test: 行 28: 構文エラー: 予期しないファイル終了 (EO…

Xtermでコマンドラインでフォントを指定して日本語文字化けを解消する

(2024-01-15 初稿 ) 使っている人は少ないかもしれないが、先日ひさしぶりに素のxtermを使ってみたが、日本語を入力しようとすると、途端に文字化けして使い物にならなかった。^^; 取り急ぎネットで検索して、最低限文字化けしないように、コマンドラインオ…

ArchLinuxにxfce4をインストールし、日本語環境を整える

(2023-01-14 初稿 ) これまでに、Raspberry Pi 3B+にArchlinuxをインストールし、使える環境を整えてきた。 Raspberry Pi 3B+ に Arch Linuxをインストールしてみた(コンソール編) Arch linuxのWi-FiをCUIでつなぐ 元々は、Raspberry Pi 3B+の性能を考えて…

ArchLinuxにparuをインストールする

(2023-01-13 初稿 ) これまで、Raspberry Pi 3B+にArchLinuxをインストールし、コンソールと無線LAN(Wi-Fi)の設定を行った。 Raspberry Pi 3B+ に Arch Linuxをインストールしてみた(コンソール編) - ひゃまだのblog Arch linuxのWi-FiをCUIでつなぐ - ひ…

Arch linuxのWi-FiをCUIでつなぐ

(2023-01-11 初稿 - 2023-01-12 追記) Arch LinuxをRaspberry Pi 3B+にインストールして、英語環境だがコンソールでの作業ができるようになった。 Raspberry Pi 3B+ に Arch Linuxをインストールしてみた(コンソール編) - ひゃまだのblog 上記のページを…

Raspberry Pi 3B+ に Arch Linuxをインストールしてみた(コンソール編)

(2023-01-08 初稿 - 2023-01-11 修正) はじめに 巷では、Raspberry Pi 5の国内版も出まわろうという時期、わが家でも古いRaspberry Pi(以下、ラズパイ)が余って来ている。 貧乏性の筆者はなんとか有効利用できないかと、軽量のLinuxのインストールを試みて…

Bashで三項演算子ぽいもの

(2023-01-02 初稿) Bashで if 文の書き方があまり好きではない。 具体的には、if ; then と判定文とthenの間に、「;」(セミコロン)が入るのがどうも気にいらない。 できれば、ruby や python等のように、print("true") if a=0等のように if 文を最後に書く書…

Debian 12(bookworm)のpython3のpipがエラーを吐くのでpipxを使ってみた

(2023-12-26 初稿 - ) 事前の準備 まずは、以下のパッケージをインストールして、pip3を使える状態にしておく。 $ sudo apt install python3-pip 症状 Debian 12(bookworm)になって、pip3でpythonのパッケージをインストールしようとすると怒られる。 $ pip3…

Debian 12(bookworm)で~/binにpathを追加する

(2023-12-25 初稿 - ) 今更感が半端ないけど、Debian 12(bookworm)でLXDE環境を新規にインストールしたときに、~/binにpathが通らないので不便だ。 ちなみに、筆者が使っているログインシェルは、Bash。 どうも、CUIやsshでログインした時と、Xからlightdmで…

Alpine Linuxを育みながらDockerのことを知る

(2023-12-03 初稿 - 2023-12-19 修正・追記) はじめに Alpine Linuxのことは、Dockerのことを調べていたら、人気のあるデストリビューションであること初めて知った。 最初に驚いたのは、そのサイズの小ささ。 $ docker pull alpine $ docker images REPOSIT…

DockerのTensorflow環境で、apt updateがエラーを吐いて実行できないときの対策

(2023-11-13 初稿) 筆者は、これまで以下の記事をアップし、docker環境を利用してきた。 Debian 11(Bullseye)にDockerのインストール Dockerでpython3の環境を作る DockerでTensorflow環境を作る DockerのrootlessでTensorflowを使うメモ Dockerのコンテナや…

JavascriptでなんちゃってMusic Serverを作る

(2023-10-31 初稿 - ) これまで、Webサーバーを立ち上げたり、Javascriptで日付や時間、CGIを動かしてきた。 PythonでWeb Serverを立ち上げる Javascriptでホームページに日付と時刻を表示する JavascriptでCGIを起動して、起動元のページにCGIの出力を表示…

JavascriptでCGIを起動して、起動元のページにCGIの出力を表示する

(2023-10-26 初稿 - ) pythonでWeb Serverを起動して、javascriptで日付や時計を表示して遊んでいる。 PythonでWeb Serverを立ち上げる Javascriptでホームページに日付と時刻を表示する お手軽なWeb Serverがあるので、どうせならCGIを呼び出して、結果を呼…

Debian 12(bookworm)の Docker で Tensorflow を動かす

(2023-10-25 初稿 - ) Debian 11 (bullseye) から Docker で、TensorFlowを使ってきたけど、12(Bookworm)もマイナーアップデートしていることだし、そろそろDockerの環境を入れ替えて末永く使おうと思った。 Debian 11(Bullseye)にDockerのインストール Dock…

ラズパイのディレクトリ名変更はLC_ALL=Cで英語表記に

(2023-10-09 初稿) いつも忘れてしまい、ラズパイ(Raspberry Pi)のインストール直後に、ディレクトリ名を英語表記に変えようとして、変わらなくて困るので、忘れないようにメモ。 ラズパイの場合、インストール直後はコマンドがインストールされていないので…

ラズパイ3B+にVolumioをインストールして使う

(2023-09-29 初稿) ログイン パスワードの変更 ネットワークの設定 ネットワーク設定の変更 sshの設定 sshサーバの起動 ssh公開鍵の登録 .ssh/configの設定 ブラグインのインストール youtubeのインストール 楽曲の登録 ネットワーク経由でInternal Storage…

Bashでもprintfが使える

(2023-08-22 初稿) 恥ずかしながら、つい最近までbashでprintfが使えることを知らなかった。 これまで、echoで一生懸命整形したり加工したりして出力してたこと。^^; さて、printfの使い方は、man 3 printf等を見て欲しいが、echoと違ってとても高機能。 い…

シェルスクリプトの先頭行にshebang(#!)を書く

(2023-08-21 初稿 - 2023-08-22 追記) bash等のスクリプトをファイルに記述する場合は、先頭行にshebang(シバン)を記述する。shebangでスクリプトを実行する処理系(インタプリタ)を指定することになる。 bashでは、以下のように記述することが多い。 $ which…

Rでtukeyの多重検定を行って有意差のアルファベットをつける

(2023-07-26 初稿 - 2023-12-04 修正) このサイトでも、以前に以下のページをアップした。 多重比較のアルファベットの付け方 DebianでRを使って分散分析とTukey多重検定を必要最小限で実行する 最初に紹介したサイトは、筆者としてはそこそこの需要があるよ…

Bashスクリプトのechoで改行を含む複数行のメッセージを表示する

(2023-07-24 初稿) bashスクリプトで、改行を含む複数行のメッセージを出力したいときがある。 ヒヤドキュメントを使う方法等、様々方法があるようだが、一番シンプルな方法が以下のサイトに記述があったので、筆者のメモとして書き残す。 bashで複数行の文…

mkdir -p って便利だね

(2023-07-19 初稿) Bashスクリプト等でディレクトリを作る際は、いつも既にディレクトリが有るか無いかを確認してからディレクトリを作成していた。 例えば、カレントディレクトリにtempディレクトリを確認して、無い場合にディレクトリを作成していた。 if …

Bashスクリプトで複数行をコメント化

(2023-06-13 初稿) Bashスクリプトを作っていて、コメント化する場合、1行のみや行の途中からの場合は、#を用いてコメント化できる。 ただし、複数行をコメント化するのは、少々面倒だ。 筆者の場合、vimを使うことが多いので、C-v、j(矩形選択)、S-I、#、E…

Sedで途中の行を抽出する

(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…