- 投稿日:2020-11-23T21:10:43+09:00
LinuxでSuperColliderの音を他のアプリのマイク入力として渡す
リモートセッションでSuperCollider(以下SC)の音をブラウザに渡したい時など、SCの出力を他のアプリの入力として渡したい時の設定方法
最終的にこうする。
この図は
qjackctl
で表示できるグラフ。SCの出力をPulseAudio JACK Source
に接続しているところがポイントPulseAudioはLinuxのaudioサーバーで、ブラウザなどの最近のアプリはだいたいこれを使って音を鳴らしている。SCのようなリアルタイム性が要求されるアプリはPulseAudioではなく、JACK/ALSAを使っている。
PulseAudioのjackモジュールを使うと、jack上でPulseAudioの入出力を扱えるようになる。あと
qjackctl
(jackの設定用GUI)とpavucontrol
(pulseaudioの設定用GUI)も入れておくと便利
arch linuxの場合は下記のコマンドで各種アプリ/モジュールをインストールできる> sudo pacman -S pulseaudio-jack qjackctl pavucontrol重要なポイントとして、jackを起動するタイミングでPulseAudioは停止していなければならない。
pulseaudio -k
で停止させる。
※ PulseAudioを使うアプリがあると、勝手にPulseAudioを起動してしまうので注意> pulseaudio --check -v I: [pulseaudio] main.c: Daemon running as PID 2959 > pulseaudio -k > pulseaudio --check -v I: [pulseaudio] main.c: Daemon not runningPulseAudioの停止を確認したら、下記の手順で設定する。
qjackctl
の「開始」ボタンを押して、jackを起動する
PulseAudio
のjackモジュールをロードする> pactl load-module module-jack-sink channels=2 > pactl load-module module-jack-sourceSuperColliderを起動する
PulseAudio
を使うアプリを起動して、マイク入力を使う状態にする
pavucontrol
の「録音」タブから起動したアプリがJack source
と接続されていることを確認できる
qjackctlの「グラフ」でこのページの最初の図のように
PulseAudio JACK Source
に接続する
- 投稿日:2020-11-23T20:52:00+09:00
Linuxでnologinユーザーをログインできるようにする方法
Linuxでnologinユーザーをログイン出来るようにしたり、ログインユーザーをnologinユーザーに変更する検証をしたのでまとめました。
検証環境
- AWS
- Ubuntu20.04
検証内容
1.デフォルトだと
www-data
ユーザーがnologin
の設定になっているので、このユーザーで検証する$ cat /etc/passwd | grep www-data www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin2.
/var/www
ディレクトリが存在していないので作成する$ sudo mkdir -p /var/www $ sudo chown www-data:www-data /var/www $ ls -alF /var/www total 8 drwxr-xr-x 2 www-data www-data 4096 Nov 7 05:34 ./ drwxr-xr-x 14 root root 4096 Nov 7 05:34 ../3.設定変更しないで、nologinユーザーにログインする
$ sudo su - www-data --shell=/bin/bash4.デフォルトで作成されている
www-data
ユーザーをログインできるよう設定する### ログインできないことを確認 $ sudo su - www-data This account is currently not available. ### ログインできるように設定 $ sudo usermod -s /bin/bash www-data $ cat /etc/passwd | grep www-data www-data:x:33:33:www-data:/var/www:/bin/bash5.ログインユーザーからnologinユーザーに設定変更
### ログインできないように設定 $ sudo usermod -s /usr/sbin/nologin www-data $ cat /etc/passwd | grep www-data www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin ### ログインできないことを確認 $ sudo su - www-data This account is currently not available.参考
- 投稿日:2020-11-23T18:12:48+09:00
【備忘録】役に立つlinuxコマンド集
- 投稿日:2020-11-23T18:05:40+09:00
【備忘録】ubuntuにてdockerインストールからJupyterLab起動までの流れ
はじめに
VPSサーバのubuntu内にdokcerをインストールして、jupyterlabの起動までを行います
前提
今回はAWSのlightsailを用いてubuntu環境を用意しました
https://qiita.com/s-inoue-git/items/1bcf1a28ed73090c3d86目次
- dockerインストール
- Dockerfileの転送
- containerの起動
1. dockerのインストール
sudo apt-get update #sudo apt-get install docker.io #古いバージョンがインストールされてしまう sudo apt-get install docker-ce docker --version #Docker version 19.03.8, build afacb8b7f0バージョン情報が確認できればインストールの成功です!
※docker.ioとdocker-ceの違い
https://qiita.com/nnagashima/items/79887825ce9d7c8b24abdockerコマンドのたびにsudoを入力するのが面倒なため、ユーザ(ubuntu)をdocker groupのなかに加えます
sudo gpasswd -a ubuntu docker #Adding user ubuntu to group docker exit #ログアウトしないとグループの追加が反映されません2. Dockerfileの転送
#sftp接続 sftp -i ~/.ssh/Lightsail_ubuntu_20201123.pem ubuntu@3.112.200.82 sftp> put Dockerfile今回は以下チュートリアルで作成したDockerfileを転送しました
https://qiita.com/s-inoue-git/items/2b5c65a1f11a1ba4a38e3. containerの起動
docker runのコマンドを実行
docker run -v $(pwd)/volume:/home/work -p 8888:8888 --name anaconda-env -it anaconda-imgあとは、ファイヤウオールの設定を変更して、どこからでもアクセスできるようにすれば、「パブリックIP:ポート番号」でアクセスできるようになります
今回は学習用なのでセキュリティー設定ガバガバです。。。
- 投稿日:2020-11-23T17:46:09+09:00
【Linux】echoコマンドの使用方法
はじめ
Linuxコマンドの一つのechoコマンドについて、自分がよく使用している方法をアウトプットします。
※全ての使用方法は網羅できておりませんので、ご了承下さい。echoコマンドとは?
このようなことができるコマンドになります。
- 画面に文字列の表示
- コマンドの実行結果の表示
- 文字列をファイルに出力
- 文字列をファイルに追記
echoコマンドの使用方法(例)
文字列の表示
指定の文字列を表示します。
コマンドecho "文字列"コマンド実行例
実行例[root@tspweb01 test]# echo aaaaa aaaaaコマンドの実行結果の表示
コマンドの実行結果を表示します。
コマンドecho $?
- コマンドの実行結果
実行結果 内容 0 True(コマンドの実行が成功) 1 False(コマンドの実行が失敗) 127 コマンドが見つからない コマンド実行例
- True(成功)
実行例(True)[root@tspweb01 test]# true [root@tspweb01 test]# echo $? 0
- False(失敗)
実行例(False)[root@tspweb01 test]# false [root@tspweb01 test]# echo $? 1
- コマンドが見つからない
実行例(コマンドが見つからない)[root@tspweb01 test]# wh -bash: wh: コマンドが見つかりません [root@tspweb01 test]# echo $? 127 [root@tspweb01 test]#文字列をファイルに出力
指定の文字列をファイルに出力します。
コマンドecho "文字列" > ファイル名コマンド実行例
実行例[root@tspweb01 test]# echo "testtest" > test.txt [root@tspweb01 test]# cat test.txt testtest [root@tspweb01 test]#文字列をファイルに追記
指定の文字列をファイルに追記します。
コマンドecho "文字列" >> ファイル名コマンド実行例
[root@tspweb01 test]# cat test.txt testtest [root@tspweb01 test]# echo "testtest" >> test.txt [root@tspweb01 test]# [root@tspweb01 test]# cat test.txt testtest testtest [root@tspweb01 test]#注意
実作業の際には、
>
と>>
を間違えないようにお気をつけ下さい。
(意味が全然違います。)
>
: ファイル全体の上書き>>
: ファイルの最終行に1文を追記重要なファイルの作業を実施する際は、必ず
cp
コマンドにてバックアップを取得しましょう。まとめ
echoコマンドでは、このようなことができます。
- 画面に文字列の表示
- コマンドの実行結果の表示
- 文字列をファイルに出力
- 文字列をファイルに追記
bashスクリプトに応用してみては、如何でしょうか?
参考
- 投稿日:2020-11-23T16:41:42+09:00
【備忘録】AWS LightSailでterminalからssh接続
はじめに
AWS LightSailでデータサイエンス環境構築の練習の備忘録です
目次
- LightSailでインスタンスを作成
- shh接続
1. AWSのlightsailでインスタンスを作成する
https://lightsail.aws.amazon.com
2. ssh接続
アカウントページからプライベートキーをダウンロードする
アカウントページ
プライベートキーと設定ファイルを「~/.shh」ディレクトリに格納する
cd ~/.ssh ls Lightsail_ubuntu_20201123.pem config #Lightsail_ubuntu_20201123.pem・・・プライベートキー #config・・・設定ファイル~/.ssh/confighost lightsail_ubuntu HostName 3.112.200.82 Port 22 User ubuntu IdentityFile ~/.ssh/Lightsail_ubuntu_20201123.pemssh接続
ssh lightsail_ubuntuもしくは、configファイルを設定せずにプライベートキーのオプションをつける方法もあります
ssh -i Lightsail_ubuntu_20201123.pem ubuntu@3.112.200.82
これで接続完了です!
参考
・Amazon Lightsailのサーバにssh接続する
https://nana4-story.com/ssh-amazon-lightsail
- 投稿日:2020-11-23T13:12:35+09:00
nf_tablesのnftコマンドメモ (CentOS8)
設定の削除# nft flush rulesettableの作成# nft create table mytable1 # nft list ruleset ip ##確認chainの作成# nft add chain ip mytable1 mychain1 { type filter hook input priority 0 \; } # nft -a list chain ip mytable1 mychain1 ##確認sshの許可# nft add rule mytable1 mychain1 tcp dport 22 acceptルールを追加するたびに確認# nft -a list chain ip mytable1 mychain1ssh以外の拒否# nft add rule mytable1 mychain1 drop戻りの通信は通す# nft add rule mytable1 mychain1 handle 2 ct state related,established accepticmp許可# nft add rule mytable1 mychain1 handle 6 icmp type { echo-request, echo-reply } accept8080許可# nft add rule mytable1 mychain1 handle 2 tcp dport 8080 ip saddr 192.168.11.0/24 accept10050許可# nft add rule mytable1 mychain1 handle 10 tcp dport 10050 ip saddr 192.168.11.0/24 accept設定書き出し# nft list ruleset > ruleset.conf設定読み込み# nft -c ruleset.conf ## チェック # nft -f ruleset.conf削除## table削除 # nft delete table mytable1 ## chain削除 # nft delete chain mytable1 mychain1 ## chain内のルールはhandleを指定して削除する # nft delete rule myrule1 mychain1 handle 11有効化# systemctl enable nftables.service # systemctl start nftables.service # nft list ruleset > /etc/sysconfig/nftables.conf ##CentOS,RHELの場合 # サーバ再起動して設定が読み込まれているかチェック。参考にしたサイト
https://knowledge.sakura.ad.jp/22636/
https://mimumimu.net/blog/2019/12/07/iptables-%E3%81%8B%E3%82%89-nftables-%E3%81%AB%E3%82%B5%E3%82%AF%E3%83%83%E3%81%A8%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B/
- 投稿日:2020-11-23T11:33:54+09:00
Linuxの超入門
概要
ここでは、Linuxの基本的な知識とコマンドを復習がてら書き留めておきます。
カーネルとは
CPUやメモリ、キーボード、ディスクといったハードウェアとコミュニケーションを取ることが出来る唯一のソフトウェア。
シェルとは
カーネルに直接つながっているチャットインターフェースのようなもの。
シェル言語を通して、カーネルでコマンドを実行出来る。
ざっくりいうとこんな感じだ。
人間 <=> シェル <=> カーネル
シェル言語の種類は、
sh
tcsh
bash
zsh
などがある。STDINとSTDOUT
LINUX環境でSTDINはインプット、STDOUTはアウトプットを制御するための装置です。
この装置をターミナルにつなげることで、キーボードを使って入力や出力を使うことが出来るようになる。このように、インプット・アウトプットをつなげるようにすることを
ttyをアタッチする
という。シェルコマンド(基礎)
- ディレクトリー操作系
# ディレクトリ情報の表示(list) ls [dir] # ディレクトリの移動(change dir) cd [dir] # 現在のディレクトリを表示(print working dir) pwd # ディレクトリの作成(make dir) mkdir [folder name]
- ファイル操作系
# ファイルの作成 touch # ファイルに付け足し echo >> [file name] # ファイルのコンテンツ表示(concatenate) cat test_file
- タスクマネージャー系
# プロセスの表示(process status) ps # プロセスをバックグラウンドで起動(&) sleep 60 & # プロセスをフォアグラウンドに戻す(foreground) fg
- ヘルプ系
# コマンドのヘルプ(help) ps --help # コマンドの保存先を表示(whitch) whitch ps # コマンドのマニュアルを表示(manual) man ps
- サーチ系
# ファイルやフォルダーを探す(find) find / -type d -name test # 文字を検索 grep "aaa" test.txt -n # フォルダー名を探し、その中のファイルを文字検索 find / -type d -name test | xargs grep -r aaa
- 投稿日:2020-11-23T09:11:02+09:00
BlueZのマスター名を変えたい話
LinuxでBluetoothの名前を変えたい
コロナ禍で初の自作PCを組んだのですが、皆さんはホスト名ってどうしていますか?メーカー製なら決まった名前、Windowsだとデフォルトでランダムな英数字、Fedora、openSUSEだとlocalhostだったり、Ubuntu系はインストール時に自分で決めたりetc..。ラップトップ、デスクトップとLinuxを複数動かして名前が被っても面倒なので変えたい、と思ったら引っかかったのでメモ。
今回の環境
- 自作PC
- openSUSE Tumbleweed
- GNOME desktop
ホスト名と分かれている..らしい
YaSTツールでホスト名を変えて、ターミナル上で変更を確認したのですがBluetoothの設定画面を覗いても変わっていなかったので、一緒に変えてくれるわけではないようでした。
そこでhciconfigを開こうとしたら、無くなっていたんですね。hcitoolやhciconfigはBlueZに同梱されず
参照:https://wiki.archlinux.jp/index.php/Bluetooth#.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB
ラズパイだと使ってた気がしたけど、バージョンが古かったのか..?なら代替品は?
非推奨なら入れて使う気にもならないしということでBlueZ自体に変わりがあるだろうと、helpを見ると
[bluetooth]# help Menu main: Available commands: ------------------- advertise Advertise Options Submenu scan Scan Options Submenu gatt Generic Attribute Submenu list List available controllers show [ctrl] Controller information select <ctrl> Select default controller devices List available devices paired-devices List paired devices system-alias <name> Set controller alias reset-alias Reset controller alias power <on/off> Set controller power pairable <on/off> Set controller pairable mode discoverable <on/off> Set controller discoverable mode discoverable-timeout [value] Set discoverable timeout agent <on/off/capability> Enable/disable agent with given capability default-agent Set agent as the default one advertise <on/off/type> Enable/disable advertising with given type set-alias <alias> Set device alias (以下省略)それらしきを発見ということで、さっそく
[bluetooth]# system-alias hogehoge