タグ

linuxとtipsに関するseiunskyのブックマーク (36)

  • 実務で役立つシェル系Tips - Qiita

    パスの末尾に/があるかないかを気にしたくない 文字列を結合してパスを生成したりするときに、パスを格納した複数の変数を文字列結合するときがあります。 dirHome="/var/lib/hoge/" workDirName="work" echo "${dirHome}${workDirName}" # /var/lib/hoge/workと表示される しかし、dirHomeやworkDirNameのような変数をコンフィグファイルで設定していたり、実際に参照するところと定義箇所が遠いときがあると厄介なことが起こりえます。 例えば、下記のようにdirHomeの末尾に/がなかったらどうなりますでしょうか?

    実務で役立つシェル系Tips - Qiita
  • [Linux] crontabで利用できる特殊文字列(日時指定) - よかろうもん!

    特定処理の定期実行をするcrontabの書式は以下のようになっています。 分 時 日 月 曜日 コマンド ですが、この実行日時指定では、"よく利用される日時のショートカット"である特殊文字列を利用することができます。 その特殊文字列は以下のようになっています。 @reboot 起動時に一度だけ実行。 @yearly 年に一度だけ実行 ("0 0 1 1 *" と等価)。 @annually (@yearly と同様) @monthly 月に一度だけ実行 ("0 0 1 * *" と等価)。 @weekly 週に一度だけ実行 ("0 0 * * 0" と等価)。 @daily 一日に一度だけ実行 ("0 0 * * *" と等価)。 @midnight (@daily と同様) @hourly 一時間に一度だけ実行 ("0 * * * *" と等価)。 上記の特殊文字列を利用してcronta

    [Linux] crontabで利用できる特殊文字列(日時指定) - よかろうもん!
  • ターミナルエミュレータに"Ctrlキー+何か"で送信できる範囲 - すぎゃーんメモ

    (※補足記事 2012-02-28: ターミナル上のEmacsで来使えない"Ctrlキー+何か"を使う方法 - すぎゃーんメモ) Emacs.appでC-;(Ctrlキー + セミコロン)をよく使うコマンドに割り当てていたのだけど、思うところあってTerminal上で動くemacsに乗り換えようと思って色々と設定をいじっていたところ、Terminal上ではC-;が効かないことが分かった。 なんでダメなのかTwitterで訊きつつ調べてみた。 Control character - Wikipedia, the free encyclopedia アスキーコードについて調べてみた - 昨日と今日とそれから明日 azurecube » Blog Archive » ターミナル上でのCtrl-記号の扱いについて keybind 自分で理解した範囲では、「Ctrlキーは0x00-0x1Fの制御文

    ターミナルエミュレータに"Ctrlキー+何か"で送信できる範囲 - すぎゃーんメモ
  • PC覚え書き | プログラムのデーモン化

    VvZX(qvZX)Afork()VXeR[gpBVXeR[oAovZXmAvZXRs[B ovZXevZXARs[VvZXqvZXBevZXAqvZXfork()lpB evZXAfork()qvZXvZXIDpAqvZX0pBplAevZXqvZXッBlBAqvZXPvOヲB int main(void){ pid_t child // fork()li[ if( !(child=fork()) ){ // child=0qvZX printf("inchildprocess\n"); exit(0); } // evZXqvZXID\ヲ prinft("inparentprocess:childprocessID=%d\n,child); return 0; }

    seiunsky
    seiunsky 2012/02/22
    ここに詳しく書いてあった
  • 展開コマンドのオプションなんて覚えてられないぜ。 - 落書き、時々落学

    そこで、ぼくは .zshrc に以下のようなことを追加してある。 ちなみに元ネタはArchlinuxのフォーラム。来ならばそこへのリンクを貼るべきなんだけど、もう昔のことなんで、どこから頂いてきたかはもう忘却です。 extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.tar.xz) tar xvJf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7

    展開コマンドのオプションなんて覚えてられないぜ。 - 落書き、時々落学
    seiunsky
    seiunsky 2011/11/02
    便利だなーと思うけど、だいたいこういうのが必要なのはサーバ上での作業の時なのであった。。。
  • シェルスクリプトで標準入力を加工する際の注意点 : DSAS開発者の部屋

    シェルスクリプトで標準入力を加工する際に若干ハマリかけたので、今回はそのお話をしたいと思います。 みなさんのシェルスクリプトライフの一助になれば幸いです。 標準入力を加工するシェル関数、例えば、 入力を文とするメールを送るシェル関数 ログを入力として受け取り、集計や解析をするシェル関数 を書く場合、みなさんどういう風に書いているでしょうか。 私は今までこんな風に書いていました… send_mail() { from='sender@example.org' to='receiver@example.org' { echo "From: ${from}" echo "To: ${to}" echo "Subject: test" echo cat - } | qmail-inject -A -f${from} } make_mail_body | send_mail これの何が問題かという

    シェルスクリプトで標準入力を加工する際の注意点 : DSAS開発者の部屋
    seiunsky
    seiunsky 2010/10/26
    標準入力やパイプからの入力を調べる
  • SSH と shell の補完 (completion)

    SSH と shell の補完 (completion) について少々調べました.(2005/3/13 すこし改訂) 注: 調べた環境は Debian unstable です.version は Debian のパッケージの version です. OpenSSH 4.0より, known_hostsファイルにおいて生のホスト名やIPアドレスを記録せず, ハッシュ値を記録することができるようになりました. これはログインしたホストの情報を他者に知られないようにするための機能です. この機能はいまのところデフォルトでは無効ですが, 将来有効なる模様です. この機能を利用する場合, known_hostsファイルを利用する補完が利用できなくなります. またもしこの機能を利用するならば, シェルの履歴ファイルにおいて, sshなどのコマンドの記録を取らないようにしなければならないでしょう. ba

    seiunsky
    seiunsky 2010/03/28
    zsh の _cache_hosts に known_host の値を読み込ませる
  • ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ
    seiunsky
    seiunsky 2010/03/15
    おお、ちょうど書式を調べようと思っていたところ
  • ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ

    ぼくは長年こういう方法で管理してますよ、というお話です。Linuxです。 ディレクトリレイアウト概観 たとえば、asoとbmdという名前のソフトウエアをインストールしている状態はこんな感じ: /usr/local/ ┬ app/ ┬ aso → aso-1.3 │ ├ aso-1.2/ ┬ bin/ ┬ armored │ │ │ └ scrum │ │ ├ sbin/ ─ syd │ │ └ share/ ─ man/ │ ├ aso-1.3/ ┬ bin/ ┬ armored │ │ │ └ scrum │ │ ├ sbin/ ─ syd │ │ └ share/ ─ man/ │ ├ bmd → bmd-2.0 │ └ bmd-2.0/ ┬ bin/ ─ tri │ ├ include/ ─ angle.h │ └ lib/libsnk.so.2.0.0 ├ bin/ ┬ armor

    ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ
    seiunsky
    seiunsky 2009/12/17
    なんとなく同じようなことをやっていたけど、こうやって体系だって書いてあると助かる><
  • ウノウラボ Unoh Labs: サーバのネットワーク速度の調査/測定方法

    こんにちは。kyagi です。先日データセンタ内のサーバ群のうち、なぜか特定の1台だけネットワークの速度が極端に遅いという問題がありました。今回はサーバマシンのネットワーク速度の測定方法と原因についてお話しします。同様のトラブルが発生している方のお役に立てば幸いです。問題解決までの手順としては以下になります。 1. 現在の状態を調べる 2. ハード/ソフト含めて考えられる原因をいくつか挙げる 3. 原因について改善されるまでひとつひとつ検証していく まず現在の NIC の HW 情報とドライバを lspci で調査します。ここでは Broadcom の NetXtreme BCM5722 という NIC を使用していることがわかります。 # lspci -vvv | grep Ether 01:00.0 Ethernet controller: Broadcom Corporation

  • lsyncdをつかって簡単にファイル同期を - UNIX的なアレ

    lsyncdというツールをご存じでしょうか?これを導入することで、リモートのホストとディレクトリ単位で同期をすることができます。 先日のエントリーでも紹介していますが、実は設定や導入がすごく簡単です。した設定でリモート間でファイルの同期をとれるのはやはり便利ですよね。 さて、今回はlsyncdの簡単な導入方法を紹介したいと思います。 lsyncdの仕組み lsyncdはlinux kernel2.6.13で導入された、inotifyというAPIをつかって動作しています。 inotifyはファイルシステムのイベントを取得することができるAPIで、ファイルの作成や削除などをそれぞれイベントとして取得をすることができます。 この仕組みと、rsyncを組み合わせてファイルの同期を行うことを実現しています。 lsyncdのインストール まず、以下のページからsourceをダウンロードしてください。

    lsyncdをつかって簡単にファイル同期を - UNIX的なアレ
    seiunsky
    seiunsky 2009/09/14
    ssh経由はどんな感じなのかな・・・
  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

    ディレクトリの中にある大量のファイルを高速に読み込む方法が知りたかったので、実験してみた。想定しているシチュエーションは、一つ一つのファイルは数KB程度だが数が多い、という場合である。適当な順番でアクセスすると、ランダムアクセスになってしまいとても時間がかかる。個々のファイルを読み込む順番はどうでも良く、すべてのファイルを処理することさえできればいいので、原理的にはシーケンシャルアクセスで処理できてしかるべきである。 まず、ファイルシステムについて。HDDやSSDなどのハードウェアにアクセスする際には、ファイル名などという概念はもちろん存在しない。ファイル名と実際のディスク上の対応を管理するのがファイルシステムの主な役割である。ファイルシステムは、ファイル名からそのファイルに対応するブロック番号(メモリアドレスみたいなもんだな)を調べて、そのブロック番号を指定してHDDやSSDにアクセスす

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
    seiunsky
    seiunsky 2009/07/28
    inodeでシーケンシャルにアクセスしてディスクアクセスを高速化する
  • bashrc設定切り分け - hogelogの日記

    HOMEをNFS共有してるのでこんな感じにFreeBSD環境、Linux 64bit環境、Linux 32bit環境と切り分けてる。 if [ `uname` = "FreeBSD" ]; then source $HOME/.shell.d/bashrc.bsd elif [ `uname` = "Linux" ]; then source $HOME/.shell.d/bashrc.linux if [ `uname -m` = "x86_64" ]; then source $HOME/.shell.d/bashrc.linux64 elif [ `uname -m` = "i686" ]; then source $HOME/.shell.d/bashrc.linux32 fi else echo "Unknown Machine" fi

    bashrc設定切り分け - hogelogの日記
    seiunsky
    seiunsky 2009/06/23
    rcファイルの分け方
  • Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改

    sshにはダイナミック転送という機能がある。この機能を使うと、sshはアプリケーション側にはSOCKSプロクシとして振る舞うが、そこからsshの接続先までは暗号化された状態で通信が行われる。 これだけだと通常のトンネリングとどう違うのかよくわからないかもしれないが、ダイナミック転送の場合は転送ポートを指定する必要がない。ここがダイナミックと表現される所以だろう。 例えば、オフィスAにある開発サーバdev1にオフィス外からアクセスしたいとする。しかし、dev1はオフィス外には公開されておらず、踏み台サーバladd1を経由してしかアクセスするしかない。ladd1はsshのみが動いており、これまではsshのトンネリング機能を使ってアクセスしてきたのだが、ウェブアプリケーションをデバッグする際はいちいちウェブアプリケーションのポート毎にトンネルを掘るのが面倒くさい。オフィスに限らずデータセンターへ

    Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改
  • 実行中のアプリケーションを外から観察するコマンド。 - こせきの技術日記

    strace システムコールをトレース。カーネルと何を話しているか。 strace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 straceを使ったデバッグ - SourceForge.JP Magazine : オープンソースの話題満載 Linuxカーネルの作り出す世界 − @IT自分戦略研究所 - ふつうのLinuxプログラミング 青木峰郎 システムコールとライブラリ関数 − @IT自分戦略研究所 システムコール・ライブラリルーチン - UNIX の部屋 ltrace 共有ライブラリの呼び出しをトレース。*.soと何を話しているか。 ltrace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ 404 - エラー: 404 - Linux JF ƒ‰ƒCƒuƒ‰ƒŠ‚ÌŠ

    seiunsky
    seiunsky 2009/06/22
    低水準な動作を調べる時に。
  • » セキュアなサーバを作るために最低限やっておくこと: エスキュービズム ラボ Blog

    Recent Entries セキュアなサーバを作るために最低限やっておくこと Yahooキーワード抽出APIライブラリ テスト駆動開発 (test driven development: TDD) のすすめ GoogleAnalyticsAPI on EC-CUBE 土日で作るコンパイラ OPEN ERPに挑戦3 OPEN ERPに挑戦2 OPEN ERPに挑戦 ERPはたくさんあれど・・・ OpenGLで3D、やってみよう Recent Comments No Responses. Recent Trackbacks テスト駆動開発 (test driven development: TDD) のすすめ 06/11 » Yahooキーワード抽出... みなさんはサーバを管理するときに、何を一番気にしますか? 人によって程度の差はあるのでしょうが、誰もが気になるのが「セキュリティ」でしょ

    seiunsky
    seiunsky 2009/06/22
    うほ、これは良いまとめ
  • Bash&シェルスクリプトを極めるテクニックまとめ | OSDN Magazine

    UNIXやLinuxのエキスパートになるのに避けて通れないのが、Bashに代表されるコマンドラインシェルによる操作だ。そこで記事では、「Bashのカスタマイズ」「シェルスクリプトの高等テクニック」「Bash以外の高機能シェル」の3つについて、SourceForge.JP Magazineで過去に掲載された解説記事を紹介する。 Bashをカスタマイズして使いこなす Bashは非常にカスタマイズの幅が広く、またちょっとした改良や簡単なシェルスクリプトの利用により、大きく作業効率が改善する。ここでは、Bashのカスタマイズテクニックを解説する記事を紹介する。 コマンドラインでシェルのエイリアスと関数を使って作業を効率化する GNU/Linuxシステムを最大限に活用するには、やはりコマンドプロンプトとシェルスクリプトへの習熟が欠かせない。とはいえ、そうした処理はなるべく手早く済ませたいものだ。

    Bash&シェルスクリプトを極めるテクニックまとめ | OSDN Magazine
    seiunsky
    seiunsky 2009/06/12
    これは良い。・・・普段、zsh 使ってるけれども。
  • Open Tech Press | シェルスクリプトで引数をパースする

    2007年7月20日10:10 Carl-Albing、JP-Vossen、Cameron-Newham(2007年7月17日(火)) 自作のbashのシェルスクリプトで何らかのオプション、すなわちスクリプトの動作を変更するためのフラグを使えるようにしたいとしよう。このような場合、${#} を使って与えられた引数の個数を取得したり、${1:0:1}を使って最初の引数の最初の文字が「-」かどうかを判定したりするなど、直接自分でパースすることもできるが、自分でパースする場合には、与えられたオプションが何であるかとか、引数を取っているかどうかとかを確認するためにif/thenやcaseなどを使ったコードを自分でさらに書き足す必要があるだろう。 しかしそうしたところで、例えば、続けてその後に引数を指定する必要のあるオプションに対して必要な引数をユーザが与えなかった場合、あなたの自作のルーチンはどう

    Open Tech Press | シェルスクリプトで引数をパースする
    seiunsky
    seiunsky 2009/06/12
    getopts なんて組み込みであるのか!!! ちなみに、zsh にも同様の機能はあるっぽい
  • sshでrootログインの禁止

    はじめまして。sakuma85です。  この前覚えました、sshでのスーパーユーザー(root)権限での 、 ログイン禁止の方法をご紹介します。 サーバー乗っ取られ防止の初歩的な対策です。 (注意:ssh先にroot以外のユーザーがいないと、sshログインできなくなっちゃいます。)  続きはこちら http://doruby.kbmj.com/sakuma85_on_rails/20080228/ssh_root_1

  • mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ

    MySQLでいちいちshow tables;とか打つのがだるい。\tみたいなalias設定できないのかなぁ http://twitter.com/weboo/status/1658300902 おぉ、readlineのマクロを使えばいいのかー http://twitter.com/weboo/status/1658314333 なるほ!ってことでちょっと設定してみました。 # ~/.inputrc $if mysql "\C-xd": "show databases;" "\C-xt": "show tables;" "\C-xu": "select user,host,password from mysql.user order by user,host;" "\C-xb": "select user,host,db from mysql.db order by user,host;"

    mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ