linux
普通にtail -f | jq '.'のようにjqに渡してもうまくいかなかった。 tailからの出力を1行ずつシェルで切ってjqに渡してやらないといけない。 以下のようにwhile read line...コマンドを使うと1行ずつ渡せる。 tail -f app.log | sed -r "s/\x1B\[([0-9]{1,2}(…
以下のように、xargsに-Pオプションを付けると並列実行できる。 find . -name "*.mpg" -type f -print0 | xargs -0 -I {} -n 1 -P 4 ffmpeg -i {} {}.mp4動画や画像処理などはこれ使うとよさそう。 参考:findとxargsの基本的な使い方 -- ぺけみさお
以下のようなコマンドを実行すると、「zsh: argument list too long: find」と怒られる。 find . -name *.jpgワイルドカードを使う場合はエスケープしないといけない。 find . -name \*.jpg もしくは find . -name "*.jpg"これよく忘れるなぁ。。
sshdの設定を変更する場合、設定が間違っているとSSHでログイン出来なくなるので危険。 設定を変更した後は以下のコマンドを実行すると、設定が間違っている場合は[FAILED]になる。 service sshd restart 参考:http://open-groove.net/linux/sshd-restart/
postfixをGitlabで使うためにインストールしたんだけど、 一度目のインストール時は設定画面をNo Configurationを選択して閉じてしまった。 後から設定し直したい場合は以下を実行するともう一度設定画面を表示できる。 sudo dpkg-reconfigure postfix設定画…
findを実行すると、以下のようなエラーメッセージが大量にでて邪魔な場合がある。 find: ./private/var/tmp/symantec_error_reportzTax5M: Permission denied以下のようにすると標準エラー出力のみ捨てられるので便利。 ( find . -name query > /dev/tty ) >…
以下のようにsedで置換するとエスケープできる。 sedは区切り文字として/以外も使えるんだね。 なんなんだこの\の多さは。。 echo $escape_slash | sed s,/,\\\\\\\\\\/,g参考:Sed - How to escape variable number of "/" (slash) ? | Unix Linux Forums |…
chefでssh-agentプロセスがあったらssh-agentの起動スクリプトをスキップする時に使った。 grepに-vオプションを付けると、ある文字列を含む行を除外できる。 execute "launch ssh-agent" do user "root" action :run command <<-EOC eval `ssh-agent` ./ssh…
・echo $SHELLを実行する これはシェルを変更しても反映されなかったので不採用。 再起動時しか更新されないのかな? echo $SHELL #=>/bin/bash sudo chsh ec2-user #=>zshに変更 echo $SHELL #=>/bin/bash zshにならない ・sudo su - root -c "cat /etc/pas…
・ifconfig -aで接続されているインターフェースを確認する。eth3はデバイスが存在するけど、 設定されていないということがわかる。 ・以下を実行してインターフェース設定を書いてある設定ファイルを探す cd /etc find . -type f | xargs grep eth0 ・/etc…
以下のコマンドでできる。 find . -name '*.zip' -exec sh -c 'unzip -d `dirname {}` {}' ';'linuxのコマンドもっと覚えたいなぁ。 参考:shell - Find all zips, and unzip in place - Unix - Stack Overflow
bindkeyを実行すると、キーバインド一覧が表示される。 キーバインドを以下で変更出来る。 bindkey -e #emacs mode bindkey -v #vim mode自分の環境ではCtl+Aで行頭にカーソル移動できないなーと思っていたら、Vimモードになっていたからでした。 Emacsモー…
2014-01-08 - 日々精進の続き。 Ctrl+Rでbck-i-searchを使ってコマンドの再実行ができる。 直近のヒットしたコマンドから過去にさかのぼって行きたい場合は、Ctrl+Rを押すと遡れる。 bck-i-searchホント便利だなぁ。 参考:ターミナルからhistory を さかの…
前に打ったコマンドをもう一度実行したいことがよくあるので、なるべく省力化したい。 まず.bash_profileに以下を追加して履歴の検索をやりやすくする。 alias hg='history | grep'履歴から再実行するコマンドが見つかったら、履歴番号の頭に!を付けると再実…
sedで置換すればいい。でもエスケープしてもシェルスクリプトの実行結果がおかしくなることがあるのでなるべく空白は使わない方がいい。 FILE_PATH=$( echo "$FILE_PATH" | sed 's/ /\\ /g' )参考:linux - Unix command to escape spaces - Stack Overflow
サーバを再起動するとiptablesの設定が消えるので、 以下をやる必要がある。 iptablesの設定をファイルに保存する。 sudo rm /etc/sysconfig/iptables sudo iptables-save > /etc/sysconfig/iptables起動スクリプトに以下を追加。 sudo iptables-restore < /…
1分おきに実行されるスクリプトを二つ書き、一つは30秒sleepさせる。 * * * * * /path/to/executable param1 param2 * * * * * ( sleep 30 ; /path/to/executable param1 param2 )参考:ubuntu - Running a cron every 30 seconds - Stack Overflow
複数のログファイルを簡単に監視できそうなのでlogmonを使って監視することにした。 logmonの使い方は下記記事を見ればわかる。 参考:Amazon EC2でリアルタイムにログ監視をする – logmon – | Developers.IO 以下は上記記事の補足。 インストールは上記記…
lsの結果を更新日時の新しい順に並べる。 ls -ltさらにRを付けるとすべてのサブフォルダについてlsした結果が表示される。 ls -ltRlinuxのコマンド便利なのいっぱいあるんだろうなぁ。 Linuxの勉強したくなってきた。
以下のようなエラーが出る。 sudo ntpdate -d timeserver 12 Dec 15:58:00 ntpdate[30741]: ntpdate 4.2.6p3@1.2290-o Tue Jun 5 20:12:09 UTC 2012 (1) Looking for host timeserver and service ntp Exiting, name server cannot be used: Temporary failu…
/etc/apt/apt.conf.d/に80proxyというファイルを作成すればいいらしい。 環境変数見てくれないのかー。 詳細は↓ Ubuntu-Proxy設定 - PukiWiki
エラーメッセージからは原因がわかりにくかった。。原因はsudoをつけてなかったこと。 下記のようにsudo をつけたらエラー起きなかった。 sudo dpkg-reconfigure tzdata
・/etc/init.d/ の下に実行させたいスクリプトを配置する ・/etc/rc.d/ の下にスクリプトへのシンボリックリンクを置く シンボリックリンクの先頭の文字はSにすること。 起動時にsudo loadkeys jpを実行させると 日本語キーボードが快適に使えていいですね。
以下のコマンドで出来る。 find . -name "*hoge" -exec rm {} \;これなかなか覚えられないなぁ。
coffeeなどのコマンドの実行ファイルが実際どこにあるかを調べるにはwhereを使う。 where coffee
原因はcronから実行する場合とシェルから実行する場合では環境変数が違うから。 実行するシェルスクリプトに.bashrcなどを読み込むコマンドを追加しないといけない。 参考:役立つかもしれないメモ cronからshellの呼び出し