shellに関するiliorz419のブックマーク (5)

  • 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 ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

  • bashの使い方のまとめ記事のインデックス - それマグで!

    bash の使い方を1から見直すシリーズ シェルスクリプトは、もうbashで書いていいよね。bashが動かない環境なんてないんだし。 bash の紛らわしい記号や歴史的経緯によるPOSIXかき分けなどがあって、bashに特化した記事って少ないし断片的なので、色々と調べたことを再構成してまとめて記事にしました。 私自身 [[ / [ の違いが全然わからないので調べ始めました。その結果あれこれ知見が得られたので書きながら復習をしていました。 気づけば、bash の教科書的なものになってしまいました。 何かの役に立てばいいと思って記事のインデックスをまとめておきます。まだ一部書けてないですがそのうち書きます。 はじめに はじめに bashとPOSIX bashが動く環境 zshとの比較 変数と配列と数値計算 変数 配列のまとめ 組込 let による数値計算とインクリメント 連想配列(assoc

    bashの使い方のまとめ記事のインデックス - それマグで!
  • あなたの知らない less の世界 - Qiita

    最近 prezto 入れたんですよ。prezto。そしたらいつものシェル世界が見違えるほど使いやすくなって身長も 3 メートルくらい伸びたんですが、それは余談でして、prezto 入れた後に less 使ってみたら余りの変わりっぷりに驚いたんです。 これを機に man page を読み直してみたら更に驚き。less ってこんなスゴイ物だったのか!みたいな。今回はそんな less の底力を紹介します。 環境変数 $LESS less には様々なオプションがあるのですが、これを予め環境変数 $LESS に設定しておくと、毎度 less ファイル名 と打つだけでそれが有効になります。更に、後述しますが、この設定は less 起動中にオン・オフして切り替えることが可能です。 # 最低限でもこれくらいは設定しておこう export LESS='-i -M -R' # 僕は後述の物を全部付けてます(-

    あなたの知らない less の世界 - Qiita
  • Bashでファイルやディレクトリの存在を確認する

    #!/bin/bash file=test.txt dir=testdir # File existence check if [ -e $file ]; then echo "$file found." else echo "$file NOT found." fi # Directory existence check if [ -e $dir ]; then echo "$dir found." else echo "$dir NOT found." fi

    Bashでファイルやディレクトリの存在を確認する
  • duコマンドのサイズをわかりやすく表示してサイズ順にソートする - Qiita

    % du -h 3.8M ./世界のさまざまなバレンタインとその習慣♥♥.key/Data 12K ./世界のさまざまなバレンタインとその習慣♥♥.key/Metadata 4.0M ./世界のさまざまなバレンタインとその習慣♥♥.key 2.7M ./世界のさまざまなバレンタインとその習慣♥♥_pub.key/Data 12K ./世界のさまざまなバレンタインとその習慣♥♥_pub.key/Metadata 3.0M ./世界のさまざまなバレンタインとその習慣♥♥_pub.key 7.0M . しかし、3.8Mや12Kという値では sort コマンドでソートすることができません。 そこで、du をバイト単位で表示し、sort を使ってソートしてからcoreutilsにある numfmt コマンドでわかりやすい単位をつけます。 Linuxなどを使っていてGNU co

    duコマンドのサイズをわかりやすく表示してサイズ順にソートする - Qiita
  • 1