mirror of
https://github.com/Idnan/bash-guide.git
synced 2018-11-09 02:29:39 +01:00
added socks5 and a few extra tricks
This commit is contained in:
parent
c0001e932c
commit
8872391381
1 changed files with 81 additions and 2 deletions
83
README.md
83
README.md
|
@ -854,6 +854,44 @@ This command also accepts an option `-p` that can be used to connect to specific
|
||||||
```bash
|
```bash
|
||||||
ssh -p port user@host
|
ssh -p port user@host
|
||||||
```
|
```
|
||||||
|
For easy access:
|
||||||
|
```bash
|
||||||
|
nano ~/.ssh/config
|
||||||
|
```
|
||||||
|
The config file is organized by hosts. Each host definition can define connection options for the specific matching host. Wildcards are also available to allow for options that should have a broader scope.
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Host firsthost
|
||||||
|
SSH_OPTION_1 custom_value
|
||||||
|
SSH_OPTION_2 custom_value
|
||||||
|
SSH_OPTION_3 custom_value
|
||||||
|
|
||||||
|
Host secondhost
|
||||||
|
ANOTHER_OPTION custom_value
|
||||||
|
|
||||||
|
Host *host
|
||||||
|
ANOTHER_OPTION custom_value
|
||||||
|
|
||||||
|
Host *
|
||||||
|
CHANGE_DEFAULT custom_value
|
||||||
|
```
|
||||||
|
However, we could also use the full option names with the -o flag, like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh -o "User=custom_value" -o "Port=custom_value" -o "HostName=custom_value" anything
|
||||||
|
```
|
||||||
|
#### q1. `SOCKS5`
|
||||||
|
```bash
|
||||||
|
ssh -D port -f -C -q -N user@host
|
||||||
|
```
|
||||||
|
#### Explanation of arguments:
|
||||||
|
- -D: Tells SSH that we want a SOCKS tunnel on the specified port number (you can choose a number between 1025-65536)
|
||||||
|
- -f: Forks the process to the background
|
||||||
|
- -C: Compresses the data before sending it
|
||||||
|
- -q: Uses quiet mode
|
||||||
|
- -N: Tells SSH that no command will be sent once the tunnel is up
|
||||||
|
|
||||||
|
|
||||||
### r. `top`
|
### r. `top`
|
||||||
Displays your currently active processes.
|
Displays your currently active processes.
|
||||||
|
@ -1079,8 +1117,7 @@ file1 -ot file2 # file1 is older than file2
|
||||||
-ne # not equal
|
-ne # not equal
|
||||||
```
|
```
|
||||||
|
|
||||||
## 2.6. Loops
|
## 2.6. Loop
|
||||||
|
|
||||||
There are three types of loops in bash. `for`, `while` and `until`.
|
There are three types of loops in bash. `for`, `while` and `until`.
|
||||||
|
|
||||||
Different `for` Syntax:
|
Different `for` Syntax:
|
||||||
|
@ -1142,6 +1179,41 @@ function finish {
|
||||||
trap finish EXIT
|
trap finish EXIT
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Extract
|
||||||
|
Make your life easier.
|
||||||
|
```bash
|
||||||
|
function extract() # Handy Extract Program
|
||||||
|
{
|
||||||
|
if [ -f $1 ] ; then
|
||||||
|
case $1 in
|
||||||
|
*.tar.bz2) tar xvjf $1 ;;
|
||||||
|
*.tar.gz) tar xvzf $1 ;;
|
||||||
|
*.bz2) bunzip2 $1 ;;
|
||||||
|
*.rar) unrar x $1 ;;
|
||||||
|
*.gz) gunzip $1 ;;
|
||||||
|
*.tar) tar xvf $1 ;;
|
||||||
|
*.tbz2) tar xvjf $1 ;;
|
||||||
|
*.tgz) tar xvzf $1 ;;
|
||||||
|
*.zip) unzip $1 ;;
|
||||||
|
*.Z) uncompress $1 ;;
|
||||||
|
*.7z) 7z x $1 ;;
|
||||||
|
*) echo "'$1' cannot be extracted via >extract<" ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "'$1' is not a valid file!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## Exit
|
||||||
|
```bash
|
||||||
|
function _exit() # Function to run upon exit of shell.
|
||||||
|
{
|
||||||
|
echo -e "${BRed}Hasta la vista, cabron ${NC}"
|
||||||
|
}
|
||||||
|
trap _exit EXIT
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
## Saving your environment variables
|
## Saving your environment variables
|
||||||
|
|
||||||
When you do `export FOO = BAR`, your variable is only exported in this current shell and all its children, to persist in the future you can simply append in your `~/.bash_profile` file the command to export your variable
|
When you do `export FOO = BAR`, your variable is only exported in this current shell and all its children, to persist in the future you can simply append in your `~/.bash_profile` file the command to export your variable
|
||||||
|
@ -1160,6 +1232,13 @@ If you can not access, try append the code below in your `~/.bash_profile` file
|
||||||
PATH="$HOME/bin:$PATH"
|
PATH="$HOME/bin:$PATH"
|
||||||
fi
|
fi
|
||||||
```
|
```
|
||||||
|
## Aliases
|
||||||
|
Put this in your ~/.bashrc file to include all your aliases in a neatly organized file:
|
||||||
|
```bash
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
source ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
# 4. Debugging
|
# 4. Debugging
|
||||||
You can easily debug the bash script by passing different options to `bash` command. For example `-n` will not run commands and check for syntax errors only. `-v` echo commands before running them. `-x` echo commands after command-line processing.
|
You can easily debug the bash script by passing different options to `bash` command. For example `-n` will not run commands and check for syntax errors only. `-v` echo commands before running them. `-x` echo commands after command-line processing.
|
||||||
|
|
Loading…
Reference in a new issue