作業をしているときによく検索するコマンドの個人的メモ


Django(pyenv使用)

pyenvで環境構築後のコマンド。python3をそのままインストールした場合は、python→python3に変更
・プロジェクト作成
$ django-admin.py startproject projectname
$ cd projectname
$ python manage.py migrate
$ python manage.py createsuperuser

・起動
python manage.py runserver 0:8000
前は以下のコマンド使っていたけれど、上記で動いた。念のためメモ。
python manage.py runserver ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000

・アプリ作成
python manage.py startapp appname

・マイグレーションとマイグレート
python manage.py makemigrations appname
python manage.py migrate

※settings.pyを編集後。また、アプリを削除した時は、migrateだけで良い。

・その他
python manage.py collectstatic # 静的ファイルを集める
python manage.py sqlmigrate accounts 0001 # SQLの確認

・Djangoのサーバをとりあえず動かしておきたい時(実運用では使用しない)
nohup python manage.py runserver url:8000 &
止める時は、
ps -ef|grep python
でプロセスを確認して、
sudo kill 番号

・ユーザのパスワード変更
python manage.py changepassword username

Djangoの静的ファイルとタグ

・静的ファイル
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)

・{{ STATIC_URL }}の読み込み
TEMPLATESに下記追加。
'django.template.context_processors.static',
・Templateのコメントアウトタグ
{% comment %}
{% endcomment %}

rm(ディレクトリの中身ごと削除)

sudo rm -rf ディレクトリ

ディレクトリのコピー

cp -a a_dir b_dir
a_dirをb_birの名前でコピー。-rオプションだとディレクトリ以下をすべてコピー。-aオプションだと所有者やパーミッション,ディレクトリ構造などを保持した状態でコピーができる模様。

AWSのサーバへのSSHログイン

ssh -i プライベートキーのファイル名 ec2-user@プライベートDNSの値
※ec2-userの部分は、その環境ごとに変更。
・鍵ファイルのパーミッション変更
$ chmod 400 鍵の名前

tar

tar cvzfp 圧縮ファイル名.tar.gz ディレクトリ名
tar xvzfp 解凍ファイル名
パーミッションを保ったまま圧縮・解凍

ファイルのダウンロード

$ scp -P 22 -i 鍵ファイル ec2-user@ドメイン:/home/ec2-user/requirements.txt ~/Downloads/
※AWSでAmazon Linux AMIのインスタンスを立ち上げた場合、ec2-userが最初に作られる。

ファイルのアップロード

$ scp -P 22 -i 鍵ファイル ~/Downloads/requirements.txt ec2-user@ドメイン:/home/ec2-user/
requirements.txtはファイルの名称なので、適宜変更。このときはpip用に作成したもの。

nginx関連

nginxの設定
sudo vi /etc/nginx/nginx.conf
nginxの起動
sudo nginx
nginxのリスタート
sudo /etc/init.d/nginx restart
nginxのプロセス確認
ps aux | grep nginx
nginxの停止
sudo service nginx stop

gunicorn関連

プロセスの確認
ps -ef|grep gunicorn
起動
gunicorn projectname.wsgi # -Dでバックグラウド

grep

find . -name "*.py" | xargs grep name

pyenv

pyenv install --list # pyenv install -l
pyenv install xxx # xxxにバージョン記載
pyenv versions # インストールされているバージョンの確認
pyenv global xxx # xxxにバージョン記載
pyenv global system # systemのpythonに戻す
pyenv rehash # バージョンが変わらないときに試すと変わるときがある

virtualenv

virtualenv ディレクトリ名 #環境の作成
うまくいかない時pyenv-virtualenvを入れてみる。
source ディレクトリ名/bin/activate

pip

pip list -o # バージョンアップが必要なパッケージ確認
pip install django -U
pip install django==1.7.8
pip install --upgrade pip

・requirements.txt関連
pip freeze > requirements.txt
pip install -r requirements.txt
pip uninstall -r requirements.txt # y/nを聞かれる
pip uninstall -r requirements.txt -y # y/nを聞かれない

diff

-+で表示する
diff -u a.txt b.txt
2つ並べて表示する
diff --side-by-side a.txt b.txt

git

git init # gitファイルの作成
git add . # ステージングエリアに移動
git commit -m "コミット名" # コミット
git push -u origin master # pushする
git pull # gitのデータをマージする
git remote add origin git@github.com:ユーザ名/リポジトリ名.git # リポジトリの設定
git clone git@github.com:ユーザ名/リポジトリ名.git # リポジトリのデータを持ってくる

AWSでインスタンス作成後sudoができない時のrootパスワード設定

sudo passwd root #パスワードを設定
su
パスワード:
root$ visudo #編集
Defaults secure_pathを、
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
に変更。

yum

yum list installed # インストール済みパッケージ一覧表示
yum list installed | grep パッケージ名 # パッケージ名で検索して表示

zip

パスワード付zip
zip -e -r ファイル名.zip ファイル名(orフォルダ名)