タグ

ProgrammingとUnixに関するagwのブックマーク (247)

  • USP 友の会勉強会 AWK 一行野郎百裂拳

    USP 友の会勉強会 2013/12/22 AWK 一行野郎百裂拳 Normal Action-less 1 awk '{print $0}' awk '4' ファイルの中身を書き出す。 ≒ cat 2 awk '{}' awk '' 何も表示しない。 ≒ cat > /dev/null 3 awk '{print NR, $0}' awk '$0 = NR " " $0' 行番号を付ける。 ≒ cat -n 4 awk 'NR <= N {print $0}' awk 'NR <= N ' 最初の N 行を抜き出す。 ≒ head -n N 5 awk 'NR == N , NR == M {print $0}' awk 'NR == N , NR == M ' N 行目から M 行目を抜き出す。 6 awk 'NR >= N && NR <= M {print $0}' awk 'N

  • find コマンドの -mtime は +1 でも2日前のファイルが対象

    Landscape トップページ | < 前の日 2005-07-02 2005-07-06 次の日 2005-07-07 > Landscape - エンジニアのメモ 2005-07-06 find コマンドの -mtime は +1 でも2日前のファイルが対象 当サイト内を Google 検索できます * find コマンドの -mtime は +1 でも2日前のファイルが対象この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [unix] [シェルスクリプト] find コマンドの -mtime は +1 でも2日前のファイルが対象となる。つまり、(n + 1) 日前のファイルが対象。n は +0 を指定しても、一日以上前のファイルが対象になる。 - find が古いファイルを検索してくれないとあるテスト用 DB があり、定期的にバックアップを取っている。バ

  • C言語pipeメモ(Hishidama's C "pipe" Memo)

    概要 pipe関数でいうパイプとは、バッファーのようなもの。 パイプに対してデータを書き込んでおき、そのパイプからデータを読み込むことが出来る。 このバッファーはOS(カーネル)の機能を使っている。一時ファイルのようなイメージ。 なので、1つのパイプを複数のプロセスで共有すれば、プロセス間通信に使うことが出来る。 例 とりあえずパイプの使い方の確認。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main() { int pipefd[2]; if (pipe(pipefd) < 0) { perror("pipe"); exit(-1); } // パイプへの書き込み char *s = "test"; write(pipefd[1], s, strlen(s)); /

  • 知らなかったyesコマンドの真の力 - harry’s memorandum

    yesコマンドとは? 'YES' - 妖精がみえてしまうジョンアンダーソンのプログレッシブバンドのことではありません。UNIX/Linux の yes コマンドを少しだけ語ってみたいと思います。 yesコマンドってなんですか?という人はまずUNIX/Linuxのターミナルで'yes'と入力してみましょう。 $ yes y y y^Cy がひたすら続きます。引数に文字列を渡せばその文字列をひたすら吐き出します。 $ yes "Cirque du Soleil" Cirque du Soleil Cirque du Soleil Cirque du Soleil Cirque du Soleil^Cこれ意味あんの?と思いたくなります。では何に使えるのでしょう? そうターミナルで対話的に行うときに なんと あの y を入力してくれるのです。 yesの例 まずテストファイル作成 $ for i i

    知らなかったyesコマンドの真の力 - harry’s memorandum
  • なるほどUnixプロセス ― Rubyで学ぶUnixの基礎

    なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 達人出版会 3,520円 (3,200円+税) 『Working with Unix Processes』待望の完訳。並列処理やデーモン、プロセス生成、そしてシグナルといったUnixの基礎であるプロセスについてRubyで解説する、「今どきの」開発者に向けた新しいUnixプログラミングの手引きです。 ※書の公式ハッシュタグは#naruhounix になります。 関連サイト原著者による公式ページと訳者らによるサポートページがあります。 Working With Unix Processes - Learn the Fundamentals of Unix Programming in RubyなるほどUnixプロセスサポートページ 日語版刊行によせてRuby

    なるほどUnixプロセス ― Rubyで学ぶUnixの基礎
  • KDE、あやうくレポジトリを失いかける

    Too Perfect A Mirror - Me, my blog, and my Johnson 追記:上記記事の全訳 の虫: KDEレポジトリ消失問題の記事の全訳:完璧過ぎるミラー 追記:この記事は上記のブログ記事にざっと目を通して素早く書いたものであり、詳細を欠く。上記の記事は全訳しているので、より正確で詳細な内容のために、目を通すべきである。 2013-3-22に、git.kde.orgをホストしている仮想マシンをセキュリティアップデートのために一旦落とした。アップデート後に復帰させてみると、ファイルシステムが壊れていたらしく、KDEの1500以上ものレポジトリが消えていた。 問題は、この問題が気づかれぬまま復帰したので、ミラーサーバーが誤りをそのままコピーしてしまったことだ。 ミラーは正しいバックアップではない。 とてつもなく幸運なことに、この問題が起こる一日前、ミラーサーバ

  • C言語のtmpnam()って関数を知った

    なんかのソース(たしかmod_dosdetector)を読んでてCにtmpnam()ってのがあるのを知りました。 なんの関数なんだろうとman tmpnamで調べたらテンポラリーファイル用の関数でした。 プログラムでテンポラリーのファイルを使う場合の名前をよしなに 決定してくれるものらしく、stdio.hで定義されています。 使い方は↓こんな感じにするとs[]にファイル名が入るみたい。 #include <stdio.h> int main() { char s[L_tmpnam+1]; tmpnam(s); printf("%s\n", s); return 0; } ためしに実行してみると、 % gcc ./tmpnam_test.c % ./a.out /var/tmp/tmp.0.GYj9KF こんな感じ。あーなんかこのファイル名どこかで見たことあるような…。 上のコードのL_tm

  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

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

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • kill コマンドって、プロセスを終了させるものかと勘違いしていた - LukeSilvia’s diary

    今までは、「kill すればプロセスは終了する」って思ってたので、例えば、以下のようなコマンドでデーモンプロセスが終了しないのを不思議に思ってた。 $ kill [デーモンのプロセス番号] (いや、man 読んどけよって話なんですが・・・) kill で終了させられない例 例として、rails のデフォルトのweb サーバであるwebrick $ ruby script/server webrick -d $ ps ax | grep ruby 518 ?? S 0:00.00 ruby script/server webrick -d $ kill 518 $ ps ax | grep ruby 518 ?? S 0:00.00 ruby script/server webrick -d kill したのに終了してねー(⊃д⊂) 今までやってた対処法 $ kill -KILL 518 こ

    kill コマンドって、プロセスを終了させるものかと勘違いしていた - LukeSilvia’s diary
  • 「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは - ITジャーナリスト星暁雄の"情報論"ノート

    UNIXの歴史にはある大きな転換点があり、そこには「もう一つの未来」の可能性が開けていました。この転換期に起こった出来事は「UNIX戦争」として知られていますが、その背景に「UNIXをC++で分散OSに書き直す」という野心的な計画があったことは、今ではほとんど語られることはありません。 私は、この一連の出来事の時期に、『日経エレクトロニクス』の記者としてUNIXの動向を追っていました。当時の出来事の概要を、取材者の視点から書き記しておきたいと思います。多くの読者にとって初耳の情報も含まれていると思います。 一連の出来事の発端は1987年に発表された、Sun、AT&T、Microsoftによる統合UNIXの発表です。この発表の前夜がどういう時代だったか、という話がまず必要でしょう。 統合前夜 1980年代後半は、コンピュータの歴史でも重要な時期でした。この時期、32ビット・マイクロプロセッサ

    「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは - ITジャーナリスト星暁雄の"情報論"ノート
  • 【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2019/06/11追記: これは2012年の投稿です。なぜかはてなブックマークで拡散されていますが、内容は時代にそぐわなくなったものもあるのでご注意ください。 これ知らないプログラマって損してんなって思う汎用的なツールのコメントに寄せられたツールを分類分けしてみました。 解説は、ほぼコメントに寄せられた内容のコピペです。 URLのみの記述は公式サイト(か、ほぼ公式サイトと化しているサイト) 公式サイトとは別に、ページタイトルだけでツールを説明しきっているページへのリンクも付けておきました。類似ページが複数ある場合は、はてブのブックマー

    【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超 - Qiita
  • RE: sort を使うときは,LC_ALL=C を忘れずに - ny23の日記

    Twitter ID も livedoor ID もないので直接コメントできないが,sort (GNU coreutils) の名誉のために,ここにメモしておく. 404 Blog Not Found:algorithm - bucketsort.[ch] - 汎用かつlibcの*sortより高速な まず第一印象として,この程度のサイズのファイルのソートで sort (GNU coreutils) がいまどきこんなに遅いはずはない.LC_ALL=C で追試すると,やはり bucketsort との差は無くなった.上の記事(に対するツイート)は Twitter 上でもそれなりにリツイートされているように見えるのだけど,この実行時間に違和感を感じる人が全くいないのはどういうことなのだろうか.sort を実際に使う人がほとんど見ていないのか,それとも計算量が違うから速くて当然という思い込みか.

    RE: sort を使うときは,LC_ALL=C を忘れずに - ny23の日記
  • 追記: sort を使うときは,LC_ALL=C を忘れずに - ny23の日記

    > wc --lines unigram_raw.txt 290768333 unigram_raw.txtそもそも,たかだか3億要素,1.7Gのデータのソートに,最近のマシンで sort | uniq -c が858分もかかるのは変ですよね. > export LC_ALL=C > time sort -S 2G unigram_raw.txt | uniq -c > tmp.sort.uniq sort -S 2G unigram_raw.txt 389.93s user 16.32s system 99% cpu 6:49.61 total uniq -c > tmp.sort.uniq 15.40s user 1.56s system 4% cpu 6:49.62 totalIntel Xeon E5462 (3.2Ghz) が Dual Core AMD Opteron 1210

    追記: sort を使うときは,LC_ALL=C を忘れずに - ny23の日記
  • Frequently-Asked Questions about sed, the stream editor

    Archive-Name: editor-faq/sed Posting-Frequency: irregular Last-modified: 10 March 2003 Version: 015 URL: http://sed.sourceforge.net/sedfaq.html Maintainer: Eric Pement (pemente@northpark.edu) CONTENTS 1. GENERAL INFORMATION 1.1. Introduction - How this FAQ is organized 1.2. Latest version of the sed FAQ 1.3. FAQ revision information 1.4. How do I add a question/answer to the sed FAQ? 1.5. FAQ abbr

  • TechCrunch | Startup and Technology News

    Limited space! Get on waitlist to be the first to know when tickets go live!

    TechCrunch | Startup and Technology News
  • 【訃報】C言語の開発者、デニス・リッチー氏が死去

    ■編集元:ニュース速報板より「【訃報】C言語の開発者、デニス・リッチー氏が死去」 1 名前:名無しさん@涙目です。(鯉城) :2011/10/13(木) 11:53:19.35 ID:AvXaity/0 ?PLT(55783) Google+ で Rob Pike 氏が語ったところによると、C 言語の開発者、K&R の R であるところのDennis Ritchie 博士が亡くなられた。70 歳 (Rob Pike 氏による Google+ への投稿) 。 http://developers.slashdot.jp/story/11/10/13/0224245/ 続きを読む

  • EXPECT

    狸寝入り - Linux, BSD, Programming, VPS, ... LinuxProgramming関係の話題を中心に、いろいろ研究していきたいと思っています。 最近のお気に入りはGentoo Linuxです。 (11/18)jQueryのgetとeqの違い (12/02)Windows Insider Previewの期限切れ (11/27)Sambaユーザーの追加方法 (09/30)FirefoxでSSLv3を使う方法 (08/19)ERROR: media-gfx/blender-2.72b-r3::gentoo failed (compile phase) (06/13)X.Orgのパワーマネジメントを停止する方法 (04/04)Firefoxなどのマウスカーソルを変更する方法 (10/24)バーコードリーダー買ってみました (06/12)GPLのアンチウィルス「C

  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.

  • 【コラム】Hello Worldコレクション (8) sed編 - 荒ワザを駆使して生まれるマニアックなHello World | エンタープライズ | マイコミジャーナル

    sedにおけるHello Worldの特殊事情 第8回は、sedを使ったHello Worldです。sedは来、標準入力(または引数指定のファイル)から1行ずつ読み込み、正規表現による文字列の置換などの処理を施して標準出力に出力するという、ストリームエディタです。したがって、そもそもsedはHello Worldのプログラムにはあまり馴染みません。また、sedにはawkでいうところのBEGIN{}に相当する部分がなく、入力データがまったくない状態では処理が開始されません。このため、sedでHello Worldのプログラムを作るには、何らかのダミーデータの入力が必要になります。 そこで、まずは「#!/bin/sed」で始まるsedスクリプトを記述するのではなく、「#!/bin/sh」で始まる普通のシェルスクリプトを記述し、そのシェルスクリプトの中からsedを起動する方式でHello Wo

  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も

    UNIX & Linux コマンド・シェルスクリプト リファレンス