タグ

unixに関するrichard_rawのブックマーク (138)

  • Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ

    この記事ははてなエンジニアアドベントカレンダー2014の8日目です。 今回は、Go言語でサーバ管理ツール Mackerel のコマンドラインツールmkr を作るときに調べたこと、考えたこと、やったことについて紹介します。(mkr は現時点では開発版での提供になります。) コマンドラインツールについて コマンドラインツールを作るにあたって、@deeeet さんの YAPC Asia 2014 での発表資料が非常に参考になります。 書籍 UNIXという考え方ーその思想と哲学 の内容をベースに、コマンドラインツールはどうあるべきかということが丁寧に説明されています。 上記資料から引用させていただくと、コマンドラインツールにおいて重要なポイントは以下の7つであるとされています。 1つのことに集中している 直感的に使える 他のツールと連携できる 利用を助けてくれる 適切なデフォルト値を持ち設定もでき

    Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ
    richard_raw
    richard_raw 2014/12/09
    UNIX哲学が好きで且つGoを勉強したいので参考にします。
  • find/xargsを使ったファイル・ディレクトリ名の一括置換/一括作成コマンド一覧

    業務で楽するためのUNIXテクニック集 ファイル・ディレクトリ名の一括置換/一括作成 この記事は2008年~2009年頃に翔泳社で連載していた「業務で楽するためのUNIXテクニック集」の原です。 はじめに この連載では、UNIX系OSをコマンドライン上から効率よく利用するために知っておくべきテクニックや、便利な小技を紹介していきます。 今回は、第0回、第1回で紹介したfind/xargsコマンド、シェルの変数展開、制御構造を利用した「ファイル・ディレクトリ名の一括置換」に関するテクニックを紹介します。 また、「ファイルやディレクトリの一括作成方法」「シンボリックリンクの作成方法」に関するテクニックも紹介します。「ファイル名の置換」テクニックを検証する際の、コマンド確認環境構築にご利用ください。 関連記事 シェル制御構造と正規表現の基礎 grepを使った便利なコマンド一覧 find/xar

    find/xargsを使ったファイル・ディレクトリ名の一括置換/一括作成コマンド一覧
    richard_raw
    richard_raw 2014/11/20
    『サブディレクトリに渡るすべてのファイルの拡張子を「.txt」に変更する』が役立ちました。readコマンドのオプションとかあまり気にしてなかった。/唐突にperlが出てくるのは何とかなりませんかね。
  • sed に関するメモ

    richard_raw
    richard_raw 2014/10/14
    複数ファイルに書き出しとか出来たのか……。
  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

    richard_raw
    richard_raw 2014/09/18
    なにこれ超詳しい。……じっくり読もう。
  • プログラミング万能練習法

    暇な人はやってみるといいプログラミングの万能練習法 は良いトレーニングになる。 プログラムを自ら書きたいと思う人って、与えられたメニューをこなすだけの人間ではないと思うけどハッカーを目指している人には UNIX の勉強にもなるんじゃないだろうか。というわけで、実際の練習メニューは以下の通り。 プログラミング言語を選択する 書いてみようと思う POSIX のコマンド を決める man をはじめとするマニュアルを読んでコマンドの仕様を理解する 設計する(初回のコーディングと同時進行はやめたほうがいいかも) コーディング テストする。設計とコーディングの反復。 終了 C 言語で書いたならテストのあとにオリジナルのソースを読んで答え合わせするのですが、必ずしもオリジナルのコードが正解とは言い切れない。 自分が書いたプログラムが仕様どおりに動いているならアルゴリズムの違いなどは気にしなくていいと思う

    プログラミング万能練習法
    richard_raw
    richard_raw 2014/09/01
    UNIXコマンドを自分で実装する!/「プログラミングテクニック」持ってるけど殆ど読めてない……。
  • コマンドラインツールを作るときに参考にしている資料 | SOTA

    コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた.古いが全然色あせてない. コマンドラインツールの作り方を書いたではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい

    richard_raw
    richard_raw 2014/08/28
    ロングオプションのまとめとかあるんですね。/ドキュメント書くの苦手なので、Readme駆動開発しようかしら。
  • chmodやchownのreferenceオプションを知った時は目から鱗だった話

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 元々ホスティング会社で働いていたので、その特性上ownerやpermissionを色々と弄る事が多く、数年前の社会人時代にchmodやchownをもっと楽に使えないかなぁと調べた時に目から鱗だったのがchmodやchownのreferenceオプションでした。 今回は単にreferenceオプション楽ですよね、という記事なのでご存知の方は退屈な記事だと思いますが、まわりに聞いてみた所意外と知られていなかったりしたので、ブログエントリにしておこうと思います。 referenceオプションを使うと、任意のファイルを指定することで、変更対象のownerやpermissionを指定したファイルと同じ設定にすることができます。 例えば、/bin/pin

    chmodやchownのreferenceオプションを知った時は目から鱗だった話
    richard_raw
    richard_raw 2014/06/24
    属性のコピーが出来るのか……!
  • README のファイル名が大文字である理由 - clock-up-blog

    README のファイル名は慣習的にすべて大文字(であることが多い) GitHubプロジェクトを作るときに README を作成するオプションを入れておくと、README.md というファイルができる。それ以外の場所のプロジェクトでも README.txt や README など、ファイル名がすべて大文字になっているものをよく見かける。 なんか気持ち悪いなぁ、って思ってました。 readme でいいじゃん、と。 詳解 Linuxカーネル 第3版 作者: Daniel P. Bovet,Marco Cesati,高橋浩和,杉田由美子,清水正明,高杉昌督,平松雅巳,安井隆宏出版社/メーカー: オライリー・ジャパン発売日: 2007/02/26メディア: 大型購入: 9人 クリック: 269回この商品を含むブログ (71件) を見る 調べてみた README - Wikipedia, th

    README のファイル名が大文字である理由 - clock-up-blog
    richard_raw
    richard_raw 2014/05/09
    Wikipediaにそのまんまの項目があったのか……。
  • /usr/local とは何なのか - 破棄されたブログ

    ご用心: この記事を鵜呑みにせず、末尾に記載された一次ソースを確認してください。 ソースからソフトウェアをビルドしてインストールするときに使う /usr/local ディレクトリだけど、/opt ディレクトリとの住み分けとか、 そもそも標準はどうなっているのかとか、まともに知らんかったので Filesystem Hierarchy Standard を確認してみた。 /usr/local は何をすべきところなのか? 他のホストと共有されない 既存のシステムの破壊防止 FHS 準拠のソフトウェアをインストールする /usr/local ディレクトリ下自体が FHS 準拠になる /usr/local ディレクトリは、システム管理者がソフトウェアをローカルにインストールするために用いる。 /usr/local ディレクトリとして隔離されるため、同名のファイル名で既存のファイルを上書きするなどして

    /usr/local とは何なのか - 破棄されたブログ
    richard_raw
    richard_raw 2014/05/07
    「他のホストと強要されない」の部分で、そうかNFS使ってたなーと思い出しました。
  • 「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ

    「UNIXという考え方」をAmazonのwish listに入れていたらid:kenjiskywalkerさんが贈ってくださったので読みました.お陰でUNIXという考え方を学べました.ありがとうございます! 書では一貫して「プログラムを小さく作る」という事と「1つのプログラムには単一のことだけを上手くやらせる」という事について言及されています. プログラムを小さく作るということによって,そのプログラムはコンピュータのリソースに対して優しくなり,なおかつ巨大なプログラムと比較して人間が理解するのが簡単になるので保守がしやすくなり,かつ他の部品と組み合わせやすくなるという論旨です. プログラムを小さく作ると,必然的にそのプログラムは多くの責務を負えなくなる為,自然とプログラムは単一の機能のみを持つようになります.従ってこれら2つの考え方は対になっていると言えるでしょう. 書で言われている「

    「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ
    richard_raw
    richard_raw 2014/04/02
    積ん読してるリーダブルコードよりこっちの方が私に向いてるかも。
  • GNU grep 2.18リリース: 10倍速くなったと思ったら今度は200倍遅くなっていた | はむかず!

    先日の記事 いまさらgrepが10倍高速化したのはなぜか が思わぬ閲覧数を稼いでしまい、トルコ語の知識を日に広めるのに大きな貢献をしたような気がしますが、みなさんいかがお過ごしでしょうか。 実は先日の記事を書いた時にはすでに2.18がリリースされてたのだが、今回は2.17のときと違って日の大手メディアが取り上げてなかったので、ついつい見落としていた。しかし実は2.18でも大きな変更が!! リリースノート抜粋: grep -i in a multibyte, non-UTF8 locale could be up to 200 times slower than in 2.16. [bug introduced in grep-2.17] なんということでしょう。-iオプションでUTF8のときは2.17で10倍速くなっていたのだが、それ以外のマルチバイトロケールのときは200倍遅くなって

    richard_raw
    richard_raw 2014/02/27
    あの変更でUTF8以外では200倍遅くなっていた模様。文字コードの闇こわいです><
  • いまさらgrepが10倍高速化したのはなぜか – はむかず!

    最近GNU grepコマンドの最新バージョンがリリースされ、速度が10倍になったとのアナウンスがあった。それを聞いて、なんであんな枯れた技術に10倍もの高速化の余地があったのだろうと不思議に思った人も多いだろう。 ニュース記事:grepコマンド最新版、”-i”で10倍の高速化 家のリリースノート:grep – News: grep-2.17 released [stable] 今回のリリースでは正確には、マルチバイトロケールで、-iオプション(–ignore-case、つまり大文字小文字を区別しないオプション)をオンにした時の速度が10倍くらいになったそうだ。 なぜそんなに速くなったのか?逆を言えば今までなぜそんなに遅かったのか? そもそも、多くの日人にとって「大文字小文字の区別」というと英語のアルファベットか、せいぜいフランス語とかドイツ語とかのアクサン記号・ウムラウトがついたものく

    richard_raw
    richard_raw 2014/02/25
    そう言えばLANG=Cで速くなるという話は聞いたことがあったような。大文字と小文字でバイト数が違うコーディングか……。
  • 文字列検索コマンド「grep 2.17」リリース | OSDN Magazine

    GNU Projectのgrep開発チームは2月17日、最新安定版「grep-2.17」をリリースした。パフォーマンスの向上が行われており、「10倍の高速化」が実現されているという。 grepはファイルから特定のパターンを検索するツールで、「global regular expression print」の略。正規表現による検索も可能で、多くのUNIX系システムで使われているほか、Windowsでも動作する。 grep 2.17は1月初めに公開されたバージョン2.16に続く安定版。7週間で8人の開発者より合計19のコミットがあったという。最大の特徴は性能。バッファモードの活用などにより、マルチバイト文字列に対し-iオプションを利用し、\または[が含まれていないパターンを検索する際の速度が10倍高速になったという。-iオプションを利用しない場合は、最大7倍程度の改善が可能だそうだ このほかg

    文字列検索コマンド「grep 2.17」リリース | OSDN Magazine
    richard_raw
    richard_raw 2014/02/20
    枯れたツールだと思ってたら10倍だと……!
  • コマンドラインでデータを扱う方法の色々 | Yakst

    headやgrepなど基的なコマンドから、CSVのためのcsvtoolやJSONを扱うjqコマンドまで、テキストデータを処理する時に使う各種ツールを例とともに解説する。 RやPythonのような成熟したコンピューティング環境は、詳しくデータを分析するのには素晴らしいものだ。しかし、素早くシンプルにデータの調査や捜査をしたいときには、UNIXのコマンドラインツールはものすごく効率的だ。この記事では、自分で見つけ日々使っているいくつかのツールに光を当ててみようと思う。新しいツールをあなたのレパートリーに加えられたらうれしい。 ファイルをのぞき見る( head tail less ) NASAのサンプルWebログデータをダウンロードするところから始めよう。 $ wget ftp://ita.ee.lbl.gov/traces/NASA_access_log_Jul95.gz ダウンロードされた

    コマンドラインでデータを扱う方法の色々 | Yakst
    richard_raw
    richard_raw 2014/02/13
    shufでランダムサンプリングとかcsvtoolとかjqとか。
  • 備忘録 - FreeBSD 10 あれこれ : 404 Blog Not Found

    2014年02月05日18:45 カテゴリTipsiTech 備忘録 - FreeBSD 10 あれこれ この後無茶苦茶インストールしまくった。 FreeBSD 10.0-RELEASE Announcement ので、気づいたことを。 FreeBSD 9以前からの移行、特にpkgまわり make installでやっていたのも今や昔。freebsd-updateでさくっと。 で、手順は FreeBSD 10.0-RELEASE Installation Instructions のとおり 念のため旧環境もアップデート。済んでれば次へ。 # freebsd-update fetch # freebsd-update install 10.0へアップグレード 必要なファイルの取得 # freebsd-update upgrade -r 10.0-RELEASE カーネル入れ替え # free

    備忘録 - FreeBSD 10 あれこれ : 404 Blog Not Found
    richard_raw
    richard_raw 2014/02/06
    FreeBSDは昔に挑戦しようとしてインストールで躓いた思い出ががが。VMwareで再挑戦してみようかしら。
  • cmder | Console Emulator

    cmder is software package that provides great console experience even on WindowsCmder is a software package created out of pure frustration over absence of nice console emulator on Windows. It is based on amazing software, spiced up with Monokai color scheme and custom prompt layout. Looking sexy from the start. With help of the best Think about cmder more as a software package than a separate app

    cmder | Console Emulator
    richard_raw
    richard_raw 2013/12/11
    Conemu+clink+msysgitらしい。今のmsys環境が壊れたら検討してみます。
  • hardlink.pyを使ったらディスクの空き容量が劇的に増えた - hnwの日記

    ノートPCを使っているとディスクの空き容量が不足してくることがありますよね。僕の場合、$HOME/src/php以下にPHP 5.0.0から5.5.5まで88バージョンのPHPのソースコードを展開しているのですが、このサイズが約8.9GiB、約110万ファイルと恐ろしい量であることがわかりました。 そこで、この全ファイルに対してhardlink.pyを適用してみたところ、7.7GiBほど空き容量が増えました。稿ではこのhardlink.pyについて紹介します。 hardlink.pyとは hardlink.pyは、同じファイルを見つけてhardlinkにしてくれるPythonスクリプトです。同じファイルが多ければ多いほどディスクの空き容量を節約できるというわけです。 同じファイルと見なす条件はオプション指定で変更できますが、僕は「ファイルの中身とオーナーとパーミッションが完全一致、ただし

    hardlink.pyを使ったらディスクの空き容量が劇的に増えた - hnwの日記
    richard_raw
    richard_raw 2013/11/18
    いつか使うかも。
  • シェルスクリプトを書くときに気をつける9箇条 - Qiita

    最新の類似投稿としてシェルスクリプトのコーディングルール2014も併せてどうぞ。 2014/10/09追記 ぼくがシェルスクリプトを書くときに気にしていること、過去の失敗で書き留めたことを忘れないために。 1. グローバル変数は大文字 PATH や HOME など、環境変数が大文字なので、エクスポートする変数を大文字で書くという習慣は一般的であるような気がしますが、エクスポートする変数を抱えるシェルスクリプトを作成する機会が稀なので。 グローバル変数は大文字 ローカル変数は小文字 エクスポートする変数も大文字 関数内からグローバル変数にアクセスする場合がありますが、やはり区別していると、可読性が増すような気がするのでお勧めです。 2. awk を知る Unix 上にて文書処理をするときに、数多くのフィルタコマンド(grep、cut、tr、head、sort、uniq、sed、awk、wc、

    シェルスクリプトを書くときに気をつける9箇条 - Qiita
    richard_raw
    richard_raw 2013/10/10
    ついついcatを使ってしまうので反省。/what用の記述、昔は書いてたなあ……。/"$()"は素のshで使えましたっけ?
  • 7 Command-Line Tools for Data Science | Jeroen Janssens

    Data science is OSEMN (pronounced as awesome). That is, it involves Obtaining, Scrubbing, Exploring, Modelling, and iNterpreting data. As a data scientist, I spend quite a bit of time on the command-line, especially when there’s data to be obtained, scrubbed, or explored. And I’m not alone in this. Recently, Greg Reda discussed how the classics (e.g., head, cut, grep, sed, and awk) can be used for

    7 Command-Line Tools for Data Science | Jeroen Janssens
    richard_raw
    richard_raw 2013/09/20
    JSON関連が多いですね。scrapeとRioは使ってみたい。
  • lsを読まずにプログラマを名乗るな! - 秀和システム あなたの学びをサポート!

    LinuxMac OS X、BSD、SolarisといったUNIX系OSにおいて最も身近なコマンドであるlsのソースコード解説書です。UNIX系OSを使っているプログラマであれば、誰でもlsコマンドを日常的に使っていることでしょう。実際、lsコマンドを実現しているプログラムは汎用性が高く、大量のデータも処理できるよう作られており、そのソースコードを読み解くことはプログラマの成長にとって大変役立ちます。書は、C言語に習熟している人を対象に、GNU coreutiles 8.21のlsソースコードを解説します。lsのソースコードを読めば、マルチプラットフォーム対応の注意点、大量のデータを可能な限り継続処理する方法、実行性能や利便性とのバランスの取り方がわかります。 【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/3943.

    lsを読まずにプログラマを名乗るな! - 秀和システム あなたの学びをサポート!
    richard_raw
    richard_raw 2013/09/18
    尖ってるな!/UNIX Magazineコレクションを積ん読してたのを思い出しました。