Installing software by piping from curl to bash is obviously a bad idea and a knowledgable user will most likely check the content first. So wouldn't it be great if a malicious payload would only render when piped to bash? A few people have tried this before by checking for the curl user agent which is by no means fail safe - the user may simply curl the url on the commandline revealing your malic
fossBytesに8月9日(米国時間)に掲載された記事「Top 5 Highest Paying Programming Languages of 2016」が、Packtが1万1000人以上のITプロフェッショナルを対象にした調査をベースとした、給与支払いの高いプログラミング言語ランキング2016年版を紹介した。 紹介されている給料の高いプログラミング言語は次のとおり。 Bash 10万米ドル(約1010万円) Perl 9万5000米ドル(約960万円) Scala 9万米ドル(約910万円) SQL 6万2000米ドル(約630万円) Delphi 6万米ドル(約610万円) 同記事では、ほかにも人気の高いプログラミング言語や人気の高いWeb開発フレームワーク、開発者コミュニティが興味を持っているアイデアのランキングも掲載されている。それぞれ掲載されているランキングのトップ5は次の
@hirose31 さんが「シェルスクリプトでハマった件→【募】ステキな回避方法」でお題を出されていて、それに回答してみました。 その内容はリンク先を見てもらうとして、回答の中で使ったbashのプロセス置換について書かれた記事をあまり見ないので、回答で使ったプロセス置換のことをエントリにしてみたいと思います。 最初に注意点ですが、プロセス置換の機能は、bashやzsh*1の機能でPOSIX互換の機能ではありません。そのため、使用時には、対応していないシェルでは使えませんし、bashで使う場合も /bin/sh ではなく /bin/bash を明示的に指定する必要があります。たとえば、プロセス置換を使ったスクリプト「script.sh」に対して"$ bash script.sh" というコマンドは成功しますが、"$ sh script.sh" というコマンドは失敗します。この辺りの違いは「/
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の
条件1. /bin/shの実体がbashのディストリビューション RHEL CentOS Scientific Linux Fedora Amazon Linux openSUSE Arch Linux (自ら設定した場合: Debian, Ubuntu) 条件2. 動作環境 CGI (レンタルサーバでありがちなCGIモードのPHP等も含む) Passenger(Ruby) 条件3. プログラム内容 Passengerは全死亡 *1 systemや `command`、 '| /usr/lib/sendmail' などで外部コマンド実行 *2 PHPのmailやmb_send_mail、その他フレームワーク等を介したメール送信 *3 以下は条件1が不要 明示的にbashを呼ぶ 先頭で #!/bin/bash や #!/usr/bin/env bash しているプログラムを実行 (rbenv
Ruby1.9がいよいよ安定してきたようで、そろそろ試さなくてはと思っています。でも、なんというか必要に迫られないのでなかなか全面的な導入に踏みきれません。 というわけで、Rubyを1.9にするよう促すプロンプト設定を考えました。Rubyのバージョンがまだ1.8の場合、端末の右上に「アナログ」と表示されます。どうぞご利用ください。 .bashrcの最後に以下の内容を書くと設定できます。 ruby -v | egrep '^ruby 1\.9' >/dev/null if [ $? -ne 0 ]; then PS1="\033[s\033[1;72H\033[37mアナログ\033[39m\033[u$PS1" fi ※Ruby1.9は旧バージョンと互換性のない機能が一部あります。導入には充分注意してください。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く