投稿

11月, 2023の投稿を表示しています

linux コマンド cat 複数行 ファイル出力 ヒアドキュメント

・複数行をファイル( out.txt )出力する cat <<EOF > out.txt good morning hello good afternoon EOF ・out.txt の中身 good morning hello good afternoon

linux シェルスクリプト 関数 引数

 ・引数1つの関数呼び出し #!/bin/bash # 関数の定義 第一引数 ${1}には world が入っている  function func1() {     echo "Hello, ${1}!" } # 関数を呼ぶ world は第一引数 func1 world ・実行結果 Hello, world!

linux シェルスクリプト 四則演算

・変数 left と right の値を足して sum に入れる ・引き算など他の四則演算も同じ ・Add the values ​​of variables left and right and put them in sum ・The same applies to other arithmetic operations such as subtraction. left=123 right=456 sum=$(( $left+$right ))

linux コマンド find 特定 拡張子 ファイル 探す 再帰的

・カレントディレクトリから再帰的に拡張子が.txtのファイルを探す $ find ./ -name "*.txt"

linux シェルスクリプト for C言語 のような書き方

・C言語のような書き方 for ((i=0 ; i<10 ; i++)) do   echo "${i}" done ・別の書き方 for i in `seq 0 9` do   echo "${i}" done

linux シェルスクリプト exec tee 画面 ログファイル

・exec と tee を使用して、標準出力 / 標準エラー出力の両方を画面とログファイル all.log にリダイレクトする #!/bin/bash exec &> >(tee -a all.log) echo "test"

linux コマンド cat ファイル 結合

・ファイル fa fb fc を結合して fabc に作る $ cat fa fb fc > fabc

linux シェルスクリプト コマンド 終了ステータス if文で使用

・コマンドの終了ステータス $? をif文の条件で使う ・コマンドの終了ステータスは    →コマンド成功時には「0」    →失敗時には「1」       (コマンドやエラーの種類によっては 0 以外) ・以下のコードは欠陥あり。    (ret=$(cat abc.txt) の下に別コマンドを     追加すると、その別コマンドの     終了ステータスをif文の条件で     使ってしまう。) #!/bin/bash ret=$(cat abc.txt) if [ $? -ne 0 ]; then     echo "fail" fi

linux シェルスクリプト コマンド実行結果 変数 配列 格納

 ・コマンドの実行結果を変数 nowpath に入れる(バッククォート) nowpath=`pwd`  ・コマンドの実行結果を配列に入れる(バッククォート ) ・現在のディレクトリ配下のファイルを配列 lslist に格納 lslist=(`ls -1`) ・バッククォート以外の方法 nowpath=$(pwd)

linux シェルスクリプト sed スラッシュを含む 置換

・スラッシュ(/) を含む文字列を置換するときは、sed の区切り文字を変える( / → | ) #!/bin/bash testpath=/home/user1 echo "work dir testpath" | sed -e "s|testpath|${testpath}|g"

linux コマンド grep 複数条件 AND OR

 ・grep(AND) hi かつ yz を含む行を抽出 $ grep "hi" abc.txt | grep "yz"  ・grep(OR) hi または yz を含む行を抽出 $ grep -e "hi" -e "yz" abc.txt

linux コマンド ls ファイル 縦一列 表示

 ・カレントディレクトリのファイルを縦一列に表示する $ ls -1 a.txt b.txt c.txt b.txt

linux ファイル 重複した行 削除

 ・abc.txt の重複した行を削除する $ sort abc.txt | uniq ・abc.txt の中身 aaa bbb ccc aaa bbb ccc ・上記コマンド実行結果 aaa bbb ccc

linux シェルスクリプト vi 便利 コマンド

 ・vi で file1.txt を開く $ vi file1.txt ■ viにはコマンドモードと入力モードの2種類がある ■デフォルト:コマンドモード  ・コマンドモード→入力モード      a OR i を押す   ・入力モード→コマンドモード      Esc を押す ■以降はコマンドモードでの操作(わたしがよく使うやつ) ・ファイルを保存して閉じる :wq ・ファイルを保存せずに閉じる :q ・ファイルを保存だけする :w ・ファイルの先頭行に移動 gg ・ファイルの最終行に移動 G ・1行削除 dd ・50行削除 50dd ・1行コピー yy ・1行ペースト p ・ひとつ前の変更を取り消し(直前の編集状態に戻す) u もう一度 u を押すと、 u コマンド自身が取り消される ・ファイルを開きながら別のファイルを同時に開く :sp ファイル名 ・spで複数ファイルを開いたときのファイル間の移動 Ctrl + w + w ・行番号表示 :set nu ・行番号非表示 :set nonu

linux シェルスクリプト ファイルパス から ファイル名 抽出

 ・ファイルパス /home/user1/abc.txt からファイル名 abc.txt のみを取得 $ basename /home/user1/abc.txt

linux シェルスクリプト 文字列 特定文字 含む if

・moji に work が含まれる場合、include  moji="I don't want to go to work." if [[ "${moji}" == *work* ]]; then   echo "include" fi

linux シェルスクリプト ファイル から 配列 に入れる

・ファイル abc.txt の中身を一行ずつ配列 array に入れる array=(`cat abc.txt|xargs`) 

linux scp コマンド

 ・ローカルPCの /home/user1/a.txt をリモートPC(IPアドレス : 192.168.10.10) の home/uesr2 にコピーする ・以下の場合、リモートPCのユーザは user2 を使うので、実行しようとした時に入力するパスワードを聞かれるので uesr2 のパスワードを入力する $ scp /home/user1/a.txt user2@192.168.10.10:/home/uesr2

linux シェルスクリプト awk を使って 区切り文字 一番目 出力

・区切り文字を : として、1番目の値を出力 ・以下の場合、 h が出力される echo h:i:j:k |awk -F'[:]' '{print $1}'

linux シェルスクリプト ファイルから 特定文字 を含む行 抽出

 ・abc.txt から today を含む行のみを出力 grep "today" abc.txt

linux シェルスクリプト ファイルから 一行ずつ 読み込む

 ・シェルスクリプト abc.txt を読み込んで一行ずつ、echo で出力 ・LINEは任意の文字でいい #!/bin/bash while read LINE do   echo $LINE done < abc.txt

linux シェルスクリプト ファイルから 特定行 抽出

 ・xxxx.txtから2~4行目を抽出 $ sed -n 2,4p   xxxx.txt

linux コマンド フォルダパス配下 特定文字を含む ファイル検索

 ・/home/user1配下で aaa を含むファイルを検索 $ find /home/user1 -type f | xargs grep -n 'aaa' ・grepだけでも出来る $ grep -r 'aaa'  /home/user1

linux コマンド tar.gz 解凍 圧縮

・dir フォルダを aaa.tar.gz に圧縮 $ tar -zcvf aaa.tar.gz dir ・aaa.tar.gz を解凍 $ tar -zxvf aaa.tar.gz