1.状況と目的
自宅マシンではbashからzshに完全に移行したが、出先や会社ではbash環境で作業することがまだ多くある。また世の中もzshを使う人が多くなりbash環境を忘れつつあるかbashまたはzshどちらか片方しか知らない人に「このリンクを読んで」と説明するのも手間なのでリンク集としてまとめ一つの記事にしておく。
2.bashの有用なリンク集
2021.07.08
Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社
最終更新日 2017年01月
知らないとrsyncでもハマるシェル初期化 #Linux - Qiita
最終更新日 2018年06月
ログインシェルとインタラクティブシェルと~/.bashrc達の関係 #Bash - Qiita
.bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? #Bash - Qiita
2-1.zshとBashの共通設定
bash の初期化ファイル .profile, .bashrc, .bash_profile の使い分けと管理方針 - A Memorandum
3.zshインストール
ZSH - THE Z SHELL(https://zsh.sourceforge.io/)
手前味噌な筆者の記事。2020年。ソースビルドする場合。
Macにzshをインストール #Zsh - Qiita
PATH問題は記事の下の方にリンクを記載した。
現在は
brew install zsh
だけでいいのかもしれない。
brewを使う。
MacデフォルトのzshからHomebrewで最新のzsh(5.0.2)にしたらめっちゃ便利だったメモ - haya14busa
初めて Mac で zsh を使う人のためのチュートリアル - mollifier delta blog
解説
Introduction of the ZSH(zshは、tcshやbash等を使っている以下のような症状に悩んでいる人に有効 である。)
zshの設定ファイルの読み込み順序と使い方Tipsまとめ #ShellScript - Qiita
zshのmanページが15個に分かれてるので解説してみる - mollifier delta blog
zsh-lovers - cuspy wiki(http://grml.org/zsh/zsh-lovers.html の和訳です)
4.bashからzshに乗り換え作業時に見るべきリンク一覧
Macでbashからzshへお引越しする方法 #Bash - Qiita
要点
$ cat .bash_profile >> .zprofile
筆者は $ cat .bash_profile >> .zshenv が好み。
$ cat .bashrc >> .zshrc
最終更新日2015年なので古い
とりあえずZshを使えば良いんだろう?(Zshに移行するにあたってやった事。) #Mac - Qiita
5.zshを拡張し便利にする。
更新:2024/05/02
.zshrc で zsh をカスタマイズしてみよう。(プラグイン無し)- original-game.com
2024-02-20
【ターミナル】入力補完ツールzsh-completionsで快適なzshライフを - 小さなことからこつこつと。
最終更新日 2018年
zplugをインストールする。
Mac標準のbashからzshに変えた時のメモ #Bash - Qiita
2023/09/27
zsh-completions
と
zsh-autosuggestions
macOS の zsh ではこれだけはやっておこう
6.zshとPATH設定とpath_helperの問題
path_helper問題は、これが答え。
2020-01-22
zsh: /usr/libexec/path_helperから逃れる方法 2020年版 - Sexually Knowing
>/etc/zprofileを読まないよう設定することもできて、これがおそらく最もポータブルな対処法でありそう。
.zshenvにunsetopt GLOBAL_RCSするだけ。
参考 筆者の過去記事。
MacOSにおけるPATH変数生成は2つの問題がある。(path_helper問題1) #shell - Qiita
7.その他のシェル関連など
シェルスクリプトのechoの移植性の問題に本気で対応する #Bash - Qiita
https://qiita.com/ko1nksm/items/d0b066268cda42ff24eb
echo コマンドの違いと移植性の問題 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog
>シェルや OS の違いに依らないポータビリティ(移植性、可搬性) の高いシェルスクリプトを書くには、ポータビリティに問題がある echo を利用してはいけません。代わりに printf を利用しましょう。 shebang を #!/bin/sh にしていたとしても、/bin/sh の実体が何かは OS や設定に依るのでご注意を。
どの環境でも使えるシェルスクリプトを書くためのメモ ver4.60 #ShellScript - Qiita
Mac OS bash/zsh周りのメモ
https://zenn.dev/omakazu/scraps/38e665630b78ee
8-1.消えたリンク(zshとBashの互換性)
Qiitaには他にも以下のような有用な記事があったが消えてしまった。特に上の記事は消えるのであればローカルに保存しておくのだった。持っている人がいたら筆者にください。
(ZshでもBashでも動くfunctionを書くときのストレスを減らそう - Qiita)
(本当は気をつけるべき、内部コマンドと外部コマンドの区別 - Qiita)
8-2.zshとBashの互換性 2024年12月追記
作成日時不明
Unix Shells: Bash, Fish, Ksh, Tcsh, Zsh - Hyperpolyglot
2013/12/26
BashとZshの違いでのハマりどころ
配列の番号
グロブ展開
typeset/localでの配列の初期化
readの引数
readにReturnを渡した時
(ダブル)クォート
command/builtin
2019年ごろ?
bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄
bashとzshの16の違い
bashとzshの制御構文系の違い
bashとzshの関数定義の違い
bashとzshのエイリアスの違い
コラム:クォート
zshのマルチリダイレクト(Multios)
コマンドなしリダイレクト入力
job関係
算術式と演算子
条件演算子
bashとzshのプロンプトの違い
bashとzshのヒストリ履歴の違い
bashとzshのプロセス置換の違い
bashとzshのパラメータ展開
bashとzshの配列とハッシュ
bashとzshのシェル変数の違い
cdコマンド
bashとzshのライン入力の違い
2023/11/12
mac の zsh と Linux/Windows の bash で互換性があるシェルスクリプトの連想配列
9.シェルに詳しいko1nksmさんのQiitaの記事
ko1nksmさんの意見と私個人の意見と異なるのは数行しかない優秀な人だと思う。異なるのは運用と業務方針と新人に対してシェルスクリプトの勉強をどこまでやらせるかどうか?たったこれだけかな。
最初にささっと読んだほうがいい記事。
2024年11月
【完全版】歴史でシェルの設定ファイルを理解する - 全POSIXシェル対応 (.profie, .bash_profile, .bashrc, .zprofile, zshrc, etc.) #Bash - Qiita
https://qiita.com/ko1nksm/items/febc5ceb4edb068a682a
二番目に読むといいと思う記事。
2023年06月
【初学者向け】内部コマンドと外部コマンドの違い ~ LinuxとWindowsの話を混ぜて解説するな! #UNIX - Qiita
https://qiita.com/ko1nksm/items/d67b0f8978557294c4ec
Mac限定で3番目に読むといいと思う記事。
2024年02月
Macでシェルスクリプトを書く人へ 「シェルはbashからzshに変わっていません!今でもbashで動くんだよ!」 #Bash - Qiita
https://qiita.com/ko1nksm/items/59c2e8a7afa969af8212
以上
ダミータグ Bash Zsh Mac zshrc zshenv Linux