技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的な技術メモを残しているブログです。Qiitaの記事にするほどでもない細かいネタを投稿します。

Linux

xargsコマンドで変数を使う

-i変数名 でパイプで渡された値を変数に格納して処理できる。 gitのタグ一覧を取得してまとめて処理する実行例はこんな感じ。 git branch -r | egrep --text "tags/" | cut -d / -f3|xargs -iVAR git tag svn/VAR svn/tags/VAR

grepでマッチした箇所をハイライトする

grep --color=auto yamada /etc/passwd grepの--colorオプションを付けるとヒットした文字がハイライトされる。 どこがヒットしたか目で追うのはしんどいので大変便利です。 リダイレクトやパイプ使用時にはハイライトしないようにしてくれるので、基本 auto…

シェルスクリプトのオプション

set -u 未定義の変数を参照するとエラー・メッセージを表示する set -e コマンドが0以外のステータスで終了した場合,一部の場合を除いて即座に終了する set -C 存在するファイルに対して、>でリダイレクトしたらエラーにする

portの使用状況を確認する

すぐ忘れるのでメモ。以下のコマンドで一覧を表示できる。 lsof -i ポートを指定して調べることもできる。 lsof -i:<port_not></port_not>

systemctlの超基本コマンド

ランレベルがなくなり、ターゲットやらユニットになったりしたそうだが、 詳細はさておき、ぱっと出てこないのよく使うコメンドをメモ。 # サービスを起動させる(service httpd startの代わり) systemctl start httpd # サービスを停止させる(service htt…

ファイルをgrep置換する

sed -i "s/abc/123/g" hoge.txt Macでやるとsed: 1: "hoge.txt": extra characters at the end of commandとか怒られた挙句、ターミナルをクリックすると変な記号がコマンドラインに挿入されるようになったのでターミナルを一度落とす羽目になったけど原因は…

ヒアドキュメントの出力をファイルに書き出す

ヒアドキュメント自体たまにしか使わないし、ファイルの出力の仕方も直感的に出てこないのでメモ。 cat <<EOF > php_info.php heredoc> phpinfo(); heredoc> EOF</eof>

改行コードをCRLFからLFへ変換する

trコマンドでCRを削除すれば良い。 tr -d \\r < hoge.txt > huga.txt

CentOSのバージョン確認

メモ:CentOSのバージョン確認 # cat /etc/redhat-release CentOS release 6.5 (Final)

ファイルの文字コードを調べる

nkf --guess test.txt

シェル変数の文字列展開

パターンにマッチする文字を置換文字に置き換える 書き方: ${変数/パターン/置換文字} $ v="newItem" $ echo ${v/new/old} oldItem 先頭から文字列にマッチした部分を取り除いて出力する 書き方: ${変数#文字列} $ v="newItem" $ echo ${v#new} Item 末尾…

ファイルの拡張子を置換する

ファイルが1つだけだったらmv test{.log,.txt}のようにシェルのブレース展開を利用して行える。 mv test.log test.txtって普通の書き方と比べて楽になっている訳じゃないが、スペルミスが減るところが良いかも。 あと、ファイルが沢山ある場合はLoopを回して…

postgreSQLに接続するシェルのテンプレート

個人的メモ。 たくさんのDBにまとめて同じSQLを実行するテンプレート。 SQLをヒアドキュメントで書くようにしてるけど、長くなるようだったら外出しにしよう。 #!/bin/sh #DBサーバとインスタンスの指定 SETTINGS=("dbserv01 db01" "dbserv01 db02" "dbserv0…

大量のファイルの文字コードを一括で変更する

個人的メモ。 ワイルドカード指定でファイルの一覧を取ってきてforで回しながら文字コードを変換する。 for f in data/**/*.csv; do iconv -f MS932 -t UTF-8 "$f" > "$f.utf8"; done

CentOSのタイムゾーン変更

Jenkinsのビルドログで表示される時間がUTCなのをJSTに変更しようと思いJenkinsの設定周りを調べてみたがそもそもOSのタイムゾーンの問題だと回り回ってやっと分かった。 vagrantのboxを落としてきて、timezoneを変更せずにそのまま設定を変えずに使っていた…

ubuntuでapache自動起動設定

apachectlをinit.dへコピー $ sudo install -o root -g root -m 755 /usr/local/apache2/bin/apachectl /etc/init.d/apache update-rc.dで展開。なんか警告が出ているが、とりあえず無視。 $ sudo update-rc.d apache defaults 85 15 update-rc.d: warning: …