差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
fish-shell [2020/06/12 13:38] – [find コマンドの exec が使えない] mumeiyamibito | fish-shell [2023/05/12 15:15] (現在) – [rsync や scp で fish をインストールしたリモートサーバにファイルを転送できない (旧方法)] mumeiyamibito | ||
---|---|---|---|
行 5: | 行 5: | ||
* さらに予測機能 (tab を押さなくても履歴機能を表示) がある | * さらに予測機能 (tab を押さなくても履歴機能を表示) がある | ||
* 軽量 | * 軽量 | ||
+ | * '' | ||
===== インストール ===== | ===== インストール ===== | ||
行 14: | 行 15: | ||
* 共用サーバ等でホームディレクトリにインストールする ($HOME/ | * 共用サーバ等でホームディレクトリにインストールする ($HOME/ | ||
+ | - cmake のバージョンが 3.2 以上でない場合、cmake をインストールする。 | ||
+ | * [[サーバ関連/ | ||
- 最新版のソースをダウンロードする。\\ <code bash> | - 最新版のソースをダウンロードする。\\ <code bash> | ||
$ wget https:// | $ wget https:// | ||
行 28: | 行 31: | ||
* cmake の '' | * cmake の '' | ||
* 参考サイト: | * 参考サイト: | ||
+ | * '' | ||
- インストールされたか確認する。\\ <code bash> | - インストールされたか確認する。\\ <code bash> | ||
$ ~/ | $ ~/ | ||
fish, version 3.1.2 | fish, version 3.1.2 | ||
</ | </ | ||
- | - '' | ||
- | if [ -z " | ||
- | return | ||
- | fi | ||
- | </ | ||
- | * .bashrc で何らかの処理がされている場合、scp や rsync が進行しないエラーが発生するため、.bashrc がこれらのコマンドで読み込まれた際、対話モードでない場合は即座に終了するようにする。 | ||
- | * 参考サイト: | ||
- .bashrc の末尾に追記する。\\ <code bash> | - .bashrc の末尾に追記する。\\ <code bash> | ||
- | BOOT_FISH=1 | + | if [ " |
- | FISH_PATH=$HOME/ | + | BOOT_FISH=1 |
- | if [ $BOOT_FISH -eq 1 ]; then | + | FISH_PATH=$HOME/ |
- | if [ -f $FISH_PATH ]; then | + | if [ $BOOT_FISH -eq 1 ]; then |
- | $FISH_PATH | + | if [ -f $FISH_PATH ]; then |
- | exit | + | $FISH_PATH |
+ | exit | ||
+ | fi | ||
fi | fi | ||
fi | fi | ||
行 53: | 行 52: | ||
* '' | * '' | ||
* bash が一度起動しているため、環境変数は引き継がれる。 | * bash が一度起動しているため、環境変数は引き継がれる。 | ||
+ | * rsync や scp が転送できない対策として、SSH_TTY の if 文を追加した (2020/ | ||
+ | * 参考サイト: | ||
- 再ログインする。 | - 再ログインする。 | ||
行 250: | 行 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> |