FC2ブログ

更新履歴Blog

日記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ログインシェル

ログインシェル
  • ユーザログイン時に起動するシェルの事

  • /etc/passwordのファイルにユーザごとのログインシェルとして実行されるファイルが確認できる
    $ less /etc/passwd
    
    201605201006.png

  • ログインシェルは起動時に、さらに以下の順番でファイルを実行する
    1. /etc/profile
    2. [ユーザのホーム]/.bash_profile
    3. [ユーザのホーム]/.bash_login
    4. [ユーザのホーム]/.profile
    5. ※ファイルがない場合は実行されないだけで、必要であれば自分で作成しても良い
      ※/etc/profileがなく、/etc/profile.d/がある場合は/etc/profile.d/の中にある*.shファイルが実行される

バックグラウンドでジョブを動かす

    コマンドの最後に「&」をつけると、バックグラウンドで実行されるジョブになる

  • バックグラウンドで電卓ツールを起動する例
    $ gcaltool &
    

  • バックグラウンドで動いているジョブをフォアグラウンドに戻すには、fgコマンドを使う
    $ fg
    

niceコマンド

nice
優先度を設定してコマンドを実行する

  • 優先度には-20〜19の値が指定でき値が小さい程、優先度の高いプロセスとなる
  • 優先度がマイナスの値はroot権限で実行しないと指定できない
  • 優先度に「12」を指定してbcコマンドを実行例
    $ nice -n 12 bc
    

実行中のプロセスの優先順位を変更する

プロセスの優先順位について
  • プロセスには優先順位(NICE値)があり、-20〜19までの値が指定される。
  • 優先度が高いとCPUからのタイムスライスを優先で受けれられる。
  • NICE値は小さい程、優先順位が高い

NICE値の確認
  • プロセスのNICE値は以下のコマンドなどで確認できる
    $ top
    $ ps -l
    201605161219.png
    NIがNICE値

NICE値の変更(topコマンド)
  • topコマンドの実行中にNICE値の変更ができる。topコマンド実行中に「r」キーを押す。
    「PID to renice:」と表示されるので、NICE値を変更したいプロセスのPIDを入力。
    201605161404.png

  • 「Renice PID [PID] to Value:」と表示されるので、変更後のNICE(-20〜19)を指定する
    201605161416.png

NICE値の変更(reniceコマンド)
  • プロセスID「12345」の優先度を10に設定する例
    $ renice 18 -p 12345
    

テキストファイルのスペースをタブに変換する

unexpand

テキストファイルのスペースをタブに変換するコマンド

  • test.txtのスペース2つをタブに変換
    $ unexpand -t2 -a test.txt
    
    「-t」オプションでタブ1つに対するスペースの数を指定できる。
    「-a」オプションはファイル内すべてが対象で、これを省略すると行頭のスペースのみが変換対象となる。

テキストファイルを分割する

split

テキストファイルを分割するコマンド

  • テスト用にtest.txtを作成する
    111
    222
    333
    444
    555
    

  • test.txtを2行ごとに分割する
    $ split -l2 test.txt
    
    test.txtを分割した内容がm「xaa」「xab」「xac」という3つのファイルで作成される
    -iオプションで分割したい行数が指定でき、何も指定しない場合は1000行単位で分割される

    xaaの内容
    111
    222
    
    xabの内容
    333
    444
    
    xacの内容
    555
    

  • test.txtを10バイト単位で分割する
    $ split -b10 test.txt
    
    「-b」オプションを指定するとバイト単位で分割できる。

    xaaの内容
    111
    222
    33
    
    xabの内容
    3
    444
    555
    

  • 出力されるファイル名を数字の連番にする
    $ split -l2 -d test.txt
    
    出力ファイル
    x00
    x01
    x02
    
    「-d」オプションを指定するとx[連番数字]のファイル名で出力される

  • ファイル名の接頭のプリフィックスを変更したい場合
    $ split -l2 test.txt AAA
    
    出力ファイル
    AAAaa
    AAAab
    AAAac
    
    ファイル名の後に追加した文字が、ファイル名の接頭に追加される

タブをスペースに変換する

expand

テキストファイルのタブをスペースに変換する

  • file1.txtのスペースをタブ(4文字間隔)に変換する
    $ expand -t 4 file1.txt
    
    -tオプションでタブの文字間隔を指定できる。デフォルト(tオプションを指定しない場合)では8文字間隔のタブになる

  • file1.txtのタブをスペースに変換した内容をfile2.txtに保存する
    $ expand file1.txt > file2.txt
    

  • -iオプションを指定すると、行頭のタブのみがスペースに変換される
    $ expand -i file1.txt
    

文字列の置換を行う

sed

文字列の置換を行う

  • test.txtを作成
    11111
    22222
    33333
    44444
    55555
    
  • 文字列「33」を「00」に置換する
    $ sed 's/33/00/g' test.txt
    
    11111
    22222
    00003
    44444
    55555
    
    sed 's/置換対象の文字列/置き換え後の文字列/g' ファイル名
    
    最後の「g」を付けない場合、行で最初に見つかったところだけ置換になる
    sed 's/33/00/' test.txt
    
    11111
    22222
    00333
    44444
    55555
    

  • test.txtの1行目を削除して表示
    $ sed '1d' test.txt
    
    22222
    33333
    44444
    55555
    
  • test.txtの2行目から4行目を削除して表示
    $ sed '2,4d' test.txt
    
    11111
    55555
    
  • 結果をファイルに出力したい場合はリダイレクトすると良い
    $ sed '2,4d' test.txt > test.log
    
    test.logに出力されている
    $ cat test.log
    
    11111
    55555
    

コマンドの終了ステータス

コマンドは終了時にステータスを返していて、0(ゼロ)が返されると正常終了(成功)した事を意味し、正常しなければ0以外の数値を返している。

  • 直前のコマンドの終了ステータスは以下で確認できる。
    $ echo $?
    

  • コマンドが終了時に返す値は、それぞれのコマンドで指定されている。 LinuxのコマンドはPOSIX(Portable Operating System Interface)準拠で、コマンドの成功は「0」失敗の場合は「0」以外の数値を返す。
    Linuxのプログラムを作成する場合もこのPOSIXに準拠する事が推奨されている。

  • POSIX準拠のマクロがstdlib.hに定義されているので、C言語でプログラムする場合はプログラムの戻り値として正しく使えばPOSIX準拠となる。
    #define EXIT_FAILURE    1
    #define EXIT_SUCCESS    0
    

コマンドを連続実行する

コマンドを「;」「&&」「||」で繋ぐと、連続してコマンドを実行できる。

  • 「ls -l」のコマンドが実行され、終了したら「ls -la」のコマンドが実行される
    $ ls -l ; ls -la
    

  • 「ls -l」のコマンドが実行され、終了ステータスが0(ゼロ)の場合は次の「ls -la」コマンドが実行される
    $ ls -l && ls -la
    

  • 「ls -l」のコマンドが実行され、終了ステータスが0(ゼロ)以外の場合は「ls -la」コマンドが実行される
    $ ls -l || ls -la
    

コマンドの出力をディスプレイ(標準出力)とファイル両方に出力する

tee

teeコマンドを利用するとディスプレイ(標準出力)とファイル両方に結果を出力できる
teeコマンドは|(パイプ)で他の命令と組み合わせて利用する

  • ls -lのコマンドの出力をディスプレイ(標準出力)とファイル(test.txt)に出力する
    $ ls -l | tee text.txt
    
    結果はls -lコマンドの出力と同じものがtest.txtにも保存される

  • -a オプションでファイル出力は追記になる
    $ ls -l | tee -a test.txt
    

ファイルを最後の行から表示する

tac

tacコマンドを利用するとファイルを最後の行から表示できる

  • file1.txtを作成
    11111
    22222
    33333
    
    file1.txtを最後の行から表示させる
    $ tac file1.txt
    
    出力結果
    33333
    22222
    11111
    

  • ファイルは複数指定可能、ただし内容の連結はできない
    file2.txtを作成
    44444
    55555
    66666
    
    file1.txtとfile2.txtを最後の行から表示
    $ tac file1.txt file2.txt
    
    出力結果
    33333
    22222
    11111
    66666
    55555
    44444
    

シェル変数と環境変数

○シェル変数
  • シェルでのみ有効な変数の事
  • シェル変数を作成する手順、変数「HOGE」に文字列「hoge」を代入
    $ HOGE=hoge
    
  • シェル変数「HOGE」を出力
    $ echo $HOGE
    
    echoは文字列を出力するコマンド

  • 設定されているシェル変数は「set」コマンドで確認できる
    $ set
    
    setコマンドの出力に先ほど設定した変数「HOGE」が確認できる
    HOGE=hoge
    
  • シェル変数は、シェルで起動したプログラム(子プロセス)では値を引き継げない
    test1.shを作成して実行してみる
    $ vi test1.sh
    
    #!/bin/sh
    echo $HOGE
    
    作成したtest1.shを実行する
    ./test1.sh
    
    $HOGEは有効でないので何も出力されない
  • シェル変数をシェルで起動したプログラム(子プロセス)で使いたい場合は環境変数にする必要がある。


○環境変数
  • 環境変数のセットは「export」コマンドを使ってシェル変数を指定する事で設定できる。
    $ export HOGE
    
  • 設定した環境変数は「env」コマンドで確認できる。
    $ env
    
    設定したHOGEが確認できる
    HOGE=hoge
    
  • 環境変数はシェルで起動したプログラム(子プロセス)にも引き継ぐ事ができる。
    試しに、上で作成したtest1.shを実行する
    $ ./test1.sh
    
    HOGEは環境変数としてセットされているので出力される
    hoge
    
  • 環境変数から値(HOGE)を削除したい時はexportコマンドの-nオプションで削除できる
    環境変数から削除されるだけなので、シェル変数には残っている。
    export -n HOGE
    


○sourceコマンド
  • シェルで起動したプログラム(子プロセス)でシェル変数や環境変数をセットする事はできない
  • シェルスクリプトtest2.shを作成して実行
    $ vi test2.sh
    
    #!/bin/sh
    HOGE2=hoge2
    export HOGE2
    
    $ ./test2.sh
    
  • setコマンド、envコマンドでHOGE2を探しても見つからない(設定されていない事が確認できる)
  • 「source」コマンドを使うと正しく設定できる
    $ source test2.sh
    
  • setコマンド、envコマンドでHOGE2が設定されてる事が確認できる

WCコマンド

ファイルの行数、単語数、バイト数を調べるコマンド

$ wc ファイル名
行数 単語数 バイト数 ファイル名


$ wc test.txt
13 26 480 test.txt

vi(vim)エディタの操作メモ

左 「h」キー
上 「j」キー
下 「k」キー
右 「l」キー

「Ctrl」+「f」キー 1ページ(画面)先へ進む
「Ctrl」+「b」キー 1ページ(画面)前へ戻る

「0」キー 現在の行の先頭へ移動
「^」キー 現在の行の先頭へ移動(空白を除いた先頭へ移動)

「x」キー 一文字削除
「X」キー バックスペース
「d」キー2回 一行削除(カット)
「y」キー2回 一行コピー
「p」キー   ペースト
「u」キー  Undo(アンドゥ)直前の入力を取り消す
「.」キー  Redo(リドゥ)直前のUndo(アンドゥ)を取り消す
「/」キー+検索したい文字列  文字列検索「n」キーで次の文字列を検索「Shift」キー+「n」キーで前の文字列を検索

「H」キー 表示されている画面の一番上の行へ移動
「M」キー 表示されている画面の真ん中の行へ移動
「L」キー 表示されている画面の一番下の行へ移動
「G」キー ファイルの一番下の行へ移動
「1」+「G」キー ファイルの一番上の行(1行目)へ移動。数字の行へジャンプできる。

「:!」の後にコマンド(lsなど)を入力すると、エディタを終了する事なくコマンドが実行できる。
前のページ 次のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。