タグ

bashに関するhiro14akiのブックマーク (13)

  • なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記

    会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSREをマルっとPDF化する SpotBugsのViolationレポートをMerge Requestのコメント投稿する ぼくの互換性についての考え方 何で書くか シェルスクリプトをうまく書くには ShellCheckを使う バッドパターンとその修正 line-by-lineの処理が多い lsを使う ls /directory | grep mystring ls | grep -v 'log$' lsの結果をループさせる 良いシェルスクリプトを書くためのTIPS set -euする 文字列は基的にクオートする 局所変数にはlocalを使う 定数は読み取り専用

    なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記
  • One-liners | Basic | Cheat sheet | Linux Command Library

    $ wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com

    One-liners | Basic | Cheat sheet | Linux Command Library
  • cat するたびに内容が変わるファイル?を作った

    こんな感じ。 cat で連続して nowファイルの内容を表示している。ファイルを変更しているわけではないが、 表示するたびに内容が変わる。 # cat now 2018-12-27 00:21:20 # cat now 2018-12-27 00:21:21 # cat now 2018-12-27 00:21:23 Fuse-BindEx どういう仕掛けかというと、今回作成した bindex ファイルシステムを経由して、 上記ファイルにアクセスしているため。この bindex というファイルシステムは、 「実行ファイルが read されたら、そのファイルを execute した際の出力を内容として返す」 という動作をする。上記nowファイルの当の内容はこちら。 #!/bin/bash date "+%F %T" 今回の場合、bindex 経由で cat (read) するたびに、dat

    cat するたびに内容が変わるファイル?を作った
  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

  • Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね

    Bashでスクリプトを書く際によく自分が使っている小技や関数などです。 またBashでは他のプログラミング言語以上に$や:などの記号の使い方が独特でググラビリティが低いので、基文法などもチートシートとしてまとめておきます。 基文法 変数と配列 制御構文 while for-in if - elif - else if文のone-liner 文字列比較 文字列が等しい (=) 文字列が等しくない (!=) 空文字、文字列長が0 (-z) 空文字でない、文字列長が0でない (-n) 数値比較 数値が等しい (-eq) 数値が等しくない (-ne) 数値がより小さい (-lt) 数値がより大きい (-gt) ファイルの判定 存在する (-e) ファイルである (-f) ディレクトリである (-d) シンボリックリンクである (-L) 関数 便利なスニペット 実行スクリプトがあるディレクトリを

    Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね
  • コマンドラインツールのショートオプションをどの用途で使うべきか - Qiita

    はじめに コマンドラインツールが多数作られるプロジェクトがあるとします。 複数人で開発していると、オプションの意味付けが人によってばらばらになってしまう――そんな事象は、おそらくよくあることだと思います。 ので、そのような環境では、なんらか規約を設けるのがよさそうです。 記事では、その規約の作成、またはオプションの意味付けにおいて、参考となるであろう情報を提示します。 特に、ショートオプション(英字1字のみのオプション)にフォーカスします。 ロングオプション(英字複数字から成るオプション)については、意味は自明になることが多いでしょう。 ただし、「ショートオプションをどのロングオプションに対応付けるべきか」という問題は、稿でも扱います。 また、コマンド文法やオプションのフォーマットはOSやプログラムによって異なりますが、ここでは以下を前提とします: ショートオプション ... -a,

    コマンドラインツールのショートオプションをどの用途で使うべきか - Qiita
  • シェルスクリプトの変数を部分的に抜き出す! | 我が社を有名にするブログ

    株式会社エイ・ティ情報研のブログです。石川県で、システムの開発・保守、Oracle Databaseのテクニカルサポートを行っています。 Home こんにちは。LINEの初音ミクのスタンプが欲しくてたまらないフルハ氏です。 シェルスクリプトの小技を備忘録的に紹介します。 シェルスクリプトの中で変数を扱うときは、 ${変数名}という形式で表します。 例えば、変数NAMEに FURUHAshi という文字列を代入すると、 $ NAME=FURUHAshi $ echo ${NAME} FURUHAshi この文字列を部分的に取り出したい場合は、 以下のように指定します。 ・最初の4文字を除いた部分を取り出す場合 $ echo ${NAME:4} HAshi ・最初の4文字を除き、3文字分だけ取り出す場合 $ echo ${NAME:4:3} HAs ・最後の1文字を取り出す場合 $ echo 

  • shとbashでの変数内の文字列置換など - ろば電子が詰まつてゐる

    シェルスクリプトで文字列を置換したい際、sedを使う手法が紹介されることが多い。が、実はsedなどの外部コマンドを使わなくても、以下のように変数展開をすることでシェル内部で文字列置換をすることができる。 ${変数名#パターン} → 前方一致でのマッチ部分削除(最短マッチ) ${変数名##パターン} → 前方一致でのマッチ部分削除(最長マッチ) ${変数名%パターン} → 後方一致でのマッチ部分削除(最短マッチ) ${変数名%%パターン} → 後方一致でのマッチ部分削除(最長マッチ) ${変数名/置換前文字列/置換後文字列} → 文字列置換(最初にマッチしたもののみ) ${変数名//置換前文字列/置換後文字列} → 文字列置換(マッチしたものすべて)この機能は記号で書かれるため非常にググりにくいことと、素のshでできること・bashでしかできないことが混在して書かれた記述も多いため、あまりネ

    shとbashでの変数内の文字列置換など - ろば電子が詰まつてゐる
  • シェル変数展開のまとめ – OpenGroove

    シェルにおける変数展開について。 変数展開{ }(ブレース)の中で各種文学列演算子を使い、変数の存在や値をチェック することができる。-,=,?,+演算子使用時に「:」を付加していれば値がヌルかどうか をチェックする。 省略された場合、値がヌルかどうかのチェックはせず、評価する変数が定義されて いるかどうかのみチェックする。 ${var:-str} シェル変数が未設定か値がヌルの場合、指定した値を返す。 この時変数varに値は代入されない。 $ echo ${animal} ←変数が未設定 $ echo ${animal:-cat} cat $ echo $animal ←変数は設定されていない ${var:=str} シェル変数が未設定か値がヌルの場合に指定した値を返し、さらに変数varに値が代入される。 $ echo $animal ←変数が未設定 $ echo ${animal:=d

  • インフラエンジニアとしてよく使うコマンド集 - Qiita

    私がよく使うコマンド集となります。 参考に頂けたら幸いです。 随時更新するかと思います。 コマンドを打つ前に覚えておく事 ①サーバに負荷がかかるコマンドを打つ場合、下記をコマンドの先頭に付けましょう $ ionice -c 2 -n 7 nice -n 19 # -c 2:ディスクI/Oの実行優先度をベストエフォートで実行 # -n 7:さらにこのコマンドの優先度を低くする # -n 19:プロセスの実行優先度を一番低くする

    インフラエンジニアとしてよく使うコマンド集 - Qiita
  • 緊急コラム: bash 脆弱性( CVE-2014-6271 )の影響範囲の調査方法について | NTTデータ先端技術株式会社

    Tweet 先週公開された bash の脆弱性について、管理されているサーバーへの影響を気にされている方が多いと思います。そこで緊急コラムとして、影響範囲の調査方法について紹介します。 bash は非常に多くの場面で使用されているプログラムであるため、 bash を呼び出す可能性のあるプログラムや場面をソースコード解析により列挙することは困難です。また、設定ファイルでの指定内容などにも依存する可能性もあり、文章でのお問合せにより漏れの無い的確な判断ができるかどうか不安が残ります。 Red Hat Enterprise Linux ( RHEL )には SELinux というセキュリティを強化するための機能が搭載されています。しかし、脆弱性の問題に限らず、システムのトラブル予防と適切な対処を行う上では、対象となるシステムの設定や挙動を事前に把握しておくことが重要であると考えます。 今回の脆弱

    緊急コラム: bash 脆弱性( CVE-2014-6271 )の影響範囲の調査方法について | NTTデータ先端技術株式会社
  • bash の脆弱性 "Shell Shock" のめっちゃ細かい話 (CVE-2014-6271) - もろず blog

    ※(2014/10/1 追記) 脆弱性の番号を誤って CVE-2014-6721 と表記してしまっていました 正しくは "CVE-2014-6271" です 失礼致しました ※(2014/10/7 追記) 2014/10/7 14:00時点で Shell Shock への修正パッチは6個 公開されています 既に対応済みのシステムでもパッチの漏れがないか注意してください シェルに脆弱性が見つかったらしいです このコマンドを実行すると脆弱性があるバージョンかのチェックができるようです $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 以下のように表示されたらアウトです vulnerable this is a test どうやら、このコマンドが正常に実行できるというのがこの脆弱性の正体らしく、 echo vuln

    bash の脆弱性 "Shell Shock" のめっちゃ細かい話 (CVE-2014-6271) - もろず blog
  • Linuxアプライアンス類もBash脆弱性対策を - .@sknn's tumblr.

    [NEW] 2014/09/30: アプライアンスの対応状況まとめを随時更新中 CVE-2014-6271及びCVE-2014-7169ねた(Bash脆弱性)。 世間では、外部公開サーバー(特にWebサーバー)への対処が着々と進められています。Webサーバーだけでなく、メールサーバーへの攻撃パターンも早期に見付かっています。外部公開サーバーに対する総合的な点検が近いうちに進んでいくものと思われます。 bash Shellshock through MAIL .forward / qmail-alias piping (ML program etc.) CVE-2014-6271 http://t.co/QPbSE8dppM http://t.co/AFuHudkCdh September 26, 2014しかし、一般的なサーバー類だけでなく主にファイアウォールの内部に設置されているアプライ

    Linuxアプライアンス類もBash脆弱性対策を - .@sknn's tumblr.
  • 1