nashidos’s diary

アルゴリズムとか機械学習とか色々

/usr/bin/env:そのようなファイルやディレクトリはありませんの解決法




LinuxPythonスクリプトを実行しようとしたところ、以下のエラーが出てきました。

/usr/bin/env:そのようなファイルやディレクトリはありません

このエラーの解決法について記します。

原因

最初はshebangのところでエラーが発生したのでshebangが間違っているのかと考えました。

しかし、改めて確認してみてもshebangは間違っていないようでした。

そこでさらに調べてみると改行コードが原因であることがわかりました。

元々このスクリプトWindows環境で書いたものであったため、改行コードがLinuxと違いました。

その結果、先ほどの「/usr/bin/env:そのようなファイルやディレクトリはありません」が発生したと考えられます。

解決法

改行コードを変える方法は色々ありますが、今回はVimを用いて改行コードを変更しました。

Vimで改行コードを変更したい対象のファイルを開いたら下記のコマンドで改行コードを確認してみてください。

:se ff?

このコマンドで開いているファイルの改行コードがわかります。

私の場合、Linux環境だったのでunixであるべきですがdosでした。

なので、下記コマンドで改行コードを変更しました。

:se ff=unix

ファイルを保存して、再び実行したところ無事エラーはなくなりました。

おわり

Dockerでよく使うコマンド&オプション一覧

dockerでよく使うコマンドとオプションをまとめてみました。

イメージのダウンロード

docker pull 【イメージ名】

コンテナ、イメージの詳細を表示

docker inspect 【コンテナID】もしくは【コンテナ名】もしくは【イメージ名】

コンテナの起動

起動&生成

docker run -i -t【イメージ名】

もしくは

docker compose up -d --build【イメージ名】

起動

docker start 【コンテナID】もしくは【コンテナ名】

コンテナの停止

特定のコンテナを停止

docker stop 【コンテナID】もしくは【コンテナ名】

全てのコンテナを停止

docker stop $(docker ps -q)

プロセスの表示

起動中のコンテナのプロセス一覧を表示

docker ps

全てのプロセス一覧を表示

docker ps -a

イメージ一覧を表示

docker images

コンテナの削除

特定のコンテナを削除

docker rm 【コンテナID】もしくは【コンテナ名】

全てのコンテナを削除

docker rm $(docker ps -q -a)

イメージを削除

特定のイメージを削除

docker rmi $(docker images -q)

全てのイメージを削除

docker rmi 【コンテナID】もしくは【コンテナ名】

シェルに入る

docker-composeでシェルに入る

docker-compose exec 【コンテナID】もしくは【コンテナ名】 bash

dockerでシェルに入る

docker exec -it【コンテナID】もしくは【コンテナ名】 bash

DockerHub

DocuerHubにログイン

docker login

DocuerHubからログアウト

docker logout

ファイルのコピー

ホストからコンテナへコピー

docker cp 【コピー元】 【コンテナ名】:【コピー先】

コンテナからホストへコピー

docker cp 【コンテナ名】:【コピー先】 【コピー先】

コンテナをイメージに変換

docker commit 【コンテナID】もしくは【コンテナ名】【ユーザ名/レポジトリ名】

イメージのプッシュ

docker push【ユーザ名/レポジトリ名】