Clone code from git repository: git clone http://github.com/zsloan/genenetwork.git gene Pull from branch in git repository: git pull origin flask(or whatever the branch is) Add all files in current directory branch to be staged to be committed git add -A Git push to my github repository git push https://github.com/zsloan/genenetwork.git master Get the default path being used when a command is typed: which _______ Change default path python looks at when importing export PYTHONPATH="/home/zas1024/gene/wqflask" Get the paths checked when a user types a command: echo $PATH Get all environment variables: set **** apt-get is an Ubuntu system-wide package manager, while pip is a Python-only system for python packages **** Upgrade system packages for security updates, etc: apt-get update apt-get dist-upgrade (can probably be used in place of apt-get upgrade) apt-get upgrade **"apt-cache search" searches for text in the description for various packages, while "apt-file search" searches for files within the packages** Show information about given result item returned by apt-cache search: apt-cache show _______ Search for package with a specified file that can be installed with apt-get apt-file search _______ ============================================ Check which system packages are installed: dpkg -l | less ============================================ NEVER USE SUDO WITH PIP To fix error "mysql_config not found": sudo apt-get install libmysqlclient-dev Create requirements.txt file: pip freeze > requirements.txt (or whatever filename) Install from requirements.txt: pip install -r gene/wqflask/requirements.txt -t ve27 ============================================ To get server running: !If having seemingly inexplicable problems with imports, make sure I've started the environment! Note: Virtual environment is not activated when running as root Start up virtual environment: source ~/ve27/bin/activate Deactivate virtual environment: deactivate (just type deactivate) To set WQFLASK_SETTINGS environment variable: export WQFLASK_SETTINGS=~/zach_settings.py (or wherever file is located) zach_settings.py is the local config file with the DB_URI default_settings.py is the config file with the configuration information that would apply to any running instance of GeneNetwork To change screen environment variable (if man not working or to get color, for example): export TERM=screen To search for commands in history if necessary: history | grep "(whatever is being searched for)" Reload web server: /usr/sbin/nginx -s reload Run server: python runserver.py Run sendmail.py python send_mail.py =========================================== UFW - default firewall confirguation tool for Ubuntu; eases iptables firewall configuration Enable UFW: sudo ufw enable Check status of UFW: sudo ufw status verbose =========================================== Update user password: use mysql; UPDATE user SET password=PASSWORD('whatever') WHERE user='webqtl'; FLUSH PRIVILEGES; =========================================== Redis things Restart redis server: sudo /etc/init.d/redis_6379 stop sudo /etc/init.d/redis_6379 start =========================================== Run pylint: pylint file_name For options: pylint --help =========================================== Start screen session: If "no option -R" or running for first time: byobu-select-backend 2. screen byobu -RD (to start) control-a then :multiuser on control-a then :acladd sam More info on sharing byobu screen with other users: http://wiki.networksecuritytoolkit.org/nstwiki/index.php/HowTo_Share_A_Terminal_Session_Using_Screen control-a c to create channel type: screen -list for sessions screen -r zas1024/25679.byobu or if only one: screen -r zas1024/ =========================================== Start up log: Go to /tmp and tail -f flask_gn_log =========================================== Coffeescript Stuff: coffee -c (filename) coffee -c -w . (to watch for changes and recompile in current directory; the "." is for current directory) coffee --help (for information about setting options) =========================================== Unset ASKPASS when trying to git push unset SSH_ASKPASS =========================================== htop: Gives information on processes, cpu/memory load, etc dstat: Also gives various system information, resource usage, etc df: Reports file system disk space usage =========================================== ll h*: Finds items in the directory starting with h =========================================== du -hms * | sort -n : Gives size used by different directories -h: human readable -m: in megabytes (default) -s: summarize =========================================== rm -rfv =========================================== cp -a (archive; copies recursively and doesn't follow symbol links) -i (interactive, prompts before overwrite) -v (verbose) -b (backup) mv (same as above, but with no -a) =========================================== Add user: sudo adduser Edit /etc/sudoers to give user root privileges =========================================== tidyp - Improves/beautifies html code tidyp -m -i -w 100 index_page.html =========================================== ps ax - View processes ps ux (the "u" is for user) kill (process #) =========================================== Installing QTL Reaper wget http://downloads.sourceforge.net/project/qtlreaper/qtlreaper/1.1.1/qtlreaper-1.1.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fqtlreaper%2Ffiles%2Flatest%2Fdownload&ts=1358975786&use_mirror=iweb tar xvf qtlreaper-1.1.1.tar.gz (to unzip) python setup.py build python setup.py install =========================================== Using Yolk Install Yolk: pip install yolk Check packages installed in this virtual environment: yolk -l Checks packages that have updates available: yolk -U =========================================== Python stuff: Classes should always inherit "object" To iterate through dictionary items: for X, Y in MyDictionary.items(): =========================================== Change import path from command line export PYTHONPATH=~/gene/wqflask (or whatever) =========================================== Create symbolic link: ln -s dir_to_link_to linking_dir =========================================== Reboot server sudo reboot =========================================== Using grep: grep -ir (search string) (directory) -i ignores case -r searches recursively through subdirectories of directory you specify =========================================== Command line arguments: Use argparse to deal with command line arguments (instead of argv or optparse) =========================================== Change owner/group: chown zas1024 somefile (change owner of somefile to zas1024) chown zas1024: somefile (change owner and group of somefile to zas1024) sudo chown root: somefile (change owner/group of somefile to root) Change permissions: chmod g-wr (remove write/read privileges for group) chmod g+w (add write privileges for group) chmod u+rwx (add read, write, and execute privileges for user) etc. =========================================== MySQL Things - Create fulltext (MATCH AGAINST syntax) index: CREATE FULLTEXT INDEX __________ ON Table (Column); If <4 character searches not working: Add ft_min_word_len = 2 (to make te minimum characters 2) to config file Rebuild relevant tables with fulltext indexes with "REPAIR TABLE _______ QUICK" =========================================== To delete all .pyc files (for example if there's some issue you're having trouble resolving): find . -name '*.pyc' -delete http://stackoverflow.com/questions/785519/how-do-i-remove-all-pyc-files-from-a-project