タグ

shellに関するHHRのブックマーク (117)

  • シェル・スクリプト・リファレンス INDEX:ITpro

    新法で「アプリストアを競争状態に」の現実味、公取委はAppleGoogleと長期戦も 2024.05.16

    シェル・スクリプト・リファレンス INDEX:ITpro
    HHR
    HHR 2013/05/27
    「条件式判別」がいい感じ
  • unoh.github.com by unoh

    尾藤正人(a.k.a BTO)です UNIXを使う時にはシェルスクリプトをよく使います。 ちょっとしたコマンドを実行するには、シェルスクリプトは非常に便利です。 今回はシェルスクリプトを書くときに覚えておいた方が便利なTipsを紹介します。 非互換性 ここで紹介するものは基的にbashで動作するものになります。 伝統的なBourne Shellでは動作しないことが多くあると思います。 しかしながら最近はbashがメインで使われることが多いので、"だいだいの環境で動くからおk"ぐらいのノリで使ってもらえればと思います。 $(...) コマンドを"$(", ")"で囲むと実行結果をコマンドラインに代入してくれます。 一見これは"`"(バッククオート)と同じに見えますが、"$()"にはネストができるという利点があります。 例えばシェルスクリプト自身の絶対パスを取得するのは次のようにできます。

    HHR
    HHR 2013/05/16
    bash $(...) バッククオート find ... | xargs command read
  • lsコマンドのカラー出力で256色拡張の色を使用する跡地 - 試験運用中なLinux備忘録・旧記事

    (2021/11/9)記事は「lsコマンドの表示色(カラー表示)の設定方法」へ移動した。

    HHR
    HHR 2013/05/13
    ls、カラーリング、256色
  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。

    HHR
    HHR 2013/03/24
    xargs mv -t
  • iptablesを設定して日本のIPだけを許可する | DevelopersIO

    shellを作ってみる Webサーバを立ち上げる機会が増えてきたので、事前にできる限りの対策はやっておこうと思い、国単位でのアクセス制御をやってみたので自分用のメモとして残します。 世界の国別IPv4アドレス割り当てリストが公開されていますのでその情報を活用させてもらうことにします。 動作させた環境はAWS Amazon Linuxです。 ※あくまでも以下はサンプルのシェルなので、適用する場合は自己責任でお願いします。自身すら入れなくなる可能性もあるのでご注意を。 #!/bin/sh IPLIST=cidr.txt # 初期化をする iptables -F # Flush iptables -X # Reset #iptables -P INPUT DROP # 受信はすべて破棄 iptables -P OUTPUT ACCEPT # 送信はすべて許可 iptables -P FORWAR

  • phpのワンライナーでunixtimeの日時変換

    unixtime、UNIX時間、UNIX時刻とは1970年1月1日(0時0分0秒)からの経過秒数でUNIX等のOS上で日時をあらわすのに用いられる。 ■現在のunixtimeを求める $ php -r "echo time();" 1334732153 ■unixtimeから日時を求める $ php -r "echo date('Y/m/d H:i:s', '1334732153');" 2012/04/18 15:55:53 ■指定日時からunixtimeを求める $ php -r "echo strtotime( '2012/04/18 15:55:53' );" 1334732153

    HHR
    HHR 2013/02/14
  • 地雷だらけのrsyncを理解する。 - こせきの技術日記

    rsync -avz --exclude-from=pattern-file --delete SRC/ DEST SRCの末尾に/をつける。たいてい必要。 SRCスラッシュの有無は、mv SRC DEST と mv SRC/* DEST の違いと一緒。スラッシュの後ろに*が省略されているものと考える。 DESTのスラッシュの有無は関係なし。 --dry-run(-n)をつけて試す。 SRC、DESTともローカルのディレクトリを指定して試す。 DESTはまず空ディレクトリで試す。DESTが同期済みだと何が更新されるのか正確にわからないので。 --list-onlyをつけてファイル一覧を得る。 DESTを省略してファイル一覧を得る。 --list-onlyと同じ? --deleteはDESTのファイルを根こそぎ削除する可能性がある。注意。 --delete-excludedは使わない。--d

    地雷だらけのrsyncを理解する。 - こせきの技術日記
    HHR
    HHR 2013/01/11
    excludeパターンファイル
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    HHR
    HHR 2012/12/01
  • Big Sky :: grep で文字列を縦書きに変換

    grep の -o オプションを使うとマッチした部分だけ列挙してくれる。 例えば <div>foo</div><div>bar</div> <div>baz</div> というテキストファイル foo.txt に対して grep -o "<div[^>]*>[^<]*<\/div>" foo.txt と実行すると <div>foo</div> <div>bar</div> <div>baz</div> が得られる。これを応用して echo 餃子の王将 | grep -o . とやると 餃 子 の 王 将 が得られる。 便利!!

    Big Sky :: grep で文字列を縦書きに変換
    HHR
    HHR 2012/11/29
    grep -o オプション
  • xargs -P が激しく便利なのでメモ - おともだちティータイム

    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 の後に並列

    xargs -P が激しく便利なのでメモ - おともだちティータイム
    HHR
    HHR 2012/11/23
  • 40.ウェブサイトのソースコードを見てみる

    ナックス「こんにちは。今日はちょっとソースコードの話をしたい」 デビー君「僕はミートソースが好き」 ナックス「38.ウェブサイトはどんな風に作られているのかで、なんか<html>とか<body>みたいな謎のコードを書きましたね?」 デビー君「うん」 ナックス「これを一般的にウェブサイトを表示するためのソースコードと言います」 ナックス「そして、ソースコードを元に色々やれば画像がダウンロードできる!はず!多分!」 デビー君「多分かい!」 ナックス「さて、画像検索で『公式壁紙』という検索キーワードで検索してみてください」 ナックス「ちなみに検索時期によって検索結果が変わると思うので、この例示の画像と異なる検索結果になっても気にしないでください」 ナックス「さて、検索結果が表示されたら右クリックしてください。『ページのソースを表示』みたいなメニューがあるはずです。そのメニューをクリックしてくださ

    HHR
    HHR 2012/10/29
    nkfでURL encode decode nkf -wMQだと.とかもエンコードされてしまうので、“perl -MURI::Escape -e 'print uri_escape("あ");'”
  • UnixTimestamp から通常の時刻へ変換 - hkobayashの日記

    参考:http://www.math.kobe-u.ac.jp/~kodama/tips-DateTime-transform.html 変換コマンドなど 現在の UNIX time # date $ date +"%s" 1170604923 # ruby $ ruby -e 'p Time.now.to_i' 1170604923 # awk $ gawk 'BEGIN{print systime();exit}' 1170604923 # perl $ perl -e 'print time,"\n"' 1170604923 通常の時刻から UNIX time への変換 # date $ date -d '2007/2/5 01:02:03' +'%s' 1170604923 # ruby1 $ ruby -e 'require "time";t=Time.parse("2007/2

    UnixTimestamp から通常の時刻へ変換 - hkobayashの日記
    HHR
    HHR 2012/10/29
    dateコマンド使ったunixタイムスタンプからの変換が無い。。。 awkっすか。。。
  • 原因調査用Linuxコマンド | 外道父の匠

    サーバの動作に異常が発生した際に原因を探るためのLinuxコマンドで、自分用のメモです。 全てmanとかググったら出てくるので説明は適当です。思いついたら後で追記していくかもです。 対象はDebian Squeezeになります。 全てパッケージインストールできるもので、パッケージ名は [in packagename] としてあります。 各所よりコメントありがとうございます。 良さ気なコマンドは追記していきます。 <追加したコマンド> * telnet (+コメント wget, netcat) * arp (+コメント arpwatch) * pstree * fdisk コメントに gdisk * host, dig * watch * reboot

    原因調査用Linuxコマンド | 外道父の匠
    HHR
    HHR 2012/10/26
    ps pstree top lsof vmstat pidstat mpstat dstat /proc/$PID/ df iotop iostat ping ifconfig ip route traceroute mtr netstat tcpdump iptables arp telnet host dig sysctl mount fdisk ulimit /proc/ reboot strace sar fio snmpwalk watch
  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

    プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
    HHR
    HHR 2012/10/12
    良記事。set -e -x
  • rsync - オプションなどの基礎

    1 Mar 1999 NAMErsync - rcp よりも速くて、柔軟性に富んでいます SYNOPSIS rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... SRC [SRC]... DEST rsync [OPTION]... [USER@]HOST::SRC [DEST] rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] 説明 rsync は rcp とほとんど同じ方法で動くプログラムですが、より多くの オプションを持っています。目的のファイルが既に存在する場合に、 rs

    HHR
    HHR 2012/10/03
  • PHP :: 外部コマンドを実行する関数「system」と「exec」の比較 [Tipsというかメモ]

    外部コマンドを実行する関数「system」と「exec」の比較 PHPでバッチやコマンドラインプログラムを作る時は手軽に外部コマンドをコールするのもありだと思う。 その際、「system」と「exec」どちらを使うべきか迷ったので両者の挙動を検証してみた。 string system ( string command [, int &return_var] ) pwd コマンドを呼び出す % php -r '$cmd = "pwd"; system($cmd, $arr); var_dump($arr);' /path/to/current int(0) 存在しない badcommand を呼び出す % php -r '$cmd = "badcommand"; system($cmd, $arr); var_dump($arr);' sh: badcommand: command not

    HHR
    HHR 2012/09/21
  • joinコマンドが便利過ぎて生きるのが辛い - Y's note

    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つのファ

    joinコマンドが便利過ぎて生きるのが辛い - Y's note
    HHR
    HHR 2012/09/08
    join わかりやすい
  • 若者が知らない最強のLinuxコマンドTips - すがブロ

    タイトルは釣りぽよ〜 今日ここで書くのはわりかし最近知ったことだったりするのが多いんですが、せっかくなので書いておこうかなぁと思った次第です。Linuxって書いてるけど、普通にMacでも使えるハズです。 知ってる人にとってはアタリマエのことですけどね……。 ファイルサイズの桁でかすぎてがわからん ls とか duあたりで使える話ですね。 ファイルサイズが大きすぎてパッと見わからないよっていうことってあるじゃないですか。ありますよね。いやある。 そんな時は -h オプションを使いましょう。 $ ls -l /var/log/nginx/access.log -rw-r--r-- 1 root root 1897381 8月 26 02:50 2012 /var/log/nginx/access.log $ ls -lh /var/log/nginx/access.log -rw-r--r--

    HHR
    HHR 2012/08/28
  • 複数ホストに ssh しながら tail -F するときにはこうしたらどう? - tokuhirom's blog

    いろいろ方法があるとおもうのですが、以下のようなシェルスクリプトですませるのはどうでしょうか? #!/bin/bash function kill_children { # jobs -l | perl -ne 'print "kill $1\n" if /^\S+?\s+(\d+)/' | sh; pkill -P $$; wait; } trap "kill_children" EXIT HOSTS="192.168.1.1 192.168.1.2" for host in $HOSTS do ssh $host tail -F /service/foo/log/main/current & done wait ちょっと箇条書きで解説すると以下のようなことをおこなっています。 & でバックグラウンドジョブをはしらせるwait でそれらの終了を待つtrap 〜 EXIT は atexit

    HHR
    HHR 2012/08/25
    tail
  • shell script を書くときの tips 2つ(初心者向け) - tokuhirom's blog

    shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。 autodie っぽくするset -eとすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。 #!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HEREとすると % ./hoge.sh Died at -e line 1. % echo $? 255となって、最後までいかずに死にます。 複数のコマンドを順番に実行するときに便利。 なお、以下のような挙動をするんだそうです。 ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 && または || リストの一部である、 コマンドの返り値が ! で反転されてい

    HHR
    HHR 2012/07/25
    set -e, set -x