タグ

bashに関するshimookaのブックマーク (38)

  • シェルスクリプトで変数に改行コードを含める方法 | 俺的備忘録 〜なんかいろいろ〜

    今回はちょっと初歩的な内容だけど、シェルスクリプトで利用する変数に改行を含めた文字列を代入、取得する方法についてを記述する。 まずは、以下のようにcatで改行を含んだファイルを変数に代入してみよう。 /work/test$ cat test.txt testtest testtest1 testtest2 testtest3 /work/test$ aaa=`cat test.txt` /work/test$ この、上記で適当に指定した変数「aaa」からechoで改行付きで出力させる場合、以下のように「"(ダブルクォーテーション)」で変数を囲ってあげる必要がある。 /work/test$ echo $aaa testtest testtest1 testtest2 testtest3 /work/test$ /work/test$ echo "$aaa" testtest testtest

    shimooka
    shimooka 2020/11/30
    『(ダブルクォーテーション)」で変数を囲ってあげる必要がある』おおお。。。
  • Generating random numbers · Command Line Cookbook

  • Bashの便利な構文だがよく忘れてしまうものの備忘録

    Bashでスクリプトを書く場合のポイントをまとめた Bashなどで書くシェルスクリプトは文法がシンプルで覚えると便利。他のプログラム言語だと何行もかかなければならないファイル操作や中身のデータ処理を、ちょちょいと数行レベルで書けとても強力だ。コマンドとの親和性が高い恩恵だろう1。 旧来バッチ処理で領を発揮するシェルスクリプトだったが、昨今はDockerDockerfileや起動スクリプトなど)で活用される機会も多いだろう。 しかしながら他のプログラム言語ではみられない記法があったり、逆に似た書き方もあったりと、混乱しがちなのもシェルスクリプトの特徴かもしれない。 いちいちGoogle先生に確認するのもめんどうなので、このページに整理した2。 主な参照先(よくお世話になっているページ): UNIXの部屋(68user's page) - http://x68000.q-e-d.net/~

    Bashの便利な構文だがよく忘れてしまうものの備忘録
    shimooka
    shimooka 2020/11/20
    マジ忘れる
  • 毎日ランダムな時刻にメールを送るシェルスクリプト - Walking Trashbox

    試験を控えた友人から、「”試験まであと○日"っていうメールを毎晩送って!」という依頼を受けた。それも、毎日同じ時間だとドキッとしないので「21時から22時の間のランダムな時刻の間に」メールを受信するのが望ましいらしい。これを実現するため、私は下記のような動作を自動で行うシェルスクリプトを書くことにした。常時稼働しているサーバーを持っていればスリープ解除云々は必要ないのだが、残念ながら私は1日の大半の時間スリープしているラップトップしか持ち合わせていないのである。 21時から22時の間にMac(OS Sierra)をスリープ解除する 1の1分後に文章を自動生成しファイルに保存、postfixを使用してgmailのsmtpサーバーに繋ぎメールを送信する 乱数を発生させ、次の日上記の動作を行う時間を決める 翌日の21:XX分に1が行われるように設定する 4の1分後に2が行われるように設定する M

    毎日ランダムな時刻にメールを送るシェルスクリプト - Walking Trashbox
    shimooka
    shimooka 2020/07/20
    /dev/randomとod
  • Bash $((算術式)) のすべて - A 基本編 - Qiita

    Bash の算術式の基について詳細に解説します! ※この記事は AdC 2016 Shell Script 4日目 Bash $((算術式)) のすべて - Qiita の衛星記事です (が、実のところこちらの記事のほうが実用性が高いような気がします…)。 関連記事一覧: Bash $((算術式)) のすべて - Qiita Bash $((算術式)) のすべて - A 基編 - Qiita (この記事) Bash $((算術式)) のすべて - B 罠・バグ回避編 - Qiita Bash $((算術式)) のすべて - C 応用編 - Qiita 記事の構成: 先ず A1 で算術式が何かについて述べ、A2 でBash算術式に登場する型を紹介します(一つしかありませんが)。A3 で算術式を構成する原子式・演算子などについて説明をします。A4 で Bash 算術式が使える箇所を列挙しま

    Bash $((算術式)) のすべて - A 基本編 - Qiita
  • シェルスクリプトが捗る!bashのコマンド置換を入れ子にする1の方法! - ぐるっとぐりっど

    今までBourneシェル派だったから、bashでシェルスクリプトを書くってことがなくて知らなかったんだけど、bashではコマンド置換に、従来の `コマンド`によるコマンド置換だけでなくて、 $(コマンド)という書き方ができるらしい。 これのどこがうれしいのかというと、入れ子にできるということ たとえば、grepで-Aオプションで該当行+COUNT行取得し、かつ最後の1組しか取得したくないというときに、従来方式だと入れ子にできないから COUNT=$1 COUNT_ADD_1=`expr ${COUNT} + 1` result=`grep -A ${COUNT} target_word target_file | tail -${COUNT_ADD_1}`というような回りくどいことを書かないといけなかったところが、 COUNT=$1 result=$(grep -A ${COUNT} ta

    シェルスクリプトが捗る!bashのコマンド置換を入れ子にする1の方法! - ぐるっとぐりっど
  • 【bash】変数の値に含まれる変数を展開させる方法 - Qiita

    背景 bashを使用して大量の実行コマンドを自動的に流したいなって思って、サクッと書けるかなって思ってたらトラップ発動したのでメモ。 やりたいことは単純。 ・コマンドが複数行記述されているファイル cmd.txt を用意。 ・cmd.txtを一行ずつreadして実行する runcmd.shを実行するとコマンドが1行ずつ実行される。 実行したいコマンドに埋め込まれた変数が展開されずエラーに よくある話ですが、実行したいコマンドに環境変数が埋め込まれていることがあると思います。こんな感じ。 /{$HOME}/{$FOO}/{$BAR}/run.sh これを外部ファイルからreadしようとすると、単純な文字列として解釈されるので、{$...}が展開されないのです。 【解決法】evalを使って評価してあげる evalコマンドを使用して文字列を評価してあげると、埋め込まれている変数が展開されて期待通

    【bash】変数の値に含まれる変数を展開させる方法 - Qiita
  • bash:tip_colors_and_formatting - FLOZz' MISC

    Bash tips: Colors and formatting (ANSI/VT100 Control sequences) The ANSI/VT100 terminals and terminal emulators are not just able to display black and white text ; they can display colors and formatted texts thanks to escape sequences. Those sequences are composed of the Escape character (often represented by “^[” or “<Esc>”) followed by some other characters: “<Esc>[FormatCodem”. In Bash, the <Es

    bash:tip_colors_and_formatting - FLOZz' MISC
  • プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita

    記事が切っ掛けとなってお声がけを頂き、記事の増補リファイン版となる記事をSoftwareDesign 2018年1月号のシェルスクリプト特集第2章として執筆しました。リファイン版には、この記事で触れていない文法面での分かりにくさについての解説が含まれています。その文法面での分かりにくさの解説の一部に相当する記事もありますので、ぜひそちらも併せてご覧下さい。 Shell Script Advent Calendarをご覧の皆様、図々しくも5日目に続く2度目のエントリーのPiroです。 前回は自作のBashスクリプト製Twitterクライアントをネタに実装を解説しましたが、今日は他の言語で多少のプログラミング経験はあるんだけど、どうにもシェルスクリプトは苦手だ……という人のための、シェルスクリプトによるプログラミングの勘所を解説してみようと思います。多分、プログラミング入門レベルの人や上級

    プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - 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
    shimooka
    shimooka 2017/09/19
    viモードで使ってるので「追記2」派
  • Bash Infinity Framework - シェルスクリプトの概念をはるかに超えるモダンなフレームワーク | ソフトアンテナ

    UNIXやMacを使用しているユーザーならば誰でも一度はシェルスクリプトを作成した経験があると思います。どんな環境でも使い回せるポータビリティの高さが魅力ですが、プログラミング言語としてみると独特な部分が多く、なんとなく苦手意識を持っている方も多いかもしれません。 日紹介する「Bash Infinity Framework」はそんなシェルスクリプトの概念を完全に変えてしまうBash用のフレームワークです。 モジュラーかつ軽量で、C#やJavaJavaScriptといった他の言語のコンセプトを取り入れ、プラグ&プレイで必要な機能だけを追加していける特徴を持っています。 主な特徴は以下の通りです: 自動エラーハンドリング 名前付きパラメータ($1、$2ではなくて) 配列とマップをパラメータとして引き渡せる try-catchの実装 独自例外のthrow キーワードのインポート 出力を改善す

    Bash Infinity Framework - シェルスクリプトの概念をはるかに超えるモダンなフレームワーク | ソフトアンテナ
    shimooka
    shimooka 2016/08/31
    すでに別言語だけど面白そう
  • Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口

    マイクロソフトのハンセルマンのBlog: Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10 Ubuntuの中の人のBlog: Ubuntu on Windows — The Ubuntu Userspace for Windows Developers この2つのBlogで実態が明確になったのでまとめてみます。 使用可能になるOSまもなくリリースされる予定のWindows 10 ”Anniversary” アップデートで使用可能になります。このアップデートで、開発者向けの機能として追加されます。 機能の追加で、Windowsの設定で開発者モードを有効にすると使用できるようになります。これでネイティブなユーザー モードのLinuxシェルが使えるようになり、bashを起動するとWind

    Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口
    shimooka
    shimooka 2016/03/31
    『リアルタイムに、Linux の syscalls を Windows の syscalls に変換し処理します』どれぐらいのパフォーマンスなんだろか?
  • Engadget | Technology News & Reviews

    Pick up the 9th-gen iPad with two years of AppleCare+ for only $298

    Engadget | Technology News & Reviews
  • [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 - Publickey

    [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 マイクロソフトは開発者向けの年次イベント「Build 2016」を米サンフランシスコで開催しています。初日の基調講演では、Windows 10が登場して1年を記念した大型アップデートWindows 10 Anniversary Update」を発表。 その中で、UNIXやLinuxで使われているシェルの1つ「Bash」がWindowsに搭載されると発表がありました。 物のBashがWindowsで走る Kevin Gallo氏。Corporate Vice President, Windows and Devices Group。 Bash on Windowsを発表する。 これは物のBashだ。仮想マシンでもクロスコンパイルされたツールでもなく、ネイティブのUbu

    [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 - Publickey
    shimooka
    shimooka 2016/03/31
    えーと日付は。。。3/31だった / 『Bashシェル』うーん、何かもにょる表現。
  • Bashで変数を大文字小文字変換(uppercase/lowercase)する - Qiita

    #!/bin/bash echo -n "押すなよ!絶対押すなよ! [y/N]" read confirm if [[ ${confirm,,} = y ]]; then echo "素直か!" else echo "どーん!" fi

    Bashで変数を大文字小文字変換(uppercase/lowercase)する - Qiita
    shimooka
    shimooka 2015/01/27
    すぐ忘れるのでブクマ
  • 【セキュリティ ニュース】【ShellShock】不十分な修正部分を解消したパッチが順次公開へ(1ページ目 / 全1ページ):Security NEXT

    Linuxの一部やMac OS Xのデフォルトシェルとして採用されている「bash」に深刻な脆弱性「CVE-2014-6271」が見つかり、パッチに不具合が報告されていた問題で、一部ディストリビューションより修正バージョンの提供が開始されている。 9月24日に公開されたパッチにおいて、「CVE-2014-6271」を修正したものの、対策が不十分であり脆弱性「CVE-2014-7169」が存在するとの指摘が出ていたことから、対応が行われたもの。 Red Hatでは、あらたに公開したパッチで、「CVE-2014-6271」と問題の「CVE-2014-7169」へ対応するとともに、影響が小さい「CVE-2014-7186」「CVE-2014-7187」の2件についても修正。公開を開始している。 JPCERTコーディネーションセンターでは、ディストリビューターの対応状況を確認し、修正済みバージョン

  • 【Bash脆弱性 対応のまとめ】 各ディストリビューションの修正パッケージのリリース相次ぐ、暗黙にBashを呼び出すケースに要注意

    【記事内容の更新】 米国時間9月29日付けで発表されたMac OS X向け修正パッケージの公開に関する情報を追加しました(注記の[2])。 Bashは、LinuxMac OS X等のUnix系システムにおいてOSとユーザの仲立ちをする「シェル」と呼ばれるソフトウェアの1つで、特にLinuxでは標準のシェルとして一般に使われている。また、原型のshシェルの拡張として、ユーザ対話だけでなくプログラムの一種としても広く利用される。 今回の脆弱性では、環境変数を経由した命令定義が、内容を問わずそのままBashで実行されてしまう。わかりやすい例はWebサーバのCGIプログラムで、そのやり取りではユーザのIPアドレスやユーザエージェント等の情報が環境変数で渡されるため、CGIプログラムがBashで記述されている場合、細工した情報を送ることにより、それを受け取ったBashが環境変数を経由して任意のコマ

    【Bash脆弱性 対応のまとめ】 各ディストリビューションの修正パッケージのリリース相次ぐ、暗黙にBashを呼び出すケースに要注意
  • ファイアウォール内のサーバに対するShellshockを利用した攻撃 - 葉っぱ日記

    2014-09-27: 該当サイト上にXSSがなくても攻撃可能であることが id:mayuki さんのコメントで判明しましたので全面的に書き直しました。ファイアウォール内であっても攻撃者はファイアウォール内のShellshock攻撃が通用するCGIのURLがわかっているだけで攻撃可能ですので早急に対応が必要です!会社のブログにも書いてますが、ファイアウォール内に置いてあるサーバで攻撃者が直接アクセスできないからといってbashの更新を怠っていると、条件によっては攻撃が可能となります。 条件としては、 そのサーバにはシェルを経由して外部コマンドを起動するCGI等が動いている(通常のShellshockの攻撃と同条件) 攻撃者がそのURLを事前に知っている(あるいは推測可能) となります。 攻撃者は、ユーザーを罠URLへ誘導し、以下のようなJavaScriptを罠ページ上で動かし、攻撃対象のW

    ファイアウォール内のサーバに対するShellshockを利用した攻撃 - 葉っぱ日記
  • bashにおける脆弱性「Shellshock」について

    2014/09/26 コース:元祖こってり 「元祖こってり」記事はネットエージェント旧ブログ[netagent-blog.jp]に掲載されていた記事であり、現在ネットエージェントに在籍していないライターの記事も含みます。 bashにおける脆弱性「Shellshock」について LinuxMac OS XなどのUNIX系OSで広く使用されているbashに見つかった脆弱性(Shellshockと呼ばれています)が先日から話題になっています。 弊社でもこのbashの脆弱性について調査を行いました。 ■概要 環境変数に特定の文字列を設定するだけでその環境変数内の文字列をシェルが関数として実行してしまいます。 シェルを通じてコマンド等を実行する幅広い環境で影響がありますが、特に顕著に影響を受けるのはCGI等のWebアプリケーション環境です。 CGIをはじめとするWebアプリケーションではWebブラ

  • 「bash」シェルに重大な脆弱性、主要Linuxでパッチが公開

    脆弱性は多くの一般的な設定でネットワークを介して悪用できるとされ、特にbashがシステムシェルとして設定されている場合は危険が大きい。 LinuxなどのUNIX系OSで標準的に使われているシェル「bash」に極めて重大な脆弱性が見つかり、9月24日に修正パッチが公開された。攻撃者がbashにコマンドを送って任意のコードを実行できる可能性が指摘されており、米セキュリティ機関のSANS Internet Storm Centerなどはパッチ適用を急ぐよう呼び掛けている。 関係各社のアドバイザリーによると、bashで特定の細工を施した環境変数を処理する方法に脆弱性が存在する。悪用された場合、攻撃者が環境制限をかわしてシェルコマンドを実行できてしまう恐れがあり、特定のサービスやアプリケーションでは、リモートの攻撃者が認証を経ることなく環境変数を提供することも可能になる。 この脆弱性は、多くの一般的

    「bash」シェルに重大な脆弱性、主要Linuxでパッチが公開
    shimooka
    shimooka 2014/09/25
    何ををををッ!