並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 550件

新着順 人気順

シェルの検索結果121 - 160 件 / 550件

  • 【話題沸騰中】軽量でお洒落なコマンドプロンプト拡張ライブラリ「Starship」を導入した話 - Hajimari Tech Blog| 株式会社Hajimari

    こんにちは。 分からないことに出会ったら、ワクワクする inteeの 中野 です。 会社から新型MacBook Proを支給して貰ったので、 ターミナルのプロンプトをカスタマイズした話をしようと思います! Starshipとは Starshipとは、ターミナルのプロンプトをカスタマイズするプラグインです。 日本語翻訳が充実しており、可愛いデザインに惚れて、導入を決めました! Starshipの特徴 Rust言語で開発されており、動作が高速 設定ファイルで細かくカスタマイズ可能 bash / Zsh / Fish で使用可能 Git管理のプロジェクトであれば、ブランチ名や言語バージョン等が表示可能 ポップなカラースキーム・絵文字がカワイイ(超重要) 個人的に辛い開発時にエモい気持ちになりながら、開発できる体験を重要視しております🙇‍♀️ インストール 今回はMacで導入した為、Homebr

      【話題沸騰中】軽量でお洒落なコマンドプロンプト拡張ライブラリ「Starship」を導入した話 - Hajimari Tech Blog| 株式会社Hajimari
    • bashの機能いろいろ

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

        bashの機能いろいろ
      • シェルを経由しないOSコマンド呼び出しがPHP7.4で実装された

        この記事はPHP Advent Calendar 2019の5日目の記事です。 はじめに 私は6年前に、PHP Advent Calendar 2013として「PHPだってシェル経由でないコマンド呼び出し機能が欲しい」という記事を書きました。その中で、OSコマンドインジェクション対策の根本的かつ安全な対策は「シェルを経由しないコマンド呼び出し」であることを指摘した上で、末尾に以下のように書きました。 PHPコミッタのみなさま、PHP5.6の新機能として、シェルを経由しないコマンド呼び出しの機能を追加できませんか? 現実には当時からPCNTL関数にてシェルを経由しないコマンド呼び出しはできたのですが、当関数の使用が難しいことと、CLI版あるいはCGI版(FastCGIは可)のPHPでないとサポートされていないなどの制限があり、popenやproc_openなど使いやすいコマンド呼び出し関数に

        • Vim での一括置換を楽に行う裏技

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

            Vim での一括置換を楽に行う裏技
          • Erlangについて思うところ

            職場の今までいた部署が潰れてしまったので、新しい部署で仕事のためにErlangを学んでいる。基礎的な文法については学び終わったので、現時点でのErlangについての雑感を書いておこうと思う。 Erlangは多数派のプログラミング言語とはだいぶ違う文法を持っている。終端記号がドットであることもそうだが、比較演算子もだいぶ違っている。多くの言語が!=を使うなか、Erlangは/=を使っている。Less than or equal toが=<であるのも多数派とは異なっている。ただし、Greater than or equal toは>=だ。一貫性がない。 終端文字はドットだが、関数の中には一つの式しか書くことができない。式はカンマで区切ることができるので、以下のようになる。 func() -> expr1 , % カンマ expr2 , % カンマ expr3 . % ドット このような文法はリ

            • (結論はまだ出てない)ターミナルをいい感じにしたい話 - 駄文日記 2nd side

              ここ1年ぐらい*1から、ターミナル環境を良くしようという活動を頑張っている。 今使ってる環境が Windows / macOS / Manjaro Linux と、完全マルチプラットフォームな感じになっておりそれぞれで違うものをあんまり使いたくはない。 悩んでるけど結論が出ないので、ここに備忘録的にかいておこうと思う。 設定管理 github.com Chezmoi www.chezmoi.io 以前記事も書いたけど、クロスプラットフォームなうえにスクリプトも実行できるのちょっと嬉しい。 deflis.hatenablog.com Sheldon github.com 最近やめたので理由を書いておこうと思って。 Chezmoiにはexternalという機能があって、これで外部リポジトリのデータを管理することができるので、実はシェルプラグインの管理はほとんどChezmoiだけでできてしまうこ

                (結論はまだ出てない)ターミナルをいい感じにしたい話 - 駄文日記 2nd side
              • Dockerでサクッと使い捨ての開発環境を用意する | DevelopersIO

                もこです。 「各種アプリケーションのバージョン管理が面倒」 「Dockerfileにするほどでもないけどコンテナの中で実行したい」 などなど、作業マシンを汚したくないときなど結構あると思います。 Dockerfileなどでアプリケーションのみを入れたコンテナとは違う使い方をした、「作業用コンテナ」を作ってみました。 ベースのコンテナを作る まずは最新のUbuntuのコンテナの中に入ります docker run --name="dev_container" -it ubuntu:latest コンテナに入ったらパッケージを更新し、開発環境などに必要なパッケージ類をインストールしていきます。 apt update -y apt install curl vim git net-tools build-essential -y # などなど、必要なパッケージを入れていきます 今回はNode.js

                  Dockerでサクッと使い捨ての開発環境を用意する | DevelopersIO
                • webcontainer とは

                  stackblitz が提唱して実装している node.js が動くブラウザ環境。container といってるが、 Docker 等とは関係ない。 stackblitz/webcontainer-core このコンテナはブラウザ内で node.js (らしきもの)が動くことがターゲットで、現在デモとして next.js をビルドしてプレビューできている。これによって node.js + webpack + next.js cli が動いていることがわかる。 デモはここで試せる。 まだ OSS ではないので、この記事の大部分は想像によって書かれている。 webcontainer 概要 (自分の理解なので話半分に) ブラウザサンドボックスでも electron なしでも動かせるようになってきた。しかし現在 node.js を動かすには色々と欠けている部分があるので、それらを総称して webc

                    webcontainer とは
                  • 一部訳した本の宣伝: 「入門モダンLinux」 - 覚書

                    4/6 更新。Amazon上の煽り文を最新化&公式サイトから目次を転載 一部だけ翻訳にかかわった「入門モダンLinux」という本が4月7日に出るので宣伝を兼ねた紹介をします。 原著は「Learning Modern Linux」です。 本書のタイトルを目にしてまず思うのは「モダンLinuxとはいったいなんぞや」でしょう。これについてはamazonにも載っている煽り文をご覧ください。 Linuxはサーバ、組み込み機器、スーパーコンピュータなどにおいて存在感を示してきました。近年では、オンプレミスのシステムだけではなく、クラウドサービスでも広く使われています。本書は、前半でLinuxを使いこなす上で必要な基本知識を、後半で最新情報をまとめています。Linuxの知識を体系的に整理したい、最新動向が知りたい、運用を改善したい、効率的に開発を行いたい、といった要望をかなえる内容となっています。時代の

                      一部訳した本の宣伝: 「入門モダンLinux」 - 覚書
                    • Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita

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

                        Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita
                      • 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
                            • Markdownで書いた実験レポートをTeX組版の美しいPDFに変換するDockerイメージを作った - ぷらすのブログ

                              特徴Markdown を PDF に変換する方法STEP1 : Docker イメージを pull するSTEP2 : 変換したい Markdown ファイルがあるディレクトリに移動するSTEP3 : PDF に変換する発展的な使い方保存するたびに PDF に変換するalias を使って簡単に変換を実行できるようにするMarkdown ファイルを tex ファイルに変換するpandoc を使った変換終わりに参考こんにちは、@p1assです。 皆さんは、実験レポートを何で書いていますか? Word ですか?それとも LaTeX ですか? 私はそのどちらでもなく、 Markdown 書いています。 Markdown はシンプルなシンタックスで様々な表現ができ、多くのエンジニアに愛されています。 しかし、Markdown は実験レポート用途にあまり使われていないため、そのままでは美しい PDF

                                Markdownで書いた実験レポートをTeX組版の美しいPDFに変換するDockerイメージを作った - ぷらすのブログ
                              • Linux用zoomパッケージ:お粗末なメンテナスクリプト - SIOS SECURITY BLOG

                                注意:末尾に2020/04/08での追記あり 2020/04初頭現在、COVID-19が猛威を奮っている昨今は自宅勤務となり、オンラインミーティングやウェビナーに参加される機会が増えている方も多いことでしょう。そしてそんなオンラインミーティングで一気にシェアを伸ばしているのが「Zoom」です。 しかし、注目を集めた結果セキュリティ脆弱性があることが様々なレイヤで発見されており、一部の国の政府系機関では使用を辞めるように、とのお達しが出るほどになりました。 いやいや、そんな脆弱性が多いってどんな?というと 例えばMac用クライアントについては「 AAPL Ch. 」さんのZoom Meeting for Macの脆弱性タイムラインを見ていただくと『マジかよ』という内容と対応が連続で上げられています。Windowsクライアントの認証クレデンシャル情報が漏洩するよ、とか録画データが推測しやすい形

                                  Linux用zoomパッケージ:お粗末なメンテナスクリプト - SIOS SECURITY BLOG
                                • 【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - Qiita

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

                                    【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - 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が発表
                                    • ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話

                                      はじめに 自分が読んだ本や記事などを読む時に書いたノートを体系的に管理したいですよね。 現在優秀なナレッジマネジメントツールはありふれています。企業向けだと Confluence DocBase Qiita Team などがあります。個人向けは Notion HackMD Boost Note のようなシンプルで使いやすいツールがあります。マインドマップツールをさらに含めると数え切れません。 筆者自身はミニマリストです。 コードのようにGithubで自分のノートを管理したい Webからマインドマップ形式になっているノートを確認したい サブスクではなく、無料で使いたい なので、個人ナレッジマネジメントツールを自作したいという発想に至りました。 結果としては下記の15行シェルスクリプト、GitHub ActionsとMarkdownマインドマップ変換ツールmarkmapで作りました。 項目をク

                                        ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話
                                      • ntfy.sh | Push notifications to your phone or desktop via PUT/POST

                                        Push notifications made easyntfy (pronounced notify) is a simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, and/or using a REST API. It's infinitely flexible, and 100% free software.

                                        • 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;
                                          • NginxのRatelimit発動時に、安定したアクセスを提供するngx-smart-ratelimitを開発しました | ten-snapon.com

                                              NginxのRatelimit発動時に、安定したアクセスを提供するngx-smart-ratelimitを開発しました | ten-snapon.com
                                            • 【shell】tmuxの作業画面を一発で構築するコマンドを作ってみた | DevelopersIO

                                              例えば以下のような形にpaneを分割したければ prefix - s, prefix - v, prefix - J J J J というような形で分割→リサイズをする必要がありました。これが毎回やっていると非常に面倒になります。というわけで、よく使う作業環境を作ってくれるコマンドを作成します。 画面分割 ①vim用, その他用で分割する時 windowを2つのpaneで分割して、上の大きなペインでvimを開きコードやメモを書いて、下の小さめのペインでシェルを使用したい時はこんな形になります。これを作成するコマンドを書いてみます。 tmux split-window -v tmux resize-pane -D 15 tmux select-pane -t 1 ②vim用, コード実行用, git用で分割する時 ウィンドウを3分割して、上のペインでvimを開きコードを書いて、左下ペインでコー

                                                【shell】tmuxの作業画面を一発で構築するコマンドを作ってみた | DevelopersIO
                                              • なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita

                                                なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜ShellScriptBashshellPOSIX まえがき この記事は「シェルスクリプトで高い移植性と生産性を両立させるシリーズ」の第一弾です。移植性と生産性を両立させるための前提知識として POSIX コマンドの問題点について解説します。第二弾では高い移植性と互換性を実現させるための考え方、そして第三弾、第四弾ではそれを実現するシェルスクリプトの具体的な実装テクニックを紹介します。第五弾では現実的な問題と回避方法について解説する予定ですがまだ具体的な内容は決まっていません。第五弾はその前に「シェルスクリプト入門(仮)」の記事を書こうと思ってるので少し遅くなると思います。もし興味がある方は記事をストックしていると更新時に通知されると思います。 2021-07-11 追記 記事が長くなった

                                                  なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita
                                                • Starship: Cross-Shell Prompt

                                                  Compatibility FirstWorks on the most common shells on the most common operating systems. Use it everywhere! Rust-PoweredBrings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. CustomizableEvery little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be.

                                                    Starship: Cross-Shell Prompt
                                                  • 【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita

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

                                                      【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita
                                                    • Bash初心者からエキスパートになるためのコマンドとヒント101 - Qiita

                                                      以下はAndrewによる記事、101 Bash Commands and Tips for Beginners to Expertsの日本語訳です。 一部を除き、上から順にコマンドを打って確かめることができるようになっています。 読むだけではなく、実際に打って試してみることで理解が早まることでしょう。 101 Bash Commands and Tips for Beginners to Experts 一年前まで、私はもっぱらMacOSとUbuntuのふたつのOSで作業をしていました。 両OSにおいて、私のデフォルトシェルはbashです。 過去6、7年ほどbashで仕事をしているため、bashがどのように動作するか、ある程度は理解しているつもりです。 従って、bashを始めたばかりの人にとって一般的で有用なコマンドについて、いくつか解説していきたいと思います。 また、bashについて知っ

                                                        Bash初心者からエキスパートになるためのコマンドとヒント101 - Qiita
                                                      • 1日1問、半年以内に習得 シェル・ワンライナー160本ノック

                                                        2021年9月27日紙版発売 2021年9月22日電子版発売 上田隆一,山田泰宏,田代勝也,中村壮一,今泉光之,上杉尚史 著 B5変形判/488ページ 定価3,520円(本体3,200円+税10%) ISBN 978-4-297-12267-6 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo honto この本の概要 シェルのワンライナー(その場かぎりの1行プログラム)は,LinuxやMacのコマンドラインインターフェースを立ち上げたら,すぐにプログラムを書いて即実行できます。ちょっとした作業を手っ取り早く片付けるのに向いています。大量のデータ処理,繰り返し処理ほどその効果は絶大です。本書は,そんなシェル・ワンライナーを身につけるためのトレーニング本です。大量の問題を

                                                          1日1問、半年以内に習得 シェル・ワンライナー160本ノック
                                                        • Starship: Cross-Shell Prompt

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

                                                            Starship: Cross-Shell Prompt
                                                          • もっとLinuxを使いこなしたい人のために――“応用力”をつけるためのLinux再入門[シェルスクリプト挑戦編(1)]

                                                            Linux OSを使う上での大きな魅力の一つが「シェルスクリプト」です。シェルスクリプトでは、よく実行するコマンドをまとめたり、繰り返し処理を簡単に行ったりするなど、さまざまな形で応用することができます。シェルスクリプトを活用することで、Linux上での作業を大幅に効率化することも可能になります。 シェルスクリプトでは、何度も使用したいコマンドやオプションの組み合わせを記述しておく他、条件分岐や繰り返しなどの「制御構文」を使って複雑な処理を行わせたり、定期的に自動実行させるようにしたりするなど、さまざまな用途が考えられます。 今回は、@IT eBook第51弾に続いて、Linuxをもっと使いこなしたいという人のために、連載『“応用力”をつけるためのLinux再入門』から、シェルスクリプトを解説した記事10回分を「シェルスクリプト挑戦編(1)」として一冊にまとめました。 シェルスクリプトを扱

                                                              もっとLinuxを使いこなしたい人のために――“応用力”をつけるためのLinux再入門[シェルスクリプト挑戦編(1)]
                                                            • パイプに関係するさまざまなバッファ、ちゃんと意識していますか? - Qiita

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

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

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

                                                                • Google発のJavaScriptで書けるシェル 「zx」 | DevelopersIO

                                                                  Introduction シェルを書きたいときにBashは手軽に使えるけど、 少し込み入ったスクリプトを書こうとするとちょっと面倒。 NodeいれてJavaScript書くのもいいけど、 いろいろセットアップが手間。 そんな人にピッタリはまるかもしれないのがzx。 Google発、JavaScriptで記述できるシェルです。 Top Level await使ってシェルコマンドがそのまま使用可能です。 また、Promise.allでコマンド並列実行ができたりするので便利です。 Environment OS : MacOS 10.15.7 Node : v14.16.1 Top Level awaitがサポートされたNode(v14.8)以降が必要ぽい? Setup では早速セットアップしてみます。 npmでzxをグローバルインストール。 % npm i -g zx % zx usage: z

                                                                    Google発のJavaScriptで書けるシェル 「zx」 | DevelopersIO
                                                                  • シェルスクリプトを学ぶ人のための「新しいUNIX哲学」 〜 ソフトウェアツールという考え方 - Qiita

                                                                    はじめに 「UNIX 哲学 (Unix philosophy)」とは、一つの大きなシステムを、独立した小さなソフトウェアの集まりとして作るという考え方です。UNIX のように大きく複雑なものをシンプルに作るための考え方で、技術的な用語で説明するならば、大きなシステムをモジュール化された構成可能なプログラム設計で開発するということです。 UNIX 哲学に公式の定義は存在しません。ケン・トンプソンを始めとする UNIX の創始者が UNIX の開発を通して示したソフトウェア開発の考え方が UNIX 哲学と言われるようになり、それを他の人が独自に解釈して解説したものが UNIX 哲学として知られています。UNIX 哲学と呼ばれているものが複数あって、それぞれで異なっているのはそのためです。UNIX 哲学の本質的な考え方は今も通じるものですが、これまでの UNIX 哲学の解説の多くは古い技術を元に

                                                                      シェルスクリプトを学ぶ人のための「新しいUNIX哲学」 〜 ソフトウェアツールという考え方 - Qiita
                                                                    • GitHub - kenjinote/cmdchat: コマンド プロンプト (チャット風)

                                                                      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 - kenjinote/cmdchat: コマンド プロンプト (チャット風)
                                                                      • シェルスクリプトの [ は /bin/[ と言ったり [ "x$var" = "xval" ] と書く人はオジサン - Qiita

                                                                        # Ubuntu 20.04 の bash での実行結果 # シェルから [ が何として見えているか $ type [ [ is a shell builtin # PATH から見つかる全ての [ コマンドを出力する # 補足 zsh では which がシェルビルトインコマンドで、シェルビルトイン版の [ も出力される $ which -a [ /usr/bin/[ /bin/[ $ type [[ [[ is a shell keyword # zsh では [[ をパターンとして認識してしまうのでダブルクォートが必要 $ type "[[" [[ is a reserved word ちなみに [ の外部コマンド版が /usr/bin/ と /bin/ の両方にあるのは Ubuntu 20.04 では /bin が /usr/bin へのシンボリックリンクになっているからです。Ub

                                                                          シェルスクリプトの [ は /bin/[ と言ったり [ "x$var" = "xval" ] と書く人はオジサン - Qiita
                                                                        • 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... いろんなシェルがありますね。 この「シェル」ってなんでしょうか? シェルはユーザーが命令したことをカーネルに伝えてくれるやつ。です。 でも面倒じゃないですか? なぜユーザーの命令がそのままカーネルではなく、わざわざシェルを通す必要があるのでしょ

                                                                              シェルってなにしてるの
                                                                            • 祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita

                                                                              FreeBSD では 2024-05-31 に 200112 から 200809 への変更がようやく行われました(一度間違えて 200808 と書いてしまっていますが)。 https://cgit.freebsd.org/src/commit/?id=2e30926a68 https://cgit.freebsd.org/src/commit/?id=6e0278408e macOS は FreeBSD のユーザーランドのコマンドを使用しているため、そのせいで 200112 のままだった可能性も考えられますが、シェルやカーネルは FreeBSD のものではないため、FreeBSD が変更になったからと言って macOS が更新されるとは限らないでしょう。Solaris 10 と 11 ではディレクトリごとに準拠バージョンが異なるバイナリが配置されており以下のようになります。Solaris

                                                                                祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita
                                                                              • [テンプレ付き]PythonでCLIツールを作るときのTips | DevelopersIO

                                                                                こんにちは、どんな作業もターミナルで行うことが多めの平野です。 最近はパイプに流すようなCLIアプリもPythonで作ることが多いので、 そこで必要になったいくつかの要素をまとめてみます。 パイプライン処理として実装しよう BrokenPipeの表示を消す argparseによる引数とオプションのパース この辺を考慮すれば、あとは文字列変換の主要なロジックだけを実装すればOKかと思います。 パイプライン処理として実装しよう パイプライン処理とだけ言うと色々な意味がありそうですが、ここで言っている意味は データの先頭行の処理の結果は最終行が入力される前でも取り出せるようにしよう ということです。 パイプ (コンピュータ)#シェルからの使用 - Wikipedia 複数行のテキストが入力されてきた時に、 それぞれの行の文字数をカウントするアプリケーションを作ったとします。 この時、以下のような

                                                                                  [テンプレ付き]PythonでCLIツールを作るときのTips | DevelopersIO
                                                                                • シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita

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

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