並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 142件

新着順 人気順

zshの検索結果1 - 40 件 / 142件

zshに関するエントリは142件あります。 shellbashシェル などが関連タグです。 人気エントリには 『シェルスクリプトを書くのをやめる - blog.8-p.info』などがあります。
  • シェルスクリプトを書くのをやめる - blog.8-p.info

    今年から、できるだけシェルスクリプトを書くのをやめようとしている。私が毎日 zsh に打ち込んでいるのも広義のシェルスクリプトだし、自分用の雑なスクリプトを書くことはあるけれど、チームの他の人も将来に使ったり改変したりするようなものは、なるだけ他の言語を使っている。 シェルスクリプトを書くのは難しいし、その難しさは、学ぶに値しないといったら言い過ぎかもしれないけれど、2021年に初心者が取り組むべき問題とは言い難いと思う。 シェルは悪いプログラミング言語である Bash Strict Mode とかを使ってみても、シェルスクリプトには落とし穴が多すぎる。自分で書いたものを自分で使っている分には大丈夫なのだけど、スクリプトがチーム内で使われるようになると、考慮していなかったところ、例えばファイル名に空白文字が含まれるとか、そういうレベルの微妙なところで、ちゃんと書かれていないスクリプトは壊れ

    • Bash Scriptの作法 - Qiita

      はじめに チーム開発でシェルスクリプト(特にBash Script)を書く際に守るべきルールをまとめます。 シェルスクリプトのコードレビューをする際等にお役立てください。 スクリプト名 -区切りの小文字英数字(いわゆるkebab-case)をつける。拡張子は.sh. これは特に理由があるわけではないので_区切りでもよいし、チーム内にzshやfish等の他Shell愛好家がいる場合は拡張子は.bashでも良い。どちらにせよチーム内では統一しておかないと混乱の元となる。 改行コード LFを使用する。CRLFだと動作しないので書く際に間違うことはないが、Windows上のgitのautocrlf設定によってはご丁寧にCRLFでチェックアウトされてしまう。 避けるためにはgit config --global core.autocrlf inputとするか、.gitattributesをレポジトリ

        Bash Scriptの作法 - Qiita
      • M1 Macを購入したのでセットアップ&zsh環境をいい感じにした - Qiita

        先日のApple Eventでも Mac Studio や iPad Air(第5世代) が発表され、いよいよ Apple M1チップ がデファクトスタンダードになったなあと感じています。自分もこれまで、業務用PCとしてMacBook Pro 2017を使っていたのですが、悪名高いバタフライキーボードの破損をきっかけに MacBook Air(M1) を購入してもらいました。 さっそく業務で使用していくためにセットアップをしたのですが、やはりIntelチップとの違いに戸惑ったので備忘録としてまとめます。この記事は元々社内のナレッジに書く予定だったのですが、自分自身QiitaやZennの記事にかなり助けられました。この記事も今後M1 Macをセットアップする人の役に立てばと思っています。 MacOSの基本的な設定を使いやすく変更する 購入したばかりのMacはDockに大量のアプリが登録されて

          M1 Macを購入したのでセットアップ&zsh環境をいい感じにした - Qiita
        • 2023年のシェル環境構築

          tl;dr fig starship zsh fzf sheldon なぜ vscode の .vscode/tasks.json が fishと非常に相性が悪い。とくに fish-nvm を使っていると、fish 経由のパス実行時に node と npm へパスが通らない。 そもそも fish を使っていた理由は autocomplete を快適にするためだったが、1年ぐらい Fig を使っていて、補完はこれを任せていいと気づいた。 Fig はこういうやつ そもそも fish の拡張コマンドを使わないように生活していた。方言を覚えたくない。というか bash 拡張や zsh 拡張もあんまり覚えたくない。

            2023年のシェル環境構築
          • macOS の zsh ではこれだけはやっておこう

            /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

              macOS の zsh ではこれだけはやっておこう
            • bash の危険な算術式 - どさにっき

              ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(本家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルを食わせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

              • iTermをやめてWarpというモダンターミナルアプリを導入したら、生産性がやはり爆上がりした件

                Warpとは Warpとは、多くの便利な機能と最新のコードエディタのような操作感が実現されている非常に高速なRustベースのターミナルで、モダンなUIで利用体験も良く、生産性を上げられそうなアプリケーションです。 以下公式サイトもしくは、Homebrew経由でインストールできます。個人であれば、無料で利用することができます✨(2023年8月現在、Mac OSのみ対応しており、Windows版は開発中) 初回起動時はGithubのサインインが求められたり、簡単な質問に答える必要があります。ただ、導入自体はサクッと進めることができたり、Zshがデフォルトのシェルとして設定されているので、手間がかからないのも有り難いですね。 ■ 公式 ■ Homebrew iTermからの卒業 わたしは今まで、主にiTermを使ってターミナル操作を行ってきました。 ただ、iTermのデフォルト設定では、Mac内

                  iTermをやめてWarpというモダンターミナルアプリを導入したら、生産性がやはり爆上がりした件
                • 🚀 プロンプトを超絶おしゃれにする Starship を紹介 - Qiita

                  公式: https://starship.rs GitHub: https://github.com/starship/starship Starship はプロンプト(ターミナルに表示されるカレントディレクトリやユーザーの情報) のカスタマイズを行うプラグインのようなもので、特徴としては 公式より引用 Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! The prompt shows information you need while you're working, while staying sleek and out of the way. Rustで作られているために高速に動くそうです。 インストール Macであればとても簡単に、

                    🚀 プロンプトを超絶おしゃれにする Starship を紹介 - Qiita
                  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

                    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

                      シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
                    • ようこそdotfilesの世界へ - Qiita

                      はじめに 少し前から話題になっているが、日本の労働生産性はG7で最も低いらしい。 日本生産性本部資料より https://www.jpc-net.jp/intl_comparison/intl_comparison_2018_press.pdf 日本は人口減少に突入していることもあって、「作業の効率化」や「自動化・省力化」をいうフレーズをあらゆる業種で聞くようになった。 ITエンジニアは、あらゆる職業の中でも最も効率化、自動化をして生産性を高められるといっても過言ではないだろう。プログラマの三大美徳(「怠惰」「短気」「傲慢」)にもあるように、同じことを何度もやらない、楽をするためにがんばるという生産性を意識した感性が重要視されているからだ。 生産性を高めることで、勉強する時間が作れたり、新しいことを経験したりするなどしてさらにスキルアップができ、さらに生産性が上がるという好循環を作り出すこ

                        ようこそdotfilesの世界へ - Qiita
                      • ひさしぶりにzshに戻りました - ちなみに

                        仕事用のマシンをM1 MacBook Proに交換してもらったので、開発環境を整え直しました。 2年ほど fish を使ってきたのだけれど、普段は良いのだけれど、ちょっと自動化したくなったときに、やはりPOSIX準拠じゃないシェルはなかなか難しかった。macOSの標準も zsh になったことだし、久しぶりに戻ってみることにした。 導入 現代なので XDG Base Directory Specification に乗っかっておくことにする。 Arch Linux の Wiki がよくまとまっていて助かるのでこれを参考にして進めた。 zshの場合は ZDOTDIR を指定するといいのだけれど、これをどこで指定するのかという問題がある。zshの起動時に最初に読み込まれるユーザー設定は ~/.zshenv なのだけれど、ここに ZDOTDIR を書くということは .zshenv だけホームディレ

                          ひさしぶりにzshに戻りました - ちなみに
                        • Use zsh as the default shell on your Mac

                          Starting with macOS Catalina, your Mac uses zsh as the default login shell and interactive shell. You can make zsh the default in earlier versions of macOS as well. By default, your Mac uses either zsh or bash as the command-line interpreter for the login shell and interactive shell: zsh (Z shell) is the default shell for all newly created user accounts, starting with macOS Catalina. bash is the d

                            Use zsh as the default shell on your Mac
                          • sourceコマンドを誤って使ってしまいゾッとした話 - Qiita

                            ってやってしまった。 ぎゃぁぁあああああああーーーーーーーー!!!!!!!! と叫んでも遅し、、、処理が走ってしまい止められなくなってしまいました。 処理の途中に 「公開鍵を上書きするかどうか?」とか出てきて、 n として回避した後、今は無くなっているレポジトリから git clone しようとしたところで、アカウント確認のために処理が止まり、そこで、 Ctrl + c で強制終了できました。 解説 source コマンドは、ファイルに書かれたコマンドを現在のシェルで実行するコマンドです よって、私がミスして実行してしまった処理の内容は、 .zsh_history にファイルに書かれたコマンドが1行ずつ実行する。という内容になります。 .zsh_history には私が過去に打ったコマンドがすべて記録されているため、つまり、それらのコマンドが順に実行されていくということになってしまいます。

                              sourceコマンドを誤って使ってしまいゾッとした話 - Qiita
                            • How to use bookmarks in bash/zsh

                              How to installHere is where the magic is. Add these 4 lines of code to your bashrc or zshrc file. if [ -d "$HOME/.bookmarks" ]; then export CDPATH=".:$HOME/.bookmarks:/" alias goto="cd -P" fiAdditionally, you need to create the directory in your home folder or wherever it suits you, just remember to update the CDPATH variable above. mkdir ~/.bookmarksHow to useTo add a new bookmark, you just need

                                How to use bookmarks in bash/zsh
                              • zshの読み方を決めよう!

                                晴れてmacOSのデフォルトシェルになったzshですが、読み方がバラバラです。 はてな民で読み方を決めてしまいましょう! 候補一覧ゼッシュ ザッシュ ジィーシェル ゼットシェル ゼットエスエイチ

                                  zshの読み方を決めよう!
                                • 2022年に生産性が向上したと思うmacOS用ターミナル向けツールやコマンド10選 - Qiita

                                  株式会社ゆめみ Advent Calendar 2022 23日目の記事です。 はじめに 2022年も残りわずかとなりましたね。 今年一年を振り返ってみて、普段業務でよく使用しているmacOS用のターミナル向けのツールやコマンドを紹介したいと思います。 動作確認環境 生産性が向上したと思うmacOS用ターミナル向けツールやコマンド 1. Fig.app ターミナルでコマンドの自動補完を行うGUIアプリです。ディレクトリ名やファイル名を自動で補完してくれたり、gitの各種コマンドやブランチ名等も補完してくれます。一般的なコマンドは補完が効くので、かなり生産性向上に寄与してくれました。 見た目は以下のような感じになります。 2. Starship BashやZsh、Fish等で使用できるカスタマイズ可能なシェル用プロンプトを提供するツールです。 細かく調整しなくても、いい感じのプロンプトにして

                                    2022年に生産性が向上したと思うmacOS用ターミナル向けツールやコマンド10選 - Qiita
                                  • 第723回 複雑なコマンドパイプラインを簡単に組み立てる方法 | gihyo.jp

                                    パイプライン処理とは GUIは非常に直感的です。はじめて使うアプリであっても、なんとなくそれなりに動かせてしまうという点で、優れたインターフェイスと言えます。しかし効率を突き詰めると、軍配が上がるのはGUIよりもCLIでしょう。本連載の読者であれば、UnixライクなOSのCLIが持つパワーについては当然ご存知かと思います。 とはいえ、古典的なUnixコマンドの多くは、単体ではそれほど強力なものではありません。というのも、ひとつひとつのコマンドはシンプルに、特定の用途においてのみ上手く動作するよう設計されていることがほとんどだからです。こうしたコマンド群に無限のシナジーを与えるのが「パイプライン処理」です。標準入出力を通じて複数のコマンドを直列に繋げることで、複雑な処理をインスタントに組み立てることができるパイプラインは、まさにUnix哲学の体現であり、CLIの真髄はここにあると言ってもよい

                                      第723回 複雑なコマンドパイプラインを簡単に組み立てる方法 | gihyo.jp
                                    • 個人的によく使うGitエイリアス、zshキーバインド - 本日も乙

                                      最近、リモートワークということもあり、ペアプロというかAWS、GCPなどの操作をする際に一緒に画面を見ながら作業する機会が多いです。若手の同僚がターミナルソフトを起動してコマンドを実行するのですが、傍から見ているとエイリアスなりキーバインドなりを使えば効率的に操作できるのにと思うことがあります。 最近はGUIで操作することが多いのでターミナルソフトでコマンド操作することがあまりないのかもしれませんが、私は少し前までは(クラウドしかできない)ITインフラエンジニアをやっており、プログラミングよりもコマンド操作するのが圧倒的に多かったため、ちょっとしたことならGUIよりもターミナルで操作することが多いです。Windowsを使っていますが WSL2 + Ubuntu 20.04 LTSで開発環境を整えているため、操作に不自由はほとんどしません。 この手のエイリアスやzshなどのオススメ設定はググ

                                        個人的によく使うGitエイリアス、zshキーバインド - 本日も乙
                                      • bash の select は令和の時代も役に立つ, その一例 - ようへいの日々精進XP

                                        tl;dr man bash 例 若干の Kubernetes クラスタを選択したい Kubernetes Pod を選択したい 以上 tl;dr ホントにちょっとした運用ツールを bash で作っていて, 複数の選択肢をリストアップしてメニューとして選択出来るようにしたいなーと思っていたら, bash には select 文という超絶便利な構文が用意されていたので使ってみました. man bash https://linuxjm.osdn.jp/html/GNU_bash/man1/bash.1.html より引用させて頂きつつ, 重要だなと思ったところをかいつまんで. select name [ in word ] ; do list ; done in に続く単語のリストが展開され、要素のリストが生成されます。 展開された単語の集合が番号付きで標準エラー出力に出力されます。 「in

                                          bash の select は令和の時代も役に立つ, その一例 - ようへいの日々精進XP
                                        • macOS 10.15 Catalinaではbashに代わりzshがデフォルトシェルに。

                                            macOS 10.15 Catalinaではbashに代わりzshがデフォルトシェルに。
                                          • dotfiles 振り返り2022

                                            まだまだ 2022 年の振り返りが終わらないぜということで今日は dotfiles の振り返り。dotfiles はその変遷を見ると面白いので、毎年やろうと思い早速やっていきたい。 ちょっと前に M2 の MBA 買って、dotfiles を一新した。 これが今の dotfiles だ。 https://github.com/sadnessOjisan/dotfiles コンセプト 自分は Mac しか使わない が、WSL 環境も持ってるのでシェル周りの環境は移せるように作っておく(原神しかしないけど・・・) make all だけでセットアップが完結する 手作業はしない なるべく標準に準拠し、プラグインやライブラリへの依存を減らす。入れる場合も単体で剥がせるものを選ぶ。 シンボリックリンクを貼って、dotfiles の変更が即時に反映されるようにする .config など XDG に準拠

                                              dotfiles 振り返り2022
                                            • 実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ

                                              [追記] 実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ 調べてみたけどこれが良さそう <a href="https://stackoverflow.com/a/3399850/1921216" target="_blank" rel="noopener nofollow">https://stackoverflow.com/a/3399850/1921216</a>2022/01/02 17:02 b.hatena.ne.jp このブックマークコメントで指摘されましたが、immutableにするまでもなくこのラッパースクリプトを噛ませると良さそう。 #!/bin/bash # usage: # sh-run.sh script-you-want-to-run.sh args... set -ue file="$

                                                実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ
                                              • ようこそdotfilesの世界へ - Qiita

                                                はじめに 少し前から話題になっているが、日本の労働生産性はG7で最も低いらしい。 日本生産性本部資料より https://www.jpc-net.jp/intl_comparison/intl_comparison_2018_press.pdf 日本は人口減少に突入していることもあって、「作業の効率化」や「自動化・省力化」をいうフレーズをあらゆる業種で聞くようになった。 ITエンジニアは、あらゆる職業の中でも最も効率化、自動化をして生産性を高められるといっても過言ではないだろう。プログラマの三大美徳(「怠惰」「短気」「傲慢」)にもあるように、同じことを何度もやらない、楽をするためにがんばるという生産性を意識した感性が重要視されているからだ。 生産性を高めることで、勉強する時間が作れたり、新しいことを経験したりするなどしてさらにスキルアップができ、さらに生産性が上がるという好循環を作り出すこ

                                                  ようこそdotfilesの世界へ - Qiita
                                                • zshでPATHが壊れないようにPATHに新しいディレクトリを通す - Acme::AnaTofuZ->new;

                                                  TL;DR 特に順番は気にしないとき path+=('/hoo/bar/baz'); 最初にいれたいとき path=('/hoo/bar/baz' $path) PATH通そうとして壊れるヤツ UNIXを使っている上で避けて通れないのが環境変数$PATHでしょう。 :区切りにディレクトリを列挙して、列挙されているディレクトリ直下に置かれているバイナリファイルをコマンドとして使えるようにするアレですね。 そんな$PATHに新しいディレクトリを追加しようとして、ついつい次のような事故がよく置きます。 export PATH="/hoo/bar/baz" こうしてしまうと最初から$PATHに設定していたデータが吹っ飛んで、PATHの中身が/hoo/bar/bazだけになってしまいます。こうなるとlsとかのコマンドが使えなくなる訳ですね。 zshだと$pathで配列として扱える この問題は何が原因

                                                    zshでPATHが壊れないようにPATHに新しいディレクトリを通す - Acme::AnaTofuZ->new;
                                                  • Starship: Cross-Shell Prompt

                                                    GitHub (opens new window) HomeGuideAdvanced InstallationConfigurationAdvanced ConfigurationFrequently Asked QuestionsPresets Compatibility First Works on the most common shells on the most common operating systems. Use it everywhere! Rust-Powered Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. Customizable Every little detail is customizabl

                                                      Starship: Cross-Shell Prompt
                                                    • 主にターミナルですごすための個人的開発環境

                                                      モチベーション ターミナルからなるべく色んなことやりたい。動きたくない。冬のこたつみたいな感じ。 前提 MacとArchでだいたい似たような環境が作れたので対象OSはそのあたりです。 まえがき 色々情報交換や情報収拾するうちに 少しずつ自分の開発環境が変わってきたので現時点のスナップショットとして書いてみたくなった。 dotfileの延長でしかないため自分の秘伝のタレであり、自己満感が強い。 他人の参考になるかは分からないけど、なれば幸い。 逆にこういう記事書くと教えてもらえたりしないかな(打算) とどのつまり? https://github.com/yyYank/dotfiles あたり。 iceberg tmux zsh zsh-autosuggestions zsh-syntax-highlighting zsh-completions zsh-history-substring-s

                                                        主にターミナルですごすための個人的開発環境
                                                      • Starship: Cross-Shell Prompt

                                                        互換性優先 一般的なほとんどのOSの一般的なほとんどのシェル上で動作します。 あらゆるところで使用してください!

                                                          Starship: Cross-Shell Prompt
                                                        • シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita

                                                          TL; DR 変数をダブルクォートしない使い方は上級者向けの危険な機能です! $@ と $*(または配列の全要素)をダブルクォートしない使い方は知る必要すらありません! ShellCheck を導入すれば誰でも簡単に正しい書き方がわかります!! 2021-08-21 補足 この記事は dash や bash などの POSIX シェルの一般的な動作を解説しており zsh のデフォルトとは異なります。記事の中でも説明していますが zsh の場合はシェルのオプションを変更することで POSIX 準拠の動作に変更することができます。zsh に関しては後半の「zsh に関する注意点」も参照してください。 はじめに プログラミング言語は、言語によって記号の意味が異なることがよくあります。クォーテーションマークはその一つです。C 言語ではシングルクォートは文字リテラル(一文字)を意味し文字列はダブルク

                                                            シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita
                                                          • Secretlint 6リリース: .bash_historyや.zsh_historyに残ったトークンをマスキングする

                                                            ファイルに含まれるAPIトークンやパスワードなどの機密情報を見つけるSecretlint v6をリリースしました。 Release v6.0.1 · secretlint/secretlint Secretlintは secretlint "**/*"のようにglobやファイルを指定して実行すると、ファイルに含まれる機密情報を見つけて標準出力に表示します。 一方で、SecretlintはESLintやtextlintなどと違って、--fixといった自動修正はできません。 なぜなら、APIトークンなどを見つけて消しても、ただ単に壊れるだけだからです。 そのため、見つけた機密情報は報告して、ユーザーがそれを手動で修正する必要があります。 たとえば、ソースコードにハードコードするのではなく、環境変数などで受け取るように変更するといった修正をします。 secretlint/credentials-

                                                              Secretlint 6リリース: .bash_historyや.zsh_historyに残ったトークンをマスキングする
                                                            • Macがzshになるなら、ZLEを習得するっきゃない! | DevelopersIO

                                                              こんにちは、平野です。 WWDC 2019にて、macOS Catalinaではzshがデフォルトのシェルとして採用されることが発表されました。 https://support.apple.com/en-ca/HT208050 もちろんデフォルトが変わるというだけで、使い慣れたシェルを使い続けることができますが、 せっかくなのでそれにかこつけて、zshの機能の一つであるZLEをご紹介したいと思います。 zshというと「補完がすごい!」と紹介されることが多いように感じますが、 補完の機能は使いこなすのが難しくて、正直私には手に負えないと感じています。 一方ZLEは上辺をちょっと理解しただけで、 めちゃくちゃ簡単にインタラクティブシェルに機能追加ができちゃいます!! これを機会にzshを使い始めてもいいのよ? なお、あくまでもzshの機能の紹介であり、bashとzshの比較とかそういう内容では

                                                                Macがzshになるなら、ZLEを習得するっきゃない! | DevelopersIO
                                                              • fzfで快適なターミナルライフ - petitviolet_blog

                                                                以前こんなエントリを書いた。 petitviolet.hatenablog.com が、最近はpecoからfzfに大体を移行している。 主な理由はfzfについているpreview機能が気に入ったからで、ファイルやGitをインタラクティブに選択する際にpreviewが出来ると助かることが多いため。 逆にpreview機能を必要としないhistory検索とかはpecoを使っているままだったりはする。 fzfで快適なターミナルライフ どんな感じになるのか 事前準備とか 環境 Zsh Line Editorについて fzfのグローバル設定 ディレクトリ移動 treeコマンドからファイルを選択する docker psからプロセスを選択する git statusで変更のあるファイルから選択する git branchとtagから選択する どんな感じになるのか fzfの--previewオプションを使って

                                                                  fzfで快適なターミナルライフ - petitviolet_blog
                                                                • zsh を Mac のデフォルトシェルとして使う

                                                                  macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。 デフォルトでは、Mac は zsh または bash をログインシェルやインタラクティブシェルのコマンドラインインタープリタとして使います。 zsh (Z シェル) は、macOS Catalina 以降で新規作成されるすべてのユーザアカウントのデフォルトシェルです。 bash は、macOS Mojave 以前のデフォルトのシェルです。 zsh は Bourne シェル (sh) との互換性が高く、bash とも若干の違いはあるものの、互換性があると言って差し支えありません。zsh について、また、そのコマンドライン補完システムについて調べるには、ターミナルで「man

                                                                    zsh を Mac のデフォルトシェルとして使う
                                                                  • シェルスクリプトでスクリプトの引数をループする方法

                                                                    B! 63 0 0 0 今更ながら知ったこと。 通常の方法 in無し The for Loop (POSIX Shell Command Language) ;の省略 man bash その他の方法 参考 通常の方法 bashとかでよくやる方法は arg1.sh 1 2 3 4 5 #!/usr/bin/env bash for arg in "$@";do echo "$arg" done とする方法。 "$@"はスクリプトの引数を展開し、ダブルクォートしてあると 引数毎に分けてダブルクォートした状態で展開します。 1 2 3 4 $ ./arg1.sh a b c a b c "$*"とすると同じく展開しますがダブルクォートが全体について for文で回すと1つの引数として扱われます。 大概のシェルで同様の動作をします。 これは関数の引数も同じで、 arg2.sh 1 2 3 4 5 6

                                                                      シェルスクリプトでスクリプトの引数をループする方法
                                                                    • chezmoi で dotfiles を手軽に柔軟にセキュアに管理する

                                                                      dotfiles マネージャの chezmoi についてまとめました。 個人的にかなり便利だと思います。 chezmoiとは? chezmoi は、.vimrc や、.zshrc などの dotfiles の管理を効率的に実現するためのツールです。 シンボリックリンク不要でコマンド 1 つで環境を再現出来る template 構文で変数の展開や処理の分岐を書くことで各環境の差分を 1 ファイルで管理できる 1password などのパスワードマネージャとの併用でセキュアにファイル管理ができる という特徴があります。 特に 2 と 3 は通常のシンボリックリンクでの dotfiles 管理だと Shell Scriptをかなり頑張らないと出来ない部分ですが、chezmoi なら手軽に実現できます。 基本操作 イントール Homebrew でインストール出来ます。 chezmoiプロジェクトの

                                                                        chezmoi で dotfiles を手軽に柔軟にセキュアに管理する
                                                                      • スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita

                                                                        はじめに この記事は私の主観かつ知っていることをまとめたものです。古くからのシェルの専門家とかではなくここ数年の間に必要になった時にその都度調べたものなので間違いとかもあると思います。またタイトルの通りスクリプト言語としての比較です。つまりインタラクティブシェルの機能についての比較はしていません。(そもそも使い込んでるわけじゃないので知らないです。)POSIX シェルに限定しているのも私が他のシェルを詳しく知らないからです。もし今も使われていて(もしくは開発中で)ここに書かれていない POSIX シェルがありましたらコメントで教えて下さい。(※ csh, tcsh, fish は POSIX シェルではありません。) シェルの系統は少し古いですが「What does it mean to be “sh compatible”?」に投稿されている図が詳しくてわかりやすいです。またこちら「~s

                                                                          スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita
                                                                        • Microsoft、各種シェルに600を超えるコマンド補完を掲げる「inshellisense」

                                                                          Windows、Linux、MacOS各OSでのbash、zsh、fish、pwsh、powershell(Windows Powershell)にIDEライクなコマンド補完機能を提供するOSS「inshellisense」0.0.1-rc.1がMicrosoft公式GitHubでこのほど公開された。MITライセンスで提供されている。 パッケージ管理ツールnpmを通じて下記のコマンドでインストールできる。 npm install -g @microsoft/inshellisense inshellisense --shell で起動できるのでPowershellで試したところ inshellisense --shell pwsh 入力を促すプロンプトが起動し、コマンドを入力すると選択候補や英語での概説が表示され矢印キーで選択し、Tabで決定。Ctrl+Dで抜けられるようになっている。"6

                                                                            Microsoft、各種シェルに600を超えるコマンド補完を掲げる「inshellisense」
                                                                          • Deno + TypeScriptでzshプラグインを実装して最高になった

                                                                            概要 今回作ったプラグインは yuki-yano/zeno.zsh です。 昔 yuki-yano/fzf-preview.zsh というものを作っていたのですが、シェルスクリプトでの実装と保守が厳しすぎて放置しており、それをDenoで再実装したものになります。 zshで頻繁に使う機能の拡張を実装しており、zshの操作体験を改善できると思います。 まずはデモを見てみてください。 具体的なプラグインの機能としては以下があります。 abbrevを用いたsnippetの展開 ファジーファインダー(fzf)を用いた補完 fzfを用いたsnippetの挿入 その他いくつかの便利utility Denoを採用した理由はいくつかあるのですが、それについては後述します。 デモ Abbrev snippet Fuzzy completion zeno.zshの主要機能 Abbrev snippet zshで

                                                                              Deno + TypeScriptでzshプラグインを実装して最高になった
                                                                            • bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄

                                                                              bashからzshに乗り換えるユーザーを対象に16の違いをまとめました。MacOSもbashからzshに変更になりましたので、zshを使い始めるにあたってのポイントを解説していきます。 はじめに zshとは? 2019年、WWDC19の基調講演でApple社は次にリリースする「MacOS X Catalina」より標準のシェルを「zsh」に変更すると発表しました。そして現在、Macを購入したり最新のバージョンにアップデートしてターミナルを開くとbashではなくzshが起動します。 もともとMacOS Xは当初tcshであったのがv10.3 Pantherよりbashに変更された経緯があり今回それがzshにさらに変更された形になります。 こうなった経緯としてはbashのライセンスとセキュリティによる事情があります。MacOS Mojaveまでに搭載されているbashはバージョンが3で実はこれ

                                                                                bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄
                                                                              • WSLでopenコマンドを用意する

                                                                                function open() { if [ $# != 1 ]; then explorer.exe . else if [ -e $1 ]; then cmd.exe /c start $(wslpath -w $1) 2> /dev/null else echo "open: $1 : No such file or directory" fi fi } zshでしか試していないが、たぶんbashでも似たような感じでいけると思う。 エクスプローラによるopen Macのターミナルでは、open filenameとすると、そのファイルを関連付けられたアプリで開くことができる。また、open .などとするとFinderでカレントディレクトリが開いて便利だ。 WindowsのWSLで似たようなことがしたくて、

                                                                                  WSLでopenコマンドを用意する
                                                                                • dotfilesの配置はGNU Stowを使おう! - Qiita

                                                                                  HRBrain Advent Calendar 2022、23日目の記事です。 はじめに こんにちは。株式会社HRBrainでエンジニアリングマネージャーをしている山口です。 いろいろなウイスキーでハイボールを作って飲むYouTubeチャンネルを見ていたら、すっかりウイスキーに沼ってしまいました。是非コメントでオススメのウイスキーを教えてください。 本記事では、GNU Stowを使ったdotfiles管理について紹介します。 dotfilesって何? dotfilesとは、ドット(.)から始まる設定ファイルのこと。ホームディレクトリでls -laを実行すると表示されるアレです。 基本的には自動的に作成されるものが多いですが、.ssh/config .zshrcなどは自分好みに編集しますよね。 マシン交換時に毎回設定するのも面倒なので、自分用リポジトリを持っている人も多いのではないでしょうか

                                                                                    dotfilesの配置はGNU Stowを使おう! - Qiita

                                                                                  新着記事