Skip to content

Instantly share code, notes, and snippets.

View gordonpn's full-sized avatar

Gordon Pham-Nguyen gordonpn

  • Amazon Web Services
  • Montreal, Canada
  • LinkedIn in/gordonpn
View GitHub Profile

ZSH CheatSheet

This is a cheat sheet for how to perform various actions to ZSH, which can be tricky to find on the web as the syntax is not intuitive and it is generally not very well-documented.

Strings

Description Syntax
Get the length of a string ${#VARNAME}
Get a single character ${VARNAME[index]}
@LanHikari22
LanHikari22 / vim-sneak - use s in operator mode.vim
Created February 15, 2021 01:17
Remap vim-surround to 'z' to allow vim-sneak to use 's' in operator mode
" documentation and source are credited to https://github.com/mgarort
" Make vim-sneak mappings more consistent in visual mode by making s go to next match and S
" go to previous match, while keeping vim-surround functionality through z
" (mnemonics: vim-zurround) Explained in this GitHub issue:
" https://github.com/justinmk/vim-sneak/issues/268
"
" So now the behaviour is:
" - Normal: s and S to move with sneak
" - Visual: s and S to move with sneak, z to surround (zurround)
@thomaspoignant
thomaspoignant / Makefile
Last active September 12, 2024 14:01
My ultimate Makefile for Golang Projects
GOCMD=go
GOTEST=$(GOCMD) test
GOVET=$(GOCMD) vet
BINARY_NAME=example
VERSION?=0.0.0
SERVICE_PORT?=3000
DOCKER_REGISTRY?= #if set it should finished by /
EXPORT_RESULT?=false # for CI please set EXPORT_RESULT to true
GREEN := $(shell tput -Txterm setaf 2)
@m-radzikowski
m-radzikowski / script-template.sh
Last active August 18, 2024 12:49
Minimal safe Bash script template - see the article with full description: https://betterdev.blog/minimal-safe-bash-script-template/
#!/usr/bin/env bash
set -Eeuo pipefail
trap cleanup SIGINT SIGTERM ERR EXIT
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
usage() {
cat <<EOF
Usage: $(basename "${BASH_SOURCE[0]}") [-h] [-v] [-f] -p param_value arg1 [arg2...]
@blazewicz
blazewicz / docker-compose-install.sh
Last active January 4, 2024 18:14
Install latest docker-compose on Debian, Ubuntu or Raspberry Pi OS (Raspbian)
#!/bin/bash
set -x
# This script with documentation is available at: https://gist.github.com/blazewicz/04e666ae1f25387c8b291d81b12c550c
## 1. install required dependencies with apt
apt update && apt install python3-venv python3-dev libffi-dev libssl-dev
## 2. create directory for docker-compose's virtualenv
mkdir -p /opt/local/docker-compose
@dchakro
dchakro / pi.status.sh
Last active December 5, 2021 11:03
Bash shell script to print stats about a Raspberry Pi running pihole
#!/usr/bin/env bash
# Define colors
RED='\033[91m'
RED_solid='\033[101m'
GREEN='\033[92m'
GREEN_solid='\033[42m'
CYAN='\033[96m'
NC='\033[0m'
BLUE_solid='\e[44m'
@aaronNGi
aaronNGi / newscript.sh
Created April 28, 2020 20:38
Boilerplate for new POSIX shell scripts
#!/bin/sh
prog_name=${0##*/}
version=1.0
version_text="Boilerplate for new scripts v$version"
options="h o: q v V"
help_text="Usage: $prog_name [-o <text>] [-hqvV] [<file>]...
Boilerplate for new scripts
@m3g4p0p
m3g4p0p / validate_email.js
Created April 26, 2020 19:30
Test if a string is a valid email address using the constraint validation API
/**
* Test if a string is a valid email address
* using the constraint validation API, rather
* than unwieldy regular expressions
*
* @param {string} value
* @returns {boolean}
*/
const validateEmail = value => Object.assign(
document.createElement('input'),
@premek
premek / mv.sh
Last active March 5, 2024 17:43
Rename files in linux / bash using mv command without typing the full name two times
# Put this function to your .bashrc file.
# Usage: mv oldfilename
# If you call mv without the second parameter it will prompt you to edit the filename on command line.
# Original mv is called when it's called with more than one argument.
# It's useful when you want to change just a few letters in a long name.
#
# Also see:
# - imv from renameutils
# - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste)
@carlosedp
carlosedp / main.yml
Created January 28, 2019 19:02
Ansible playbook to automate new Kubernetes SBC nodes
---
- name: Setup SBC
hosts: all
#become: true
#become_user: root
gather_facts: false
vars:
#New user to be created
new_user: newuser