# Help / Useful commands ## tmux tmux new -s [name] # start new session named [name] tmux a -t [name] # attatch to session named [name] tmux ls # list tmux sessions tmux kill-ses -t [name] # kill tmux session named [name] ### tmux keybindings C+b $ # rename session C+b % # vertical split C+b " # horizontal split C+b d # detach from session C+b c # create new tab C+b n # next tab ## sybmolic links ln -s [file] [symbolic link] # creates a symbolic link for [file] ln -sr [file] [path_to_sym_file] # creates symlink in a diff directory ## yarn yarn global add [package] # adds a package globally yard add [package] # add a package yarn create react-app [name] # create-react-app with yarn ## firebase firebase deploy # deploy code to firebase firebase serve # run local server through firebase firebase projects:list # list all projects ## curl curl [web_address] # dump a webpage to the terminal curl -L [address] # follow a link and dump the results curl --verbose probably also -v # run with verbose ## nmap nmap [web-address] # see what ports are open at address sudo lsof -i -P -n | grep LISTEN # listen for stuff on ports ## pip pip list # list pip packages installed ## python virtual env python3 -m venv env # create the env directory source env/bin/activate # activate the virtual environment or . env/bin/activate echo $VIRTUAL_ENV # prints the path to the virtual env which -a python # lists the install locations of python deactivate # when in a virtual session deactivates it ## tar tar [address] # download a file from address ## vim :sp [filename] - Opens a new file and splits your screen horizontally to show more than one buffer :vsp [filename] - Opens a new file and splits your screen vertically to show more than one buffer set nonumber # remove line numbers from file Ctrl+w h # shift focus left pane Ctrl+w l # shift fous right pane :nohls # remove search hilighting until next search cw # delete word and enter insert mode ^u # go up half a page ^d # go down half a page s// # search and replace for pattern V [select line] # Use visual line to select multiple lines :g/^$/d # Remove all blank lines from a file "xyy # Yank line to register x "xp # Paste line from register x "+y # yank into the system clipboard register "+p # paste from the system clipboard register zg # add word to local dictionary (spellcheck) ## markdown grip # open a live-server for markdown file **<>** # bold --- # line [...](link) # inline-style link [desc](link "hover title") # inline-style link with hover title ## pacman pacman -Syu --ignore=[package name] # update/upgrade all but packages in ignore pacman -Rs package_name # remove a package and all deps not needed pacman -Rsu package_name # if above command does not work pacman -Qtdq # check for orphaned packages pacman -Rns $(pacman -Qtdq) # remove orphaned packages rm /var/lib/pacman/db.lck # remove the lock file for pacman pacman -U /var/cache/pacman/pkg/package-old_version.pkg.tar.type # downgrade package ## ctags ctags -R . # index the current directory with ctags ## ssh ssh -i eecs485deploy.pem ubuntu@ec2-3-137-139-85.us-east-2.compute.amazonaws.com ssh -p [port] user@ip ~/.ssh/config # file to change configuration for ssh ## insta485 server-side gunicorn -b localhost:8000 -w 2 -D insta485:app # Start the server pgrep -af gunicorn # list running guinicorn jobs pkill -f gunicorn # stop the gunicorn server ## wget wget [address] # download a file/files -P # specify a directory -c # allow to save location on INT ## unzip unzip (file) # unzips zip file ## wine wine (file) # install a windows file winefile # opens the windows file system ## onedrive onedrive --synchronize # sync the onedrive folder to the cloud ## text2pdf text2pdf [input file] > [output] # convert input file to pdf named output ## netstat netstat -ltnp | grep -w ':PORT' # show process running on port PORT l - only show lisening sockets t - display tcp connections n - show numerical addresses p - show PID and process name grep -w - matching of exact string netstat -tupan ## japanese keyboard ibus-setup # start daemon and launch config Ctrl+Alt+Shift # switch between languages ## httpie http [url] # send get request with pretty printing/colors ## tcm - Typed CSS Modules # generate styles.css.d.ts file tsm [directory or file] # generate styles.d.ts for each file or specific file ranger ranger # open text-based file-manage ## nmcli # netwrok manager command line interface nmcli device # lists all device nmcli device wifi # list wifi networks nmcli device connct wlp1s0 -ask # connect to wifi and enter password ## picom # to blur stuff picom & # run picom in background ## i3-gaps Alt+Shift+G # open up the gap manager ## feg # set background image feh --bg-scale ~/OneDrive/Pictures/what\ are\ the\ chances.jpg ## xprop # run xprops Click on window and get information from the Window Manager about it ## Linux keybindings Alt+Shift+g to go into gap mode and press i for inner gap and + 4 times redirect stderr append 2>/dev/null to redirect filehandle 2 (STDERR) to /dev/null, which is ## network-manager nmtui # launch network manager gui nmcli # network manager cli ## disown # remove a job from table of active jobs disown %[jobnumber] # removes active job [jobnumber] ## jobs jobs -l # list all active jobs ps ps -l # list active processes ## doom emacs Meta=SPACE Meta+. # open file search Meta+b # open buffer settings Meta+b+m # set bookmark Meta+Return # open bookmark selector Meta+h # help Meta+t # toggle menu Meta+o+p # toggle nerdtree like thing ## bpytop New and improved bashtop written in python ## w3m w3m www.google.com # terminal web browswer ## bluetoothctl scan on # turn on scan pair [device id] # connect to device ## locate locate [filename] # return path to file locate -b [filename] # search for file/dir in basename suda updatedb -v # update the db with new files ## md2pdf md2pdf # convert markdown file to pdf ## glow # Read from file glow README.md # Read from stdin glow - # Fetch README from GitHub / GitLab glow github.com/charmbracelet/glow # Fetch markdown from HTTP glow https://host.tld/file.md # stash document from cli glow stash README.md ## Notifications /usr/share/dbus-1/services ## crontab crontab -e # edit the cronjobs for user crontab -l # list all cronjobs ## youtube-dl youtube-dl [url] # download a video from youtube ## pgrep pgrep -af [name] # searches for all process with name [name] pgrep -x [name] # searches for name with exact matching pgrep -l [name] # return pid and process name ## pidof pidof [name] # gets the pid of the process with [name] ## gparted Use application gparted to format USB drive ## getopts while getopts "vk" arg; do case $arg in v) verbose=1;; k) justKillIt=1;; esac done ## tor ahmia.fi # dark web search engine ## github api curl -i -u your_username:your_token https://api.github.com/user curl -i -H "Authorization: token " \ https://api.github.com/user/repos ## conky Ctrl+Mod(alt)+c # toggle conky Ctrl+Mod+PgUp # next conky Ctrl+Mod+PgDn # prev conky # launch conky set up by Arcolinux team conky -c /home/sudacode/.config/conky/AUR-ArcoLinux-Plasma.conkyrc conky -c ~/.config/conky/AUR-Nemesis-Plasma.conkyrc ## Chiaki ps4 remtote play application for linux ## Arch not booting Ctrl+Alt+F5 to get to tty5 may need to press FN key check /var/log/pacman.log ## systemctl ```sh systemctl start [name] Starts service systemctl stop [name] Stops service systemctl enable [name] Enables service on startup systemctl disable [name] Disables service on startup systemctl status [name] Get status of service ``` ## Fix Spotify Not Working Well rm /usr/share/dbus-1/services/org.kde.plasma.Notifications.service ## heroku heroku git:remote -a [project name] Connect repository to the heroku remote ## tokei tokei show programming languages in use in current directory ## ncmpcpp audio player ## pulsemixer command line pulseaudio ## psql connect to a postgresql db on another machine psql postgresql://[username]@[addr]:[port]/[DBname] ## udisksctl ### mount/unmount sd card udisksctl mount -b /dev/mmcblk0p1 udisksctl unmount -b /dev/mmcblk0p1 ## dunst dunstify "notification" display a desktop notification dunstify "Progress: " -h int:value:60 display progress bar starting at 60 ## Jupyter Notebook ### Add a Virtual Environment to JN ```bash python -m ipykernel install --user --name=[env_name] ``` ### Uninstall venv from JN ```bash jupyter kernelspec uninstall [env_name] ``` ### sacad: download album artwork ```bash sacad [artist] [album name] [size] [output_file_name] ``` ### ifuse: connect to iphone filesystem ```bash $ mkdir -p /tmp/phone/ # mount the filesystem $ fusermount -u /tmp/phone/ # unmount the filesystem $ ifuse /tmp/phone/ ``` ### mdr: markdown render in the terminal :MarkdownRender right ### ipython: interactive python with history, dynamic object introsepction, easier configuration, command completion, access to system shell, and integration with numerical and sientific computing tools ## nvtop top for graphics card ## rofi-mpd ```bash rofi-mpd -h ``` ## UMICH Caen rsync -rtv path_to_your_local_file_name your_uniqname@login.engin.umich.edu:path_to_your_remote_folder ## Edit files as superuser (sudo) sudo -e or sudoedit ## nftables: firewall nft -s list ruleset | tee [filename] systemctl status nftables ## i3-help-log ## lscpu lscpu # display info about the CPU ## ps ps -aux # list stats about processes running including cpu and memory ps -aux --sort=%mem/%cpu # sort by memory or cpu ps -aux --sort=-%mem # sort by memory in ascending order ## kill kill -l # list all kill signals ## ip ip a # show all ip -4 addr # show ipv4 addresses ip -6 addr # show ipv6 addresses ## sqlplus select * from user_sequences; # list user defined sequences select table_name from user_tables; # list user defined tables ## qemu # create image qemu-img create -f qcow2 Image.img 10G # create vm with 4G of memory with X.iso and boots directly into dvd drive qemu-system-x86_64 -enable-kvm -cdrom manjaro-awesome-20.0-200428-linux56.iso -boot order=d -drive file=Image.img -m 4G -cpu host -smp 4 -vga virtio -display sdl,gl=on # boots into menu qemu-system-x86_64 -enable-kvm -cdrom manjaro-awesome-20.0-200428-linux56.iso -boot menu=on -drive file=Image.img -m 4G -cpu host -smp 4 -vga virtio -display sdl,gl=on ## scp: secure cp # copy file to remote scp -P 88 [file] user@host:path-to-file # copy directory to remote scp -rp -P 88 [directory] user@host:path-to-directory # copy from remote to local scp remote-user@remote-host:file path-to-file ## rsync # copied files in archive mode (recursively run on directories) # add --delete option to have destination delete files when deleted in src rsync -av --delete [source] [destiation] # exclude files with --exclude='pattern' or --exclude-from='exclude_file' # rsync over the network ## wget # add -c argument to allow to interrupt download and resume later with -c # -P to set local download path ## send key to server ssh-copy-id user@host ## CAEN VNC ssh -f -L 5951:localhost:5951 uniqname@login-course.engin.umich.edu "sleep 30" vncviewer localhost:5951 ## Anaconda source /opt/anaconda/bin/activate /home/sudacode/anaconda3 anaconda-navigator PostgreSQL: postgresql://scott:tiger@localhost/mydatabase MySQL: mysql://scott:tiger@localhost/foo Oracle: oracle://scott:tiger@127.0.0.1:1521/sidname SQL Server: mssql+pyodbc://scott:tiger@mydsn SQLite: sqlite:///foo.db ## Create new Application Entry /usr/share/applications/ /usr/local/share/applications/ ~/.local/share/applications/ create desktop entry like others ## mysql sudo mysql # connect to mysql as root create database [db_name]; grant all privileges on mydb.* to user@localhost; grant all privileges on mysql.* to user@localhost; flush priviliges; ## ncdu: disk usage ## baloo balooctl # control baloo baloosewarch [search] #search for files/folders ## nbfc: Fan Control ## thermald: CPU Frequency Scaling ## Vim-Plug :PlugInstall # install plugins :PlugClean # clean .vim/plugged directory ## remoteit # screen screen -S [session_name] start named screen session screen -S [session_name/pid] reattach screen -S [session_name] -d -m [command] run command in detached session screen -ls list screens ctrl+a d detach from session ## mpc mpc add http://host:port add stream mpc del [num] (0 indexed) delete from queue mpc play play (lol) mpc toggle ## pdfjam pdfjam [files] --outfile [file]