\documentclass[10pt,a4paper]{article}

% Packages
\usepackage{fancyhdr}           % For header and footer
\usepackage{multicol}           % Allows multicols in tables
\usepackage{tabularx}           % Intelligent column widths
\usepackage{tabulary}           % Used in header and footer
\usepackage{hhline}             % Border under tables
\usepackage{graphicx}           % For images
\usepackage{xcolor}             % For hex colours
%\usepackage[utf8x]{inputenc}    % For unicode character support
\usepackage[T1]{fontenc}        % Without this we get weird character replacements
\usepackage{colortbl}           % For coloured tables
\usepackage{setspace}           % For line height
\usepackage{lastpage}           % Needed for total page number
\usepackage{seqsplit}           % Splits long words.
%\usepackage{opensans}          % Can't make this work so far. Shame. Would be lovely.
\usepackage[normalem]{ulem}     % For underlining links
% Most of the following are not required for the majority
% of cheat sheets but are needed for some symbol support.
\usepackage{amsmath}            % Symbols
\usepackage{MnSymbol}           % Symbols
\usepackage{wasysym}            % Symbols
%\usepackage[english,german,french,spanish,italian]{babel}              % Languages

% Document Info
\author{pastrami (pastrami)}
\pdfinfo{
  /Title (onestop-nerd-shop.pdf)
  /Creator (Cheatography)
  /Author (pastrami (pastrami))
  /Subject (OneStop(Nerd)Shop Cheat Sheet)
}

% Lengths and widths
\addtolength{\textwidth}{6cm}
\addtolength{\textheight}{-1cm}
\addtolength{\hoffset}{-3cm}
\addtolength{\voffset}{-2cm}
\setlength{\tabcolsep}{0.2cm} % Space between columns
\setlength{\headsep}{-12pt} % Reduce space between header and content
\setlength{\headheight}{85pt} % If less, LaTeX automatically increases it
\renewcommand{\footrulewidth}{0pt} % Remove footer line
\renewcommand{\headrulewidth}{0pt} % Remove header line
\renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit
% This two commands together give roughly
% the right line height in the tables
\renewcommand{\arraystretch}{1.3}
\onehalfspacing

% Commands
\newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour
\newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols
\newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns
\newcommand{\tn}{\tabularnewline} % Required as custom column type in use

% Font and Colours
\definecolor{HeadBackground}{HTML}{333333}
\definecolor{FootBackground}{HTML}{666666}
\definecolor{TextColor}{HTML}{333333}
\definecolor{DarkBackground}{HTML}{4F3170}
\definecolor{LightBackground}{HTML}{F4F2F6}
\renewcommand{\familydefault}{\sfdefault}
\color{TextColor}

% Header and Footer
\pagestyle{fancy}
\fancyhead{} % Set header to blank
\fancyfoot{} % Set footer to blank
\fancyhead[L]{
\noindent
\begin{multicols}{3}
\begin{tabulary}{5.8cm}{C}
    \SetRowColor{DarkBackground}
    \vspace{-7pt}
    {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent
        \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}}
    }
\end{tabulary}
\columnbreak
\begin{tabulary}{11cm}{L}
    \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{OneStop(Nerd)Shop Cheat Sheet}}}} \\
    \normalsize{by \textcolor{DarkBackground}{pastrami (pastrami)} via \textcolor{DarkBackground}{\uline{cheatography.com/140937/cs/31147/}}}
\end{tabulary}
\end{multicols}}

\fancyfoot[L]{ \footnotesize
\noindent
\begin{multicols}{3}
\begin{tabulary}{5.8cm}{LL}
  \SetRowColor{FootBackground}
  \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}}  \\
  \vspace{-2pt}pastrami (pastrami) \\
  \uline{cheatography.com/pastrami} \\
  \end{tabulary}
\vfill
\columnbreak
\begin{tabulary}{5.8cm}{L}
  \SetRowColor{FootBackground}
  \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}}  \\
   \vspace{-2pt}Published 17th March, 2022.\\
   Updated 17th March, 2022.\\
   Page {\thepage} of \pageref{LastPage}.
\end{tabulary}
\vfill
\columnbreak
\begin{tabulary}{5.8cm}{L}
  \SetRowColor{FootBackground}
  \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}}  \\
  \SetRowColor{white}
  \vspace{-5pt}
  %\includegraphics[width=48px,height=48px]{dave.jpeg}
  Measure your website readability!\\
  www.readability-score.com
\end{tabulary}
\end{multicols}}




\begin{document}
\raggedright
\raggedcolumns

% Set font size to small. Switch to any value
% from this page to resize cheat sheet text:
% www.emerson.emory.edu/services/latex/latex_169.html
\footnotesize % Small font.

\begin{multicols*}{2}

\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Javascript}}  \tn
% Row 0
\SetRowColor{LightBackground}
let \textless{}name\textgreater{} = \textless{}value\textgreater{} & Declare variable \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
let \textless{}name\textgreater{} = prompt("\textless{}text"\textgreater{}) & Prompt user for input \tn 
% Row Count 3 (+ 2)
% Row 2
\SetRowColor{LightBackground}
+ & Concat or add \tn 
% Row Count 4 (+ 1)
% Row 3
\SetRowColor{white}
if (\textless{}condition\textgreater{})\{\textless{}if true\textgreater{}\} else \{\textless{}if false\textgreater{}\} & Conditional \tn 
% Row Count 7 (+ 3)
% Row 4
\SetRowColor{LightBackground}
\textless{}condition\textgreater{} ? \textless{}if true\textgreater{} : \textless{}if false\textgreater{} & Conditional shorthand \tn 
% Row Count 9 (+ 2)
% Row 5
\SetRowColor{white}
\textless{}variable\textgreater{}.trim() & Trim whitespace \tn 
% Row Count 10 (+ 1)
% Row 6
\SetRowColor{LightBackground}
let \textless{}objname\textgreater{} = \{\textless{}name\textgreater{} : \textless{}value\textgreater{}, \textless{}name\textgreater{} : \textless{}value\textgreater{}\} & Create object with attributes \tn 
% Row Count 13 (+ 3)
% Row 7
\SetRowColor{white}
|| & Logical or \tn 
% Row Count 14 (+ 1)
% Row 8
\SetRowColor{LightBackground}
\textless{}variable\textgreater{}.replace("\textless{}toreplace\textgreater{}","\textless{}replacewith\textgreater{}") & Replace in string \tn 
% Row Count 17 (+ 3)
% Row 9
\SetRowColor{white}
\&\& & Logical and \tn 
% Row Count 18 (+ 1)
% Row 10
\SetRowColor{LightBackground}
\textless{}variable\textgreater{}.toUpperCase() & To uppercase \tn 
% Row Count 20 (+ 2)
% Row 11
\SetRowColor{white}
let \textless{}name\textgreater{} = {[}\textless{}var1\textgreater{},\textless{}var2\textgreater{}{]} & Create list / Array \tn 
% Row Count 22 (+ 2)
% Row 12
\SetRowColor{LightBackground}
listName{[}\textless{}index\textgreater{}{]} & Access value in index position of array \tn 
% Row Count 24 (+ 2)
% Row 13
\SetRowColor{white}
"\textless{}string\textgreater{} \$(variable)" & Literals, add value to string. Can concat too with `+` \tn 
% Row Count 27 (+ 3)
% Row 14
\SetRowColor{LightBackground}
listName{[}\textless{}index\textgreater{}{]} = \textless{}value\textgreater{} & Update value in index position of array \tn 
% Row Count 29 (+ 2)
% Row 15
\SetRowColor{white}
Math.round(\textless{}value\textgreater{}) & Round number \tn 
% Row Count 30 (+ 1)
\end{tabularx}
\par\addvspace{1.3em}

\vfill
\columnbreak
\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Javascript (cont)}}  \tn
% Row 16
\SetRowColor{LightBackground}
Math.floor(\textless{}number\textgreater{}) & Round down \tn 
% Row Count 1 (+ 1)
% Row 17
\SetRowColor{white}
Math.ceil(\textless{}number\textgreater{}) & Round up \tn 
% Row Count 2 (+ 1)
% Row 18
\SetRowColor{LightBackground}
Math.min(\textless{}num1\textgreater{},\textless{}num2\textgreater{}) & Lowest value provided \tn 
% Row Count 4 (+ 2)
% Row 19
\SetRowColor{white}
Math.max(\textless{}num1\textgreater{},\textless{}num2\textgreater{}) & Highest value provided \tn 
% Row Count 6 (+ 2)
% Row 20
\SetRowColor{LightBackground}
let \textless{}name\textgreater{} = Date() & Current time \tn 
% Row Count 7 (+ 1)
% Row 21
\SetRowColor{white}
\textless{}name\textgreater{}.getMinutes() & Return value. Works for hours, date, day, month, year as well \tn 
% Row Count 11 (+ 4)
% Row 22
\SetRowColor{LightBackground}
Date.parse("") & Create date \tn 
% Row Count 12 (+ 1)
% Row 23
\SetRowColor{white}
while (condition) \{\textless{}stuff to do\textgreater{}\} & Loop while condition is true \tn 
% Row Count 14 (+ 2)
% Row 24
\SetRowColor{LightBackground}
\textless{}name\textgreater{}.forEach(function(\textless{}name\textgreater{}) \{\textless{}stuff to do\} & Do once for each item in list \tn 
% Row Count 17 (+ 3)
% Row 25
\SetRowColor{white}
do \{\textless{}stuff to do\textgreater{}\} while(\textless{}condition\textgreater{}) & Do while condition is true \tn 
% Row Count 19 (+ 2)
% Row 26
\SetRowColor{LightBackground}
for (\textless{}initial\textgreater{},\textless{}condition\textgreater{},\textless{}increament\textgreater{}) \{stuff to do\} & For loop while condition is true. Increamenet runs after each loop. \tn 
% Row Count 23 (+ 4)
% Row 27
\SetRowColor{white}
function \textless{}name\textgreater{}(\textless{}things to bring in\textgreater{}) \{\textless{}thing to do\textgreater{}\} & Create a callable function \tn 
% Row Count 26 (+ 3)
% Row 28
\SetRowColor{LightBackground}
function \textless{}name\textgreater{}(\textless{}variable\textgreater{} = \textless{}default\textgreater{}) \{ \} & Provide a default value to variable if one isn't provided \tn 
% Row Count 29 (+ 3)
% Row 29
\SetRowColor{white}
function \textless{}name\textgreater{}() \{\textless{}thing to do\textgreater{} return \textless{}thing to give back\textgreater{}\} & Returns value \tn 
% Row Count 33 (+ 4)
\end{tabularx}
\par\addvspace{1.3em}

\vfill
\columnbreak
\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Javascript (cont)}}  \tn
% Row 30
\SetRowColor{LightBackground}
let \textless{}name\textgreater{} = new \textless{}objName\textgreater{}() & Create object instance \tn 
% Row Count 2 (+ 2)
% Row 31
\SetRowColor{white}
\textless{}objName\textgreater{}.\textless{}variable\textgreater{} & Call variable value inside object. New variables can be used to create new prop \tn 
% Row Count 6 (+ 4)
% Row 32
\SetRowColor{LightBackground}
let \textless{}name\textgreater{} = {[} \{\textless{}objVar\textgreater{}:\textless{}objVal\textgreater{}\},\{\textless{}objVar\textgreater{}:\textless{}objVal\textgreater{}\}{]} & Array of objects \tn 
% Row Count 9 (+ 3)
% Row 33
\SetRowColor{white}
for(let \textless{}var\textgreater{} in \textless{}obj\textgreater{}) \{\textless{}thing to do\textgreater{}\} & Enumerate through object properties \tn 
% Row Count 11 (+ 2)
% Row 34
\SetRowColor{LightBackground}
let \textless{}name\textgreater{} = \seqsplit{document.querySelector(\#"text")} & Applies to the below, returns element / name on page matching selector \tn 
% Row Count 15 (+ 4)
% Row 35
\SetRowColor{white}
\textless{}name\textgreater{}.addEventListener("\textless{}listenerType\textgreater{}",\textless{}function\textgreater{}()) & Execute function when `\textless{}text\textgreater{}` is selected. Type can be click, mouseenter, mouseleave, mousedown, mouseup, mousemove, keydown, keyup \tn 
% Row Count 22 (+ 7)
% Row 36
\SetRowColor{LightBackground}
let \textless{}name\textgreater{} = \seqsplit{document.querySelectorAll(\#"text")} & Returns all elements / name on page matching selector \tn 
% Row Count 25 (+ 3)
% Row 37
\SetRowColor{white}
\textless{}form\textgreater{} \textless{}input type ="\textless{}type\textgreater{}" id="\textless{}name\textgreater{}" /\textgreater{} \textless{}/form\textgreater{} \textless{}script\textgreater{} \textless{}function to do\textgreater{} \textless{}/script\textgreater{} & Create a form with function \tn 
% Row Count 30 (+ 5)
\end{tabularx}
\par\addvspace{1.3em}

\vfill
\columnbreak
\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Javascript (cont)}}  \tn
% Row 38
\SetRowColor{LightBackground}
export \textless{}item\textgreater{} & Export for use elsewhere \tn 
% Row Count 2 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Python}}  \tn
% Row 0
\SetRowColor{LightBackground}
** & Exponent \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
\% & Modulus (Remainder) \tn 
% Row Count 2 (+ 1)
% Row 2
\SetRowColor{LightBackground}
// & Integer Division \tn 
% Row Count 3 (+ 1)
% Row 3
\SetRowColor{white}
/ & Division \tn 
% Row Count 4 (+ 1)
% Row 4
\SetRowColor{LightBackground}
* & Multiplication, can replace strings \tn 
% Row Count 6 (+ 2)
% Row 5
\SetRowColor{white}
- & Subtraction \tn 
% Row Count 7 (+ 1)
% Row 6
\SetRowColor{LightBackground}
+ & Addition, can concatenate strings \tn 
% Row Count 9 (+ 2)
% Row 7
\SetRowColor{white}
\textless{}name\textgreater{} = \textless{}value\textgreater{} & Declare variable \tn 
% Row Count 10 (+ 1)
% Row 8
\SetRowColor{LightBackground}
\_\textless{}name\textgreater{} = \textless{}value\textgreater{} & "Unuseful" variable \tn 
% Row Count 11 (+ 1)
% Row 9
\SetRowColor{white}
\# & Comment \tn 
% Row Count 12 (+ 1)
% Row 10
\SetRowColor{LightBackground}
"""\textless{}text\textgreater{}""" & Docstring / multi line comment \tn 
% Row Count 14 (+ 2)
% Row 11
\SetRowColor{white}
print(\textless{}value\textgreater{}) & Prints value to console \tn 
% Row Count 16 (+ 2)
% Row 12
\SetRowColor{LightBackground}
\textless{}name\textgreater{} = input() & Assign input from user to variable \tn 
% Row Count 18 (+ 2)
% Row 13
\SetRowColor{white}
len(\textless{}value\textgreater{}) & Determines length \tn 
% Row Count 19 (+ 1)
% Row 14
\SetRowColor{LightBackground}
str(\textless{}value\textgreater{}) & Converts to string \tn 
% Row Count 20 (+ 1)
% Row 15
\SetRowColor{white}
int(\textless{}value\textgreater{}) & Converts to int \tn 
% Row Count 21 (+ 1)
% Row 16
\SetRowColor{LightBackground}
float(\textless{}value\textgreater{}) & Convert to float \tn 
% Row Count 22 (+ 1)
% Row 17
\SetRowColor{white}
== & Equal to \tn 
% Row Count 23 (+ 1)
% Row 18
\SetRowColor{LightBackground}
!= & Not equal to \tn 
% Row Count 24 (+ 1)
% Row 19
\SetRowColor{white}
\textless{}, \textgreater{}, \textless{}=, \textgreater{}= & Less than, greater than \tn 
% Row Count 26 (+ 2)
% Row 20
\SetRowColor{LightBackground}
\textless{}value\textgreater{} is \textless{}boolean\textgreater{} & Implicint boolean evaluation \tn 
% Row Count 28 (+ 2)
% Row 21
\SetRowColor{white}
(\textless{}condition\textgreater{}) and/or (\textless{}condition\textgreater{}) & Mix boolean and comparison \tn 
% Row Count 30 (+ 2)
\end{tabularx}
\par\addvspace{1.3em}

\vfill
\columnbreak
\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Python (cont)}}  \tn
% Row 22
\SetRowColor{LightBackground}
if \textless{}condition\textgreater{}: \textless{}thing to do\textgreater{} elif \textless{}condition\textgreater{}: \textless{}thing to do\textgreater{}  else: \textless{}thing to do\textgreater{} & Runs if, if true. Tries elif if not. Runs else if none are true. \tn 
% Row Count 5 (+ 5)
% Row 23
\SetRowColor{white}
while \textless{}condition\textgreater{}: \textless{}thing to do\textgreater{} & Does while the condition is true \tn 
% Row Count 7 (+ 2)
% Row 24
\SetRowColor{LightBackground}
while\textless{}condition\textgreater{}: \textless{}thing to do\textgreater{} break & Stops when break is reached \tn 
% Row Count 9 (+ 2)
% Row 25
\SetRowColor{white}
while \textless{}condition\textgreater{}: \textless{}thing to do\textgreater{} continue & Jumps to start of loop when continue is reached \tn 
% Row Count 12 (+ 3)
% Row 26
\SetRowColor{LightBackground}
for \textless{}thing\textgreater{} in \textless{}list\textgreater{}: \textless{}do this\textgreater{} & Do for each item in list \tn 
% Row Count 14 (+ 2)
% Row 27
\SetRowColor{white}
for \textless{}thing\textgreater{} in range(\textless{}number\textgreater{}) & Do number of times in range. Range can take a (\textless{}start\textgreater{},\textless{}stop\textgreater{},\textless{}interation increase\textgreater{}). Negative counts down. \tn 
% Row Count 20 (+ 6)
% Row 28
\SetRowColor{LightBackground}
for \textless{}thing\textgreater{} in \textless{}list\textgreater{}: \textless{}thing to do\textgreater{} break else: \textless{}thing to do\textgreater{} & When break is reached, else will run \tn 
% Row Count 24 (+ 4)
% Row 29
\SetRowColor{white}
import \textless{}module name\textgreater{}, \textless{}modulename\textgreater{} & Imports modules \tn 
% Row Count 26 (+ 2)
% Row 30
\SetRowColor{LightBackground}
from \textless{}module name\textgreater{} import \textless{}item\textgreater{} & Imports specific section of module \tn 
% Row Count 28 (+ 2)
% Row 31
\SetRowColor{white}
sys.exit() & Ends program \tn 
% Row Count 29 (+ 1)
% Row 32
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{def \textless{}name\textgreater{}(\textless{}stuff\textgreater{},\textless{}to\textgreater{},\textless{}bring\textgreater{}) : \textless{}stuff to do\textgreater{}} \tn 
% Row Count 30 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{SQL}}  \tn
% Row 0
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{} \tn 
% Row Count 0 (+ 0)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{Coming soon}  \tn 
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{3.6 cm} x{4.4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Shell}}  \tn
% Row 0
\SetRowColor{LightBackground}
cd & Navigation, \textasciitilde{} for home, .. for up \tn 
% Row Count 2 (+ 2)
% Row 1
\SetRowColor{white}
mkdir & Creates directory \tn 
% Row Count 3 (+ 1)
% Row 2
\SetRowColor{LightBackground}
rm & Removes file (-rf for all/dir) \tn 
% Row Count 5 (+ 2)
% Row 3
\SetRowColor{white}
ls & List contents, -R for sub dir's, -l for permissions \tn 
% Row Count 8 (+ 3)
% Row 4
\SetRowColor{LightBackground}
pwd & Show current path \tn 
% Row Count 9 (+ 1)
% Row 5
\SetRowColor{white}
cat & Create file \tn 
% Row Count 10 (+ 1)
% Row 6
\SetRowColor{LightBackground}
mv & Renames dir \tn 
% Row Count 11 (+ 1)
% Row 7
\SetRowColor{white}
sudo & Superuser/root command \tn 
% Row Count 12 (+ 1)
% Row 8
\SetRowColor{LightBackground}
history & Command history \tn 
% Row Count 13 (+ 1)
% Row 9
\SetRowColor{white}
pr & File edit, -x for columns, -h header, -n line numbers \tn 
% Row Count 16 (+ 3)
% Row 10
\SetRowColor{LightBackground}
Chown \textless{}user\textgreater{} & r(ead), w(rite), (e)x(ecute), -= for none. \textless{}user\textgreater{}:\textless{}group\textgreater{} filename for dir \tn 
% Row Count 20 (+ 4)
% Row 11
\SetRowColor{white}
adduser & Create user \tn 
% Row Count 21 (+ 1)
% Row 12
\SetRowColor{LightBackground}
passwd -l & Change password \tn 
% Row Count 22 (+ 1)
% Row 13
\SetRowColor{white}
usermod -a -G \textless{}group\textgreater{} \textless{}name\textgreater{} & Add user to group \tn 
% Row Count 24 (+ 2)
% Row 14
\SetRowColor{LightBackground}
deluser \textless{}name\textgreater{} \textless{}group\textgreater{} & Remove from group \tn 
% Row Count 26 (+ 2)
% Row 15
\SetRowColor{white}
userdel & Remove user \tn 
% Row Count 27 (+ 1)
% Row 16
\SetRowColor{LightBackground}
finger & Shows logged in users \tn 
% Row Count 28 (+ 1)
% Row 17
\SetRowColor{white}
ssh -p \textless{}port\textgreater{} \textless{}user\textgreater{}@\textless{}ip\textgreater{} & SSH into ip at port \tn 
% Row Count 30 (+ 2)
\end{tabularx}
\par\addvspace{1.3em}

\vfill
\columnbreak
\begin{tabularx}{8.4cm}{x{3.6 cm} x{4.4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Shell (cont)}}  \tn
% Row 18
\SetRowColor{LightBackground}
fg & Run stopped process in foreground \tn 
% Row Count 2 (+ 2)
% Row 19
\SetRowColor{white}
bg & Send process to background \tn 
% Row Count 4 (+ 2)
% Row 20
\SetRowColor{LightBackground}
top & Shows active processes \tn 
% Row Count 5 (+ 1)
% Row 21
\SetRowColor{white}
ps & Shows process running for user \tn 
% Row Count 7 (+ 2)
% Row 22
\SetRowColor{LightBackground}
kill PID & Kill process \tn 
% Row Count 8 (+ 1)
% Row 23
\SetRowColor{white}
df & Shows hard disk space \tn 
% Row Count 9 (+ 1)
% Row 24
\SetRowColor{LightBackground}
free & Shows RAM \tn 
% Row Count 10 (+ 1)
% Row 25
\SetRowColor{white}
nano & Editor \tn 
% Row Count 11 (+ 1)
% Row 26
\SetRowColor{LightBackground}
curl & Download from URL \tn 
% Row Count 12 (+ 1)
% Row 27
\SetRowColor{white}
tar -C \textless{}path\textgreater{} & Unzip to path \tn 
% Row Count 13 (+ 1)
% Row 28
\SetRowColor{LightBackground}
find \textless{}path\textgreater{} -name \textless{}name\textgreater{} & Find file in path, can use wildcard * \tn 
% Row Count 15 (+ 2)
% Row 29
\SetRowColor{white}
systemctl status & Check service status \tn 
% Row Count 16 (+ 1)
% Row 30
\SetRowColor{LightBackground}
systemctl stop & Stop service \tn 
% Row Count 17 (+ 1)
% Row 31
\SetRowColor{white}
systemctl start & Start service \tn 
% Row Count 18 (+ 1)
% Row 32
\SetRowColor{LightBackground}
systemctl restart & Restart service \tn 
% Row Count 19 (+ 1)
% Row 33
\SetRowColor{white}
service -{}-status-all & Show all service statuses \tn 
% Row Count 21 (+ 2)
% Row 34
\SetRowColor{LightBackground}
scp \textless{}source\textgreater{} \textless{}destination\textgreater{}:\textless{}path\textgreater{} & Move files through ssh \tn 
% Row Count 23 (+ 2)
% Row 35
\SetRowColor{white}
mv \textless{}source\textgreater{} \textless{}destination\textgreater{} & Move file \tn 
% Row Count 25 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{2.16 cm} x{5.84 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Screen}}  \tn
% Row 0
\SetRowColor{LightBackground}
ctrl-a & Use screen shortcut \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
-S \textless{}name\textgreater{} & Create and name sessions \tn 
% Row Count 2 (+ 1)
% Row 2
\SetRowColor{LightBackground}
c & Create window \tn 
% Row Count 3 (+ 1)
% Row 3
\SetRowColor{white}
" & List windows \tn 
% Row Count 4 (+ 1)
% Row 4
\SetRowColor{LightBackground}
0-9 & Switch to window \# \tn 
% Row Count 5 (+ 1)
% Row 5
\SetRowColor{white}
A & Rename window \tn 
% Row Count 6 (+ 1)
% Row 6
\SetRowColor{LightBackground}
S & split horizontally \tn 
% Row Count 7 (+ 1)
% Row 7
\SetRowColor{white}
| & Split vertically \tn 
% Row Count 8 (+ 1)
% Row 8
\SetRowColor{LightBackground}
\textless{}tab\textgreater{} & Switch focus \tn 
% Row Count 9 (+ 1)
% Row 9
\SetRowColor{white}
? & List commands \tn 
% Row Count 10 (+ 1)
% Row 10
\SetRowColor{LightBackground}
-list & List screens \tn 
% Row Count 11 (+ 1)
% Row 11
\SetRowColor{white}
-r & Resume screen \tn 
% Row Count 12 (+ 1)
% Row 12
\SetRowColor{LightBackground}
ctrl-a & Toggle screens \tn 
% Row Count 13 (+ 1)
% Row 13
\SetRowColor{white}
Q & close all but current \tn 
% Row Count 14 (+ 1)
% Row 14
\SetRowColor{LightBackground}
X & Close current \tn 
% Row Count 15 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{3.76 cm} x{4.24 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Multipass}}  \tn
% Row 0
\SetRowColor{LightBackground}
launch -{}-name \textless{}name\textgreater{} & Creates and starts new instance \tn 
% Row Count 2 (+ 2)
% Row 1
\SetRowColor{white}
exec \textless{}instance\textgreater{} -{}- \textless{}command\textgreater{} & Sends command \tn 
% Row Count 4 (+ 2)
% Row 2
\SetRowColor{LightBackground}
list & List instances \tn 
% Row Count 5 (+ 1)
% Row 3
\SetRowColor{white}
\mymulticolumn{2}{x{8.4cm}}{Stop} \tn 
% Row Count 6 (+ 1)
% Row 4
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{Start} \tn 
% Row Count 7 (+ 1)
% Row 5
\SetRowColor{white}
\mymulticolumn{2}{x{8.4cm}}{Delete} \tn 
% Row Count 8 (+ 1)
% Row 6
\SetRowColor{LightBackground}
shell \textless{}instance\textgreater{} & Enter instance \tn 
% Row Count 9 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Extras}}  \tn
% Row 0
\SetRowColor{LightBackground}
openvpn \textless{}file\_location\textgreater{} & start ovpn session \tn 
% Row Count 2 (+ 2)
% Row 1
\SetRowColor{white}
SecList & Common used everything - \{\{link="https://github.com/danielmiessler/SecLists"\}\}found here\{\{/link\}\} \tn 
% Row Count 7 (+ 5)
% Row 2
\SetRowColor{LightBackground}
admin'\# & Example of injection, ends with `'` then starts a comment with \#. Sometimes any pw can work after \tn 
% Row Count 12 (+ 5)
% Row 3
\SetRowColor{white}
\{\{link="https://www.wappalyzer.com/apps"\}\}Wappalyzer\{\{/link\}\} & Site tech scanner \tn 
% Row Count 16 (+ 4)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{admin:admin \newline guest:guest \newline user:user \newline root:root \newline administrator:password}  \tn 
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{nmap}}  \tn
% Row 0
\SetRowColor{LightBackground}
-sV & Probe ports for service/version \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
-sC & Scans with default set of scripts ({\bf{INTRUSIVE}}) \tn 
% Row Count 3 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4.24 cm} x{3.76 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{gobuster}}  \tn
% Row 0
\SetRowColor{LightBackground}
Requires \{\{link="https://go.dev/doc/install"\}\}Go\{\{/link\}\} & go get \&\& go build \&\& go install \tn 
% Row Count 3 (+ 3)
% Row 1
\SetRowColor{white}
dir & Specify web directory enumeration \tn 
% Row Count 5 (+ 2)
% Row 2
\SetRowColor{LightBackground}
-{}-url & Target \tn 
% Row Count 6 (+ 1)
% Row 3
\SetRowColor{white}
-{}-wordlist & Wordlist to use \tn 
% Row Count 7 (+ 1)
% Row 4
\SetRowColor{LightBackground}
-x & Search for specific file extensions \tn 
% Row Count 9 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{\seqsplit{https://github.com/OJ/gobuster.git}}  \tn 
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{2.16 cm} x{5.84 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{ftp}}  \tn
% Row 0
\SetRowColor{LightBackground}
anonymous & Username sometimes works \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
get & Downloads file \tn 
% Row Count 2 (+ 1)
% Row 2
\SetRowColor{LightBackground}
bye & Exits \tn 
% Row Count 3 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4.24 cm} x{3.76 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{impacket}}  \tn
% Row 0
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{python3 mssqlclient.py \textless{}destination\textgreater{}/\textless{}user\textgreater{}@\textless{}ip\textgreater{} -windows-auth} \tn 
% Row Count 2 (+ 2)
% Row 1
\SetRowColor{white}
\mymulticolumn{2}{x{8.4cm}}{mssqlclient.py} \tn 
% Row Count 3 (+ 1)
% Row 2
\SetRowColor{LightBackground}
SELECT \seqsplit{is\_srvrolemember('sysadmin');} & Checks curernt privledge \tn 
% Row Count 5 (+ 2)
% Row 3
\SetRowColor{white}
EXEC xp\_cmdshell 'net user'; & Check if command shell is active \tn 
% Row Count 7 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{Found \{\{link="https://github.com/SecureAuthCorp/impacket"\}\}here\{\{/link\}\}. \newline Python classes for working with network protocols}  \tn 
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{p{1.52 cm} x{6.48 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{wifite}}  \tn
% Row 0
\SetRowColor{LightBackground}
-{}-dict & Specify dictionary for use \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
-{}-kill & Kill conflicting processes \tn 
% Row Count 2 (+ 1)
% Row 2
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{WPS Pixie-Dust attack} \tn 
% Row Count 3 (+ 1)
% Row 3
\SetRowColor{white}
\mymulticolumn{2}{x{8.4cm}}{WPS PIN attack} \tn 
% Row Count 4 (+ 1)
% Row 4
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{PMKID capture} \tn 
% Row Count 5 (+ 1)
% Row 5
\SetRowColor{white}
\mymulticolumn{2}{x{8.4cm}}{WPA Handshake capture} \tn 
% Row Count 6 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{p{0.96 cm} x{7.04 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{mySQL}}  \tn
% Row 0
\SetRowColor{LightBackground}
-u & Specify user \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
-h & Connect to host \tn 
% Row Count 2 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{3.44 cm} x{4.56 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{smbclient}}  \tn
% Row 0
\SetRowColor{LightBackground}
-L & List directories \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
\textbackslash{}\textbackslash{}\textbackslash{}\textbackslash{}\textbackslash{}\textless{}ip\textgreater{}\textbackslash{}\textbackslash{}\textless{}folder\textgreater{} & smb to folder \tn 
% Row Count 3 (+ 2)
% Row 2
\SetRowColor{LightBackground}
Empty pw & Can work for guest access \tn 
% Row Count 5 (+ 2)
% Row 3
\SetRowColor{white}
get & Downloads content of dir \tn 
% Row Count 7 (+ 2)
% Row 4
\SetRowColor{LightBackground}
exit & Closes \tn 
% Row Count 8 (+ 1)
% Row 5
\SetRowColor{white}
-N & No password \tn 
% Row Count 9 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{2.64 cm} x{5.36 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{telnet}}  \tn
% Row 0
\SetRowColor{LightBackground}
\mymulticolumn{2}{x{8.4cm}}{Sometimes passwords can be blank} \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
Common usernames & root, administrator, admin, root \tn 
% Row Count 3 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}


% That's all folks
\end{multicols*}

\end{document}