Help us understand the problem. What is going on with this article?

現場で使ったLinuxコマンド、Shellテクニックまとめ

More than 3 years have passed since last update.

プログラマー歴は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文を読みこませるために、ヒアドキュメント(<<)を利用しています。

以上、よく使用していたのを思い出しながら、書いてみました。
ざっくりとしていますので、
次回は、一つのことを詳しく書くという感じで書いてみます。

という訳で、解釈や結果など恐らく間違いなどあると思います。
有識者の方には、指摘して頂けますと幸いです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした