差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
fish-shell [2020/06/12 13:22] – [概要] mumeiyamibito | fish-shell [2023/05/12 15:15] (現在) – [rsync や scp で fish をインストールしたリモートサーバにファイルを転送できない (旧方法)] mumeiyamibito | ||
---|---|---|---|
行 5: | 行 5: | ||
* さらに予測機能 (tab を押さなくても履歴機能を表示) がある | * さらに予測機能 (tab を押さなくても履歴機能を表示) がある | ||
* 軽量 | * 軽量 | ||
+ | * '' | ||
+ | |||
+ | ===== インストール ===== | ||
+ | * 最新版をインストールする\\ <code bash> | ||
+ | $ sudo add-apt-repository ppa: | ||
+ | $ sudo apt update | ||
+ | $ sudo apt install fish | ||
+ | </ | ||
+ | |||
+ | * 共用サーバ等でホームディレクトリにインストールする ($HOME/ | ||
+ | - cmake のバージョンが 3.2 以上でない場合、cmake をインストールする。 | ||
+ | * [[サーバ関連/ | ||
+ | - 最新版のソースをダウンロードする。\\ <code bash> | ||
+ | $ wget https:// | ||
+ | </ | ||
+ | - ソースを展開する。\\ <code bash> | ||
+ | $ tar axvf fish-3.1.2.tar.gz | ||
+ | </ | ||
+ | - インストールする。\\ <code bash> | ||
+ | $ cd fish-3.1.2/ | ||
+ | $ cmake -DCMAKE_INSTALL_PREFIX=$HOME/ | ||
+ | $ make -j 4 | ||
+ | $ make install | ||
+ | </ | ||
+ | * cmake の '' | ||
+ | * 参考サイト: | ||
+ | * '' | ||
+ | - インストールされたか確認する。\\ <code bash> | ||
+ | $ ~/ | ||
+ | fish, version 3.1.2 | ||
+ | </ | ||
+ | - .bashrc の末尾に追記する。\\ <code bash> | ||
+ | if [ " | ||
+ | BOOT_FISH=1 | ||
+ | FISH_PATH=$HOME/ | ||
+ | if [ $BOOT_FISH -eq 1 ]; then | ||
+ | if [ -f $FISH_PATH ]; then | ||
+ | $FISH_PATH | ||
+ | exit | ||
+ | fi | ||
+ | fi | ||
+ | fi | ||
+ | </ | ||
+ | * '' | ||
+ | * 参考サイト: | ||
+ | * '' | ||
+ | * bash が一度起動しているため、環境変数は引き継がれる。 | ||
+ | * rsync や scp が転送できない対策として、SSH_TTY の if 文を追加した (2020/ | ||
+ | * 参考サイト: | ||
+ | - 再ログインする。 | ||
+ | |||
+ | |||
===== 環境設定 ===== | ===== 環境設定 ===== | ||
* プロンプトは '' | * プロンプトは '' | ||
行 155: | 行 207: | ||
==== find コマンドの exec が使えない ==== | ==== find コマンドの exec が使えない ==== | ||
- | * 対策: '' | + | * 対策1: '' |
- | * 参考サイト: | + | * 参考サイト: |
+ | * 対策2: find の結果を xargs で処理する。\\ 例: <code bash>$ find . -name ' | ||
==== if 文で優先順位のある複数の条件を扱う ==== | ==== if 文で優先順位のある複数の条件を扱う ==== | ||
行 198: | 行 251: | ||
* 参考サイト: | * 参考サイト: | ||
+ | |||
+ | |||
+ | ==== コマンドラインスタック ==== | ||
+ | * とても役立つテクニックで、buffer stack とも呼ばれるらしい…。 | ||
+ | * 長いコマンドを打っている時に、ヘルプオプションを見たくなった時に便利。 | ||
+ | * 長いコマンドを打っている時に、やり忘れたコマンドを実行したくなった時に便利。 | ||
+ | * つまり、現在の入力中のコマンドを一時的に退避させる方法。 | ||
+ | * 方法: | ||
+ | * 以下の関数を '' | ||
+ | function push-line | ||
+ | set cl (commandline) | ||
+ | commandline -f repaint | ||
+ | if test -n (string join $cl) | ||
+ | set -g fish_buffer_stack $cl | ||
+ | commandline '' | ||
+ | commandline -f repaint | ||
+ | |||
+ | function restore_line -e fish_postexec | ||
+ | commandline $fish_buffer_stack | ||
+ | functions -e restore_line | ||
+ | set -e fish_buffer_stack | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | |||
+ | function fish_user_key_bindings | ||
+ | bind \cs push-line | ||
+ | end | ||
+ | </ | ||
+ | * 最後の '' | ||
+ | * 参考サイト: | ||
+ | |||
+ | |||
+ | ==== rsync や scp で fish をインストールしたリモートサーバにファイルを転送できない (旧方法) ==== | ||
+ | * '' | ||
+ | if [ -z " | ||
+ | return | ||
+ | fi | ||
+ | </ | ||
+ | * .bashrc で何らかの処理がされている場合、scp や rsync が進行しないエラーが発生するため、.bashrc がこれらのコマンドで読み込まれた際、対話モードでない場合は即座に終了するようにする。 | ||
+ | * 参考サイト: | ||
+ | |||
+ | |||
+ | ==== ハイフンの入った文字列の置換ができない ==== | ||
+ | * 問題: '' | ||
+ | * 解決策: '' | ||
+ | * 例: <code bash> | ||
+ | $ string replace -- ' | ||
+ | hoge.js | ||
+ | </ | ||
+ | |||
+ | * 参考サイト: | ||
===== 参考サイト ===== | ===== 参考サイト ===== | ||
* [[http:// | * [[http:// | ||
- | {{tag> | + | {{tag> |