bash と fish 変換
前回のコマンドの一部を書き換えて実行
引数が似たようなコマンドを複数実行したい場合とかあると思います。そういう時は以下のように実行すると書き換えたコマンドを実行できます。
echo nju_nju
# nju3_nju3
history | sed -n 1p | string replace -a nju 純
# echo 純_純
これはecho nju_nju
を最初実行した後、これをecho 純_純
と変換して表示するコマンドです。string replace
は文字を置き換えるためのfish
コマンドで、最初の文字列を後の文字列に変換できます。また、-a
、--all
オプションを使うことですべてのマッチする文字列を後に指定した文字列に変換できます。
ただしこれはまだ変換したコマンドを表示しているだけなので、それを実行する為にeval
を使います。
echo nju_nju
# nju3_nju3
eval (history | sed -n 1p | string replace -a nju 純)
# 純_純
純_純
と得れました。
ちなみにsed -n 1p
の部分を2p
や3p
と変更すると、2つ前や3つ前のコマンドを置換したものを実行できたりもします。
python を入れる
Mac なので Homebrew を使います。流れは、
pyenv
を入れる- インストール
- パスを通す
です。
以下で入れます。
brew install pyenv
またpython
を最新バージョンにしたい場合などは都度
brew upgrade pyenv
します。
これを書いている時の最新は3.7.3
でした。
pyenv install --list
# ...
# 3.7.3
# ...
これを入れます。
pyenv install 3.7.3
# 5分ぐらい
「 メインで使いますよ」と設定します。
pyenv global 3.7.3
.config/fish/config.fish
に一行追加します。
source (pyenv init -|psub)
または、
echo 'source (pyenv init -|psub)' >> ~/.config/fish/config.fish
これでfish-shellが立ち上がるたび先程インストールした3.7.3へのパスが通されるようになります。
最後に確認で、
which python
# /Users/nju33/.pyenv/shims/python
python --version
# Python 3.7.3
のように出れば完了です。