DipMeshSystems.

技術文書
技術文書 literature music このサイトについて
Apache/httpd bash Firebird git gpg grep & sed MacOS X メールサーバ ネットワーク プログラミング sambaファイル共有 screen ssh su / sudo TextConsoleLife vi / vim vnc xxd yum UNIX関係のその他の資料
  1. bashとは

    bash [W] とはシェルです。多くのLinuxディストリビューションやMacOS Xの標準に採用されているシェルです。

    Mircosoft Windowsで言えばコマンドプロンプトと同様の役割を果たすソフトウェアです。

    User - ssh-client(console) - bash(shell) - linux(kernel) - hardware

    多くのUNIXライクOSの標準シェルとして採用されていますので、これらのOS上で実行するすべてのコマンドはbashを通して発行することが多いのですが、これらすべてをこの項目で取り扱うのは現実的ではありません。
    また、UNIX的に見ても bash はシェルであり、シェルスクリプト環境ではありますが、その他の機能そのものを実現しているわけではありませんので、ここでは以下のものに限定して取り扱うこととします。

    1. bashそのものの仕様及び動作
    2. bashそのものの仕様及び動作と深く結びついたコマンドの実行例
    3. bashスクリプトの記述方法に関するもの
    4. bashを介して実行される複数のコマンドの動作・運用例
    5. 但し、上記のうち実行されるコマンドそのものの解説に属すると見なされるものについては、そちらの項で取り扱うか、或いは併記するものとします。


  2. bash 初期設定

    Pathの設定
    $HOME/.bash_profile 中に以下のような記述を追記して置くと便利だと思います。
    他にも自分で使うパスを追記しておくと便利かもしれません。
     PATH=$PATH:$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin
     PATH=$PATH:/usr/local/bin:/usr/local/sbin
     export PATH
    
    
    ついでに
     alias la="ls -la"
     alias psa="ps -A"
    
    
    なども入れておくと、
      la
      psa | grep httpd
    
    
    とよく使うコマンドを省略できて便利。
    MacOS Xでは
     alias ls="ls -G"
     alias ll="ls -lG"
     alias la="ls -laG"
    
    
    は欠かせません。


  3. bash スクリプト

    出力のカラーリングについて
    echo -e "This is \e[01;43;31mtest\e[00m display"

    1. Bashスクリプトの作成方法

      1. テキストファイルを作成し、実行権限を与える。
          touch ./sample.sh
          chmod 711 sample.sh
        
        
      2. %vim%などで編集する。
          vim ./sample.sh
        
        

        以下は内容の例:
         #!/bin/%bash%
         VAR_TEST=SAMPLE
         echo "$VAR_TEST"
         echo date -d '3 months ago' '+%Y/%m/%d %H:%M:%S'
         
         less ./ | mail -s 'TestSubject' someone@yourdomain.xxx
        
        
      3. 作成したスクリプトファイルのパーミッションを設定する。
         chmod 755 ./sample.sh
        
        


    2. Bashスクリプトによる文字列の再帰的置き換え

       #!/bin/bash
       for FILE in $(egrep -rl "$2" $1); do
           mv $FILE $FILE.old;
           cat $FILE.old | sed "s/$2/$3/g" > $FILE;
       done;
      
      


    3. 再帰的文字コード変換

      単一ファイルの文字コード変換を iconv で行う場合

       iconv -f SJIS-win -t UTF-8 SourceFileName.txt > ConvertedFileName.txt
      
      



      再帰的に行う場合には、forループを使用すると便利です

      ※例はtxtファイルを対象としています
       for FILE in find . -name *.txt; do mv $FILE "$FILE"_tmp; iconv -f SJIS-win -t UTF-8 "$FILE"_tmp > $FILE; rm -f "$FILE"_tmp; done;
      
      
      単一行で上記のように使用することも出来ますし、同じ内容をスクリプトファイルとして以下のように作ることも出来ます。
       #!/bin/bash
       for FILE in find . -name *.txt;
       do
       mv $FILE "$FILE"_tmp;
       iconv -f SJIS-win -t UTF-8 "$FILE"_tmp > $FILE;
       rm -f "$FILE"_tmp;
       done;
      
      


  4. Bash その他

    普通のfor分:
     for (( x=0; x<10; x++)) do echo $x; done
    
    

    ファイルの内容を整列する:
    cat FILENAME | sort

    ファイルの内容を整列して、重複を除去する:
    cat FILENAME | sort | uniq

    コマンドの終了を待たずに実行するには:
    tree > tree.txt &
    最後に&をつけます。

    SJISから端末のデフォルト文字コードセットへの文字コード変換:
     FILE=./FileName.Ext; mv ./$FILE ./$FILE.old; iconv -f cp932 ./$FILE.old > ./$FILE; rm $FILE.old;
    
    


©1998-2014 DipMeshSystems.
this site is powered by OpenSylph / DipMeshSystems.
x