- 投稿日:2021-01-25T23:07:29+09:00
Linuxコマンド (初心者向け)
Linuxコマンドとは
簡単に言えば、コンピューターに命令をする事。
それをターミナルとシェルを使って行う。シェルとターミナル
ターミナル
ターミナルは主に画面担当。
シェル
コマンドを解釈してLinuxとやりとりする担当。
主な流れ
ターミナル上でコマンド入力すると、シェルが命令を解釈して、Linuxに伝え、Linuxがコマンドを実行して、シェルがコマンドの実行結果をターミナルで画面に表示させる。
これだけは抑えておきたいコマンド
lsコマンド
現在いるディレクトリの中のファイルなどを表示してくれる。
pwdコマンド
今自分がいるディレクトリを表示してくれる。
cdコマンド
ディレクトリを移動するコマンド。
mkdirコマンド
mkdir+新規のディレクトリ名でディレクトリを作成する事ができる。
touchコマンド
touch+新規のファイル名でファイルを作成する事ができる。
echoコマンド
echo Hello > new
こうする事でnewファイルにHelloと書き込む事ができる。catコマンド
ファイルの中の記述を確認する事ができる。
lessコマンド
catコマンドと同じでファイルの中の記述を確認する事ができる。
唯一の違いは、全画面で表示する事ができる。よって、ファイルの中身が長い時はlessコマンドを使う方が良い。mvコマンド
mv 古いファイル名 新しいファイル名
これで古いファイルを新しいファイルに変更する事ができる。rmコマンド
ファイルを削除する事ができるコマンド。
- 投稿日:2021-01-25T19:16:52+09:00
Linuxでウェブカメラの仮想背景を設定するデーモンを書いた
Zoomを始め各種のビデオ会議アプリでは、人物を背景から切り抜いて仮想背景と合成する機能がついていることが多いです。しかし、私の知る限りどのサービスでもLinux版のクライアントソフトではその仮想背景機能がなぜか削られています。ということで、何百番煎じかわからないんですが、仮想背景を合成した動画を返す仮想カメラを作るプログラムを作りました。
やっていること
今までのやり方と同じで、Bodypixというニューラルネットワークによる人物認識法を使って人物を背景から切り出し、合成した結果をv4l2loopbackモジュールを使って出力しています。これの丸パクリです。じゃあなんでわざわざまた作ったんだって感じですが、今までのやり方では必ず背景合成プログラムを手動で起動するか、常に起動しっぱなしにして常にニューラルネットワークを計算しっぱなしにする必要がありました。いちいちコマンドを叩くのはどうもなんかめんどくさいですが起動しっぱだとエコじゃないし生のカメラ出力が使えなくなってしまうということで、なんかちょっと微妙な感じがします。そこで、
inotify
を使って、仮想デバイスが開かれたときだけ推論をするようなプログラムを書き、これをsystemdでデーモン化してみました。キャラクタデバイスをinotify
できるのかどうか若干心配でしたが、今の所ちゃんと動いてるっぽいです。(まあ、もしかしたらすでに誰かがやってるかもしれませんが。。)ソース
ここ。インストール方法もそちらで。
デモ
仮想カメラ
/dev/video2
をffplay
で再生してみました。自分の画像を載せたくなかったのでスマホの画面に人の写真を載せて認識させてみました。(人物のチョイスには特に他意はありません。単にニュースサイトの一番上にいただけです)
- 投稿日:2021-01-25T16:54:58+09:00
Linuxサーバーへの外付けHDDのマウント方法
- 投稿日:2021-01-25T16:44:55+09:00
Linuxで新規ユーザーを追加する方法
Linuxでユーザーを追加する際にいつもコマンドを調べているので、備忘録として書く。
本記事に含まれる内容
- Linuxでの新規ユーザーの追加方法
Linuxでの新規ユーザーの追加方法
ユーザーの追加
$ sudo useradd -m {NEWUSER} # -m --create-home ユーザーのホームディレクトリが存在しない場合、作成する指定グループに追加
$ sudo gpasswd -a {NEWUSER} {GROUPNAME}passの設定
$ sudo passwd {NEWUSER}指定グループに正しく加えられているかの確認
$ getent group {GROUPNAME}
- 投稿日:2021-01-25T16:11:27+09:00
shell の時間処理
いつも調べるので、ここでメモ
文字列 ⇒ Date
以下全部いけし、妥当性チェックもやってくれる:date -d '20121212 7 days' date -d '12-DEC-2012 7 days' date -d '2012-12-12 7 days' date -d '2012-12-12 4:10:10PM 7 days' date -d '2012-12-12 16:10:55 7 days'Date ⇒ 文字列
date '+%Y%m%d'これで足りると思う
参考:https://stackoverflow.com/questions/11144408/convert-string-to-date-in-bash/11144983
- 投稿日:2021-01-25T13:00:16+09:00
get-pipを使ったpipインストールでエラーが発生
pipのインストールでエラーが発生しました。
Traceback (most recent call last): File "get-pip.py", line 24226, in <module> main() File "get-pip.py", line 199, in main bootstrap(tmpdir=tmpdir) File "get-pip.py", line 82, in bootstrap from pip._internal.cli.main import main as pip_entry_point File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 896, in _find_spec File "<frozen importlib._bootstrap_external>", line 1147, in find_spec File "<frozen importlib._bootstrap_external>", line 1123, in _get_spec File "<frozen importlib._bootstrap_external>", line 1104, in _legacy_get_spec File "<frozen importlib._bootstrap>", line 444, in spec_from_loader File "<frozen importlib._bootstrap_external>", line 541, in spec_from_file_location File "/tmp/tmphdllod41/pip.zip/pip/_internal/cli/main.py", line 60 sys.stderr.write(f"ERROR: {exc}") ^ SyntaxError: invalid syntaxget-pipにアップデートがあり、
https://github.com/pypa/get-pip/commit/8cc88aca7d9775fce279e8b84ef163cf1d3e8a2eget-pip.pyの書き方がpython3.6以降のものになったようです。
https://stackoverflow.com/questions/65866417/pip-install-failing-on-python2解決方法
下記にあるバージョンを指定してあげる
https://bootstrap.pypa.io/or
pythonのバージョンを3.6以上にする
で解決できそうです。