OS -> Linux

WSL2 のターミナルでカレントディレクトリをエクスプローラで開く方法

結論 $ explorer.exe .

WSL2 でターミナル表示される文字列を Windows のクリップボードにコピーする方法

結論 clip.exe に渡します。 例 $ echo 'foobar' | clip.exe 応用 peco などと組み合わせると強力な威力を発揮します。

tarball の Node.js を、ワンライナーで arm と amd を判別してダウンロードする

結論 arch コマンドの出力を sed で処理します。 $ ARCHITECTURE=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/x64/) && curl -LO https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-$ARCHITECTURE.tar.xz 補足 Dockerfile で役に立ちそうです Node …

zsh で Volta のオートコンプリートを有効にする方法

結論 1. まず補完機能用のスクリプトを出力します (_volta) 。 $ volta completions zsh -o _volta note: does not exist, creating it success: installed completions to _volta 2. 出力したスクリプトを /usr/local/share/zsh/site-functions に移動しま…

apt で mysql-server や mysql-client を install できない(見つからない)とき

結論 default-mysql-server や default-mysql-client をインストールします。 $ sudo apt install default-mysql-server $ sudo apt install default-mysql-client

Ubuntu 20.04 で [SSL: CERTIFICATE_VERIFY_FAILED] エラーが出るとき

結論の一つ ca-certificates をインストールしましょう。 $ sudo apt install -y ca-certificates

Ubuntu 20.04 に timg をインストールする

timg とは ターミナルに画像を表示する CLI です。Mac でいう imgcat です。 github.com Ubuntu にインストールする方法 timg を Ubuntu にインストールします。ドキュメントには apt でインストールできるようにも書いてあるのですが現状*1では見つかりませ…

touch コマンドでは存在しないディレクトリを指定することはできない

結論 標題通りです。 例えばカレントディレクトリに tmp/ というディレクトリがない場合に tmp/foobar.txt を作ろうとすると以下のようにエラーになります。 $ touch tmp/foobar.txt touch: 'tmp/foobar.txt' に touch できません: そのようなファイルやディ…

Ubuntu に Edge を CLI でインストールする方法

結論 1. Edge の Insider ダウンロードページに行く www.microsoftedgeinsider.com gyazo.com 2. Linux (Debian / Ubuntu) のダウンロードリンクをクリックする gyazo.com 3. 遷移先のページで「手順を取得する」をクリックする 「手順を取得する」を押し、…

OS起動時に Elasticsearch などの「重い」サービスがタイムアウトで自動起動に失敗するときの対処法

前提条件 Ubuntu です。 エラー例 以下のようにタイムアウトでエラーになります. $ sudo service elasticsearch status ● elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enab…

zsh で pyenv を用いて Python をインストールするも実行できない場合

前提 OS は Ubuntu です。 結論 ~/.zprofile にシェルの設定を書きます。 export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init --path)" fi 参考 github.com

md5sum コマンドの結果から、ハッシュのみ、またはファイル名のみを取り出す

前提 md5sum コマンドを実行すると、以下のような表示が得られます。 $ md5sum FOOBAR.txt 436e4203d62ece408999be0ff9cc155c FOOBAR.txt 結論 上記の表示から「ハッシュのみ」を取得するには、結果を cut コマンドに渡せばよいです。-d' ' というオプション…

Ubuntu 20.04 に locate コマンドをインストールする

結論 mlocate を apt でインストールしましょう。 $ sudo apt install -y mlocate パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 提案パッケージ: nocache 以下のパッケージが新たにイン…

Raspberry Pi で Docker Registry に Webインターフェイス を用意する

結論 Webインターフェイス を用いるためにはいくつかの選択肢がありますが、Raspberry Pi でも使えて*1、GitHub のスター数も考慮した結果、docker-registry-ui を用いることにしました。 github.com Raspberry Pi で docker-registry-ui を用いるための doc…

Ubuntu で phpenv を用いて PHP をビルドする際に必要なライブラリをインストールする

結論 $ sudo apt install -y libjpeg-dev libonig-dev libzip-dev libcurl4-openssl-dev re2c libxml2-dev libtidy-dev libxslt-dev libmcrypt-dev libreadline-dev autoconf 補足 もっと必要なものがあるかもしれません*1 phpenv に限った話ではなく、一般…

Raspberry Pi の Ubuntu で pip install 時に ModuleNotFoundError: No module named '_ctypes' というエラーが出るとき

結論 (Raspberry Pi が、というわけではなく)以下のようにパッケージをインストールします。 $ sudo apt install -y build-essential libbz2-dev libdb-dev libreadline-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libsqlite3-dev libssl-d…

64bit Ubuntu を入れた Raspberry Pi に Mackerel (mackerel-agent) をインストールする方法

前提 Raspberry Pi 4B (8GB) Ubuntu 20.04 (64bit) 結論 deb ファイルをダウンロードし、dpkg コマンドでインストールする。インストール完了後に設定ファイルである /etc/mackerel-agent/mackerel-agent.conf に APIキー を書き込んで、mackerel-agent を再…

SSH でログインした後にシェルのプロンプト表示までの時間が長い場合の対処法の一つ

結論 受ける側の SSHd の設定ファイル、/etc/ssh/sshd_config において、UsePAM を no に指定します*1。 具体例 /etc/ssh/sshd_config の中ほどに UsePAM を指定する箇所があります。 gyazo.com ここの UsePAM yes を UsePAM no に変更します。 変更した後は…

Docker のイメージやコンテナの保存場所をデフォルトの位置 (/var/lib/docker) から変更する

動機 Raspberry Pi の MicroSD カード上で Docker を操作すると凄まじく遅く、また容量を食いまくるので、外部ストレージに移したいから。 結論 デフォルトの保存先である /var/lib/docker にシンボリックリンクを張ります。 具体的には以下の記事に書かれて…

Ext2Fsd で ext4 の HDD (SSD) の中身が見られないとき

前提 HDD の接続認識は OK マウントも OK 割り当てられたドライブをダブルクリックすると「フォーマットしますか?」と出てきてしまう 結論 以下の記事にならいましょう(感謝)。 qiita.com コマンドログ 実行の結果のコマンドログは以下のとおりです。 $ s…

ファイラ ranger で画像のプレビューを表示する方法

ranger とは Python製 の CLI のファイラです。 github.com 結論 .config/ranger/rc.conf の設定 .config/ranger/rc.conf の中の preview_images という項目を true にします # Use one of the supported image preview protocols # set preview_images fals…

Raspberry Pi では特定の Docker イメージ(コンテナ)は実行できない

結論 原因は、x86_64 でビルドされたから、です。実行時にたとえば以下のようなエラーメッセージが出ます。 standard_init_linux.go:211: exec user process caused "exec format error" 対応方法 以下の記事のとおりです。arm* でビルドし直します。 qiita.…

Raspberry Pi の Ubuntu で OS 起動時に任意のスクリプトを自動実行する方法

結論 /etc/rc.local ファイルを作り、中にシェルスクリプトを書く 最終行は exit 0 とする /etc/rc.local に実行権限を与える 具体例 /etc/rc.local を次のように書いたとします。 #!/bin/sh touch /tmp/hello_rc_local_world.txt 実行権限を与えます。 $ su…

Rclone でワイルドカードを用いるときは --include オプションを用いる

Rclone とは rsync をクラウドストレージ等に対応させたコマンドです。 rclone.org 普通にワイルドカードを用いるとエラーになる 例えば、以下のようにコマンドを実行するとエラーになります。 $ rclone ls hogehoge:/home/foobar/fuga/*.txt 2020/09/24 06:…

CIFS でマウントしたディレクトリに rsync や wget をすると utime や chtimes エラーが出るとき

結論 表題の現象が起きたときは、マウント時のオプション指定に注意しましょう。以前の記事に答えがあります。 obel.hatenablog.jp CIFS のパーミッション問題はいつも悩ましいです。 エラー例 $ wget https://hoge/fuga.jpg utime(fuga.jpg): 許可されてい…

Raspberry Pi に Ubuntu をインストールした際の初期アカウントは何か

結論 ID: ubuntu PASSWORD: ubuntu です。 参考 ubuntu.com

zsh で zsh-autosuggestions のキーバインドを設定する

結論 .zshrc に例えば以下のように書きます。'' でくくった中身が押下するキーになります。 bindkey '≥' autosuggest-accept 補足 zsh-autosuggestions のキーバインドに限ったことではなく、他のキーバインドの設定にも使えます 「キー」の記述は特に何も考…

PostgreSQL のデータディレクトリの owner および group は postgres にし、パーミッションは 700 にする

結論 標題のとおりです。設定が適切でない場合には could not connect to server: のエラーが出ます。 データディレクトリの場所を変える場合には注意する必要があるでしょう。

CIFS を mount する際には「パーミッション」と「uid」と「gid」に注意する

結論 CIFS なストレージを mount する際には、「パーミッション」と「uid」と「gid」に特に注意する必要があります。たいていのトラブルの原因はこれらの値が適切に設定されていないために起きると思います*1。 *1:私が見てきた限りでは、そうでした

expect コマンドで [ がエスケープできない(ので、安易な解決法に逃げた話)

状況 以下のようなプロンプト*1に対して、自動で y を入力してエンターを押したいです。 Do you want to enable fuzzy auto-completion? ([y]/n) 書いてみた expect のコード 以下のような expect のコード(シェルスクリプト内)を書いてみました*2。 expec…

Powered by はてなブログ