仕事メモとか

仕事中に調べた情報とか知ったことをメモしています。
unixコマンド, vim, oracle, putty, postgresql, bash, EXCEL, python, SQL全般 など。
最近は tableau, movabletype とかも触ったりしています。
雑な読書感想とかはこちら

カテゴリ: unix


lnコマンドでディレクトリのシンボリックリンクを張り替え

はい、ディレクトリ構成を変更したので、
シンボリックリンクの向き先を変更するにはどうすればいいんだろう、と調べました。
一旦消して~とも思ったんですが、リンクを消すときに間違えてリンク先の実態が消えそうで
本当怖い。

なので向き先だけを変更すればいいのでは? と思って調べたら、ちょうどいいのありました。


ln -nfs {向き先} {リンク名}

オプションの意味
-n:ディレクトリでも指定OK
-f:リンクファイルと同名のファイルがあったら上書き
-s:シンボリックリンク作成

利用頻度が少なすぎて、あんまり覚えてられないのでメモ。


参考:
https://qiita.com/takeoverjp/items/bb1576e90a8a495db4b3
https://www.atmarkit.co.jp/ait/articles/1605/30/news022.html


grepで大文字小文字を気にしなくて検索したい、など

はい、良く使うgrepですが、結構うろ覚えな機能も多数。
ということで、今回は気になるgrepの良く使う機能を纏めておきました。


●大文字小文字を区別しないで検索したい
-i , --ignore-case

●検索結果に色を付けたい
--color

●ファイル単位に検索結果が何件あるか調べたい
-c , --count

●バイナリファイルを検索対象としない
-I

●検索結果の行番号を一緒に出力
-n , --line-number

●パターンを含んだ行「以外」を出力
-v, --invert-match


参考:
https://linuxjm.osdn.jp/html/GNU_grep/man1/grep.1.html

grepでORとかAND検索
http://workmemo.techblog.jp/archives/24855377.html

grepで前後のデータを出したい
http://workmemo.techblog.jp/archives/36652828.html


at コマンド応用編

はい、便利なatコマンドをその後使ってみました。

使ってみたら普通に指定しようとすると、実行設定にオプションを指定するひつようがあり、
こいつがatコマンド上のオプションとして認識しようとして、へんな感じになったので、
atコマンドラインを立ち上げる形で対応しました。


・atコマンドの実行設定の年月日時分を設定(2019.03.21 10:30に実行設定)
at 10:30 03212019

・atコマンドライン上で内容指定
at>
↑こうなったらOK

xxxx.sh -x vvv 222 333

Ctrl+D (※コマンドラインを抜ける)


●その他atコマンド

at -l ※設定されているものをリスト表示、atコマンドのジョブIDも出せる
at -d {ジョブID} ※作成したジョブの削除
at -c {ジョブID} ※作成したジョブの詳細出力



参考:
https://eng-entrance.com/linux-command-at


grepで前後のデータを出したい

検索をしたときに、その前後も見たい、みたいなことが結構あるんですが、
そもそも実行時の指定でこれが存在していました。

例)
cat xxxx.txt | grep -5 XXXX

これで前後5行が表示されます。
但し検索ワードが複数検出される場合は見づらくなるので要注意。

logファイルなどを見るときに場所特定の後、前後のデータを見たいときに使いましょう。


その他の使い方

-A3=後3行も出てくる
-B2=前2行も出てくる



参考:
https://www.atmarkit.co.jp/flinux/rensai/linuxtips/137greplineplus.html


gitコマンドで、svnのinfoみたいなものが欲しかった(過去形

はい、大体gitに移行しているのですが、地味に困ってるのが、
他メンバーに該当ファイルを伝えるときにいい方法が無いという点です。
いや、あるのかもしれないんですけど。

svn時代には、
svn info {ファイル名}
とかで指定していたのですが、どうも探しても見当たらないのです。
いや、あるのかもしれないんですけど(2回目)


ということで、色々考えたのですが、もう作っちゃえばいいじゃないの、と。

●前提
1.作業は殆どローカルではなくサーバー上で行うため、unixコマンドみたいにしたい
2.ソース管理はgitlabなので、このURLを直で渡せれば幸せ

・・・これで考えてみたら、今いる場所をechoして置換すればいいんじゃね? ってなりまして。

こんな感じにしました。
例によって、頭はあんまりよくありません。


git_infoコマンド

-------------------------ソース--------------------------
function error {
if [ "$1" != "" ]; then
echo "error: $1"
else
echo "Usage: $0 "
fi
exit 1
}


[ $# -gt 2 ] && error

DIR="$(pwd | sed 's/{自分が作業するgit管理下}//g' | sed 's/{サーバー上の本番git場所}//g' )"
echo "{管理してるgitlabのURLで固定部}${DIR}/${1}"

-------------------------ソース--------------------------

↑このページのトップヘ