タグ

bashに関するtsekineのブックマーク (20)

  • Bashの邪悪なコマンド9選 - Qiita

    rm -rf /やったことある人。 私はないです。 以下はAndreas Müller( Twitter / GitHub / LinkedIn / Medium )による記事、9 Evil Bash Commands Explainedの日語訳です。 9 Evil Bash Commands Explained 初めてターミナルを使って、そしてそれを理解したときのことを覚えています。 あらゆるファイルにアクセスし、全てのプログラムを実行し、黒い画面に何かを入力するだけでシステムの全てを完全に掌握できることに気がついた、あの感覚。 そしてもちろん、致命的ミスを犯して全てを失った、あのときの恐怖も。 私は当はシステム管理者ではありませんが、長年にわたってLinux/UNIXベースのシステムで作業してきたので、コマンドを実行しようとしてEnterキーを打つことを躊躇う状況に何度も遭遇しまし

    Bashの邪悪なコマンド9選 - Qiita
    tsekine
    tsekine 2020/01/09
    Bashほぼ関係ない。ちょっとだけ期待してしまった俺の時間を返せ。
  • 「1から100の偶数の和を求めるワンライナー」まとめ - Qiita

    2019年8月11日頃にTwitterで「1から100の偶数の和を求める方法」(ワンライナー)が話題になったので 各言語ごとにまとめてみました。 私の独断と偏見ですが 「2550を直接出力するもの」「公式を使って総和を計算するもの」は 除外しています。 あくまでそれぞれのプログラミング言語の特色が現れるものをまとめたいと考えています。 以前あったズンドコきよしのまとめみたいなノリです。 https://qiita.com/shunsugai@github/items/971a15461de29563bf90 編集リクエスト歓迎です。 新しいワンライナーはコメント欄ではなく編集リクエストにて追加していただけると助かります! --- 8/15 11:30 コメント欄を取り込み&新たにツイートを拾いました。 --- 発端のツイート まにゃです。 いきなり問題! ここまでのツイートを手がかりに P

    「1から100の偶数の和を求めるワンライナー」まとめ - Qiita
    tsekine
    tsekine 2019/08/15
    bash -c 'declare -i i s; for ((;i<=100;i+=2)); do ((s+=i)); done; echo $s'
  • シェルスクリプトの代わりにPythonを使う - オープンソースこねこね

    これまで、開発や運用時に使う、ちょっとしたコマンドラインツール、自動化スクリプトは、主にBashのシェルスクリプトで実装していたのですが、最近このような用途にはPythonを使うようにしています。 Bashスクリプトへの不満 スクリプトの実装方針 ポータビリティ重視のための縛りPythonプログラミング Tips __future__モジュールでバージョン2、3両方に対応させる バージョン2、3で異なるモジュールを、同じ名前で読み込む バージョン2、3を判別する関数を用意する よく使うスニペット 文字に色をつける 赤い文字でエラーメッセージを出力して終了する 外部コマンド実行する テキストをファイルに出力する ファイルに実行権限をつける スクリプトの同時、多重起動防止する コマンドライン・オプションの解析 HTTPリクエスト まとめ Bashスクリプトへの不満 Bashのスクリプト実装にお

    シェルスクリプトの代わりにPythonを使う - オープンソースこねこね
    tsekine
    tsekine 2018/01/20
    "連想配列がないので" あるよ。連想配列が必要になった時点で他のLLを薦めてるけどね。
  • いろいろな言語での Map, Dictionary 的なものの名前 - Qiita

    いろいろな言語で、キーと値とを対応づけるデータ構造、いわゆる連想配列、辞書、……たちがどのように呼ばれているか、気になったので調べてみた。 おおよそ、対応表(map)、辞書(dictionary)、実装の名前をそのまま(hash-table)、 Perl風(hash)に分けられると思う。 Common Lisp: hash-table Scheme: hash-table (SRFI-69, SRFI-125 → R7RS-large), hashtable (R6RS Scheme, SRFI-126), map (SRFI-44), mapping (SRFI-146) Haskell: Map OCaml: Hashtbl, Map SML: hash_table (sml-nj-lib) C++: map, multimap, unordered_map, unordered_mu

    いろいろな言語での Map, Dictionary 的なものの名前 - Qiita
    tsekine
    tsekine 2017/10/10
    PHPがディスられてるので言っておくと、bashはそもそも言語上の型名がないので "declare -A" だぞ。PHPの方がまし。
  • bashのそれって実はこういう書き方できるよ一覧 - Qiita

    bashで普段こう書いているけど、実はこういう書き方もあるんですよというのをまとめてみました。 ->の右側がmanに載ってるテク名です。 例えばどういったものが書けるかはガチャガチャした前回の記事で…。 `command` -> Command Substitution 書く量は増えるけど、視認性が良い(ネストした時が特に)。 尚、これは書き方が違うだけでどっちもCommand Substitutionです。

    bashのそれって実はこういう書き方できるよ一覧 - Qiita
    tsekine
    tsekine 2017/03/16
    $() と `` だと、コマンド実行後に単語分割などのパース処理が入る・入らないの違いがあるので、単に置き換えたらダメ。bashじゃなくてPOSIXなシェルの話もある。
  • テキストファイルの中に書いたinclude文をsedで解決する - Qiita

    複数のファイルに共通する部分があるとき、共通箇所をまとめて切り出しておいて、各ファイルからはそれらを参照するだけにする、というのはよくある話です。C言語なら#include <stdio.h>という書き方をしますし、Web制作をやる人なら、CSSの@import規則をご存じだと思います。 しかしたまに、これに似たことを静的なファイルで行って「include文の位置に参照先のファイルがそのまま埋め込まれたファイル」を作りたいという場面が出てきます。 この記事では、そんな「静的なファイルを生成するために、ソースとなるテキストファイルに書かれたinclude文をシェルスクリプトで処理して、参照先ファイルの内容をその位置に埋め込んだ結果のファイルを得たい」というニーズに対する、なるべく効率のよい実現方法を模索してみます。 やりたいこと 以前、さくらのレンタルサーバーの一番安いプランでWebサイトを

    テキストファイルの中に書いたinclude文をsedで解決する - Qiita
    tsekine
    tsekine 2017/03/03
    cpp は文字通り C 用なので、マクロ使いたかったら m4 でしょ。
  • シェルとファイルデスクリプタのお話 - Qiita

    Shell Script Advent Calendar 2016が始まりました。1日目は私です。好きなシェルはBashです。 はじめに ファイルデスクリプタを知ることで、よりスマートにシェルを記述でき、シェル芸の幅も広がります。この記事はシェルとファイルデスクリプタの理解を深めることを目的としており、対象は次のような人です。 パイプ・リダイレクトをうまく使えない人 2>&1 の置き場所にいつも迷う人、そもそも2>&1が何って人? シェルの作業で中間ファイルを作成している人 ファイルデスクリプタとは ファイルデスクリプタ (FD) とは、プロセスが入出力するファイルやデバイスを扱うためのインターフェイスです。これはUNIX系OSのデバイスとファイルは透過的に扱えることと関係し、任意のファイルもデバイスも同じAPIで操作できます。 FDは扱うデバイス・ファイルごとに番号が振られ、プログラムは

    シェルとファイルデスクリプタのお話 - Qiita
    tsekine
    tsekine 2016/12/01
    タイトル不正確。POSIX シェルにない機能(プロセス置換)が説明されてる。
  • Bashタブ補完自作入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

    ドーモ、SREチームの湯谷(@yutannihilation)です。最近気になるモジュラーシンセはIntellijelです。 上司がいい感じのコマンドをつくるという記事を書いていましたが、いい感じのコマンドにはいい感じのタブ補完を付けたくなります。この記事ではBashのタブ補完を自作する方法を紹介します。 タブ補完の仕組み Bashのタブ補完自体はBashに組み込まれている仕組みです(参考:Bash Reference Manual - 8.6 Programmable Completion)。completeというBashの組み込み関数によって補完方法(compspec(completion specification)と言うらしいです)が規定されていて、これがタブなどによって起動されます。 タブ補完は、lsならファイル名、cdならディレクトリ名、というようにコマンドに応じたものが設定さ

    Bashタブ補完自作入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
    tsekine
    tsekine 2016/09/27
    よく書けてて素晴らしい記事です (超上から目線で
  • 最近覚えたシェルスクリプトの小ネタ - カメニッキ

    シェルスクリプト神から教えていただいた。忘れないように書いとく (追記)聞いて、自分の記憶した内容をそのまま書いちゃったので、ちゃんとマニュアル通りか確認してなかったので反省 $ man bash 目次 xargsでfunctionを叩く 連想配列もどき 変数間接参照 なんでもかんでもawkで整形しない 文字列の末尾から数えて○文字目を△文字取り出す 番外編:やたら if [ ]; then を使わない ※Markdownで目次の書き方がわからんかった xargsでfunctionを叩く 下の例だと find xxxx | xargs cp xxxx ってかけば良さそうでイマイチだけど、もっと複雑な処理やらせたいときに。 前はこう書いてた #!/bin/bash for x in `find /var/www -name xxx` do cmd="cp -v /hoge/fuga/xxx

    最近覚えたシェルスクリプトの小ネタ - カメニッキ
    tsekine
    tsekine 2016/06/29
    test (or [) は bash builtin で外部コマンドではないから、多分 fork しないと思う
  • シェルスクリプトでバックアップのすすめ~初心者でもよくわかる!VPSによるWebサーバー運用講座(5) | さくらのナレッジ

    VPSによるWebサーバー運用講座の連載5回目(最終回)です。 今回は、シェルスクリプトによるWebコンテンツのバックアップの方法や、OSのセキュリティアップデートについて解説します。 サーバーOSはCentOS 6.7として説明しています。 Webコンテンツの定期バックアップをしよう VPS上にWordPressなどのCMS(コンテンツマネジメントシステム)をインストールしてWebサイトを運用しているケースは多いと思います。 こういったツールは、ファイル転送ソフトを使わなくてもブラウザだけで記事を書いたり編集したりできて便利です。しかし、作った記事コンテンツはサーバー上にしか存在せずパソコン上には残りません。何らかのアクシデントでデータベースのデータが消えてしまうと、バックアップがどこにもないので泣き寝入りするしかありません。 便利さの反面そういった落とし穴があるので、日頃からデータのバ

    シェルスクリプトでバックアップのすすめ~初心者でもよくわかる!VPSによるWebサーバー運用講座(5) | さくらのナレッジ
    tsekine
    tsekine 2016/04/08
    /bin/bash 使ってるのに、21世紀にもなって `...` とか謎な eval とか見ると萎える。日付、15年ぐらい間違ってない?
  • 検索ではあんまり出ないbashの便利技 - Qiita

    bashでは記号類をたくさん使うので、この書き方は何?と思っても検索でなかなか出てこないことがあると思う。 そこで知っていると便利なコマンドを残しておく。 随時追記予定。 確認に使用したbashのバージョンは以下のとおり。

    検索ではあんまり出ないbashの便利技 - Qiita
    tsekine
    tsekine 2015/09/21
    特に驚くようなことは書いてない
  • プロセスの多重起動をアドバイザリロックで防止する・改 - Qiita

    以前シェルスクリプトの多重起動をアドバイザリロックで防止する案を書きましたが・・・ ShellScript - プロセスの多重起動をアドバイザリロックで防止する - Qiita [キータ] この方法だとロックファイルが残りっぱなしになるので気持ち悪いです。。。 シェルスクリプト自身をロックすればいいかな? と思ったのですが・・・ Bash - flock(1)でシェルスクリプトの排他制御(Linux) - Qiita [キータ] 追記で開かれた状態で実行しようとすると bad interpreter: Text file busy となり、排他制御の目的は達せられてもやっぱり気持ち悪いです。 bash hoge.sh などと呼べば回避できましたが、それはそれでやっぱり気持ち悪いです。./hoge.sh と書きたいです。 そこで、シェルスクリプト自身を読み込みで開いて排他ロックするようにして

    プロセスの多重起動をアドバイザリロックで防止する・改 - Qiita
    tsekine
    tsekine 2015/07/26
    これはスッキリ。
  • bashで覚えておきたいショートカットキー(キーバインド) | 俺的備忘録 〜なんかいろいろ〜

    Linuxでデフォルトのログインシェルといえばbash。sshで接続するにしても、bashは必ず使うものだ。 今回は、そんなbashで利用できるショートカットキー(キーバインド)で覚えておくと便利なものをピックアップしてみた。 1.カーソル移動系 カーソルを移動する際に便利なショートカットキー。 こうしてみると、意外と知らなかったショートカットキーがあったりする。 コマンド 機能

    tsekine
    tsekine 2015/07/23
    Bash 関係ないのも混じってる。それにemacs モード限定なので、それならいっそemacs覚えちゃいなよとなる。
  • bashのTips色々 - Qiita

    概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =

    bashのTips色々 - Qiita
    tsekine
    tsekine 2015/04/15
    ハマりポイントがいくつかあるので、自分で調べましょう
  • cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー

    cdの引数が相対パスのままコマンドヒストリに残って便利な例が思いつかないので、絶対パスでコマンドヒストリに残すようにする。 具体的には、以下のシェル関数を.bashrcに書く。 if [[ -n "$PS1" ]]; then cd() { command cd "$@" local s=$? if [[ ($s -eq 0) && (${#FUNCNAME[*]} -eq 1) ]]; then history -s cd $(printf "%q" "$PWD") fi return $s } fi いくつかの重要なポイントを以下に記す。 cdの定義を上書きしているが、このような場合中で普通にcdを呼ぶと再帰してしまうためcommand組み込みコマンドを使う。 "$@"の代わりに"$1"を使うことはできない。cdを引数なしで呼んだときホームディレクトリに移動しなくなってしまう。 cdの

    cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー
    tsekine
    tsekine 2014/12/11
    これはいい hack。強いて言えば、cd が失敗した場合に $? を保存しておき、ちゃんとそれを返すと完璧。
  • 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
    tsekine
    tsekine 2014/09/30
    んー、全然細かくないと思ってしまった。自分は「細かい」に何を期待していたんだろうか。
  • bashによるシェルスクリプトの小技(2) - shibainu55日記

    前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはできない)。 さて、まずは特殊変数を一覧でまとめてみる。お馴染みのものが多いが、最後の2つ(特に最後のPIPESTATUS)についてはきっと今まで知らなかった人もいるんじゃないだろうか。シェルの中でパイプすると途中のコマンドのリターンコード、拾えないとか思っていませんか?今回のポイントとしては、「1. PIPESTATUS変数について」と「2. 特殊変数 $@と$*の違いについて」の2点を主に説明する。 特殊変数一覧表 変数名 自動的に設定される値 $? 直前に実行されたコマンドの終了ステータスが設定される変数。正常終了の場合は「0」、異常終了の場

    bashによるシェルスクリプトの小技(2) - shibainu55日記
    tsekine
    tsekine 2013/03/28
    $* の解説が正確ではない
  • Re: sourceで読み込んだらいい感じにPATHに追加するbashrc - (ひ)メモ

    sourceで読み込んだらいい感じにPATHに追加するbashrc - As a Futurist...

    Re: sourceで読み込んだらいい感じにPATHに追加するbashrc - (ひ)メモ
    tsekine
    tsekine 2012/08/30
    local 変数は local 付けよう。特に source で読み込むのなら global な環境を汚しちゃだめ。
  • 初めてのオレオレbash補完 - As a Futurist...

    さて、ひとつ前のエントリは釣りだったわけですが、題の bash 補完を初めてやってみました。ちょっとした物だったら割と簡単に書けたので、共有。 目標 自作コマンド(仮にsugyanとします)はこんな感じの I/F だとします。 sugyan subcommand [args] いくつかの subcommand は次にくる引数が限られる 例えばsugyan momocloの後にはkanako renichan shiorin ahrin momoka sugyan listでそういう補完の一覧が色々出せる sugyan list commandで subcommand の一覧 sugyan list momocloでももクロ一覧 一応sugyan listでcommand momocloが返る あとはいつもの bash のままにファイルとかを補完して欲しい 実際叩くと、 $ sugyan

    初めてのオレオレbash補完 - As a Futurist...
    tsekine
    tsekine 2012/08/28
    compgen -W の解説が不正確、数値変数の取扱いが一貫してない
  • 中規模データ処理で学んだ tips - フリーフォーム フリークアウト

    移転しました http://please-sleep.cou929.nu/20101230.html

    中規模データ処理で学んだ tips - フリーフォーム フリークアウト
    tsekine
    tsekine 2010/12/31
    for i in `seq -w 1 10`; do echo ${i}; done の前に declare -i i と付けると動かなくなる。bash 怖い。
  • 1