タグ

shellに関するnobu666のブックマーク (22)

  • 紛らわしいけど重大な違いを引き起こすリダイレクト - ザリガニが見ていた...。

    何事もそうなのだけど、一文字違ったとか、順序が逆だったとかで予想とはだいぶ違う結果になってしまうことって、よくある。コマンドも然り。 環境:MacBook OSX 10.6.7 bash 疑問:コマンドの出力結果(標準出力と標準エラー出力)をすべて破棄したい。以下の例で正しい書き方はどれだろうか? $ echo ABC >& /dev/null #......1 $ echo ABC &> /dev/null #......2 $ echo ABC >/dev/null 2>&1 #...3 $ echo ABC >/dev/null 2&>1 #...4 $ echo ABC 2>&1 >/dev/null #...5 $ echo ABC 2&>1 >/dev/null #...6 検証 1 $ echo ABC >& /dev/null # 正解!(csh, tcsh 系の書き方)

    紛らわしいけど重大な違いを引き起こすリダイレクト - ザリガニが見ていた...。
  • Linux上でシェルが実行される仕組みを,体系的に理解しよう (bash 中級者への道) - 主に言語とシステム開発に関して

    バッチのまとめTOPへ bash 初級者は,簡単なコマンドが並んだだけの小さなスクリプトを書くことができる。 しかしシェルの動作原理をよく理解しておらず, 一歩進んだことをやろうとするとつまずく。 シェルスクリプトの中級者になるためには, Linux上でシェルが動作する仕組みを体系的に理解しておく必要がある。 (1) シェルとコマンドについて (1−1) シェルとは,OSに命令を出すために,OSを包んでいる外膜である。 (1−2) Linuxログイン時には,そのユーザ用のログインシェルが起動する。 (1−3) ユーザが打ち込んだコマンドは,実行前に,bashによって整形される。 (1−4) コマンドの先頭の文字列は,実行可能ファイルか,またはbashの組み込みコマンドである。 (2) コマンド間の連携について (2−1) コマンド呼び出しとは,サブプロセスの生成である。 (2−2) 親プロ

    Linux上でシェルが実行される仕組みを,体系的に理解しよう (bash 中級者への道) - 主に言語とシステム開発に関して
  • GNU Parallel を本番環境で使ってみました | Carpe Diem

    GNU parallel を番環境で使ってみました。 番環境では、10 台程度ある Apache のウェブサーバのアクセスログを mod_log_rotate で 1 時間ごとに出力して、バッチ処理のサーバで集めています。 最初は、シェルスクリプトで、次のようにしていました。 次の例はウェブサーバが s1 〜 s10 まであって、$LOG_DIR/$LOGFILE に 1 時間ごとに出力したアクセスログがあると想定しています。当然ながら、下記のシェルスクリプトの実行ユーザで対象のサーバへ SSH 経由に接続できるものと想定しています。 for s in s1 s2 s3 s4 s5 s6 s7 s8 s9 s10; do ssh -q $s "test -f $LOG_DIR/$LOG_FILE" RETVAL=$? if [ $RETVAL -eq 0 ]; then rsync -

  • 自分好みの環境をsudo時にも使えるようにする - 絶品ゆどうふのタレ

    以下のように.*shrcに記述しておくと、自分のshellで設定した内容のほとんどをsudo後にも引き継ぐことが出来て、ちょっと便利。 alias sudo='sudo -E ' これだけ。これは2つのことをやっていて 実行ユーザーの環境変数の大部分をsudo後も引き継ぐ 実行ユーザーのalias設定をsudo後も引き継ぐ という効果がある。 環境変数の引き継ぎ 前者の、環境変数の引継を実現しているのは、-Eオプション。 これは、正確には環境変数を引き継いでいるのでは無く、sudoersで設定されているenv-resetを無効にする効果がある。 そのため、$USER/$LOGNAME/$PATHなどの環境変数は(defaultでは)rootで上書きされるのだが、$HOMEは実行ユーザーのままだったり、$LV/$EDITORなども引き継がれたりする。 もちろん、これはsudoersのenv周

    自分好みの環境をsudo時にも使えるようにする - 絶品ゆどうふのタレ
    nobu666
    nobu666 2011/03/29
    alias sudo='sudo -E '
  • 1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す | OSDN Magazine

    リモートマシンへのログインやファイルのコピーなど、システム管理作業全般でSSHを利用する機会は多い。SSHでの作業を効率よく進めるには、複数のリモートマシンに対してコマンドを同時に実行できるツールを使ってみるとよいだろう。この記事では、Parallel ssh、Cluster SSH、ClusterItという3つのツールを紹介する。いずれも、単一のターミナルウィンドウで入力したコマンドを、対象となる複数のリモートマシンに対して一斉に送ることができる。 こうしたツールを使わずに、openSSHで複数ホストに対する処理を行うことも不可能ではない。たとえば、実行するコマンドを記述したファイルを作成し、bashのforループを使って、複数のリモートホストに対して順次実行していけばよい。だが、ツールを使うことにはメリットがある。その1つは、複数のホストで並行してコマンドを実行できる点だ。短時間で完了

    1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す | OSDN Magazine
  • daemontoolsのrunファイルで、exec COMMANDじゃなくてshを介してexec sh -c 'exec COMMAND'する理由 - (ひ)メモ

    だいぶ昔になんでかなーなんでだろーなーと思ったこと: dnscache-confで作ったrunファイルが、 #!/bin/sh exec 2>&1 exec <seed exec envdir ./env \ envuidgid dnscache softlimit -o250 -d "$DATALIMIT" /usr/local/bin/dnscache じゃなくて、こんなふうに、 #!/bin/sh exec 2>&1 exec <seed exec envdir ./env sh -c ' exec envuidgid dnscache softlimit -o250 -d "$DATALIMIT" /usr/local/bin/dnscache ' わざわざshをexecして、そのshのなかでお目当てのプログラムを起動してたこと。 で、今日、某IRCチャンネルみてて気がついたんです

    daemontoolsのrunファイルで、exec COMMANDじゃなくてshを介してexec sh -c 'exec COMMAND'する理由 - (ひ)メモ
  • 技術メモ帳 - zsh/filesで引数の最大バイト数を回避する

    zshmodules の zsh/files を利用すると、 chgrp, chown, ln, mkdir, mv, rm, rmdir, sync といったコマンドが、 zsh組み込みの関数に置換えられる。 メリットとしては、 移植性が高くなる、 引数文字列の最大バイト数の制限を受けなくなる ということが挙げられるだろう。 このうち、特に僕が便利だなと思っているのが、 引数文字列の最大バイト数の制限を受けなくなるということだ。 簡単に説明すると、 通常、コマンドを実行するときに 引数文字列のバイト数が一定の値を越えると 以下のようにエラーを出して処理をしてくれない。 % mv ./* ../dir zsh: argument list too long: mv そして最悪な事にコレは、 グロブなどを展開した後の文字列のバイト数であるため、 zsh の extended_glob とは非

  • 最近のMac OSXで、PATHをスマート(?)に管理するやり方。 - こせきの技術日記

    MacPorts用の/opt/local/binなどを全ユーザのPATHに設定したくて、やり方を調べました。 ~/.profile(zshなら~/.zprofile)に設定してもいいのですが、これだとユーザごとに設定しなければなりません。できれば全てのユーザに対して、デフォルトで/opt/local/binを優先したいところです。 path_helperを使う。 以下のファイルを見ると、 /etc/profile /etc/zprofile /etc/csh.login 全部が/usr/libexec/path_helperを読み込んでいます。path_helperの冒頭のコメントを見てみます。 /usr/libexec/path_helper #!/bin/sh # # Each line of the text files in /etc/paths are directories t

    最近のMac OSXで、PATHをスマート(?)に管理するやり方。 - こせきの技術日記
  • 早速bash4.0の新機能をレビューしてみた - 計算機と戯れる日々

    bash4が出た。bash4とzshの違いが気になっていた自分としてはいてもたってもいられずコンパイル&実験してみた。 取得、コンパイル、インストール 簡単だった。 wget http://ftp.gnu.org/gnu/bash/bash-4.0.tar.gz tar xzf bash-4.0.tar.gz cd bash-4.0 ./configure make sudo make install サブディレクトリを再帰的にファイル検索するglobstar shopt -s globstarすると再帰的にマッチする*である ** が使えるようになる。 $ mkdir -p a/b a/c/d a/e/f a/e/g ; touch a/A a/b/B a/c/C a/c/d/D a/e/E a/e/f/F a/e/g/G $ for i in a/** ; do echo $i ; d

    早速bash4.0の新機能をレビューしてみた - 計算機と戯れる日々
  • All commands

    The 30 means start extracting frames from 30 seconds into the video. The 3 means extract the next 3 seconds from that point. The fps can be adjusted based on your preferences. The 320 is the width of the gif, the height will be calculated automatically. input.mp4 is the video file, which can be any video file ffmpeg supports. The output.gif is the gif created. ffmpeg -ss 30 -t 3 -i input.mp4 -vf "

  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

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

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • ウノウラボ Unoh Labs: シェルの仕組み(前編)

    尾藤正人(a.k.a BTO)です 社内勉強会でシェルの仕組みというのをやってみましたので、資料を公開します。 シェルはUNIXを使う上で、必ず使用される非常に身近なツールです。 毎日使用しているツールにも関わらず、具体的にどのような動作をしているのか知らない方も多いのではないのでしょうか。 シェルの使い方に関する情報はたくさんありますが、シェルの実装についての情報はほとんどないなと思ってシェルを題材に取り上げました。 シェルにはUNIXプログラミングのエッセンスがぎっしりつまっています。 シェルの内部の仕組みが分かるようになると、UNIXプログラミングが分かるようになると言っても過言ではないのかもしれません。 シェルの仕組み(前編) - Upload a Document to Scribd 社内勉強会中にustreamで動画を流していたのですが、動画を保存するのを忘れてしまいました。

  • CLIマジック:使って役立つワンライナー入門 | OSDN Magazine

    通常この分野におけるワンライナー(one-liner)とは、パイプ(|)という機能を用いて複数のコマンドを1行にまとめたものを意味する。パイプの機能は、その左側に記述されたコマンドの実行結果を、右側に記述されたコマンドの入力として渡すことである。稿で解説するのはbashコマンドプロンプトでの使用例だが、簡単な構成のワンライナーにせよ複雑な構成のワンライナーにせよ、これらはいずれも使い方次第で大いに役立つ存在なのだ。 例えば、カレントのディレクトリに何個のファイルが置かれているかを確認するには、下記のコマンドを実行すればいい。 ls | wc -l これは最も簡単な部類に属すワンライナーのサンプルであって、状況によってはより複雑な記述をすることになる。例えば、手元のシステムにて実行中のプロセスのうちでCPU時間を最大限に消費しているもの上位5つを特定するには、下記のコマンドを実行すればいい

    CLIマジック:使って役立つワンライナー入門 | OSDN Magazine
  • cmd.exeとchcp.comだけで、文字コード(Unicode、UTF-8、UTF-7、JIS、EUC-JP、SJIS)を変換する! - Windows Script Programming

    cmd.exeとchcp.comだけで、文字コード(Unicode、UTF-8、UTF-7、JIS、EUC-JP、SJIS)を変換する! Unicode、UTF-8、UTF-7、JIS、EUC-JP、SJISなどの文字コードがcmd.exeとchcp.comだけで変換できます。 Unicode → 各種文字コード UTF-7.cmd Unicodeファイル UTF-7ファイル start /min /wait cmd /c chcp.com 65000 ^& cmd /c type %1 ^>%2 UTF-8.cmd Unicodeファイル UTF-8ファイル start /min /wait cmd /c chcp.com 65001 ^& cmd /c type %1 ^>%2 JIS.cmd Unicodeファイル JISファイル start /min /wait cmd /c ch

    cmd.exeとchcp.comだけで、文字コード(Unicode、UTF-8、UTF-7、JIS、EUC-JP、SJIS)を変換する! - Windows Script Programming
  • lsコマンドを使いこなす - builder by ZDNet Japan

    lsコマンドはディレクトリの内容をリストアップするもので、よく知られており、使用頻度も高いコマンドラインプログラムだ。実際、lsはもっともよく使われるコマンドラインプログラムだと言ってもいいかもしれない。 $ ls MD5SUMS annvix-netinstall-i586-2.0-RELEASE.iso bin mc-vdanen 上記で示した一番基的な使い方に加え、lsコマンドには追加の情報を表示するための多くのオプションを持っている。ディレクトリの中にある、隠しファイルも含めたすべてのファイルの長いリストが欲しければ、次のオプションを使う。 $ ls -la total 363604 drwx------ 3 vdanen vdanen 91 Jun 2 16:02 . drwx--x--x 18 vdanen vdanen 4096 Jun 2 15:07 .. -rw-r--

  • Windows の基本的なコマンド集 - IT戦記

    まずは、コマンドプロンプトの基的な部分を使えるようにならないと。。ということで nul ファイル Unix の /dev/null のようなもの サイレントにコマンドを実行 > verbose-command > nul 空のファイルを作る > type nul > hoge.txtこーんな感じでコピーができる 環境変数 PATH 、 PATHEXT PATH という環境変数にディレクトリを登録しておくと、そのディレクトリ内の実行ファイル(環境変数 PATHEXT で指定された拡張子を持ったファイル)がファイル名だけで実行できるようになります。 PATHEXT に .TXT を指定してみる 以下のようにすると .txt に関連付けられたアプリケーション(メモ帳)で、 hoge.txt が起動する。 > type nul > hoge.txt > set PATHEXT = .TXT >

    Windows の基本的なコマンド集 - IT戦記
  • ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック

    ちょうど入社から半年で有給発生しつつも日が退職日になりましたjokagiです.もう花見の季節ですね!! ちょうどラボブログの当番のようで,退職記念にjokagiが普段の開発で使っているテクニックとは呼ぶにはおこがましい小手先の技をつらつら書いてみたいと思います. これを覚えればjokagi程度には仕事をこなせるかも!? コマンドの使い方を覚えよう 基的なコマンドの使い方やコンソールなどの使い方は書籍やいろんなサイトで覚えてください. ここでは一応一通りなんとなくでもコマンドを扱える人がさらに覚えるといいかもしれないことだけを記述します. -03-20T23:59+0900"> また,これからの解説はシェルはbash,その他のコマンドの多くはGNU Toolsと呼ばれることのあるGNU findやcoreutilsなどを用いた環境でのオプション例や実行例になります. echo いわゆる指

  • bashでexportした配列をリストアップしたい - (ひ)メモ

    envだとbashの配列はexportしてても表示されない。 $ cat source-me v1='hehe' V1='kareshi ga'; export V1 A1=('bash' 'wo' 'tukatteita.'); export A1 A2[0]='wakare' A2[2]='tai...' export A2 $ env - bash -norc -noprofile -c '. source-me; env' | egrep -v -e '(OLD)?PWD' -e SHLVL= -e _= V1=kareshi gaが、declare -x だと出てくる。 $ env - bash -norc -noprofile -c '. source-me; declare -x' | egrep -v -e '(OLD)?PWD' -e SHLVL= -e _= decla

    bashでexportした配列をリストアップしたい - (ひ)メモ
  • Why aren’t you using ionice yet???

    Why aren’t you using ionice yet??? July 17, 2007 at 4:22 am · Filed under John's Rants I am surprised at how many people complain about IO responsiveness while multitasking, but have never heard of ionice(1). Most intermediate-level Linux users have heard of, or know how to use, the nice command. Well, ionice is like nice for the disk (nice on most Linux kernels only affects the CPU scheduler. So,

    Why aren’t you using ionice yet???
  • シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる

    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)