1. miyaharas

    Posted

    miyaharas
Changes in title
+現場で使ったLinuxコマンド、Shellテクニックまとめ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,76 @@
+
+プログラマー歴は1年未満ですが、業務でLinuxを触ったり、
+ShellScriptを実装することが多かったので、
+そこで使ったコマンドやテクニック等をメモ代わりにまとめておきます。
+
+■コマンド
+
+・nkf -w test.txt
+text.txtをエンコードをUTF-8で開くというコマンドになります。
+
+test.txtがShift_jisで書かれていた場合、普通にcat test.txtをすると、
+Linux上では通常文字化けしてしまいます。
+そこで、nkfコマンドです。
+オプションでエンコードを指定して開くことができます。
+-wの場合はUTF-8です。
+
+—overwriteを付けて、実行するとUTF-8で上書きされます。
+
+・locate text.txt
+text.txtをLinux上の全てのディレクトリの中から探してくれます。
+基本的にfind / | grep text.txtよりも早いです。
+
+詳細は分かっていませんが、
+Linux上にデータベースを作り、そこから探すため早いらしいです。
+
+テーブルにインデックスを貼ることで、検索スピードがあがるみたいなものだと考えています。
+
+ただ、DBに登録されていないものは、検索することができませんし、
+どのような基準や日程で登録されているのかが分かっていません。
+
+現場のLinuxサーバーでは、割と早く登録されていたので、不自由なく使えていたのですが、
+自宅のMacでは、検索されないファイルが多くあまり使えない印象を持っています。
+
+■パイプ系
+
+コマンド | grep
+コマンド | xargs
+
+左記のコマンドを標準入力で受け取り、何らかの処理を加えるやつ達です。
+割と定番かもしれまれないですね。
+
+ワンライナーの間で、良く使われるコマンドですね。
+
+ex1)
+find /home/hoge -mtime +3 \( -name "*.tsv" \) | xargs rm -f
+上記はhogeディレクトリ配下で尚且つ、ファイル作成日時が3日前のtsvファイルを探しだし、
+それを削除するという処理になります。
+
+ex2)
+history | grep find
+上記は、historyコマンドで過去に使ったコマンドの一覧結果から「find」が書かれたもの標準出力で表示します。
+
+■DB接続系(私が実装していたのはOracleなので、Oracleを例に出します)
+sqlplus -s スキーマ名/パスワード@接続先のIPアドレス
+
+ex1)
+sqlplus -s スキーマ名/パスワード@接続先のIPアドレス << EOS
+UPDATE
+ hoge
+SET
+ nantoka_flg = 1
+WHERE
+ id = $1
+;
+EOS
+
+上記は、hogeテーブルのnantoka_flgを更新を引数で受けっとった値を条件に、
+hogeテーブルを更新しています。
+UPDATE文を読みこませるために、ヒアドキュメント(<<)を利用しています。
+
+以上、よく使用していたのを思い出しながら、書いてみました。
+ざっくりとしていますので、
+次回は、一つのことを詳しく書くという感じで書いてみます。
+
+という訳で、解釈や結果など恐らく間違いなどあると思います。
+有識者の方には、指摘して頂けますと幸いです。