1/10/2017 - 5:07 PM

- Linux Commands.snippets
watch -d docker service ls
sudo tcpdump -i any port 80
# Archive 
tar -zcvf <filename>.tar.gz <destination>

# Extract 
tar -xvzf <filename>.tar.gz

# extract to directory 
tar -vxf <filename>.tar.gz -C <directory>
ln -s <sourceDirectory> <destination>

# to work on apache, should change permissions/ownership.
chown -R www-data:www-data /mnt/
# IMPORTANT - when changing permissions of folders and users a restart of the SSH session must be made inorder to apply changes.
# REMEMBER - files permissions should allow group to read/write/execute even if its `root` group.

ls -ld <directory>
id <username>
groups <username>

# change default permissions for directories and files created
# direcotry 775, file 664 - default
umask 002
# direcotory 755, file 644
umask 022

# add to a group 
sudo usermod -a -G <group> <username>

# change group 
find <direcotry> -type d -exec chgrp -R <group> {} \;
find <direcotry> -type f -exec chgrp -R <group> {} \;

# change permissions
chmod -R g+rwx <direcotry>
find <directory> -type f -exec chmod -R g+rwx {} \;
find <directory> -type d -exec chmod -R g+rwx {} \;
find <directory> -type f -exec chmod -R 775 {} \;
find <directory> -type d -exec chmod -R 775 {} \;

# clone permissions from another file.
chown --reference=<otherFile> <targetFile>

# change owner and group:
chown -R <ownerUser>:<ownerGroup> <directory>
find <directory> -type f -exec chown -R <ownerUser>:<ownerGroup> {} \;
find <directory> -type d -exec chown -R <ownerUser>:<ownerGroup> {} \;

# "adm" is admin group (apparently).

find ./ -type f -exec chown 1000 {} \;
find ./ -type d -exec chown 1000 {} \;
wget -q <address> -P <destinationDirectory>
curl -i <IP>/<routePath>

# send get request through unix socket:
curl --unix-socket /var/run/docker.sock http:/services | jq '.'

# send Post request
curl -XPOST -d \
'{ "Name": "go-demo-db", "TaskTemplate": { "ContainerSpec": {"Image": "mongo:3.2.10"} } }' \
--unix-socket /var/run/docker.sock http:/services/create | jq '.'

# send DELTE request through unix socket:
curl XDELETE --unix-socket /var/run/docker.sock http:/services/go-demo-db
# install curl and wget.
tce-load -wi curl wget
# install jq - for formating JSON responses.
sudo mv jq-linux64 /usr/local/bin/jq
sudo chmod +x /usr/local/bin/jq
# find also container process
ps -eaf

# delete process
kill <PID>
export VARIABLE=x;

# Next command will have access to it.
# e.g. echo $VARIABLE;

# clear environment variables - Doesn't work 
# removes all exported environment variables in bash or git bash. - messes up things.
env - /bin/bash
# get values of specific column 
awk '{print $<columnNumber>}'

# remove table titles
tail -n +2

# example :
$(docker service ps -f desired-state=running go-demo-db | tail -n 1 | awk '{print $4}')
apt-get -y update && apt-get -y upgrade

# current working directory.
# process status 
ps aux
# show process of specific running task
ps aux | egrep '(apache|httpd)'
# restart

# determine public IP 
wget -qO -
# determine network IP
# ping every device on network
# is a broadcast address, you are sending a ping to every device on your local network and you will get a reply from every device. The ping command is only showing the first reply it gets, in your case your own PC ( is loopback) was the quickest.
ping -b
# Measure time of running script by showing distribution information.
time … cat /etc/lsb-release
# List running processes.
ps auxf
# cURL transfer files from a given server url & then search with grep for sentence with the word.
curl localhost:8080 | grep STRING… 
# get environment variable 
env | grep variableName
# vim editor - esc then : then q! to quite without saving and wq to save
vi <file>
# Access as root user
sudo -i
su -
# Log in as different user
su - <username>
# send http requests for testing
openssl s_client -connect localhost:443
# copy with permissions:
cp -rp <source> <destination>
# move hidden file .htaccess
mv -v <source>/.[!.]* <destination>
# show dot files
ls -a | egrep '^\.'
# log checking  real time live
tail -f <file>

# check mounts 
# or more readable
df -aTh

# reuse argument from last command:
mkdir x && cd $_

#show tree structure: 
tree -I "./node_modules"

# list processes 
ps ax