タグ

unixに関するkoko1000banのブックマーク (45)

  • 「-」の妙技(2) | | プログラマ2.0日報 | あすなろBLOG

    さて今度はUNIXのシェルのコマンドラインで、ハイフン = 標準出力指定 として捉える習慣についてです。 これは、getopt(3) とは全然関係がなくて、個別にそのプログラムの側の独自実装として、明示的にハイフンだけのファイル名 = 標準出力 と置き換えて処理します。ですから、ホントこれ、「そのツールの実装でしょ」と言えばその通りです。また、UNIXコマンドは 標準入力から読んで、結果を標準出力に流す UNIX哲学に沿って書かれていることが多いのは当然なので、 特に「標準入出力を示すハイフン」が必要になるのは、「デフォルトではすでに別な用途で標準入出力が塞がっている事情がある」比較的珍しく、複雑なケースに限られることになります。ですから私が知る範囲では、 ● tar の f オプションのパラメータ 標準入力(tar xvf, tar tvfz とかの場合)、標準出力(tar cvf とか

  • The #! magic, details about the shebang/hash-bang mechanism

    Bourne | Ash |  #! | find | ARG_MAX | Shells | whatshell | portability | permissions | UUOC | ancient | - | ../Various | HOME "$@" | echo/printf | set -e | test | tty defs | tty chars | $() vs ) | IFS | using siginfo | nanosleep | line charset | locale The #! magic, details about the shebang/hash-bang mechanism on various Unix flavours 2001-08-13 .. 2021-10-20 (see recent changes) Here you'll find

    koko1000ban
    koko1000ban 2011/02/19
    仕組み
  • 「#!」 (SheBang)の語源を徹底追求 「切り刻んでビックリ」 - karasuyamatenguの日記

    「#!URL」エントリーに対するツイートやコメントで#!という文字列自体に対する疑問などが意外とあったので、ここでまとめてみる。 #!とは… ウェブとUnixで違った意味を持つ "shebang"と綴られる Hash(#) Bang(!)の略 グーグル検索tips: "#!"では何も出ない。"shebang"で検索するといい。 Unixでは昔からスクリプトファイルでインタプリタを指定する最初のラインに使われてきた 例えば ~/bin/ohhaiを #!/usr/bin/python print "OH HAI"とすればpython hoge.pyとしなくても直接コマンドとして使える $ ohhai OH HAIこのようにスクリプトファイルの一行目でインタプリタを指定する行頭に使う。詳しくはここを参照 http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%

    「#!」 (SheBang)の語源を徹底追求 「切り刻んでビックリ」 - karasuyamatenguの日記
    koko1000ban
    koko1000ban 2011/02/18
    切り刻んでビックリ
  • ocamlunix

    The english translation of Xavier Leroy and Didier Rémy’s introductory course to Unix system programming in OCaml. Admins: user205 Members: user205 Registered: 2008-11-28 16:08:17 Archived data: 0 open bugs 0 open feature requests 0 mailing list 0 VCS 0 released files

  • /dev/random の秘密 - あどけない話

    たとえば SSH や PGP の鍵対を生成するときには、当の乱数が必要になる。疑似乱数ではダメだ。Unix 上で乱数を生成してくれるデバイスとしては、/dev/ramdom がある。/dev/ramdom には、真性乱数が蓄えられていて、read システムコールで必要なバイト数だけ読み込むことができる。 /dev/ramdom が真性乱数を生成する方法は、実に単純だ。ハードウェア割り込みの間隔を測るのである。今の間隔が直前の間隔よりも短ければ 1 を、長ければ 0 を真性乱数として蓄える(0 と 1 の割り当ては逆かもしれない)。つまり割り込みが、時刻 t1、t2、t3 に起こったとすると、t2 - t1 と t3 - t2 を比較するということだ。 /dev/ramdom は、ブロックデバイスなので、必要な量の真性乱数がなければ、read システムコールはブロックする。このブロックをで

    /dev/random の秘密 - あどけない話
  • シグナル

    #include <stdio.h> #include <unistd.h> #include <signal.h> #include <errno.h> #include <stdlib.h> #include <wait.h> #include <sys/types.h> #define SHORT_TIME 5 #define MAX_COUNT 5 #define SZ_DATE 28 char *mkdate(); int mvbyte(char *,char,int); int count=0; int main(int argc,char *argv[]) { void sigcatch(),(*istat)(); char date[SZ_DATE]; istat = sigset(SIGINT,sigcatch); for (;;) { printf("%s If you

  • なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? - NO!と言えるようになりたい

    Unixを使っていると,/usr が全然ユーザー用じゃなくどう見てもシステムのための物だったり,/etc が事実上設定ファイル置き場となっていたり,/var がログファイル置き場となっていたりと,名が体を現していなくて奇妙な感覚を覚える.もっと分かりやすい名前の付け方があったんじゃないかと,Unixユーザーならば誰もが思うはずだが,これに対する解答がredditに投稿されており,その内容が非常に面白かったので,軽く翻訳してみた. Anyone know why /var and /etc weren't named something like /etc and /cfg? http://ja.reddit.com/r/linux/comments/cpisy/anyone_know_why_var_and_etc_werent_named/c0ua3mo 昔々,システム7が使われていてU

    なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? - NO!と言えるようになりたい
  • どさにっき - /usr/bin/env じゃなきゃどうすんの?

    2010年5月12日(水) ■ /usr/bin/env じゃなきゃどうすんの? 大昔書いたことに対して、perl のパスをどう書き換えたらいいのかわからない CGI をただ使うだけのお客さんのために、#!/path/to/perl ではなく #!/usr/bin/env perl を使うという 反論をもらった。個人ベースで小さな CGI を作って配布する、というのは最近ではもうだいぶ廃れてきてるような気がしなくもないけど、まあ、4年も前も書いたことに対する話なんでそのへんは気にしないことにする。 envもその一環なの。否定するなら対案を示せといいたい。 _ こんなんどうでしょうか。 #!/bin/sh # -*- perl -*- # 動作には関係なし(エディタのモード判定用) PATH=/bin:/usr/bin:/usr/local/bin:... exec perl -x -opt

  • めっちゃ便利やねん find コマンドのオプションまとめ | バシャログ。

    こんにちは nakamura です。そういえば 4/1 から 神奈川県公共的施設における受動喫煙防止条例 が施行されましたね。今のところよく行くお店でそれらしい光景は見掛けませんが、先日行った居酒屋はものの見事に禁煙になっていて心なしか客足もまばらな感じでした。神奈川県の飲はこれから厳しそうですな。 さてさて思わず関西弁になってしまうほど便利な find コマンドを今日はご紹介します。比較的有名なコマンドですが、オプションが相当な数あり正直全てを把握するのは無理かもしれません。ただ、よく使うものだけでも頭に入れておくと何かと便利な優れものなのです。 基的なオプション まずは基的な使い方。 -type ファイルタイプの指定に使用するオプションです。スペシャルファイルや名前付きパイプ等様々な引数がありますが、よく使うのはディレクトリを示す d と通常ファイルを示す f でしょうか。 -n

    めっちゃ便利やねん find コマンドのオプションまとめ | バシャログ。
  • void GraphicWizardsLair( void ); //

  • UNIX Load Average Part 1: How It Works

    Featured PCI DSS 4.0 Compliance Guide: Tips to Avoid Last-Minute Panic Get the Guide In this online article Dr. Gunther digs down into the UNIX kernel to find out how load averages (the “LA Triplets”) are calculated and how appropriate they are as capacity planning metrics. With apologies to Jules Verne and his novel “20,000 Leagues Under the Sea,” I might equally have entitled this piece, “20,000

    UNIX Load Average Part 1: How It Works
  • NULL文字区切りに対応しているコマンド - 技術メモ帳

    http://ya.maya.st/d/200703c.html#s20070330_1 出力の順番をいじりたいからといって find | sort | xargs とかやってしまうと -print0 は使えない。ああ困ったねぇ。どうしようもないねぇ。 sort -z なんてオプションがあって、NULL文字も受け付けてくれますよ。 GNUのみっぽいですが。 find . -print0 | sort -z | xargs -0 cmd -- 他にも、ちょっと意味合いが違いますが grep -Z なんてものもあるみたいですね。 出力時にNULL区切りするという。

  • UNIX のフォント事情

    2016-07-21: このページの記述は古いうえに、(当初から)致命的に間違っている箇所があります。 今のところ気づいているのは、 ヒンティングの強弱と LCD レンダリングモードの直交した指定ができないというのは大嘘。当時から FreeType のリファレンスにちゃんと説明がある。 Firefox のレンダリングは cairo に移行済。 LCD フィルタは freetype 側に実装され、現在では多くの環境で適切に使用されている。 cairo で hintstyle の設定が無視される問題は Bugzilla を見る限りまだ残っているように思えるけれど、手元で試した感じでは反映されているような…。気のせいかも(適当)。 pango は HarfBuzz に移行。 TrueType のバイトコードヒンティングは、 2.6.4 で水平方向のヒンティング命令を無視する処理が追加され、サブピ

  • フレームワークとしてのUNIX - 週記くらい(BTS開発記)

  • topless で Activity Monitor もどき

    背景 MacOSX には Activity Monitor というツールがあります。Windows 使いにはタスクマネージャのようなもの、Un*x 使いには top みたいなものと言えば通じるかなと思います。しかし自分が思うに、これらのツールと違って Activity Monitor には決定的に優れている点があります。それは プロセスの様子をモニタリングする際にフィルタが掛けられること です。 スクリーンショットは自分の立ち上げている zsh プロセスだけをモニタリングしている様子です。タスクマネージャ1ではソートはできても抽出まではできませんし、top でも特定の owner のプロセスは抽出できてもその中でプロセスの名前でフィルタを掛けることはできません。 これ、他の環境でもできたら便利だなぁと以前から思っていたのです。 06:36:38 >wtnabe< 昨日の夜つぶやいていた a

  • 色付きManpage - by edvakf in hatena

    colored manpages - nion's blog ターミナルの色指定ファイルをコンパイルして、man 実行時だけそれを指定するらしい。 $ mkdir ~/.terminfo/ && cd ~/.terminfo $ wget http://nion.modprobe.de/mostlike.txt $ tic mostlike.txt~/.bashrc などに以下を記入。 alias man="TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man"The MOST というページャーのような色、ということらしい。 http://nion.modprobe.de/mostlike.txt の内容は以下。 # Reconstructed via infocmp from file: /usr/share/terminfo

    色付きManpage - by edvakf in hatena
  • 任意の拡張子のファイルを除いてディレクトリをまるごとコピーするには - 計算機と戯れる日々

    拡張子.aaaと.bbbを除いてディレクトリをコピーする bashの場合 findの結果をみてディレクトリならmkdirをそうでないときにコピーする $ for i in `find . -not -name "*.aaa" -not -name "*.bbb"`; do echo $i ;if [ -d $i ]; then mkdir -p target/$i ; else cp $i target/$i ;fi ; done拡張子の取り出しをbash側で行う場合 #{変数名##*.} を使うといい $ for i in `find .`; do if [ -d $i ]; then echo $i; mkdir -p target/$i; elif [ ${i##*.} != "aaa" -a ${i##*.} != "bbb" ]; then cp $i target/$i; fi

    任意の拡張子のファイルを除いてディレクトリをまるごとコピーするには - 計算機と戯れる日々
  • UNIX系OSのサーバに対するイタズラ集 - yuyarinの日記

    随時追加 ターミナルを立ち上げたまま席を離れるとマシンにイタズラされることがよくある.とはいえシャレにならないイタズラはしても笑えないので,基的には教育的に効果があって被害の出ないものしか実際にはしない. じゃあ,たとえ root じゃなくてもどこまでえげつないことができるのか*1,今回はちょっと考えてみたユーザ権限でできる酷いイタズラを紹介する.対象はリモートログインする UNIX 系 OS を利用しているサーバ,主に Ubuntu である. ls が sl 方法 alias ls=sl sl を期待したという意見が多かったので掲載.掲載しなかったのは sl がインストールされていない環境が多く,インストールには root 権限が必要になるから.後述のバイナリを持ち込んでパスを通す方法を使えばできないことはないかも. エディターが全部 ed 方法 alias nano=ed alias

    UNIX系OSのサーバに対するイタズラ集 - yuyarinの日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • シェルの処理順序 - はてブロ@ama_ch

    詳解 シェルスクリプト 作者: Arnold Robbins,Nelson H. F. Beebe,日向あおい出版社/メーカー: オライリージャパン発売日: 2006/01/16メディア: 大型購入: 6人 クリック: 193回この商品を含むブログ (37件) を見る 今読んでる詳解シェルスクリプトにシェルの処理順序が詳しく書いてあり、とっても参考になったのでメモしておきます。 p.176 7.8 処理の順序とevalコマンド より 標準入力やスクリプト中の各行からシェルへと読み込まれる1行分のデータを、パイプラインと呼ぶ。パイプラインには1つまたはそれ以上のコマンドが記述され、それぞれの間にはパイプ記号(|)やその他の記号(;, &, &&, ||)が記述される。シェルは読み込んだパイプラインをコマンド単位に分割し、それぞれについて以下の順に処理を行う。 スペース、タブ、改行、;、(、

    シェルの処理順序 - はてブロ@ama_ch