並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 63件

新着順 人気順

シェルの検索結果1 - 40 件 / 63件

  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

    はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

      【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
    • はじめに - Writing an OS in 1,000 Lines

      本書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 本書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま

        はじめに - Writing an OS in 1,000 Lines
      • findコマンドの使い方を簡単に理解するための7つのルール+実践的な知識 - Qiita

        はじめに find コマンドの使い方は、ざっくり調べただけではよくわからんとなりますが、見逃しがちなルールを知れば簡単に理解できます。find コマンドに限りませんが使い方を調べるのが面倒だからと曖昧な理解で使うと逆にもっと分からなくなって時間がかかります。急がば回れ、理解して正しく使ったほうがシンプルで楽で簡単です。この記事では find コマンドの使い方を理解するために必要なルールと使い方の実践的な知識をまとめました。 Q&A(?): -type や -perm の説明はしないの? ⇒ それらはドキュメントを読むか検索すればすぐにわかることで難しいポイントではありません。重要なのは基本のルールを理解することです。 関連記事 POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! 移植性の話はこちら ⇒ findコマンドのオ

          findコマンドの使い方を簡単に理解するための7つのルール+実践的な知識 - 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年のシェル環境構築
          • 【永久保存版】シェルスクリプト完全攻略ガイド - Qiita

            弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 シェルスクリプトの世界へようこそ! シェルスクリプトって何? シェルスクリプトは普段 Bash などのシェルで実行しているコマンドを並べて、まとめて実行できるようにしたものです。ファイルのバックアップ、ログファイルの解析、システムのセットアップなど、ターミナルで行っていた一連の作業をまとめてシェルスクリプトに記述することで、シェルスクリプトを実行するだけで自動的に一連の作業を終わらせることができるようになります。また、シェルスクリプトはファイルに保存することになるため、再利用するのも簡単になります。 シェルスクリプトで使うコマンドの多くは UNIX コマンドになると思います

              【永久保存版】シェルスクリプト完全攻略ガイド - Qiita
            • Bashを使いこなすための必須コマンド71選 - Qiita

              はじめに mkdir, ls, cp, touch, mv, rm以上のコマンドにあんまり触れていない。。。という方、もっとコマンドを使いこなしたい!という方。。。必見。 基本的だが全部網羅するには大変な基本コマンド及びショートカットを溢れんばかり71選お届けします。たくさんありますので、表題に何のコマンドか書いてあるのをご活用ください。 一部、macユーザー向けとなっていることをご了承ください。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 Ctrl を使ったショートカット 最初に、Ctrlを使ったショートカットを紹介します。 Ctrl-A 行頭移動 ↓ Ctrl-E 行末移動 ↓ Ctrl-W 直前一単語を削除 ↓

                Bashを使いこなすための必須コマンド71選 - Qiita
              • シェルスクリプトとの対比で理解するPythonのsubprocess - 朝日ネット 技術者ブログ

                はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、 rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ

                  シェルスクリプトとの対比で理解するPythonのsubprocess - 朝日ネット 技術者ブログ
                • さくらインターネット、会員登録不要で無償利用可能なオンラインシェル環境 「さくらのクラウドシェル」を2023年5月25日より提供開始 | さくらインターネット

                  さくらインターネット、会員登録不要で無償利用可能なオンラインシェル環境 「さくらのクラウドシェル」を2023年5月25日より提供開始 クラウドコンピューティングサービスを提供するさくらインターネット株式会社(本社:大阪府大阪市、代表取締役社長:田中 邦裕)は、ブラウザから無料で利用できるシェル環境「さくらのクラウドシェル」の提供を2023年5月25日より開始します。 「さくらのクラウドシェル」はオンラインのシェル環境で、すでに開発者向けの環境がインストールされているため、ご自身の環境に手を加えることなくすぐに利用することができます。 基本機能は会員登録不要のプランにて利用可能です。また、必要に応じて会員IDを利用することでアクセス制限を緩和することが可能です。それに伴い、デプロイ・リリース用サーバとしての利用や外部I/Fを利用するようなプログラミング環境としての利用など柔軟に利用できます。

                    さくらインターネット、会員登録不要で無償利用可能なオンラインシェル環境 「さくらのクラウドシェル」を2023年5月25日より提供開始 | さくらインターネット
                  • macOS のデフォルト状態でコマンドラインからOCR処理を行う - TeX Alchemist Online

                    macOS 12 Monterey では,OSビルトインでのOCR機能が搭載されました。Preview.app で,画像やスキャンPDF(中身がスキャン画像のPDF)に対して,ただマウスでドラッグするだけで,中身の文字を認識して選択し,コピーできるようになっています。さらに,macOS 13 Ventura では,それが日本語にも対応しました。 たとえば,(今や入手困難となってしまった)The TeXbook のアスキーによる日本語版をスキャンしたものを Preview.app で開くと,何もしなくても,文字選択できます。 これをコピーして他のエディタにペーストすると, TEXの名称で気をつけなければならないことがほかにもある。Eの文字が不揃いになっていることだ。Eの文字を少し下げてあるのは、TeXが組版のためのシステムであることを印象づけるためであり、またほかのシステムの名称と区別するた

                      macOS のデフォルト状態でコマンドラインからOCR処理を行う - TeX Alchemist Online
                    • PowerShellのスクリプトを書く時の諸注意

                      先日Windows向けの作業のちょっとした自動化のためにPowerShellのスクリプトを書いたので、少し躓いたポイントを書きます。 大人しくLinux版のPowerShellもインストールします WSL2のEmacsから快適に編集するためにシンタックスなどのエラーレポートなどがやはり欲しいですね。 Powershell - LSP Mode - LSP support for Emacs を使えば普通にLSPが利用可能ですが、インストールするためにpwshが実行ファイルとしてPATHに認識されている必要があります。 しかしWSL2上で作業しているのですから、 Windows上のpwsh.exeを使えば多重にインストールする必要がなくなるのではと考えました。 そこでlsp-pwsh-exeにpwsh.exeを追加してみたのですが、 Windows上のPowerShellをWSL2上で動かす

                        PowerShellのスクリプトを書く時の諸注意
                      • Makefile警察「ぐぬぬぬ…」 - Qiita

                        ?「プロジェクトでよく使うコマンド Makefile に書いたろー」 ?「docker compose up -d --wait っと…」 👮‍♀「 Makefile警察 だ!」 👮‍♀「 Makefile は、ソフトウェアのビルドプロセスを自動化するためのファイルだ!」 👮‍♀「多目的なタスクランナーとして使うな!」 ?「せやったんか。誠にごめんなさい。」 Makefile は広く使われていますが、時々目的外に使われてしまうことがあります。しかし、そのような使い方にはより適した代替手段が存在します。この記事では、 Taskfile というツールについて解説します。 Makefile のつらみ Makefile は主にビルドプロセスを自動化する目的で生まれましたが、様々なコマンドをまとめて実行する便利さから多目的なタスクランナーとしてもよく使われます。しかし、次のような問題があります

                          Makefile警察「ぐぬぬぬ…」 - Qiita
                        • PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? (1/2)

                          PowerShellに関しては、2021年に1回まとめたのだが、あれから3年も経過したので最新情報も含めて、簡単に解説したい。なお、それぞれのこれまでの経緯などは、過去記事に記載しているので参考にしてほしい。 ●あらためて「PowerShell」の現状と登場後の経緯を整理する https://ascii.jp/elem/000/004/052/4052789/ 結論から言えば、PowerShellには、Windowsに同梱されている「Windows PowerShell」と、ユーザーがインストールする必要がある「PowerShell」がある。コマンドラインを使う頻度が高いようならば、最新のPowerShellをインストール、そうでなければWindows PowerShellで十分である。 PowerShellのインストーラーなどに表示される奇妙な人物イラストを見たことがある人もいるだろう。

                            PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? (1/2)
                          • awkが新しくなる!? 本家AwkがUnicode (UTF-8)とCSV対応に! - Qiita

                            はじめに 2023年、長い時を経て awk がとうとう Unicode (UTF-8) と CSV に対応しました 🎉🎉🎉 awk で日本語がうまく扱えない(場合がある)、Excel が出力する CSV ファイルが扱えない(場合がある)、といった問題が解決に向けて一歩に進みます。 去年、本家 awk (One True Awk, nawk) に Unicode サポートが Brian Kernighan の手によって追加されたと話題になった(参照)ことを覚えているでしょうか? Brian Kernighan が誰だか知らない方がいるかもしれないので説明すると、オリジナルの awk の開発者の一人で awk の頭文字、Alfred Aho、Peter Weinberger、Brian Kernighan の一人です。通称「K&R」の「プログラミング言語C」や「プログラミング言語AWK」

                              awkが新しくなる!? 本家AwkがUnicode (UTF-8)とCSV対応に! - Qiita
                            • シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表

                              JavaScriptランタイムのBunは、新機能としてシェルスクリプトをJavaScriptもしくはTypeScriptで記述し、特定のOSに依存せずに実行できる「Bun Shell」を発表しました。 シェルスクリプトは特定のシェルに依存するもの LinuxやmacOS、WindowsなどのOSは一般に、「シェル」(Shell)と呼ばれる機能を備えています。 シェルはコマンドラインインターフェイスなどのユーザーとの対話機能を備えており、例えばLinuxのコマンドラインで「ls」コマンドを打ち込むとファイルの一覧が返ってくるという動作はシェルが提供しています。 そしてシェルでは一般に、こうしたコマンドを複数つなげた一連の動作をスクリプトとして定義し実行できる「シェルスクリプト」が利用可能です。例えば、次のシェルスクリプトは、「ls」コマンドによるファイルの一覧をファイル「list.txt」に

                                シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表
                              • シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita

                                この中で私が特に気に入ったコマンドは dateround です。次点は dategrep です。この二つは特に強力で、awk やその他のコマンドを使って日時をこねくり回すような「無駄に難解なコード」を書かずに Dateutils のコマンド群だけで大抵のことはなんでもできてしまいます。専用のことをするには専用のコマンドを作ることが重要であることを思い出させてくれるでしょう。 Dateutils の重要な特徴と使用例 大抵のコマンドは機能の説明から想像できると思いますし、公式サイトにも例があるので詳細を一つ一つ説明することはしません。その代わりに「Dateutils の使いこなしに必要な考え方」が分かるような例をいくつか紹介します。 重要な注意点ですが Dateutils はロケールをサポートしていますが、原則としてシステムのロケール情報やユーザーの環境変数には依存していません。内部にロケー

                                  シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita
                                • シェル芸の可読性を向上させるマルチライナー記法のススメ - Qiita

                                  マルチライナー記法とは? マルチライナー記法とは、その名の通りシェル芸をワンライナーではなくマルチライナー(複数行)で書くことです。長すぎる行をワンライナーで書くと以下のように横スクロールが必要になって非常に読みにくくなります。(コードは Convert long single line command to a bash shell script より借用。長いコードとして利用しているだけで中身に意味はありません)。マルチライナー記法はこのようなワンライナーを読みやすく書くことです。 nice --20 iperf3 -c somelocation.com -f k | while IFS= read -r line; do echo "$(date) $line"; done | tee onespeed.txt | tee -a speeds.txt; sleep 30 ;cat o

                                    シェル芸の可読性を向上させるマルチライナー記法のススメ - Qiita
                                  • bashの機能いろいろ

                                    シェルスクリプトを書いていると「それはbash独自機能だから」「POSIXシェルには無い機能だから」と言われることがよくあります。だいたいは「それみんな使ってるのでPOSIXで標準化されてると思った」といったものなのですが、本記事では便利なものから「え、それやるくらいならPythonでよくない?」まで、bashの機能を紹介しようと思います。 for文でC言語っぽくループを回す シェルスクリプトでfor文といえばfor i in $(seq 10)とかをよく使いますが、bashだと以下のように書けます。

                                      bashの機能いろいろ
                                    • Vim での一括置換を楽に行う裏技

                                      この記事は Vim 駅伝 の 06/30 の記事です。 前回の記事は ryoppippi さんによる、 06/28 の「とあるコーディングチョットワカル勢のエディタ遍歴」という記事でした。 次回は 07/03 に投稿される予定です。 はじめに ファイル内の特定の文字列を一括置換する場面はよくあります。そんなとき Vim では :substitute コマンド(短縮形: :s)を用いて というコマンドを叩くのがセオリーです (cf. :h :s)。 しかしこれ、まあまあ面倒くさくありませんか? 冒頭に % を書かないといけない 冒頭の % は置換範囲を表し、ファイル全体を置換する、という意味を持ちます (cf. :h :%)。 % を書かない場合、カーソルのある行だけが置換対象となります。 でも、カーソル行だけを置換対象としたいことって…ファイル全体を置換するケースに比べればそこまで多く

                                        Vim での一括置換を楽に行う裏技
                                      • Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita

                                        はじめに 30年以上もの長い間 UNIX を支えてきた Bourne シェルも UNIX のサポート終了とともに消え去ろうとしています。みなさん、他のシェルへの移行はお済みでしょうか? 残り一年、まだ移行が済んでいないという人のために、移行のための簡単なガイドラインと各シェルの特徴をまとめました。 sh は昔は Bourne シェルのことでしたがそれも過去の話です。今どき「Bourne シェル」を解説している記事や sh のことを Bourne シェルと呼んでいる記事は情報が古い(大学関係に多い)、または古い情報を元にして書かれたか、シェルのことを正しく理解してない不正確な記事なので参考になりません。分かりやすい基準ですね。 関連記事 シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 残り1年というのはどういうこと? Bourne シェルは POSIX に

                                          Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita
                                        • WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表

                                          WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表 WebAssemblyランタイム「Wamer」の開発元であるWasmer社は、WebAssemblyでファイルやネットワーク、メモリなどのシステムリソースを抽象化する業界標準のAPI仕様である「WASI」(WebAssembly System Interface)を拡張してPOSIX対応にする新技術「WASIX」を発表しました。 WASIとPOSIX WebAssemblyはもともと、Webブラウザ上でネイティブコード並の実行速度でアプリケーションを実行することを目的に策定されたバイナリフォーマットです。 そのWebAssemblyを、LinuxやWindows、macOSなどのOS上でWebAssemblyランタイムを用いて直接実行する

                                            WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表
                                          • 【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - Qiita

                                            理由 びっくりした。対話シェルで実行してパフォーマンス測定すると何故かめちゃくちゃ時間がかかる。これではデータにならない。 追記 よくよく考えたらパフォーマンス測定だけの問題ではなく実際に遅くなるのだから、対話シェルから「このようなコード」を実行してはいけないということを意味しています。「このようなコード」がどのようなコードなのか発生条件はまだ特定できていませんが、少なくともシェルスクリプトにしていれば問題は発生しません。また bash 以外のシェルでも問題は発生しません。 検証結果が気になった方は、ぜひ試してみて、この話を広めてください。 証拠 実行環境: Ubuntu 22.04.3 LTS、bash 5.1.16

                                              【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - Qiita
                                            • 【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita

                                              はじめに set -o pipefail は POSIX で標準化されているシェルオプションです。パイプラインにおけるエラーを確実に検出するために、シェルスクリプトでは基本的に使うようにしましょう。 某コメントより “set -o pipefail は標準化されました” っていってここ何年かの標準化を無邪気に正当化できるのいいなと思う(目の前のターミナルを見ながら) どのシェルを今使っているのか聞きたいですね。商用 Unix を含む主流の環境で、すでに何年(十数年、数十年)も前から set -o pipefail は実装済みなんですが? おそらくシェルの事をよく知らないで言ってるのでしょう。私は標準化の有無は関係なく実際のシェルのことを調べ尽くして言ってるわけで無邪気に正当化とか失礼な話です。標準化とか気にしてるから何年(十数年、数十年)も前に実装された便利な機能が使えないんですよ。自業自

                                                【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita
                                              • パイプに関係するさまざまなバッファ、ちゃんと意識していますか? - Qiita

                                                はじめに コマンドをパイプでつなげた時、各コマンドの間にはいくつかのバッファが存在します。そのバッファについてちゃんと意識しているでしょうか? バッファの存在によって各コマンドの実行には分かりづらい変化があります。そのバッファを知らないと罠にハマってしまう・・・かもしれません。 プロセス間のパイプ通信のバッファ まずプロセス間のパイプ通信に存在しているバッファです。多くのコマンドは行単位でデータを処理しますが、一般的にパイプでつなげた各コマンドはそれぞれ処理速度が異なります。処理がすぐに終わるコマンドもあれば時間がかかるコマンドもあります。各コマンドは並列で動作可能ですが必ずしも並列で動作するわけではありません。 一般論としてパイプライン全体の処理にかかる実時間はパイプでつながったコマンドの中で一番遅いコマンドに足を引っ張られます。いくら並列で動作可能と言ってもデータが到着しなければ処理す

                                                  パイプに関係するさまざまなバッファ、ちゃんと意識していますか? - Qiita
                                                • とほほのPowerShell入門 - とほほのWWW入門

                                                  Microsoft が開発したシェルであり、スクリプト言語です。 Windows 用に開発されましたが、中核である PowerShell Core は Linux や macOS にも移植されています。 拡張子は *.ps1 です。 Linux のパイプラインは文字列情報を引き渡すのに対し、PowerShell ではオブジェクト情報を引き渡すことができます。 変数名、関数名等の大文字・小文字は無視されます。 他言語ではエスケープにバックスラッシュ(\)を使うことが多いですが、PowerShell ではバッククォート(`)を使用します。 環境変数やレジストリをドライブとして参照することができます。 ここではある程度他の言語を習得している方を対象に、PowerShell の概要について簡単に説明していきます。バージョンは 7.4.0 を対象としています。 Windows のデフォルト設定では管

                                                  • WebAssemblyでBashのコマンドプロンプトを実装、Wasmer 4.0が正式リリース、POSIX対応の「WASIX」など安定版に

                                                    WebAssemblyでBashのコマンドプロンプトを実装、Wasmer 4.0が正式リリース、POSIX対応の「WASIX」など安定版に Wasmer 4.0ではWasmerが独自仕様として提唱する、WebAssemblyからOSなどのシステムにアクセスするAPIを抽象化するWASI(WebAssembly System Interface)仕様をPOSIX対応に拡張した「WASIX」が安定版となり、これを利用してWebAssemblyで実装したBashのコマンドプロンプトなどが実現しています。 参考:WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表 下記はWasmerによりBashのコマンドラインをWebAssemblyで実装し、それを実行したBash環境上でPythonのWasme

                                                      WebAssemblyでBashのコマンドプロンプトを実装、Wasmer 4.0が正式リリース、POSIX対応の「WASIX」など安定版に
                                                    • シェルってなにしてるの

                                                      はじめに 先日シェルについてのオンライン勉強会に参加しました。 スライドも非常にわかりやすく、動画もアップされているので、ぜひ見てみて下さい。 何度勉強してもついつい忘れてしますシェルについて、忘れないうちにアウトプットしておきたいと思います。 私の解釈が混ざっているので、詳しく知りたい方は上のURLへどうぞ 前提 記事内で実行しているコマンドは全てawsのEC2(Amazon Linux2023)のbashで実行したものです。 シェルってなあに みなさん「シェル」使ってますか? 使ってますよね? sh, bash, zsh, csh,etc... いろんなシェルがありますね。 この「シェル」ってなんでしょうか? シェルはユーザーが命令したことをカーネルに伝えてくれるやつ。です。 でも面倒じゃないですか? なぜユーザーの命令がそのままカーネルではなく、わざわざシェルを通す必要があるのでしょ

                                                        シェルってなにしてるの
                                                      • シェルスクリプトでスクリプトの引数をループする方法

                                                        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

                                                          シェルスクリプトでスクリプトの引数をループする方法
                                                        • VSCode のターミナル内で画像を表示できるようになったので試してみた

                                                          VSCode の更新情報で Preview features に「Images in the terminal」という項目がありました。 There is now experimental support for images in the terminal. Images in a terminal typically work by encoding the image pixel data as text, which is written to the terminal via a special escape sequence. The current protocols that are supported are sixel and the inline images protocol pioneered by iTerm. 個人的にはわりとうれしい機能なので少し試してみるこ

                                                            VSCode のターミナル内で画像を表示できるようになったので試してみた
                                                          • 良いシェルスクリプトのためのkillとtrapの基本 ~ シグナル番号は使わない、シグナル名を使う - Qiita

                                                            はじめに kill コマンドと trap コマンドはシェルでシグナルの送信と受信を行うためのコマンドです。このコマンドは意外と適切ではない使われ方をよく見かけます。この記事では kill と trap の基礎知識を解説します。 POSIX準拠のkillコマンドの構文 POSIX で標準化されている kill コマンドの使い方は次のとおりです。POSIX で標準化されているというのは移植性が高い書き方ということを意味しています。シグナル名の指定には -s オプションが必要です。そして signal_name であって signal_number でないことに注意してください。POSIX シェルの世界にシグナル番号という概念はありません。シグナル番号を指定した書き方は避ける方をおすすめします。

                                                              良いシェルスクリプトのためのkillとtrapの基本 ~ シグナル番号は使わない、シグナル名を使う - Qiita
                                                            • シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita

                                                              はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題を抱えています。Unix/Linux の標準コマンドに依存している限りシェルスクリプトに大きな改善はありません。これからのシェルスクリプトの世界は Unix/Linux の標準コマンドに依存しない世界です。それがどういうものになるのかをこの記事で解説しています。この記事は私の予言であり目標です。 シェルスクリプトの失われた30年の進化を取り戻す! 残念なことに、シェルスクリプトの世界は 30 年前から大きく変わっていません。それまでの間、プログラミング言語の世界、ソフトウェア開発

                                                                シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita
                                                              • Bun でクロスプラットフォームなシェルスクリプト

                                                                Bun でクロスプラットフォームなシェルスクリプト 2024.01.20 Bun の `$` を使うと、クロスプラットフォームなシェルスクリプト(Bun Shell)を書くことができます。Bun Shell は macOS (zsh)、Linux (bash)、および Windows (cmd) と OS の違いを気にせずにシェルスクリプトを書ける、JavaScript オブジェクトとのやりとりが可能であることが特徴です。

                                                                  Bun でクロスプラットフォームなシェルスクリプト
                                                                • 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」
                                                                  • 仕組みと一緒に作りながら学ぶシェル - Qiita

                                                                    はじめに みなさん、シェルについてご存じでしょうか?bashやzshなどエンジニアであれば誰もが触ったことのあるであろうターミナルから使用することのできるあれです。もちろん知ってるよという人もいると思いますが、意外とその仕組みまで知った上で使用している人は少ないのではないでしょうか?(自分もそのうちの一人です、、、) そこで!この記事では、シェルの全体像と仕組みについて解説してみたいと思います。また、最後に仕組みをなぞった上で簡単なシェルの実装を行ってみたので、この機会に改めてエンジニアの身近にあるシェルについて理解を一緒に深めていきましょう。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 シェルとは? シェルとはオペ

                                                                      仕組みと一緒に作りながら学ぶシェル - Qiita
                                                                    • iTermをやめてVSCodeのターミナルに寄せる - yasuhisa's blog

                                                                      背景 担保したいこと 1: ホットキーで一撃で呼び出せる 2: ウィンドウを透過させてターミナルと他のウィンドウを同時に眺められること 調査したこと & 解決方法 ホットキーで呼び出せるか => hammerspoonで割り当てで対応 ターミナルの透過 => 無理そうなので、代替手段で対応 メモ: ターミナル関係のキーバインド tmuxっぽくしたい その他キーバインド 背景 iTermをずいぶん長く使ってきたけど*1、VSCodeのターミナルが急速に進化しているので、乗り換えを検討した。 VSCodeが色々便利になってきた 自分が使っている範囲だと、vimキーバインドも特に問題ない*2 普段のコーディングはVSCode、コマンド操作くらいしかiTermは使っていない 特にCopilot系の進化は目覚ましい、長い物には巻かれろというか長期的にはエコシステムに乗っておきたい エディタだけでなく

                                                                        iTermをやめてVSCodeのターミナルに寄せる - yasuhisa's blog
                                                                      • Rustで自作シェル書いてみた

                                                                        はじめに 自作シェルを書いてみた記事はよく見かけるのですが、そのほとんどが fork -> exec という流れです。仕組みを学ぶという点で非常に有効なのでそれはそれで良いとして、 Rust では標準ライブラリの std::process::Command を使用してもっと簡単にコマンド実行ができるよ! という記事があまりないので書いてみました。 コマンドの実行 REPL パース処理はできるだけシンプルに書きます。 標準入力から1行読み取り、Command::spawn() で実行します。 それを繰り返すのが REPL (Read-Eval-Print Loop)です。 これだけでシェルと言い張っても良いと思っています🤔 use std::io::{self, Write}; use std::process::Command; fn main() { loop { // プロンプト p

                                                                          Rustで自作シェル書いてみた
                                                                        • ターミナルから離れたくない…Tmux(&Neovim)の設定例🖊

                                                                          この記事の概要 tmuxとneovimを組み合わせている様子… こんにちは!食パン🍞と申します🏜 普段はフロントエンドを中心にパソコンをカタカタしている者です💻 私は普段のコーディング時のメインエディタとして、ターミナル環境下で、Neovimを用いています。 (Neo)Vimは、その独特な操作体系ゆえ慣れるまでがちょっぴり大変ですが、一度習熟すると非常に効率よくテキスト操作を行えるため、日々愛用しています。 また、開発作業の過程では、複数の画面を都度切り替えながらコーディングをしたり、複数のシェルを用いてコマンド操作を実行したくなる機会が多々あります。 例えば、 Viteでフロント開発環境を立ち上げてリアルタイムでコード変更を確認したい docker composeで複数のコンテナを立ち上げつつターミナルでログを確認したい それはそれとしてNeovimも並行して使いたい といった具合

                                                                            ターミナルから離れたくない…Tmux(&Neovim)の設定例🖊
                                                                          • コマンドラインにオートコンプリート機能を簡単に導入できる「inshellisense」が面白そう | DevelopersIO

                                                                            こんにちは、CX 事業本部 Delivery 部の若槻です。 2 週間ほど前に、Microsoft が inshellisense(インシェリセンス) というツールを公開しました。 inshellisense は、コマンドラインの入力時にインテリセンスを表示してくれる オートコンプリート機能 をシェルに簡単に導入できるツールです。600 以上のコマンドに対するオートコンプリートをサポートしており、現在は RC(Release Candidate)バージョンとして公開されています。 基本情報 サポートしている OS 環境 macOS Linux Windows サポートしているシェル bash zsh fish pwsh powershell 前提条件 node >= 16.x 導入方法 npm install -g @microsoft/inshellisense 導入がとても簡単なのも

                                                                              コマンドラインにオートコンプリート機能を簡単に導入できる「inshellisense」が面白そう | DevelopersIO
                                                                            • シェルのバックグラウンド実行って後だしできるって知ってました? - Qiita

                                                                              この前までの私のちょっと時間のかかるバッチ実行の日常 「よっしゃー、今日はバッチ処理やるで!」と気合い入れて、タタタタッターン(bash xxxx.sh + Enter)。 おっと、またやらかしたわ。コマンドの末尾に&つけんの忘れたら、プロセスがフォアグラウンドで動いてまうねん。 これやと、ターミナルがこのタスクに独り占めされてまうわ。 この状況をどうにかするには、Ctrl+Cでプロセスを止めてからやり直すか、それとも別のターミナルウィンドウを開くしかないねん。めっちゃ面倒くさいなあ。 今後の私のちょっと時間のかかるバッチ実行の日常 「さて、本日はバッチ処理の実施日でございますね」と心に留めました。 タッタタタッターン。 あら、不覚にも再び&を添え忘れてしまい、結果としてフォアグラウンドでの実行を余儀なくされました。 しかし、ご心配なく。 まずは、Ctrl+Zを駆使してプロセスを一時停止い

                                                                                シェルのバックグラウンド実行って後だしできるって知ってました? - Qiita
                                                                              • GitHub - binpash/try: Inspect a command's effects before modifying your live system

                                                                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                  GitHub - binpash/try: Inspect a command's effects before modifying your live system
                                                                                • [待望] CloudShell で Docker が利用可能になりました | DevelopersIO

                                                                                  待望の CloudShell で Docker が使えるようになりました。今回は簡単に全体像まとめて、コンテナイメージをビルドしてみました。 こんにちは! AWS 事業本部コンサルティング部のたかくに(@takakuni_) です。 タイトルの通りで CloudShell で docker コマンドが使えるようになってました。 今まではどうだったか 今まで、 CloudShell では Docker がサポートされておらず、コンテナイメージのビルド等が CloudShell 上で行えませんでした。 過去の Stack Overflow を確認するに、インストールはできるが、デーモンの起動ができなかったようです。 [cloudshell-user@ip-10-0-73-203 ~]$ docker images Cannot connect to the Docker daemon at u

                                                                                    [待望] CloudShell で Docker が利用可能になりました | DevelopersIO