タグ

unixに関するblueleのブックマーク (34)

  • Unix Programming Frequently Asked Questions 日本語訳 - Table of Contents

    このFAQについて 1 プロセス制御 1.1 新しいプロセスの生成: fork() 1.1.1 fork()は何をするのですか? 1.1.2 fork()とvfork()の違いは何ですか? 1.1.3 forkによる子プロセスを終了するときにexitよりも_exitを使うのはなぜですか? 1.2 環境変数 1.2.1 どうすればプログラム内で環境変数の値を取得・設定できますか? 1.2.2 どうすれば全ての環境変数を調べられますか? 1.3 どうすれば一秒未満のsleepができますか? 1.4 粒度の細かいalarm()はどうすれば得られますか? 1.5 どうすれば親プロセスと子プロセスの間で通信できますか? 1.6 どうすればゾンビプロセスができることを防ぐことができますか? 1.6.1 ゾンビプロセスってなんですか? 1.6.2 どうすればゾンビプロセスになることを防げますか? 1.7

    bluele
    bluele 2013/11/05
  • bashのプロンプトを変更するには - @IT

    Linuxの標準シェルであるbashでは、PS1という環境変数によってプロンプトを定義している。従って、exportコマンドでPS1を変更すればいい。 デフォルトでは「[ユーザー名@ホスト名 カレントディレクトリ]」というプロンプトになっている。これを単純に「$」というプロンプトに変更するには、以下のコマンドを実行する。

  • IDEA * IDEA

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

    IDEA * IDEA
  • プロセス間の期限付き排他ロック - (ひ)メモ

    追記 2013-03-04 [twitter:@dankogai] さんにも言及されてました>< 404 Blog Not Found:perl - soloで任意のコマンドを期限付きで排他実行する 追記 2013-03-01 つづきを書きました。 続・プロセス間の期限付き排他ロック - (ひ)メモ 追記 2013-02-27 コメント欄でのやりとりの通り、穴がある(クリティカルセクションに複数プロセスが突入する可能性がある)のでちょっと出直してきます!! やりたいこと プロセス間の排他的実行を制御したい 一定時間経過したら実行できるようにしたい 例えば、フェイルオーバーを実行するスクリプトは、何度も実行できるとフェイルオーバー/バックを繰り返してフラップするので、一度フェイルオーバーしたら一定時間は実行できないようにしたい 実装 シンボリックリンクを使って排他制御する 期限切れは、シンボ

    プロセス間の期限付き排他ロック - (ひ)メモ
  • Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる

    GNU/Linuxに慣れてると、よく打つtop/ps/netstatがOS X使ってるときにLinuxのそれと全然ちがう挙動で使いにくい。同じ挙動にするのman見ても無理そうなんで、なんとか同じように使えるのないか調べてみた。 top htopならLinuxとOS Xで同じように使えるのでhtopを使うとよさそう。 brew install htop-osx ps psのいい代替は見つからなかったけど、ps auxfのようにツリー表示したいときの代替はpstreeを使うとよさそう。 brew install pstree netstat netstatはnetstat -tnpaとかnetstat -tnplをよく使うけど、前者はlsof -nP -iTCP、後者はlsof -nP -iTCP -sTCP:LISTENで代替できそう。 $ sudo lsof -nP -i4TCP -sTC

    Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる
  • chown - ファイルの所有者を変更

  • 技術メモ帳 - pgrep, pkill を使用してプロセスを殺す

    最近、会社でシェルの操作方法について教えているのだが、 pgrep / pkill / skill / pidof といった 便利なプロセス操作系コマンドを知らない人が実に多い。 プロセスを殺すというのは、よくある作業なので 今回はコレについて書いてみる。 たとえば、これらのコマンドを知らない人が、 指定した名前のプロセスを kill する手順はだいたい 以下のようなものになることだろう。 $ ps aux | grep プロセス名 | grep -v 'grep' # コマンドの出力結果から pid を目で確認 12345 ... .. hoge .. .. $ kill 12345 この作業は非常に面倒で退屈だ。 もし殺さなければならないプロセスがたくさんあったときは どうするのだろうか。 おまけに、grep コマンド自身が候補に含まれてしまう事があるのだが、 grep -v grep

  • tar/zipコマンドで解凍・圧縮一覧まとめ(gz、zip、tar.xzなど)

    現在の場所 : ホーム > ネットの基礎知識 > tar/zipコマンドで解凍・圧縮一覧まとめ(gz、zip、tar.xzなど)

    tar/zipコマンドで解凍・圧縮一覧まとめ(gz、zip、tar.xzなど)
  • @IT:Linuxでsshの鍵を作成するには

    鍵交換方式のsshでアクセスするにはでは、PuTTY用の鍵生成ソフトputtygen.exeを使ったが、Linuxでも鍵を作成することができる。Windowsで鍵を作成すると、OpenSSHで認識できるように変換する作業が必要となるが、puttygen.exeにはOpenSSHの鍵を読み込む機能があるので、Linuxで鍵を作成した方が手間は少なくて済む。 Linuxで鍵を作成するには、ssh-keygenコマンドを使用する。RSA暗号方式の鍵を作成するときは「-t rsa」オプションを、DSA暗号方式の鍵を作成するときは「-t dsa」オプションを付加する。 $ ssh-keygen -t rsa ←RSA暗号方式の鍵を作成 Generating public/private rsa key pair. Enter file in which to save the key (/home/

  • いまさら聞けない、#! で始まる1行目の名前とenv指定時の挙動 - 基本へ帰ろう

    シェルスクリプトであれば1行目に #!/bin/sh と書くと思うのですが、1行目の名前や挙動についてよく分かってなかったので調べてみました。 名前 シバン (Unix) - Wikipedia シバンまたはシェバン (shebang) とはUNIXのスクリプトの#!から始まる1行目のこと。起動してスクリプトを読み込むインタプリタを指定する。 hash-bangまたはsharp-bangとも言うが、後者を縮めたshebangという呼び方が一般的かつシンプルである。 シバンというのですね。 用語集:シェバング: UNIX/Linuxの部屋 この「#!」のことを「シェバング」(shebang) と呼ぶ。また、この行全体を「シェバング行」と呼ぶこともある。シェバングの語源は「sharp bang」「shell bang」など、いくつかあるようだ。 なぜ、#! なのか 用語集:シェバング: UNI

    いまさら聞けない、#! で始まる1行目の名前とenv指定時の挙動 - 基本へ帰ろう
  • Free Dynamic DNS(DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, VPS | MyDNS.JP

    www.uetyi.mydns.jp is not accessible... Sorry. I do not know why this site is not working. If you know Administrator of this site, please contact directly. You may be able to see it in Google cache. For administrator ... MyDNS.JP did not received IP address from you over One week. Please check your notify system. If you restart notification of IP address, MyDNS.JP will apply your IP address to DNS

  • manページをテキストファイルにすると文字化けしてしまう

    「man ls > ls.txt」というコマンドを実行してls.txtを表示すると、文字の間に「^H」が入ってしまう これは、manページを表示する際に、特定の文字を強調する目的で画面の制御コードが挿入されるためだ。つまり、強調表示の制御コードを取り除けば、文字化けのないテキストファイルにすることができる。

    bluele
    bluele 2012/08/04
  • ログアウトしてもバックグラウンド ジョブを継続する方法

    はじめに SSH 接続で時間の掛かるシェルスクリプトをバックグラウンドで走らせて帰りたいのに、SSH 接続を切るとジョブが死んでしまいます。SSH 接続に限らず目の前の OS からログアウトしたりターミナル エミュレータを終了しても同じ現象が起こります。 この症状は正常です。なぜなら、バックグラウンド ジョブを起動したプロセス(ログイン シェル)が子プロセスである該当のバックグラウンドジョブをハングアップ シグナル( HUP )によって終了させるからです。 シェルスクリプトを起動した親プロセスは子プロセスの終了状態を監視しています。ですからログアウトして親プロセスであるシェルが終了すると子プロセスはゾンビ プロセスとなってしまうので親プロセスとなるシェル(ログインシェル)は子プロセスであるバックグラウンド ジョブを kill ( kill -HUP ) するのです。 nohup コマンド

    ログアウトしてもバックグラウンド ジョブを継続する方法
    bluele
    bluele 2012/07/20
  • 改行コードの変換コマンドについて跡地 - 試験運用中なLinux備忘録・旧記事

    (2016/4/12)記事は「Linuxで使える、エンコーディングと改行コードの変換コマンド」へ移動した。

    改行コードの変換コマンドについて跡地 - 試験運用中なLinux備忘録・旧記事
  • 時代はGNU screenからtmuxへ - このブログはURLが変更になりました

    GNU screenはもう古いので皆さんtmuxへ移行しましょう、という話。Gentooならemerge tmux。 スクリーンショット 手元のtmuxを撮ってみた。縦分割モード。ウィンドウマネージャはawesome。左のircクライアントはweechat。 家にもいくつかスクリーンショットがある。 tmuxへ移行する理由(メリット) 標準設定のままでもそれなりに使えるステータスバー 各ショートカットがコマンドベース(コマンドで操作ができる) 標準で縦分割機能搭載 GNU screenがたまに固まる問題(が発生するのは私だけ?)が発生しないかも ビュー専用のスクロールモード 柔軟なペイン制御 コピー&ペースト用のバッファを複数保持できる terminfo的にscreen互換 メモリ消費量が少ない(GNU screenの約1/5) 一部機能でマウスが使用できる(mode-mouse, mo

    時代はGNU screenからtmuxへ - このブログはURLが変更になりました
  • Linux I/O のお話 write 編 - naoyaのはてなダイアリー

    write はページに dirty フラグを立てるだけなので決してユーザープロセスを待たせない って、当にそうなんでしょうか?(否定しているわけではなく、純粋な疑問です。) と質問をもらったので、最近追ったことをここでまとめます。かなり長文です、すいません。また、まだまだ不勉強なので間違っているところもあるかもしれません。ツッコミ大歓迎です。 まず、オライリーのカーネルの 15章 ページキャッシュ 15.3 汚れたページのディスクへの書き込み から引用。 ご存知のように、カーネルは、ブロック型デバイスのデータを含むページをページキャッシュに蓄えています。プロセスが何らかのデータを更新した場合は、必ず対応するページに汚れている印をつけます。すなわち、PG_dirty フラグを設定します。 UNIX システムでは、汚れたページのブロック型デバイスへの書き込みを遅延することができます。この方

    Linux I/O のお話 write 編 - naoyaのはてなダイアリー
  • Understanding the bin, sbin, usr/bin , usr/sbin split

    Understanding the bin, sbin, usr/bin , usr/sbin split Rob Landley rob at landley.net Thu Dec 9 15:45:39 UTC 2010 Previous message: Applet for detecting the filesystem type. Next message: Understanding the bin, sbin, usr/bin , usr/sbin split Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] On Tuesday 30 November 2010 15:58:00 David Collier wrote: > I see that busybox spreads it's link

    bluele
    bluele 2012/02/02
  • Geekなぺーじ : selectを使う

    普通の状態では、readやrecvfromはデータが受信できるまでブロッキングします。 ソケットを一つしか利用していない場合にはブロッキングは非常に便利なのですが、ソケットが複数になると困ってしまいます。 複数のソケットを扱うとき、片方のソケットでブロッキングしたままになってしまうと他のソケットにデータが到着しても受信が出来なくなってしまいます。 そのため、複数のソケットを扱っていると、どのソケットからデータが受信可能か知りたくなります。 ブロッキングとは、関数が返ってこない事を表します。 例えば、readはデータを受信して関数が戻ってきます。 言い方を変えると、データを受信するまでブロックしています。 readやrecvfromをブロッキングしないノンブロッキング方式で使う事も可能ですが、ここではブロッキング方式のまま使う方法を説明します。 そのような機能を提供するのがselectです。

  • Programming UNIX Sockets in C - Frequently Asked Questions: クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問

    Previous Next Table of Contents 2. クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問 2.1 相手側のソケットが閉じられたことをどうやって知ることができますか? Andrew Gierth 氏 ( andrew@erlenstar.demon.co.uk) より: 私の知る限り… 相手側が (SO_LINGER を使ったややこしいことをしないで) close() するか終了したとすると、こちらの read() の呼び 出しは 0 を返すはずです。同じ場合で、write() 呼び出しで何が 起こるかは、もうちょっとわかりづらいです。直後の呼び出し時ではな く、その次の呼び出し時にEPIPE が返るでしょう。 もし相手が再起動するか l_onoff = 1, l_linger = 0 を設定して から閉じたとすると、read() からは(

  • UNIX v6で削除したファイルの復元をしてみた - やる気のないブログ(A boring diary)

    はじめに 先日、Lions' Commentary on UNIXの読書会に参加したときにUNIX v6のファイルシステム周りのコードを読みました。 ファイルのクローズ・削除のあたりを読んでいたときに、あることに気づきました。 「ファイル削除するときに、ブロックデバイスのデータを扱う領域からデータそのものは消していなくね?」 今回は、simh + PDP11を使った実験により、それを確かめてみました。さらに、削除したファイルの復元(?)も行ってみました。 追記:このエントリを書き終ってから気づきました。inode numberはemulator上の"ls -i"で確認できると…… まずは事前準備 simh + PDP11を使って、UNIX v6 emulatorにログインし、以下のような環境を構築しました。 # chdir /work # ls a.out hoge.c # cat hog

    UNIX v6で削除したファイルの復元をしてみた - やる気のないブログ(A boring diary)