shとbashの違い

Ubuntuのターミナルでシェルを実行していたら下記のエラーが出た。
プログラム.sh: 15: プログラム.sh: Syntax error: “(” unexpected

解決方法は、実行を
sh プログラム.sh
でなく
bash プログラム.sh
で行なうだけ。

広告

macでffmpegによる画像切り出し

  1. ffmpegをダウンロード
  2. 実行バイナリーを/binにコピー
  3. 切り出し方は例えば「動画a.movの1:12から2:10までを切り出してb.movにしたい」ときは、ターミナルでa.movのフォルダに移動して(パスを指定しても良い)

$ffmpeg -i a.mov -ss 01:12 -c copy -to 02:10 b.mov

ターミナルの小技集

以下のページを参考に小技を引用する。Windows用だが、Macもほぼ同じ

http://www6.atpages.jp/hami/basic/terminal4.php


1.ショートカット 

Ctrl + a カーソルを行頭へ移動
Ctrl + e カーソルを行末へ移動
Ctrl + d 現在の入力行に何か入力されている場合、カーソル後ろの一文字を消去 (Deleteキーと同じ働き)

別のユーザにログインしている場合、別のユーザからログアウト (「exit」コマンドと同じ働き)

上記以外の場合、ターミナルからログアウト(ターミナルを閉じる) (「exit」コマンドと同じ働き)

Ctrl + h カーソルの前にある一文字を消去(Backspaceキーと同じ働き)
Ctrl + u 現在入力中の行をクリア
Ctrl + l ターミナルをクリア(「clear」コマンドと同じ働き)
Ctrl + k カーソルより後ろにある文字列の切り取り
Ctrl + y 切り取った文字列の貼り付け
Ctrl + r コマンドの履歴を表示
Ctrl + f →キーと同じ働き
Ctrl + b ←キーと同じ働き
Ctrl + p ↑キーと同じ働き
Ctrl + n ↓キーと同じ働き

2. 補完機能

コマンドやファイル名を途中まで入力した状態でTabキーを押すと、
その文字に続くコマンドやファイル名を自動で入力。

例)「mkd」まで入力しTabキーを押すと「mkdir」まで入力。

途中までの文字列に一致するコマンドが複数ある場合、Tabキーを2回押すと
コマンドの候補がリストアップ。

例)「mk」まで入力してTabキーを2回押すと、mkで始まる複数のコマンド一覧がリストアップ。


3.コマンド履歴

「↑」キー、または「↓」キーを押すと、以前入力したコマンドが表示。
「↑」キーを押した回数分だけ過去のコマンドにさかのぼる。

また他に、「Ctrl + r」も同じ働き。


4.コピー&ペースト

コピーしたい文字列をマウスで選択するとコピーできます。
「Shift + Insert」キーを押せばペースト。

Vaticのインストールのコツ

1.
cythonのバージョンは0.20に vatic-install.shのcythonバージョンを0.20に書き直す。
さらにcythonをバージョン0.2に落とす。

2.
ffmpegをインストール。下記を参考にインストール
http://qiita.com/naga3/items/74b05ddf5ee8e4331382

3.
JPEGのエラーがでたのでPILをはずしてJPEG再インストール

4.
/etc/apache2/sites-available/000-default.confの中に以下を追加

WSGIDaemonProcess www-data
WSGIProcessGroup www-data
WSGIPythonPath /usr/local/lib/python2.7/dist-packages

(中略)
ServerName vatic.domain.edu
DocumentRoot /home/ユーザ名?/vatic/public
(中略)
WSGIScriptAlias /server /home/ユーザ名?/vatic/server.py
CustomLog /var/log/apache2/access.log combined
(中略)

Order allow,deny
Allow from all
Require all granted

Order allow,deny
Allow from all
Require all granted

5.
WEBがforbiddenなど問題があれば、configなどの設定を直して下記コマンドでサーバーを再起動
$sudo service apache2 restart

6.
一度$turkic puclish –offlineにしたところ
mkdir:ディクレトリ ’/var/www/.python-eggs’を作成できません:許可がありません。
とのこと、まずディレクトリを手動で作成
$sudo mkdir /var/www/.python-eggs
そして
$sudo chown www-data:www-data /var/www/.python-eggs
$sudo chmod -R 777 /var/www/.python-eggs
$sudo chown www-data:www-data /var/www/.python-eggs

とした。

7.
config.pyの中身にパスを通す

8.
server.pyのアクセス権を変える。
chmod 777 server.py

9.
server.pyにsiteを通す
import site
site.addsitedir('/usr/local/lib/python2.7/dist-packages')

UbuntuとMacとのフォルダ共有方法@Virtual Box

Mac上で適当にフォルダを作成。とりあえず「vb_shared」とした。

つぎにVirtualBoxの設定→共有フォルダで、上記のフォルダを追加、そのときに「自動マウント」をチェック。

Ubuntu側の/home/ユーザ名/の下に「vb_shared」フォルダを作成して、ターミナルで下記コマンドを入力してマウントする。

$sudo mount .vboxsf vb_shared /home/ユーザ名/vb_shared

なお、そのままでは再起動時に再度マウントが必要になるそうなので、rc.localにコマンドを入力しておく。参考にしたページではgeditを使ったのでgeditで以下のとおり

$sudo gedit /etc/rc.local

viより使いやすいかも。なお参考にしたページは以下。

http://njet.oops.jp/wordpress/2009/11/11/mac-os-x%E4%B8%8A%E3%81%AEvirtualbox%E3%81%ABubuntu%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/

geditで、rc.localのexit 0の前に下記を書き込む。

mount -t vboxsf vb_shared /home/ユーザ名/vb_shared

で、これから動画をUbuntuに移動する。

SQL Warning

turkic setup –database

をしたところ、

/usr/lib/python2.7/dist-packages/pkg_resources.py:1031: User Warning: /path/to/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location(set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).

warnings.warn(msg, UserWarning)

No handlers could be found for logger “turkic.geolocation”

Error: Unknown action setup

とのこと。それで、下記サイトを参考にパーミッションを変更してみる。

http://www.dingkk.com/post/python-problem.html

http://vendettaweb.net/?p=21

こんな風に

$chmod g-wx,o-wx /home/ユーザ名/.python-eggs

とりあえず以上の警告は消えたので、次はgeolocationのエラー。これはconfig.pyの設定だろう。

OpenCVのインストール

HomebrewがあればOpenCVのインストールは簡単。

次の2行

$brew tap homebrew/science

$brew install opencv

で終了。のはずが、opencvのインストールが超時間かかる。特に、

make bootstrap

が1時間以上かかった、、一度は途中でループになったのかと思い、強制終了してその後macportsをアンインストールしたり、homebrewも再インストールしたりなどしたのだが、結局は正常なインストールプロセスで時間がかかっていたようだった。恐ろしい。

さて下記サイトを参考に、PythonとOpenCVをつなげる。

https://jjyap.wordpress.com/2014/05/24/installing-opencv-2-4-9-on-mac-osx-with-python-support/

下記の2行を実行。
$ ln -s /usr/local/Cellar/opencv/2.4.11_2/lib/python2.7/site-packages/cv.py cv.py
$ ln -s /usr/local/Cellar/opencv/2.4.11_2/lib/python2.7/site-packages/cv2.so cv2.so

うまくいけばpythonを立ち上げて、
import cv
としてエラーが出なければOKだそう。