作業をしているときによく検索するコマンドの個人的メモ
Contents
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フォルダ名)