MacからWindowsにSSH接続する方法
Macでの準備
ターミナルを開きssh-keygen -t rsa
を実行します。~/.ssh
フォルダがない場合は事前に作ってください。
次にssh-keygen -t rsa
を実行し設定したいパスワードを入力します。これで~/.ssh/
にid_rsa_pub
というファイルが作られます。
Windowsでの準備
とても分かりやすい記事がありましたのでこちらの手順にしたがって設定してください。
この記事の中の"4.Linuxサーバーの公開鍵を設定する"の部分で必要なid_rsa.pub
は先ほどの手順で作ったものを利用してください。
SSH接続
SSH接続はssh <Windowsユーザ名>@<IPアドレス>
を実行しパスワードを入力することができます。
Windows機のIPアドレスがわからない場合はコマンドプロンプトかPowerShellでipconfig
を実行するとIPv4アドレスを確認できます。
MacとWindowsでフォルダ共有をする方法
MacとWindowsでフォルダ共有の設定をしたのでまとめます。
Mac側の設定
この記事の通りに設定すれば大丈夫です。
Windows側の設定
ファイルエクスプローラを開きコントロール パネル¥システムとセキュリティ¥システム
をコピペして移動して、ワークグループ名が"WORKGROUP"になっているのを確認してください。なっていなければMac側で設定するワークグループ名をその名前にしてください。
MacからWindowsへアクセス
Finderを開き、移動 > サーバへ接続をクリックしてsmb://<Windows PCのIPアドレス>
を入力しマウントするボリュームを選択します。
WindowsでIPアドレスを調べる方法
コマンドプロンプトかPowerShellを開きipconfig
を実行するとIPv4アドレスを確認することができます。
目的のフォルダをマウントできない
私が設定した時、Dドライブしかマウントすることができませんでした。
ファイルエクスプローラからPCを開きローカルディスク(C:)を右クリックして、プロパティ > 共有 > 詳細な共有を開きこのフォルダーを共有するにチェックをいれることでマウントできるようになります。
WindowsからMacへアクセス
WindowsからMacへのアクセスは簡単でネットワークフォルダの中にMacのフォルダがあるのでそこからアクセスできます。 しかしこのままではネットワークドライブとして認識されていないため、右クリックしてドライブ名を決めてネットワークドライブに割り当てをクリックします。
それぞれのパス
Macでの共有フォルダのパスは /Volumes/<共有フォルダ名>
で、Windowsでの共有フォルダのパスは<自分で設定したドライブ名>:¥
です。
Nushellのソースコードを軽く読んだまとめ
Nushellのソースコードを読んだので少しだけまとめます。
実行時引数
➜ nu -help nushell 0.5.0 USAGE: nu [OPTIONS] FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: --debug <debug>... --develop <develop>... -l, --loglevel <LEVEL> [possible values: error, warn, info, debug, trace]
-hでhelp表示、-Vでバージョン表示。オプションとして--developと-loglevelと--debugがありますね。(なぜかVSCodeのターミナルに設定するときは--loglevelがrequiredされてた。)
指定がない場合はWarnが設定され、nu本体が実行されます。
コマンド一覧
コマンド一覧はhelp commands
で確認することができます。
個々の説明はhelp rm
といった感じで見ることができます。
history fuzzy search
Ctrl-rで履歴を表示することができます。Enterで実行、tabで編集
Configファイル
configファイルはmacOSでは$HOME/Library/Application Support/nu/config.toml
にあります。他のOSでは分かりませんが、env | get config
でconfig.tomlのパスを調べることができます。
path = ["hoge/huga", "huga/hoge"]
という形式でPathを設定することができます。
envも設定できるが、tomlの書き方がわからない。。テーブルと配列で書いてみたけどクラッシュした。
ちなみに下記のコマンドで直接パスを追加することもできます。
> echo $nu:path | prepend "/my/new/directory" | config --set_into path
> echo $nu:env | insert GREETING hello_world | config --set_into env
でenvに追加できると紹介されているが、insertコマンドがないと怒られてしまう。。
www.jonathanturner.org
いろいろ
プロンプトフォーマット
プロンプトは以下のフォーマットで表示される。
/Users/hoge(master)>
といった形ですね。
let prompt = &format!( "{}{}> ", cwd, match current_branch() { Some(s) => format!("({})", s), None => "".to_string(), } );
また読んだら追記します。
Rust製ShellのNushellをVSCodeのデフォルトシェルにする
Rustが大好きなのでRust製モダンシェルのNushellを使おうと思い、VSCodeのデフォルトシェルにしようとしたところつまづいたのでメモをのこしておきます。
導入
導入方法は公式ガイドに従いそれぞれインストールしてください。 book.nushell.sh 私はHomebrewを使いました。
brew install nushell
*追記 Homebrewからインストールすると古いバージョンしかダウンロードできなかったため、releaseページからバイナリをインストールしました。
ターミナルのデフォルトシェルにする
/etc/shells
にパスを追加し、chsh -s /usr/local/bin/nu
をすることでデフォルトシェルにすることができます。
VSCodeのデフォルトシェルにする
settings.jsonを開き、"terminal.integrated.shell.osx": "/usr/local/bin/nu"
に変更します。
しかし、これだけでは起動時に引数に--loglevel <LEVEL>
が無いよ!!と怒られてしまいます。
なので、"terminal.integrated.shellArgs.osx": ["--loglevel", "error"]
を追加します。
loglevelは["error", "warn", "info", "debug", "trace"]
の5つが用意されていますが、Readmeに説明が書いていないのでソースコード読んでみないとわかんないです。自分はとりあえずerrorにしておきます。
追記
ソースコード見てたらloglevelはlog crateのフィルターってことがわかりました。
cargo-fmt(rustfmt)の設定方法
rustfmt時のタブサイズを2に変更したときにてこづったのでメモしておきます。
rustfmtの設定ファイルのパス
github.com rustfmtのドキュメントにも書いているんですけど、それぞれのOSのグローバルコンフィグディレクトリ以下にrustfmtフォルダを作り、その中にrustfmt.tomlを用意すれば良いようです。
各OSのグローバルコンフィグディレクトリはdirsライブラリのconfig_dir関数で取ってきており値は以下のようになっています。
Platform | Value | Example |
---|---|---|
Linux | $XDG_CONFIG_HOME or $HOME/.config | /home/{{user_name}}/.config |
macOs | $HOME/Library/Preferences | /Users/{{user_name}}/Library/Preferences |
Windows | {FOLDERID_RoamingAppData} | C:\Users{{user_name}}\AppData\Roaming |
設定ファイルの作成
私の場合macOsなので下記のコマンドを実行しファイルを作りtab_spaces = 2
と書き込みます。
mkdir ~/Library/Preferences/rustfmt touch ~/Library/Preferences/rustfmt/rustfmt.toml
その他の設定法はドキュメントを参照してください。
ZshでCargo, rustupの補完を有効にする
ZshでCargoとrustupの補完を効かせるようにします。
最低限の補完
.zshrcに以下を追加して補完機能を有効にします。
autoload -Uz compinit compinit -u
Zsh補完の仕組み
zshは$fpath, $FPATHという環境変数を持っており、このパスに含まれる補完ファイルを読み込みます。
なので自分は~/.zsh/completionsを作りパスを通してここに補完ファイルをおいています。
パスの通し方は.zprofileに下記のコードを追加するとできます。
fpath=(~/.zsh/completions $fpath)
Cargoの補完
Cargoのzsh補完ファイルは
~/.rustup/toolchains/{toolchain名}/share/zsh/site-functions/_cargo
です。これをコピーするなりシンボリックリンク作るなりでパスの通っているディレクトリに移動しましょう。
rustupの補完
rustupは以下のコマンドを実行することで補完ファイルを作成することができます。(> 以下は自分のディレクトリを設定してください)
rustup completions zsh > ~/.zsh/completions/_rustup
以上でCargoとrustupの補完設定完了です。快適なRust Lifeをお送りください。
tips: shellの再起動コマンド
exec $SHELL -l
Web版のApple Music(ベータ版 )が公開開始!
Apple MusicがWeb上で利用することができるようになりました。
こちらでログインすればすぐに使うことができます。
なんでもブラウザ上で完結させたい私にとっては最高です。
バグと思われるもの
- 次に再生、後に再生ができない
しばらく使ってみてアプリ版とWeb版での違いをまとめたいと思います。