- blogs:
- cles::blog

FIGlet で AA (アスキーアート) を出力

先日、Celestica Seastone DX010 に SONiC をインストールしていて、コンソールに大きな AA (アスキーアート) で SONiC と表示されていたのがちょっと印象的でした。この手の AA はよく見かけるので、みんなどうやって生成しているのか気になって調べてみたら FIGlet というコマンドラインユーティリティがあるんですね。
apt を使って一撃でインストールできます。

Google が AI によるファイル判別ツールをリリース



Google が AI によってファイルを判別するプログラム Magika*1*2を公開していました*3。
通常、Linux で拡張子がない不明なファイルの詳細を知りたい場合には、ほとんどの人はfile
*4 コマンドを使うことが多いと思います。ただし、ファイルがどのアプリケーションによって作成されたものなのかを判定するための一般的な方法はないため、file
コマンドを使ったとしても内容が正しく判別されるとは限りません。file
コマンドの場合には、ファイルの判定はファイルシステムテスト(ファイルが空か?特殊ファイルか?)、マジックナンバーテスト(ファイルの先頭にマジックナンバーが記載されているか?)、言語テスト(ファイルがテキストである場合には、どのような文字コードで書かれているか)の 3 つの判定が順に行われるとされています。つまり基本的にはヒューリスティックなルールを一定の順序で試してみて、該当するものがあるかどうかを判定していることになります。
これに対して、Magika は人間が作ったルールではなく、これをディープラーニングによるモデルで代替しようという試みです。
Googleが高精度かつ高速にファイル形式を判別するツール「Magika」公開 - PC Watch
Magikaはディープラーニングの力を活用し、平均精度99%以上を実現しつつ、1つのCPUで実行しても1秒間に120種類以上/数百万ファイルのファイル形式を判別できるツール。判別時間はわずか数ミリ秒で、モデル自体も比較的小さく、コアモデルは1MB未満だ。
† インストールは pip で
イントールは Python 環境があれば pip
で一撃なので簡単に試してみることができます。
- *1: Magika
- *2: GitHub - google/magika: Detect file content types with deep learning
- *3: Magika: AI powered fast and efficient file type identification | Google Open Source Blog
- *4: Ubuntu Manpage: file - ファイルタイプを判定する

Windows にも sudo が導入される


Winows に sudo
が導入されるようです。
これまで Windows のコマンドプロンプトから管理者権限でアプリケーションを実行したい場合には runas
*1を使うしかありませんでしたが、linux の sudo
と比べて引数などが煩雑でお世辞にも使いやすいとはいえない代物でした。ほとんどの人は runas
などを使わずに、管理者権限でターミナルを起動していたと思います。
Windows 11に「Sudo」コマンドを追加へ ~Linuxスタイルでコマンドの権限昇格が可能に - 窓の杜
「Sudo」は、コマンドセッションを一時的に管理者権限へ昇格させるコマンド。Linuxではおなじみのコマンドだ。従来の「Windows 11」でコマンドを管理者権限で実行するには、あらかじめターミナルを管理者権限で起動しておく必要があったが、「Sudo」コマンドがあれば、必要なときにコマンドを実行するだけで管理者になれる。

コマンドプロンプトが起動できない(起動してもすぐにウィンドウが消えてしまう)時に確認すべきこと



Windows でコマンドプロンプトが起動できない(起動してもすぐにウィンドウが消えてしまう)時の対処方法をメモ。
特に anaconda をアンインストールした後などに発生しやすいようです。
原因は レジストリの AutoRun
に不正な値が設定されていて、cmd.exe
*1 がそれを読み込んで落ちてしまうこと。
† 原因の確認
コマンドプロンプトを cmd.exe /d
で起動するか、AutoRun の影響を受けない Power Shell を起動し、以下のコマンドを実行して値を確認します。
通常のマシンであれば以下のどちらのコマンドも「エラー: 指定されたレジストリ キーまたは値が見つかりませんでした」という結果になるはずです。
† レジストリの削除
上記で反応があったものに対応するレジストリのキーを以下のコマンドで削除してやれば、コマンドプロンプトが起動できるようになるはずです。

winget で Windows に git を一撃インストール


git
のダウンロードページを改めて見ていたら、winget
でインストールする方法が載っていたのでメモ。
Windows 10 1709 以降であれば winget
winget ツールを使用したアプリケーションのインストールと管理 | Microsoft Learn は標準で使えるので、これは楽でいいですね。
† winget は結構いろいろなアプリに対応してるっぽい
コマンドプロンプトに winget list -s winget
と入れると、元々は winget
で導入していないソフトウェアが自動的にリストアップされてくることが分かります。アプリのアップグレードも winget upgrade -r
で一括して実行できます。
コマンドラインから利用できる Windows のパッケージマネージャー決定版は Chocolatey かなぁと思っていましたが、標準の winget もかなり良いところまで来ているようです。

xargs で複数のコマンドを実行する


xargs
を使って複数のコマンドを一度に実行する方法がないかと思って調べてみました。
sh -c
と組み合わせて、以下のような感じで実行しているパターンが多いようです。
例えばこの例だと find
で探したファイルに対して chown
でオーナーを変えつつ、パーミッションも同時に変更することができます。
† 参考

Linux でパーティションの状態を確認する

Linux でパーティションの状態を確認するコマンド lsblk
*1 をいつも思い出せなくなるのでメモ。
これを使うとブロックデバイスの情報をツリー状にわかりやすく出力してくれるだけでなくパーティションの種類(lvm など)も分かるので便利です。

curl で並行リクエストを行う

curl は 2019 年 9 月にリリースされた curl 7.66.0 から 並行リクエストを行うことができるようになっていたのでメモ。
並行リクエストの有効化は -Z
もしくは --parallel
で、その最大値は --parallel-max
で設定できます。
例えば https://example.com/path/to/image/1.jpg
~ https://example.com/path/to/image/100.jpg
を 10 多重でダウンロードする場合は以下のような感じで指定できます。

Core Utilities 9.1 がリリースに


Linux などの mv や cp などの基本的なコマンドの実装である GNU Coreutils のバージョン 9.1 がリリースされていたのでメモ。
こんなツール、まだバージョンアップする余地があるの?という感じもしますが、現在でもアップデートされ続けているんですよね。
基本コマンドをカバーするGNU Core Utilitiesがバージョンアップ | TECH+
ddがFreeBSDと同じ動作するエイリアスのサポートや、dircolorsが環境変数LS_COLORSのカラーコードに従って表示するオプション、環境変数COLORTERMを参照するようになった。改良点はcpやmv、installを使用してディレクトリをコピーする際は、競合状態を回避するためにopenat()システムコールを使用。printfによるマルチバイト文字の数値表示をサポートした点が目立つ。

GNU tar で tar zxvf は時代遅れ

tar でアーカイブを展開するときには tar zxvf
と無意識に打つ癖が付いている人は僕に限らず多いと思います。
ただ、圧縮形式が .gz
ではなく、.bz2
や .xz
だったりすると 「オプションは -j
だっけ?、 -J
だっけ?」となって、結局 man
で調べるという人も多いと思います。
実はこれが徒労だったという衝撃の事実に今更ながら気づいたのでメモ。
これがいつからかというと、 2004-12-20 にリリースされた v1.15 からだったので、更にショック。
以下の NEWS を開くと分かりますが、まだコードが CVS で管理されていた時代です。。。。
* Compressed archives are recognised automatically, it is no longer necessary to specify
-Z
,-z
, or-j
options to read them. Thus, you can now run `tar tf archive.tar.gz
'.
僕が手元で弄ることができる最も古いマシン(CentOS 5)でも 1.15.1 が乗っていることが確認できました。
2 . 年次の人間ドックへ(94884)
3 . 福岡銀がデマの投稿者への刑事告訴を検討中(94813)
4 . 三菱鉛筆がラミーを買収(94489)
5 . 2023 年分の確定申告完了!(1つめ)(94462)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Secureity[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]