OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料博文 斉藤
LinuxやUnixを使っていく上で、どんなに経験が浅くても一度は利用するgrepコマンド。 今回は、このgrepコマンドで覚えておきたい使い方について紹介する。 なお、ここで扱うgrepコマンドはLinuxのものをベースに記述している。商用UNIXやBSD等の場合、オプションなどが異なる事があるので注意。 1.基本の使い方 まずは基本的な使い方から。 テキストファイルから特定の文字列を含む行のみ出力する。 grep 検索したい文字列 検索したいテキストファイル ワイルドカードを用いる事で、複数のファイルを指定してgrepを行う事も出来る。 コマンドの出力結果から検索する場合は、「|(パイプ)」を利用する。 コマンド | grep 検索したい文字列 2.複数の条件でor検索する 複数の条件で検索を行う場合、eオプションを付与する。 grep -e 検索したい文字列1 -e 検索したい文字列
grep -o これです。おじさんになっても恥ずかしがらずにこういうのを書いていくのが重要かなと思うようになりました。 おじさん、grep -oを知りました— IT業界のマー君 (@sugamasao) 2014, 12月 26 -oを使うと、その引数にマッチした文字列のみ出力できます。 例えば、こんなアクセスログがあったとして…… xxx.xxx.xxx.xxx - - [26/Dec/2014:18:59:12 +0000] "HEAD /login.do HTTP/1.0" 404 0 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)" xxx.xxx.xxx.xxx - - [26/Dec/2014:18:59:15 +0000] "HEAD /login.action HTTP/1.0" 40
LinuxやMacなどで一時ファイル作成が不要になる「プロセス置換」の使い方について紹介します。 1.はじめに 2つのファイルを比較するときには、通常diffを利用します。 % diff foo.txt bar.txt ですが、一方または両方のファイルを加工してから比較したい場合、次のようなことを行うことがあります。 % grep -v hoge foo.txt > foo2.txt % grep -v hoge bar.txt > bar2.txt % diff foo2.txt bar2.txt 具体的な例として、5月9日と5月10日のウェブサイトへのページ別アクセス数のログ(CSVファイル)があるとします(Google AnalyticsからダウンロードしたCSVとか)。 % cat 0509.log aaa.html,300 bbb.html,20 ccc.html,156 ddd
何の話かというと RHEL7/CentOS7では最小構成でインストールすると、ifconfig、route、netstat、arpなどのネットワーク関連のコマンドが使えません。これは、次のコマンドで「net-tools」パッケージを導入すると解決します。 # yum -y install net-tools しかしながら! RHEL7/CentOS7では、net-toolsを「deprecated(廃止予定)」としており、今後は、iproute2パッケージに含まれる「ip」「ss」などのコマンドを使用することが推奨されています。 ・お客さんのRHEL7サーバーのメンテを頼まれたらnet-toolsが入ってなかった! ・「えー。まだifconfigつかってんのー。」と若い同僚に冷たい目で見られた! ・などなど といった事態に備えて、RHEL7/CentOS7を導入した際には、iproute2
SSHごしに、マルチ画面でtailやコマンドの実行を行えるツール『multitail』というものがあると知ったので試してみることにした。 マルチ画面でtailをかけられるということは、監視などでいくつもTeratermのウィンドウを開かなくてもいいということか…ちょっと便利そう。 1.インストール まずはインストールから。 以下のコマンドを実行しインストールを行う。 Debian/Ubuntu sudo apt-get install multitail RHEL系Linux yum install multitail ※RHEL系の場合、RPMforgeを有効にする必要がある。 2.コマンド実行 実際にコマンドを実行してみる。 以下のコマンドを実行し「/var/log/syslog」「/var/log/apt/history.log」「/var/log/auth.log」を同時にtail
条件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
引数ありで、それを引用符で囲っている場合のみ影響を受けることが確認できた。 なお、 system LIST system PROGRAM LIST (略) スカラの引数が一つだけの場合、引数はシェルのメタ文字をチェックされ、もし あればパースのために引数全体がシステムコマンドシェル (これは Unix プラットフォームでは /bin/sh -c ですが、他のプラットフォームでは 異なります)に渡されます。 シェルのメタ文字がなかった場合、引数は単語に分解されて直接 execvp に 渡されます; この方がより効率的です。 [Perlの組み込み関数 system の翻訳より引用] によると、引用符があるかどうかではなく、メタ文字があるかどうかが生死を分けるポイントとのこと。 使用したコード sstest-sh.cgi #!/bin/sh echo "Content-type: text/pl
2014/09/26 コース:元祖こってり 「元祖こってり」記事はネットエージェント旧ブログ[netagent-blog.jp]に掲載されていた記事であり、現在ネットエージェントに在籍していないライターの記事も含みます。 bashにおける脆弱性「Shellshock」について LinuxやMac OS XなどのUNIX系OSで広く使用されているbashに見つかった脆弱性(Shellshockと呼ばれています)が先日から話題になっています。 弊社でもこのbashの脆弱性について調査を行いました。 ■概要 環境変数に特定の文字列を設定するだけでその環境変数内の文字列をシェルが関数として実行してしまいます。 シェルを通じてコマンド等を実行する幅広い環境で影響がありますが、特に顕著に影響を受けるのはCGI等のWebアプリケーション環境です。 CGIをはじめとするWebアプリケーションではWebブラ
2014-09-27: 該当サイト上にXSSがなくても攻撃可能であることが id:mayuki さんのコメントで判明しましたので全面的に書き直しました。ファイアウォール内であっても攻撃者はファイアウォール内のShellshock攻撃が通用するCGIのURLがわかっているだけで攻撃可能ですので早急に対応が必要です!会社のブログにも書いてますが、ファイアウォール内に置いてあるサーバで攻撃者が直接アクセスできないからといってbashの更新を怠っていると、条件によっては攻撃が可能となります。 条件としては、 そのサーバにはシェルを経由して外部コマンドを起動するCGI等が動いている(通常のShellshockの攻撃と同条件) 攻撃者がそのURLを事前に知っている(あるいは推測可能) となります。 攻撃者は、ユーザーを罠URLへ誘導し、以下のようなJavaScriptを罠ページ上で動かし、攻撃対象のW
bashに脆弱性が確認されたとして騒ぎになっています。ここではCVE-2014-6271に関する情報をまとめます。 #記載内容について、誤っている、追記した方がいい等情報がございましたら@piyokangoまでご連絡お願いします。 脆弱性情報 脆弱性の愛称 ShellShock Bashbug CVE番号 Bash周りで発行されているCVEは6つ。その内詳細が不明なのが2つ。(CVE-2014-6277,CVE-2014-6278) CVE 発見者 想定脅威 特記 CVE-2014-6271 Stephane Chazelas氏 任意のコード実行 ShellShockの発端となったバグ。 CVE-2014-7169 Tavis Ormandy氏 任意のコード実行 CVE-2014-6271修正漏れによる脆弱性 CVE-2014-7186 Redhat DoS メモリ破壊(Out-of-Bo
YAPC::Asia Tokyo 2014 前夜祭 - YAPC::Asia Tokyo 2014 「欲しいものは作ればいい! 〜Webアプリ10連発〜」ということで@koba04さんに声をかけていただき、最近つくっていたttyrecからアニメーションGIFを生成するツールやそのWeb版を作っているところの紹介をさせていただきました。 ttyrecからGIFアニメを作る話 from Yoshihiro Sugi Web版の話に入るまではこのブログに書いてきた通りのことを紹介しただけだけど、「こういうのが欲しくて」「こういうのが作りたくて」というモチベーションに絡めて「やってみた」の結果を実演デモを挟んでみせたりしてみました。 いちおうWebアプリの話が題材なので、そこから新たに作っていたWeb版(JavaScriptだけでttyrecからGIFアニメを生成するツール)の紹介をしました。まだ
いつまで経っても終わらないから帰れない… 途中で終了してしまうと困るので、ログアウトしても終了しないように。 作業の流れ Ctrl+Zでコマンドの中断 bgでバックグラウンドに回す jobsでジョブの確認 disownでログアウトしても実行されるようにする 実際のコマンドだと
Index データ集計コマンド 爆速で検索したいぜ! lookを使う LC_ALL=Cを設定する データのランダムサンプリングがしたいぜ! sedを使う awkを使う sortの--random-sortを使う Script言語を使う shufを使う ランダムサンプリング速度比較 合計と平均値を集計したいぜ! 列データ取得 重複行のカウント 合計値出力 平均値出力 複数ファイルのデータ結合がしたいぜ! 共通項目での結合 同じ行数での結合 まとめ データ集計コマンド joinコマンドが便利過ぎて生きるのが辛い - Yuta.Kikuchiの日記 lookコマンドによる二分探索が速すぎて見えない - Yuta.Kikuchiの日記 今日はデータ集計を行う上で絶対に覚えておいた方が良いコマンドと知識を紹介したいと思います。これを身につければシステム処理と業務効率化に大きく繋がると思います。この記
xargs の -P オプションを使うとプロセスを複数起動して処理を並列に行なうことが出来る。 例 例えば、 1 万枚の JPEG 画像を全て 800x800 に収まるように効率良くリサイズしたい。 まず私はこのようなコマンドを考えた。 convert --geometry 800x800 *.jpg しかし zsh に怒られた。 zsh: argument list too long: convert 引数が全て展開されるためこのような事が起きる。 私は xargs を使って処理することを思い付いた。 ls | xargs -I{} convert --geometry 800x800 {} c_{} 処理は行なわれるが非常に遅い。 しかも CPU を全く使っていないことが分かり、私は処理を並列的に行なう事を考えた。 そこで xargs の -P オプションの出番である。 P の後に並列
最近の tar には a (--auto-compress) オプションなるものが追加されたために人類の生産性がおよそ1%程度(当社比)向上する - Cry’s Diary http://d.hatena.ne.jp/Cryolite/20120329#p2 知らんかった…$ tar acf hoge.tar.bz2 foo bar $ tar acf hoge.tar.gz foo bar $ tar acf hoge.tar.xz foo bar$ file hoge.tar.* hoge.tar.bz2: bzip2 compressed data, block size = 900k hoge.tar.gz: gzip compressed data, from Unix, last modified: Wed Dec 5 00:02:07 2012 hoge.tar.xz: XZ
Linuxシステムプログラミング 作者: Robert Love,ロバートラブ,千住治郎出版社/メーカー: オライリージャパン発売日: 2008/04/16メディア: 大型本購入: 5人 クリック: 181回この商品を含むブログ (29件) を見る 結合 Unix/Linuxの標準コマンドで2つのファイルの共通keyで連結することができます。共通keyでの結合にはjoinコマンドを利用します。joinによりSQLのinner joinに近いことがコマンドだけで出来てしまいます。今までテキスト処理をコマンドで行う事が少なかったのでjoinの活用方法を知りませんでしたが、今回調べた内容を記録します。似たコマンドとしてpasteというものもあり、こちらは同じ行数の内容を単純に結合します。そちらについても簡単に紹介します。 join join前にsort joinコマンドを利用する場合は2つのファ
zsh には、zargsコマンド(組み込み関数) というのが用意されている。 これは、拡張グロブ用の xargs コマンドと言っても良いだろう。 マニュアルを見ると、xargs コマンドとオプションは、完全に互換しているらしい。 autoload zargs とする事で利用可能だ。 使い方だが、xargs というと、標準入力から読み込んだ要素、行に対して 特定のコマンドを実行するというものだが zargs の場合は、引数に指定した 拡張グロブ に対してこれらの処理を行う。 % zargs OPTIONS -- 拡張グロブ -- 実行したいコマンド たとえば、xargs で一番利用されると思われる ファイル数が ARG_MAX を越えてしまっているディレクトリ内のファイルを まとめて削除したい場合などは、次のようなコマンドを入力すれば良い。 % zargs -- ./* -- rm これだけ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く