Skip to content

Instantly share code, notes, and snippets.

@iegik
Last active November 22, 2023 13:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iegik/7485025 to your computer and use it in GitHub Desktop.
Save iegik/7485025 to your computer and use it in GitHub Desktop.
Development environment
# Aliases
# To unset alias use: `unalias ...`
alias ll='ls -lG'
alias ss='stat --printf="%A\t%a\t%h\t%U\t%G\t%s\t%.19y\t%n\n"'
#alias traceroute='tracert -d'
alias timestamp='date +%Y%m%d%H%M%S'
alias iso='date +%Y-%m-%dT%H:%M:%S'
# brew install w3m
alias html2text="w3m -dump -T 'text/html'"
alias untar="tar -zxvf"
# zip for mac
alias zip="ditto -c -k --sequesterRsrc --keepParent"
alias npmplease="rm -rf node_modules/ && rm -f package-lock.json && npm install"
alias yarnplease="rm -rf node_modules/ && rm -f yarn.lock && yarn install"
alias yarnci="yarn install --frozen-lockfile --silent --production=false"
alias tree="tree -C"
alias uuid="python -c 'import sys,uuid; sys.stdout.write(uuid.uuid4().hex)' | pbcopy && pbpaste && echo"
alias chromebeta="/Applications/Google\ Chrome\ Beta.app/Contents/MacOS/Google\ Chrome --user-data-dir=~/Library/Application\ Support/Google/Chrome/Beta"
alias myip="curl http://ipecho.net/plain; echo"
alias ip="ifconfig | grep 'inet ' | grep -v 127.0.0.1 | cut -d\ -f2"
alias g=git # Saves 10% of your time!
alias search="grep -rnwe"
# alias docker=podman # Mac not supports volume mount
alias tcpview="lsof -PiTCP -sTCP:LISTEN"
alias tcpview2="lsof -iUDP -P -n | egrep -v '(127|::1)'"
# Functions
# To unset function use: `unset -f ...`
colordiff () { diff -u "$@" | sed 's/^-/\x1b[41m-/;s/^+/\x1b[42m+/;s/^@/\x1b[34m@/;s/$/\x1b[0m/'; } # http://stackoverflow.com/questions/8800578/colorize-diff-on-the-command-line
tree () { ls -RA "$@" | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'; } # http://stackoverflow.com/questions/3455625/linux-command-to-print-directory-structure-in-the-form-of-a-tree
dataURI () { cat "$@" | openssl enc -base64 | sed -s 's/\r//gim;s/\n//gim;s/^\(R0lGOD\)/data:image\/gif;base64,\1/g;s/^\(iVBORw\)/data:image\/png;base64,\1/g;s/^\(\/9j\/4\)/data:image\/jpeg;base64,\1/g;s/^\(UklGR\)/data:image\/webp;base64,\1/g;'; }
backup () { zip ~/backup/$@.`date +"%Y%m%d%H%M%S"`.zip $(find $@ -name '*' -print); };
# mdedit() { marked "$@" --gwf 2>&1 | lynx -stdin; } # Read Markdown files on Linux
# mdedit() { marked "$@" --gwf 2>&1 | open -a Safari -f; } # Read Markdown files on mac
mdedit() { marked "$@" --gwf 2>&1 | browser; } # Read Markdown files on mac `brew install browser`
filetree () { find "$@" | sed -e 's/[^-][^\/]*\//--/g;s/--/ |-/'; }
splitdiff () { sed '/<<<<<<</,/=======/d;/>>>>>>>/d' $1 > $1.REMOTE; sed '/<<<<<<</d;/=======/,/>>>>>>>/d' $1 > $1.LOCAL; }
automerge () { mv $1 $1.BASE; git checkout BASE $1; meld --auto-merge $1.LOCAL $1 $1.REMOTE; echo $1; }
closemerge () { git add $1; rm $1.BASE $1.LOCAL $1.REMOTE; echo $1; }
mergetool () { splitdiff $1 && automerge $1 && closemerge $1; }
call () { xargs -d' ' -t -n1 -P2 bash -c $1' "$@"' _; }
pem () { openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout $1.key.pem -out $1.cert.pem }
rsa () { ssh-keygen -t ed25519 -C $1 }
jpg2png () { for i in `ls -1 $@`; do convert $i ${i%%.jpg}.png ; done; }
png2webp () { for i in `ls -1 $@`; do cwebp $i -o ${i%%.png}.webp ; done; }
preview () { qlmanage -p "$*" >& /dev/null; } # https://clburlison.com/preview-files-from-terminal/
# npm i -g dependency-cruiser && cd ~/.npm/bin && ln -s ../lib/node_modules/node/bin/depcruise
# brew install graphviz
dependencygraph () { f="/tmp/graph.$RANDOM.svg"; npx dependency-cruiser --exclude "^node_modules" --output-type dot $@ | dot -T svg > $f && preview $f; } # https://www.netlify.com/blog/2018/08/23/how-to-easily-visualize-a-projects-dependency-graph-with-dependency-cruiser/
# deeplink "exp://`ip`:19000/--/foo"
deeplink () { adb shell am start -a android.intent.action.VIEW -d $1; xcrun simctl openurl booted $1; }
# serve -p 3000 .
serve () {
PORT=3000
for i in "$@" ; do
case "$i" in
-p|--port ) shift ; PORT=$1 ; shift ;;
-h ) cat <<-EOM
Usage: serve -p [PORT] [DIRECTORY]
Serves static content
EOM
;
esac
done
ruby -run -ehttpd ${@: -1} -p$PORT
}
# python -m http.server $PORT --directory ${@: -1}
# ruby -rwebrick -e"WEBrick::HTTPServer.new(:Port => ${PORT}, :DocumentRoot => '${@: -1}').start"
# ruby -run -ehttpd ${@: -1} -p$PORT
# getpem example.com:443 example.pem
getpem () { openssl s_client -showcerts -connect $1 </dev/null 2>/dev/null|openssl x509 -outform PEM > $2 }
# pem2pin example.pem
pem2pin () { cat $1 | openssl x509 -inform pem -noout -outform pem -pubkey | openssl pkey -pubin -inform pem -outform der | openssl dgst -sha256 -binary | openssl enc -base64 }
# For WSL
alias open='wsl-open'
say () { /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -C "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('"$@"');" }
# For Docker lovers
node () { docker run -it -v "$PWD":/usr/src/app -w /usr/src/app --rm node:4 node $@; }
npm () { docker run -it -v "$PWD":/usr/src/app -w /usr/src/app --rm node:4 npm $@; }
eval $(docker-machine env --shell sh)
# Mac OS
flushdns () { sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; }
# Rosetta on M1
alias brew="arch -x86_64 brew"
# Python 3
alias pip=/usr/local/bin/pip3
alias python=/usr/bin/python3
DOSKEY ls=dir /B $*
DOSKEY ll=dir $*
DOSKEY mv=move $*
DOSKEY cat=type $*
DOSKEY alias=type %USERPROFILE%\.cmd_aliases.cmd
DOSKEY clear=cls
DOSKEY say=powershell.exe -C "Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('$*');"
DOSKEY open=start $*
cls
# This is Windows Powershell collection for Linux users
#
# Here is the software, that I use.
# Linux tool pack: http://msysgit.github.io/
#
# optipng: http://optipng.sourceforge.net/
# pdftohtml: http://sourceforge.net/projects/pdftohtml/
# http://users.ugent.be/~bpuype/wget/
# Python https://www.python.org/downloads/windows/
# Theme
# {"Ansi 0 Color":"rgb(63,45,34)","Ansi 1 Color":"rgb(32,35,168)","Ansi 10 Color":"rgb(64,148,45)","Ansi 11 Color":"rgb(12,190,229)","Ansi 12 Color":"rgb(210,125,60)","Ansi 13 Color":"rgb(167,48,130)","Ansi 14 Color":"rgb(135,179,53)","Ansi 15 Color":"rgb(237,236,231)","Ansi 2 Color":"rgb(72,165,50)","Ansi 3 Color":"rgb(17,141,229)","Ansi 4 Color":"rgb(172,103,49)","Ansi 5 Color":"rgb(160,26,120)","Ansi 6 Color":"rgb(112,147,44)","Ansi 7 Color":"rgb(186,182,176)","Ansi 8 Color":"rgb(60,44,33)","Ansi 9 Color":"rgb(46,49,212)","Background Color":"rgb(64,34,0)","Bold Color":"rgb(237,236,231)","Cursor Color":"rgb(12,190,229)","Cursor Text Color":"rgb(255,255,255)","Foreground Color":"rgb(93,197,44)","Selected Text Color":"rgb(255,255,255)","Selection Color":"rgb(156,43,121)"}
# Variables
export PROGRAMFILES=/c/Program\ Files
export PROGRAMDATA=/c/ProgramData
export HISTTIMEFORMAT="%d.%m.%Y %H:%M:%S "
export TIMESTAMPFORMAT="%Y%m%d%H%M%S"
export DISPLAY=localhost:0.0
export PYTHON_HOME=/c/Python27
export PYTHON=$PYTHON_HOME/python.exe
export ANDROID_HOME=/e/Users/user/AppData/Local/Android/sdk/
export JAVA_HOME=/e/Program\ Files/Android/Android\ Studio/jre/
export MSYS_NO_PATHCONV=1
# PATH
export PATH=$PATH:$PROGRAMFILES/OpenSSH-Win64
export PATH=$PATH:$PROGRAMDATA/chocolatey/bin
export PATH=$PATH:$PROGRAMFILES/nodejs
export PATH=$PATH:$PROGRAMFILES/Git/cmd
export PATH=$PATH:$PYTHON_HOME
export PATH=$PATH:$PYTHON_HOME/Scripts
export PATH=$PATH:$APPDATA/npm
export PATH=$PATH:$JAVA_HOME/bin/
export PATH=$PATH:$ANDROID_HOME/platform-tools
# Git branches in Bash
# mkdir ~/.bash
# cd ~/.bash
# git clone git://github.com/jimeh/git-aware-prompt.git
export GITAWAREPROMPT=~/.bash/git-aware-prompt
source "${GITAWAREPROMPT}/main.sh"
#export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n\$"
#export PS1="\[\033]0;$MSYSTEM:\w\007\033[32m\]\u@\h:\[\033[33m\w \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\033[0m\]\$ "
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
cd ~/
set LANG=en_US.utf8

PowerShell collection for *nix users

Create PowerShell profile

New-Item -path $profile -type file –force

Aliases Table

get-alias | where {$_.ReferencedCommand -match "exe"} | format-table Name,Definition -autosize

alias

Install Chocolatey from cmd:

@powershell -NoProfile -ExecutionPolicy RemoteSigned -Command "iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex"

Install packages from cmd:

choco install nodejs.install -y
choco install python2 -y
choco install git -y
choco install openssh -y
choco install msys2 -y
choco install notepad2 -y

Links:

Console Tools

GUI


Depricated

Create SHORTCUT:

DEPRICATED use WSL

Command line:

  %SYSTEMDRIVE%\Windows\System32\WindowsPowerShell\v1.0\powershell.exe /c "chcp 65001;sh --login -i"

Start directory:

  %HOMEDRIVE%%HOMEPATH%

Git branches in Bash (read .profile)

DEPRICATED use Zsh

mkdir ~/.bash
cd ~/.bash
git clone git://github.com/jimeh/git-aware-prompt.git

Fixes for MSYS2

# C:\tools\msys64\etc\bash.bashrc
source ~/.profile

Disable Defender unuseful notifications

https://superuser.com/questions/1239422/suppress-windows-defender-antivirus-did-not-find-any-threats-notification-o

EOL's with ^M in Git repository

git config core.autocrlf input
git rm --cached -r .
git reset --hard

EOL's with ^M in specific file

.zshrc:3: command not found: ^M

The solution is as follows: vi ~/.zshrc then enter :set ff=unix


Licenses: GPL, MIT, Freeware (with commercial use available), (cc-by-sa) Guarantees: USE THE SOFTWARE AT YOUR OWN RISK

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet]
"EnableActiveProbing"=dword:00000000
new-alias ll ls
function say {
Add-Type -AssemblyName System.Speech;
(New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak($args);
}
# ~/.ssh/sshd_config
ForwardX11Trusted yes
X11UseLocalhost yes
[automount]
enabled = true
options = "case=off,metadata,umask=22,fmask=11"
mountFsTab = false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment