タグ

bashに関するmieki256のブックマーク (82)

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

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

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - 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
  • シェル - bash - ブラケットペーストモード(Bracketed Paste Mode)

  • LinuxでTab補完ができない方へ!bash-completionをインストールしよう!|インフラエンジニアになりたくて。

    こんにちは、インフラエンジニアのryuです。 今回は、LinuxでTab補完ができない人向けに対処方法を解説します。対処方法は、bash-completionをインストールして、Linux起動時に補完機能を読み込むようにします。Tab補完ができなくて困っている方必見です。

    LinuxでTab補完ができない方へ!bash-completionをインストールしよう!|インフラエンジニアになりたくて。
  • シェルスクリプトで環境変数を設定する

    LD_LIBRARY_PATHなど、いちいち設定するのが面倒な環境変数を、 シェルスクリプトに記述できたら便利です。 [env_set.sh] # 環境変数の設定 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/hoge さっそく、このシェルスクリプトを実行してみます。 $ ./env_set.sh $ echo $LD_LIBRARY_PATH $ …?。恐らく、シェルスクリプトで設定した内容は、反映されていないはずです。 通常、シェルの中で設定された環境変数は、そのシェルを抜けると消去されるためです。 シェルスクリプト内で設定した環境変数を、呼び出し元のシェルにも反映するためには、 次のようにしてシェルスクリプトを実行すればOKです。 $ source ./env_set.sh $ echo $LD_LIBRARY_PATH

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

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

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
  • 第42回 bashの便利な機能 | gihyo.jp

    ここ数年、再利用するかも知れないコードは可読性がいいPythonで書くことが多かったものの、最近「スクリプトを書くほどでもないなぁ」的な作業が頻発し、bashのワンライナーで誤魔化してみたところ、最近のbashは変数展開や置換機能がずいぶん充実していて、かつてはsedやtr、awkを使って書いていた処理が、ほぼbashの機能だけで書けるようになっていました。 そこで改めてbashのマニュアル等を確認したら、「⁠へー、こんなこともできるんだ」的な機能があれこれ目について、ちょっとbashに対する認識を改めているところです。今回は、そのようなbashの便利な機能をいくつか紹介してみようと思います。 bashの来歴 Linux系ディストリビューションのデフォルトのシェルであるbashは、GNUプロジェクトが開発したシェルで、"Bourne Again SH"の略になっています。 この"Bourn

    第42回 bashの便利な機能 | gihyo.jp
  • シェルスクリプト内でOSがWindowsか否かを判定する|COMSPEC環境変数

    Windows 使いのみなさん、MSYS2 使っていますか?使っていなければ、ぜひ使ってみてください。便利ですよ! さて、そのMSYS2@Windows を使っていると、シェルスクリプトを Linux でもMSYS2@Windows でも動くようにしておきたい場合があります。いわゆるマルチプラットフォーム対応ですね。組込み開発に限らずですが、開発ツールの都合でLinuxWindowsを行ったり来たりすることがあるので、マルチプラットフォーム対応にしておくと便利です。 シェルスクリプトにてOSがWindwosかどうか判定する 基的に bash ならどこでも動くと思いますが、Windows かどうかで記述を分岐させたい場合が時々あります。ディレクトリ構成や使える外部ツールが違う時などですね。そういう時は環境変数COMSPECを参照します。 下記のようにCOMSPECを確認することで、Win

    シェルスクリプト内でOSがWindowsか否かを判定する|COMSPEC環境変数
  • 「Cygwin 3.5」はWindows 7/8をサポートせず ~32bit対応も間もなく終了/

    「Cygwin 3.5」はWindows 7/8をサポートせず ~32bit対応も間もなく終了/
  • プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話ShellScriptBash 普通のプログラミング言語での開発に慣れた人ほどシェルスクリプト、特にBashで戸惑う部分の一つに、i = 0のように空白を開ければエラーになるし、かといってif[$i!=0]のように詰めてもやっぱりエラーになる、という点が挙げられます。書きたい物を思うように書けなくて「なんだよこのクソ言語は!!!」とブチギレる人は少なくないのではないでしょうか。この記事では、そのイライラを解消するポイントをお伝えしようと思います。 以下、特に断り無く「シェルスクリプト」と書いている場合はすべて「Bashのスクリプト」という意味になります。zsh等他のシェルではまた事情が異なりますので、ご注意ください。 (※以前プログラマーの君! 騙されるな! シェルスクリプトはそう書いち

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita
  • シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の当の理由を知ると優れた文法が見えてくるShellScriptBashUNIXshellPOSIX はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話」のような記事がすぐに見つかります。記事に書いてあるとおり変数代入とコマンド呼び出しと区別がつかないからです。それは間違いではないんですが、私はもう少し説明が足りないと感じています。そこで今回は = の前後にスペースを置けない当の理由を解説したいと思います。 の前に皆さんにはこの話を読みながら、自分がシェルスクリプトの言語設計者だったとしたら、どういう言語仕様にするかを考えて欲しいです。なぜかと言うとシェルスクリプトの文

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita
  • シェルスクリプトの長所と短所のまとめ - Qiita

    はじめに シェルスクリプトに関しての長所と短所をまとめてみました。多くの短所を上げていますが、私はシェルスクリプトを嫌っているわけではなく(むしろ逆)、現在のシェルスクリプトが抱える問題点を明らかにし、シェルスクリプトはどう使うべきか? またはどう使うべきではないか? 問題点があるならばそれを解決することはできないか? を考えるためにまとめています。問題を解決するにはまず問題点を明らかにしなければいけません。 またシェルスクリプトを来の用途に合わないものに使うと逆に開発が難しくなってしまいます。それは使い方が悪いわけでシェルスクリプトの問題ではありません。間違った使い方によってシェルスクリプトの価値が不当に下げられてしまうことを減らすために、あえて多くの短所をあげています。つまり最初からこんな用途に使おうと思うな。ということです。(使うことを禁止はしませんが、わかった上でやりましょう。実

    シェルスクリプトの長所と短所のまとめ - Qiita
  • シェルスクリプトの代替

    要約:決定版はとくにない。 kzys氏のシェルスクリプトを書かないという記事は面白かった。 https://blog.8-p.info/ja/2021/09/15/bash/ シェルスクリプト、ごくたまに書くことはあるが、ほんともう細かい話とかはすべて忘れているし、覚える価値を感じない。いまさら覚える必要のない技術だなと感じる。が、その一方でなかなか代替品がないようなニッチでもある。 自分は必要に応じてPythonRubyか、といったあたりを使うことが多いが(perlはもう書けなくなった)、なかなかこれという感じには思い至らない。なにがいいんだろうね?という。 前提条件:インタラクティブな環境(REPL)はなくてもいい。そこはもう既存のシェルでいい。自動化したシェルスクリプト的なタスク記述を目標とする。bashの置き換えという意味では「どこにでもインストールされていることを前提にしないと

    シェルスクリプトの代替
  • シェルスクリプトを書くのをやめる - blog.8-p.info

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

  • bash-completion

    補完機能を利用し、ターミナルを使ってみよう 近年、Linux の話題は GUI 中心の展開をしています。Windows 的なアプローチでは厄介者のイメージが強いかもしれないコマンド操作ですが、元々コマンドをシェルにしている Linux/UNIX には便利なコマンドラインツールがたくさんあります。ここでは、各コマンドの紹介、説明は行いませんが、bash を便利に拡張する bash-completion パッケージとコマンドを使い始めるための基礎の基礎、ターミナル利用の Tips をいくつか紹介します。 ここに書いた操作方法は GUI 画面のターミナル上でも、CUI のコンソールでも同様に使えます。CUI に馴染んでおけば「X が起動しない」とか、「レスキューモードに入らなければ」というときでも、落ち着いて作業できます。 bash-completion は bash の補完機能を大幅に拡張する

  • Vine Linux - wikimemo

  • HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ

    みなさんはHomebrewをお使いでしょうか。macOSをお使いの多くの開発者が使っていると思います。 HomebrewのインストーラーはRubyで書かれており、次のコマンドでインストールするようになっていました。 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" HomebrewがRubyに依存していることは良いのですが (formulaの書きやすさはRubyならでは)、インストーラーの話になると事情が変わってきます。HomebrewのインストールコマンドはmacOSの工場出荷状態でも動く必要があります。こういうものにRubyを使っているのはリスクがあります。 将来的にmacOSデフォルトにRubyPythonが含まれなくなる (参考リンク

    HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ
    mieki256
    mieki256 2020/03/03
    「こういうものにRubyを使っているのはリスクがあります。」…仰る通り
  • 世の中のエンジニアのalias設定 - Qiita

    先日、同僚と「世の中のエンジニアはターミナルにどんなalias設定をしているんだろう?」という談義になったので、GitHub上の1000リポジトリのコードから調査してみました。 2019/04/10 コメントを元に微修正しました。コメントくださった方々、ありがとうございます。 2019/04/11 こんなのも書いてみました。 よく使われているvimrcの設定ランキング 2019/04/15 プラグイン版も書きました。よく使われているvimのプラグイン top20 aliasとは wikipediaより UNIXなどにおいてコマンドを別名で登録したもの。別名を登録するコマンド名。 長いコマンドやいつも利用するオプションを毎回入力するのは手間ですよね? ターミナルの設定ファイルにaliasを記述することで、別名として定義することが可能というわけです。 調査方法 GitHub APIを利用 do

    世の中のエンジニアのalias設定 - Qiita
  • [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO

    $ mkdir /very/_very/Very-long/directory_name/20170915 なんて操作をしたあと、そのディレクトリにcdしたい場合ってまれによくありますよね。 どんなやり方があるか考えてみました。 1. コピペする そのまんまですが、これをやりたくなくてこの blog を書いてます。 2. TAB 補完で頑張る これも無いわけではないですが、間違えたりすることを考えると正直あんまりやりたくないです。 3. 上矢印キーで前コマンドを呼び出し、右矢印キーで先頭に戻ってmkdirをcdに書き直す よく見る方法ですが、もうすこし少ない手数でできないでしょうか。 4. 上矢印キーで前コマンドを呼び出し、Ctrl-Aで先頭に戻ってCtrl-Dx5 のあとにcd BASH のキーバインドはデフォルトだと emacs モードなので、このやり方が出来ます。 でもまだちょっと手

    [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO
  • pecoの学習帳 〜ディレクトリに入る・ファイルにアクセスする〜 - the code to rock

    最近ようやくpecoが自分の作業上で実用的になってきたので、そのメモです。 pecoの導入については@xtetsujiさんによる以下のQiita記事がとてもわかりやすかったのですが、qiita.com それでも最初にそれを読んだ時は、ちょっと難しいというか、「ん〜でも結局、これを使うと何が嬉しいんだ? かえって面倒な気すらするが?」という感じもあって、紹介されているコードを手元にコピーはしたものの、とくには使えないまま時間が過ぎてしまって。 でもその後、最近時々紹介している『新しいLinuxの教科書』を読むにつれ、 新しいLinuxの教科書 作者: 大角祐介出版社/メーカー: SBクリエイティブ発売日: 2015/06/06メディア: 大型この商品を含むブログ (4件) を見るだんだんLinuxコマンドやシェルスクリプトに馴染みが出てきて、その状態でまたふと上記を含む各種pecoの説明な

    pecoの学習帳 〜ディレクトリに入る・ファイルにアクセスする〜 - the code to rock