UNIX
⽬目次

  1. UNIXとは?

  2. UNIXコマンド

  3. シェルスクリプト
1.	
  UNIX	
  とは?
UNIXの歴史

  ・1970年, AT&Tが始める

  ・マルチユーザ

  ・BSD系とSystem V系

  ・UNIX委員会の認証があって
   初めて名乗れる
Linux
  = PC用のUNIX
        ・でも最近はPC以外にも適⽤用されている。
          (例例.	
  掃除機,	
  携帯,	
  ⾃自販機)

        ・バザール⽅方式で開発される

        ・作ったのは、リーナス・トーバルスさん(1970年年頃)
Linux	
  のディストリビューション



               Window
               システム     デバイス
                        ドライバ


                           ディストリ
                           ビューション
  Linuxの本体は
              コア          (ソフトウェア群)
   これだけ
Linux	
  のディストリビューション
 1. Red Hat系
     ・Red Hat Enterprise Linux
           企業向け。サポート万全。有料。

    ・Fedora
           最新機能を搭載

    ・CentOS                      勉強⽤用に
           安定性重視。                おすすめ!

 2. Debian系
     ・Ubuntu
           UI使いやすい。最新機能搭載。
2.	
  UNIX	
  コマンド
メタキャラクタ

 *	
  :	
  任意の0⽂文字以上の⽂文字

 ?	
  :	
  任意の1⽂文字以上の⽂文字

 [ab]	
  :	
  a	
  または	
  b
      [0-‐‑‒9]:	
  [0123456789]
      [^3-‐‑‒5]:	
  3-‐‑‒5以外の数字


 {xyz,	
  abc,	
  ccc}	
  :	
  xyz,	
  abc,	
  ccc	
  のどれか
chmod
       ファイルのパーミッションを変更更する
       chmod	
  [オプション]	
  ファイル名/ディレクトリ名

dir        所有者	
  u	
             グループ	
  g                 他のユーザ	
  o

-‐‑‒   r       w          x   r      w        -‐‑‒         r        -‐‑‒      x

               7                     6                             5

                                                     r	
  =	
  4:	
  読み取り権限
ディレクトリの場合はd,                                         w	
  =	
  2:	
  書き込み権限
ファイルの場合は	
  -‐‑‒                                     x	
  =	
  1:	
  実⾏行行権限


            -‐‑‒R	
  オプションで,	
  フォルダ内全ての権限変更更
基本UNIXコマンド	
  (1/2)


 cp	
  [オプション]	
  元のパス	
  後のパス
        オプション -R でフォルダごとコピーできる。



 mv	
  [オプション]	
  元のパス	
  後のパス
        ファイルの移動の他、名前変更にも使える。
基本UNIXコマンド	
  (2/2)

 grep	
  ʻ‘freeBSCʼ’	
  test.txt
              検索文字列 ファイル名


 sed	
  ʼ’s /元の⽂文字列列/後の⽂文字列列ʼ’	
  test.txt
              ‘編集モード / パターン1 / パターン2’ ファイル名
                  └ 【編集モード】s: 置換,            d: 削除, p: 表示

 awk	
  -‐‑‒F:	
  ʻ‘/^1/{print	
  $1,$2;}ʼ’	
  test.txt
          区切り文字 対象となる行 / 処理内容 ファイル名
リダイレクトとパイプ

>	
  :	
  出⼒力力
<	
  :	
  ⼊入⼒力力
>>	
  :	
  追加
|	
  :	
  左の結果を受けての右のコマンドの実⾏行行
       grep ‘freeBSD’ test.txt | sed ‘s/freeBSD/freebsd’
ちょっと便便利利UNIXコマンド
      便便利利だけどあまり使わないコマンド集
      使い⽅方は	
  man	
  コマンドで調べよう.


 ps        ifconfig    !!       !?⽂文字列列?
 cat       netstat    history crontab
 less      ping       !n       sleep
 more      alias      !⽂文字列列   kill
           └ 毎回読み込むようにするには、
             ホームディレクトリの.bash_profileや
             .profile に記述する
ちょっと便便利利	
  crontab

 crontab	
  -‐‑‒e	
  :	
  スケジュールの編集
 crontab	
  -‐‑‒l	
  :	
  スケジュールリストの表⽰示
 【書式】 分	
  時	
  ⽇日	
  ⽉月	
  曜	
  実⾏行行書式


 1分ごとに設定をチェックしにいってくれる。
 バックアップ⽤用途などで重宝される!
3.	
  シェルスクリプト
シェルスクリプト

 ・UNIXコマンドを自動化できる

 ・便利ですね

 ・Bシェル系 (sh, bash, ... )
                  Linuxの標準


 ・Cシェル系 (csh, tcsh)
              FreeBSDの標準
シェルスクリプト	
  の書き⽅方

  ・先頭に #!/bin/sh

  ・# をつけたらコメント文

  ・変数は適当に使える
      data1=100
      echo “data1 = $data1”

  ・見やすいように字下げしてはダメ
シェルスクリプト	
  実⾏行行⽅方法

   ・実行方法
       sh val1.sh

   ・位置パラメータの使用
       sh val2.sh OK NG
シェルスクリプト	
  の書き⽅方(2)

  ・四則演算                  バッククォートで囲むと
                         UNIXコマンド使える!
     ‘expr $x + $y’
  ・if文ももちろん使える
       if [ s1 = s2 ]
       then
         echo “OK!”
       elif [ s1 = s3]
         echo “s3 OK!”
       else
         echo “NG!”
       fi
シェルスクリプト	
  の書き⽅方(3)

  ・case文
      case $x in
        1) echo “ONE”
            ;;
        2) echo “TWO”
            ;;
        3|6|9) echo “OK”
            ;;
        *) echo “NG”
            ;;
        esac
シェルスクリプト	
  の書き⽅方(4)

・for文                   ・while文
  for i in 1 2 3          while [ $count -lt 6 ]
    do                     do
      echo “num : $i”        echo “num : $count”
    done                   done


                              -lt は比較演算子「<」のこと
シェルスクリプト	
  の書き⽅方(5)

  ・関数 定義と使い方

     add() {
        return ‘expr $1 + $2’
     }
     x=5
     y=10
                            $? で直前の演算結果を
     add $x $y              参照できる
     result=$?
     echo “$x + $y = $result”
シェルスクリプト	
  正規表現

  .	
  :	
  任意の1⽂文字
  *	
  :	
  直前の⽂文字の0回以上の繰り返し
  +	
  :	
  直前の⽂文字の1回以上の繰り返し
  ?	
  :	
  直前の⽂文字を0回or1回
  ^	
  :	
  ⾏行行の先頭
  $	
  :	
  ⾏行行の⽂文末
  []	
  :	
  []内の任意の⽂文字   [a-‐‑‒z0-‐‑‒9],	
  [^3-‐‑‒4]など
おまけ
⽂文字コードの種類
・1バイトコード
   -‐‑‒	
  アメリカとかで採⽤用

・マルチバイトコード
   -‐‑‒	
  EUC-‐‑‒JP	
  	
  //	
  FreeBSD他	
  UNIX系OS
   -‐‑‒	
  Shift-‐‑‒JIS	
  	
  //	
  Windows	
  &	
  Mac
   -‐‑‒	
  UTF-‐‑‒8	
  	
  //	
  Linux
   -‐‑‒	
  ISO-‐‑‒2022-‐‑‒JP	
  //	
  メールデータ送受信のエンコード
リモート操作

          平⽂文     暗号

リモート操作   telnet   SSH

リモート
          FTP     SCP
ファイル操作

Unix

  • 1.
  • 2.
    ⽬目次 1.UNIXとは? 2. UNIXコマンド 3. シェルスクリプト
  • 3.
  • 4.
    UNIXの歴史 ・1970年,AT&Tが始める ・マルチユーザ ・BSD系とSystem V系 ・UNIX委員会の認証があって  初めて名乗れる
  • 5.
    Linux =PC用のUNIX ・でも最近はPC以外にも適⽤用されている。 (例例.  掃除機,  携帯,  ⾃自販機) ・バザール⽅方式で開発される ・作ったのは、リーナス・トーバルスさん(1970年年頃)
  • 6.
    Linux  のディストリビューション Window システム デバイス ドライバ ディストリ ビューション Linuxの本体は コア (ソフトウェア群) これだけ
  • 7.
    Linux  のディストリビューション 1.Red Hat系 ・Red Hat Enterprise Linux 企業向け。サポート万全。有料。 ・Fedora 最新機能を搭載 ・CentOS 勉強⽤用に 安定性重視。 おすすめ! 2. Debian系 ・Ubuntu UI使いやすい。最新機能搭載。
  • 8.
  • 9.
    メタキャラクタ *  :  任意の0⽂文字以上の⽂文字 ?  :  任意の1⽂文字以上の⽂文字 [ab]  :  a  または  b [0-‐‑‒9]:  [0123456789] [^3-‐‑‒5]:  3-‐‑‒5以外の数字 {xyz,  abc,  ccc}  :  xyz,  abc,  ccc  のどれか
  • 10.
    chmod ファイルのパーミッションを変更更する chmod  [オプション]  ファイル名/ディレクトリ名 dir 所有者  u   グループ  g 他のユーザ  o -‐‑‒ r w x r w -‐‑‒ r -‐‑‒ x 7 6 5 r  =  4:  読み取り権限 ディレクトリの場合はd, w  =  2:  書き込み権限 ファイルの場合は  -‐‑‒ x  =  1:  実⾏行行権限 -‐‑‒R  オプションで,  フォルダ内全ての権限変更更
  • 11.
    基本UNIXコマンド  (1/2) cp  [オプション]  元のパス  後のパス オプション -R でフォルダごとコピーできる。 mv  [オプション]  元のパス  後のパス ファイルの移動の他、名前変更にも使える。
  • 12.
    基本UNIXコマンド  (2/2) grep  ʻ‘freeBSCʼ’  test.txt 検索文字列 ファイル名 sed  ʼ’s /元の⽂文字列列/後の⽂文字列列ʼ’  test.txt ‘編集モード / パターン1 / パターン2’ ファイル名 └ 【編集モード】s: 置換, d: 削除, p: 表示 awk  -‐‑‒F:  ʻ‘/^1/{print  $1,$2;}ʼ’  test.txt 区切り文字 対象となる行 / 処理内容 ファイル名
  • 13.
    リダイレクトとパイプ >  :  出⼒力力 <  :  ⼊入⼒力力 >>  :  追加 |  :  左の結果を受けての右のコマンドの実⾏行行 grep ‘freeBSD’ test.txt | sed ‘s/freeBSD/freebsd’
  • 14.
    ちょっと便便利利UNIXコマンド 便便利利だけどあまり使わないコマンド集 使い⽅方は  man  コマンドで調べよう. ps ifconfig !! !?⽂文字列列? cat netstat history crontab less ping !n sleep more alias !⽂文字列列 kill └ 毎回読み込むようにするには、 ホームディレクトリの.bash_profileや .profile に記述する
  • 15.
    ちょっと便便利利  crontab crontab  -‐‑‒e  :  スケジュールの編集 crontab  -‐‑‒l  :  スケジュールリストの表⽰示 【書式】 分  時  ⽇日  ⽉月  曜  実⾏行行書式 1分ごとに設定をチェックしにいってくれる。 バックアップ⽤用途などで重宝される!
  • 16.
  • 17.
    シェルスクリプト ・UNIXコマンドを自動化できる ・便利ですね ・Bシェル系 (sh, bash, ... ) Linuxの標準 ・Cシェル系 (csh, tcsh) FreeBSDの標準
  • 18.
    シェルスクリプト  の書き⽅方 ・先頭に #!/bin/sh ・# をつけたらコメント文 ・変数は適当に使える data1=100 echo “data1 = $data1” ・見やすいように字下げしてはダメ
  • 19.
    シェルスクリプト  実⾏行行⽅方法 ・実行方法 sh val1.sh ・位置パラメータの使用 sh val2.sh OK NG
  • 20.
    シェルスクリプト  の書き⽅方(2) ・四則演算 バッククォートで囲むと UNIXコマンド使える! ‘expr $x + $y’ ・if文ももちろん使える if [ s1 = s2 ] then echo “OK!” elif [ s1 = s3] echo “s3 OK!” else echo “NG!” fi
  • 21.
    シェルスクリプト  の書き⽅方(3) ・case文 case $x in 1) echo “ONE” ;; 2) echo “TWO” ;; 3|6|9) echo “OK” ;; *) echo “NG” ;; esac
  • 22.
    シェルスクリプト  の書き⽅方(4) ・for文 ・while文 for i in 1 2 3 while [ $count -lt 6 ] do do echo “num : $i” echo “num : $count” done done -lt は比較演算子「<」のこと
  • 23.
    シェルスクリプト  の書き⽅方(5) ・関数 定義と使い方 add() { return ‘expr $1 + $2’ } x=5 y=10 $? で直前の演算結果を add $x $y 参照できる result=$? echo “$x + $y = $result”
  • 24.
    シェルスクリプト  正規表現 .  :  任意の1⽂文字 *  :  直前の⽂文字の0回以上の繰り返し +  :  直前の⽂文字の1回以上の繰り返し ?  :  直前の⽂文字を0回or1回 ^  :  ⾏行行の先頭 $  :  ⾏行行の⽂文末 []  :  []内の任意の⽂文字 [a-‐‑‒z0-‐‑‒9],  [^3-‐‑‒4]など
  • 25.
  • 26.
    ⽂文字コードの種類 ・1バイトコード -‐‑‒  アメリカとかで採⽤用 ・マルチバイトコード -‐‑‒  EUC-‐‑‒JP    //  FreeBSD他  UNIX系OS -‐‑‒  Shift-‐‑‒JIS    //  Windows  &  Mac -‐‑‒  UTF-‐‑‒8    //  Linux -‐‑‒  ISO-‐‑‒2022-‐‑‒JP  //  メールデータ送受信のエンコード
  • 27.
    リモート操作 平⽂文 暗号 リモート操作 telnet SSH リモート FTP SCP ファイル操作