タグ

UNIXに関するstmsyのブックマーク (21)

  • zshでPATHが壊れないようにPATHに新しいディレクトリを通す - Acme::AnaTofuZ->new;

    TL;DR 特に順番は気にしないとき path+=('/hoo/bar/baz'); 最初にいれたいとき path=('/hoo/bar/baz' $path) PATH通そうとして壊れるヤツ UNIXを使っている上で避けて通れないのが環境変数$PATHでしょう。 :区切りにディレクトリを列挙して、列挙されているディレクトリ直下に置かれているバイナリファイルをコマンドとして使えるようにするアレですね。 そんな$PATHに新しいディレクトリを追加しようとして、ついつい次のような事故がよく置きます。 export PATH="/hoo/bar/baz" こうしてしまうと最初から$PATHに設定していたデータが吹っ飛んで、PATHの中身が/hoo/bar/bazだけになってしまいます。こうなるとlsとかのコマンドが使えなくなる訳ですね。 zshだと$pathで配列として扱える この問題は何が原因

    zshでPATHが壊れないようにPATHに新しいディレクトリを通す - Acme::AnaTofuZ->new;
  • How to use grep (with examples) - Linux Audit

    The grep command is one of the oldest tools for Linux and other platforms. Actually, it is older than Linux itself. It was written by Ken Thompson more than 45 years ago! The name grep stands for “globally regular expression print”. This name comes from its predecessor ed and the specific mode in which you would globally search, using a regular expression, and print the output. The related command

    How to use grep (with examples) - Linux Audit
  • devconnected

    Monitoring disk I/O on a Linux system is crucial for every system administrator. When performing basic system troubleshooting, you want to have a complete overview of every single metric on…

  • 日常から使えるUnix系OS業務効率up技 - Qiita

    気分転換に、普段からLinuxで作業する上で割と便利なツールだったり小技を共有します。知ってたらごめんね 一応全部MacでもLinuxでも動くはずです。 高速化系 axel , aria2c http://qiita.com/sarumonera/items/2b30999d7d41a4747d74 https://goo.gl/gsFrCT https://wiki.archlinuxjp.org/index.php/Aria2 http://qiita.com/TokyoMickey/items/cb51805a19dcee416151 こいつらは割と有名(?)かなと思います。やってることはcurlやwgetとほとんど変わらず、サーバにHTTPリクエストを送ってレスポンスを取ってくるだけなのですが、ダウンロードを高速化するためにtcpコネクションを何も貼って、相手サーバーに負担をかけ

    日常から使えるUnix系OS業務効率up技 - Qiita
  • Iptables Essentials: Common Firewall Rules and Commands | DigitalOcean

    // Tutorial //Iptables Essentials: Common Firewall Rules and Commands Introduction Iptables is a software firewall for Linux distributions. This cheat sheet-style guide provides a quick reference to iptables commands that will create firewall rules that are useful in common, everyday scenarios. This includes iptables examples of allowing and blocking various services by port, network interface, an

    Iptables Essentials: Common Firewall Rules and Commands | DigitalOcean
  • What are pid and lock files for?

    stmsy
    stmsy 2016/10/27
  • kazmax - Linuxで自宅サーバー

    Linux(CentOS)の技術情報をまとめています。 基礎知識、Tips、各サービスの設定方法の解説をしていきます。

  • Understanding logrotate utility

  • ネットワーク診断の現場から(netcat編・その2) | NTTデータ先端技術株式会社

    Tweet はじめに 今回はnetcatを利用して、Webサーバーのレスポンスヘッダーから得られる情報を収集してみましょう。レスポンスヘッダー内にはさまざまな情報がありますが、ここでは「バナー取得」および「内部IPアドレスの漏えい」について紹介します。 前回に引き続き、稿の実行例ではLinux(CentOS 6)を利用しています。また対象のWebサーバーとしては、Apache HTTP Server(以下Apache)を想定しています。 バナー取得 バナーとは、サービスが出力するメッセージのうち、ソフトウェアの名称やバージョン情報が含まれるものを指します。外部からバナーが取得可能な場合、そこには攻撃者にとって有益な情報が含まれることがあるため注意が必要です。 例を見てみましょう。以下の実行例では、Webサーバーであるtest.example.comの80/tcp(http)にnetcat

    ネットワーク診断の現場から(netcat編・その2) | NTTデータ先端技術株式会社
  • ネットワーク診断の現場から(netcat編・その1) | NTTデータ先端技術株式会社

    Tweet はじめに ネットワーク診断では、脆弱性スキャナーや侵入テストツールなどのさまざまなソフトウェアを使用します。これらはどれも複雑なソフトウェアであるため、インストール方法から実際の操作まで、事前に多くのことを学ぶ必要があります。 しかしネットワーク診断の現場では、コマンド1つで提供されるシンプルなツールも多く利用されています。そのような簡単なツールでも、うまく使いこなせばさまざまなセキュリティチェックを行うことができます。 このコラムではネットワーク診断で使われるツールの中から、一般的なUNIX/Linuxで標準パッケージとして提供されており、簡単に利用できるコマンドを紹介していきます。これらのツールはネットワークのトラブルシューティングにも使われることが多いため、ふだんサーバー・ネットワークの構築をしている方々にも役立てていただきたいというのがこのコラムのねらいです。 今回のコ

    ネットワーク診断の現場から(netcat編・その1) | NTTデータ先端技術株式会社
  • システムコールの特性を知る pipe(2)編

    これまで数回にわたって紹介してきたmmap(2)に続き、今度はpipe(2)による処理の高速化について考察していく。やりとりするデータのサイズを工夫することで、うまく効率化を図ることができる(編集部) システムコールの特性を知ろう UNIX系OSにおける基機能にパイプがある。シェルでは|で表現され、コマンドの標準出力を次のコマンドの標準入力に結びつける処理をする。 実際に使われるシステムコールはpipe(2)で、pipe(2)で生成されたファイルディスクリプタに対してwrite(2)およびread(2)でデータの読み書きを行う仕組みになっている。 これまで数回にわたって、mmap(2)を使うことで処理の高速化が実現できることを示してきたが、read(2)/write(2)を使っても、やりとりするデータのサイズを工夫することで、処理速度の改善を図ることができる。ここではOSの提供するいくつ

    システムコールの特性を知る pipe(2)編
  • 共有メモリとファイルシステム――その2

    mmap(2)で共有メモリを実装する方法はいくつかある。前回、各方法ごとに性能を検証したところ、大きな違いは見られなかった。そこで今回は共有するデータサイズを100MBにして、あらためて性能の違いを調査していく。(編集部) 性能測定、データサイズを大きくしたらどうなる? 第6回ではmmap(2)を使って共有メモリを実装する方法を紹介した。mmap(2)で共有メモリを実装する場合、いくつかの選択肢があり、それぞれ性能にどういった違いがあるのかを調べた。 今回は前回の話に引き続き、共有するデータのサイズを変えた場合に性能にどのような違いが発生するのかを調査していく。 mmap(2)はメモリへのアクセスがそのままファイルへのアクセスになるところにその特徴がある。ファイルをマッピングしなくても利用できるが、来的にはファイルに対してマッピングを実施するものだ。前回はファイルにマッピングするケースと

    共有メモリとファイルシステム――その2
  • 共有メモリとファイルシステム――その1

    今回は、mmap(2)で共有メモリを実装すると処理能力の向上が見込めること、そしてその実装方法にはいくつもの選択肢があることを紹介し、次回以降の比較につなげていく。(編集部) 共有メモリ活用方法のバリエーション 第5回では、プロセス間でデータをやりとりする方法としてパイプpipe(2)と共有メモリmmap(2)の双方を取り上げ、それぞれの利点・欠点について紹介した。 パイプpipe(2)を使う方法は実装がシンプルだし、概念としても分かりやすい。どのタイミングでロックがかかるかも明確だ。一方、小さいサイズのデータを何度もやりとりするようなケースでは、大量のread(2)/write(2)システムコールが発生し、効率が悪いことも紹介した。 共有メモリmmap(2)を使う方法は、pipe(2)/read(2)/write(2)と比べて実行速度の面で利点がある。共有メモリを使うと、それぞれ独立した

    共有メモリとファイルシステム――その1
  • システムコールを減らすシステムコール

    前回まで、mmap(2)によるコピー処理の高速化について紹介してきた。mmap(2)にはまた、システムコールが呼ばれる回数を削減し、処理速度を高速化するという効果もある。今回は、共有メモリの観点から、その機能を紹介する(編集部) システムコールを減らすシステムコール mmap(2) 前回まではコピープログラムを例に挙げながら、mmap(2)を使うことでコピー処理を高速化できることを紹介してきた。連載第1回目で説明したように、処理速度を高速化したければ、基的にはシステムコールは少ない方がよい。システムコールを実行すれば、その分プログラムとカーネルの間でのデータのコピーや処理の切り替えが発生し、それだけ処理速度が遅くなる。 しかし、例外的に処理を高速化できるものもある。その代表格がmmap(2)だ。mmap(2)はシステムコールだが、このシステムコールを利用すると、最終的にはシステムコールが

    システムコールを減らすシステムコール
  • 高速化に効くシステムコールが犠牲にするもの

    前回、mmap(2)というシステムコールを使って、ファイルコピーの速度を上げる方法を解説しました。このシステムコールは大きな問題を起こすこともないので、使いやすく、実際に多くの開発者が利用しています。今回は、プログラムが使用した物理メモリサイズやページフォールトの回数、コンテキストスイッチの回数などを調べて、mmap(2)の性格を分析していきます(編集部) 前回とは違う側面からmmap(2)を調べる 前回、ファイルをコピーするためのシステムコールの一種である「mmap(2)」を紹介した。このシステムコールを使えば、「read(2)」や「write(3)」といったシステムコールを使うよりも高速に動作するファイルコピープログラムを作れる。処理にかかった平均時間を比較したところ、mmap(2)を利用したプログラムは、read(2)/write(2)を使ったプログラムの4〜5倍高速に動作していた。

    高速化に効くシステムコールが犠牲にするもの
  • システムコールと標準ライブラリ関数の違いを知る

    前回解説したように、システムコールは魔法の関数でもなければ、不思議なものでもなく、カーネルに正直に処理を依頼するものです。今回は、標準ライブラリ関数との違いについて解説します。(編集部) システムコールを使ってみる前に 今回から簡単なシステムコールプログラミングを通じて、いわゆる「システムコール」がどういったものであるかを紹介していこうと思う。システムコールに触れるための環境をどう構築するかという点については、連載:いまさら聞けないVim 第8回「Vimをプログラム開発環境にしてしまおう」に詳しくまとめてある。こちらを参考に環境を構築してほしい。 先に挙げた記事では、FreeBSDとUbuntuを例として環境構築法を解説している。ほかの環境(Mac OS X Lion、Ubuntu 11.10、Solaris 11)を使われている方のために、使用するコマンドをそれぞれの環境で置き換える方法

    システムコールと標準ライブラリ関数の違いを知る
  • システムコールについてどれくらいご存じですか?

    システムコールについてどれくらいご存じですか?:知ってトクするシステムコール(1)(1/2 ページ) 「システムコール」と聞いて、どういう印象を受けますか? 「難しくて、自分では手に負えない」とか「使う必要を感じない」という方は多いでしょう。しかし、コンピュータを使う人ならどんな人でも、システムコールについて知っておくといろいろトクをするんですよ。(編集部) システムコール? 聞いたことはあるけど…… 企業情報システムや、Webアプリケーション、携帯機器向けアプリケーション、あるいはちょっとしたツールの作成など、なんらかの形でソフトウェア開発に携わったことのある方なら、一度は、「システムコール」という言葉を耳にしたことがあるはずだ。しかし、先に挙げたような分野のアプリケーション開発現場で、明示的にシステムコールを利用する開発者は多くない。 システムコールは、低レベルのプログラミングやカーネ

    システムコールについてどれくらいご存じですか?
  • やはりあった? 高速化に効くシステムコール

    やはりあった? 高速化に効くシステムコール:知ってトクするシステムコール(3)(1/2 ページ) 単純にシステムコールを使えば、プログラムの処理速度が一気に上がるという都合のいい話はありませんと説明してきました。しかし、簡単に使えて、ある程度の処理速度向上を見込めるシステムコールも存在します。今回は、このシステムコールを使うと、どうして処理速度が上がるのかということを解説します。この点を理解すると、プログラムの処理速度を上げるための戦略が見えてくるはずです(編集部) 呼び出すとプログラムの処理性能が上がるシステムコール 前回は、システムコールを直接記述する場合には「使い方を間違えると、まったく性能を発揮できないひどいプログラムができてしまう」ということを、実例を交えて紹介した。標準ライブラリの機能はよく考えて作ってあり、特に強い理由や、はっきりとした目的があるというわけでもなければ、システ

    やはりあった? 高速化に効くシステムコール
  • デバッグの基礎

    デバッグは、 正しくないプログラムと、 正しく書いたと信じているプログラマとのずれを見つける作業であり、 プログラム作成における最も難しい段階である。 特に、 プログラムを作成してしばらくしてから バグが見つかった場合には、 ソースコード(とドキュメント)のみが拠り所となるので、 デバッグは困難を究める。 そんなわけで、現実のソフトウェア開発では デバッグしやすい(=保守が行ないやすい)コードを書くことが、 「とりあえず動く」コードを書くことよりも優先する。 (動かなくても保守しやすいコードは直すことができる。 とりあえず動くが保守できないコードは担当者が代わったら捨てるしかない。) なお、不幸にしてプログラマの意図していることが、 そもそも問題解決の手法として誤っていた場合には、 どんなにプログラムが意図通りに記述されていても、正しく動かない。 これは、コーディング前のアルゴリズム設計が

  • http://www.k4.dion.ne.jp/~mms/unix/linux_com/