wiki:TipAndDoc/console

Version 23 (modified by mitty, 8 years ago) (diff)

--

misc

  • unix - How to pipe stderr without piping stdout - Server Fault

    To do that, use one extra file descriptor to switch stderr and stdout:

    find /var/log 3>&1 1>&2 2>&3 | tee foo.file
    
    • stdoutをファイルにリダイレクトしつつ、stderrをpipe処理したいときは以下のようにする (bash)
      • ls -la /var/tmp /var/tmp/hoge 2> stdout 3>&1 1>&2 2>&3 | wc; echo -----; cat stdout
              1       7      45
        -----
        /var/tmp:
        total 16
        drwxrwxrwt  2 root root 4096 Apr 20 04:42 .
        drwxr-xr-x 28 root root 4096 May 17  2010 ..
        
  • インストールと設定の備忘録(第二部): gdm 経由でログインすると .bash_profile が実行されない
    • 直接この中で .bash_profile を呼び出す
    • の "#!/bin/sh" に "--login" オプションを付加する

    しかし今回はもっと簡単に、せっかくこの中で "$HOME/.profile" が呼び出されているのだから、このファイルの中で ". $HOME/.bash_profile" することにした。これで、しばらく様子を見ることにする。

    • ~/.profile
      if [ -n "$BASH_VERSION" ]; then
          # include .bash_profile if it exists
          if [ -f "$HOME/.bash_profile" ]; then
              . "$HOME/.bash_profile"
          fi
      fi
      
      • これは、Debian Squeezeでは効果がなかった
    • /etc/gdm3/Xsession
      test -f "$HOME/.bash_profile" && . "$HOME/.bash_profile"
      
      • PATH=... などは設定されるが、「/usr/bin/screen -d -RR -U」は実行されない

screen

favorite shortcut

  • エスケープキーを Ctrl+X(C-x)とする
  • ウィンドウ変更
    • C-x Space / C-x Backspace または C-x n / C-x p(前後)
    • C-x 0 / C-x 1 ... (番号指定)
  • Copy mode
    • C-x Esc (もう一度Escで終了)
  • ウィンドウ名の変更

screen with script command

  • screen と script を同時に「.bash_profile」内に書くことは出来ない
    • scriptを先に書いた場合、scriptからexitした後でscreenが起動する
      /usr/bin/script ~/.script/`date +%y-%m-%d_%H%M%S`.log
      /usr/bin/screen -d -RR -U
      
      • Script started, file is XXXX -> $ exit -> Script done -> new screen... -> [screen is terminating]
    • screenを先に書いた場合、screenがterminateした後でscriptが起動する
      /usr/bin/screen -d -RR -U
      /usr/bin/script ~/.script/`date +%y-%m-%d_%H%M%S`.log
      
      • [screen is terminating] -> Script started, file is XXXX -> $ exit -> Script done

logging to file on screen

  • .screenrc に以下のように書く
    logfile /home/mitty/.screen/logfile%Y%m%d%c.%n
    deflog on
    
    • logfile ~/.screen~~ の様に相対パスでは不可?(調査中
    • パーセントパラメタの詳細が知りたい
      • 「logfile20090917 2:07.0」の様なファイルが出来る。
      • => attachment:screen.c#L2396
        %d -> 2桁 日(01~31)
        %D -> 3桁 曜日(Sun~Sat)
        %m -> 2桁 月(01~12)
        %M -> 3桁 月(Jan~Dec)
        %y -> 2桁 年
        %Y -> 4桁 年
        %a -> am / pm
        %A -> AM / PM
        %s -> 2桁 秒(00~59)
        %c -> sprintf(p, zeroflg ? "%02d:%02d" : "%2d:%02d", tm->tm_hour, tm->tm_min);
        %C -> sprintf(p, zeroflg ? "%02d:%02d" : "%2d:%02d", (tm->tm_hour + 11) % 12 + 1, tm->tm_min);
        
        %H -> HostName
        %n -> win->w_number
        

daemonize

Attachments (1)

Download all attachments as: .zip