\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{rajuganesh} \pdfinfo{ /Title (kubernetes-platform.pdf) /Creator (Cheatography) /Author (rajuganesh) /Subject (Kubernetes Platform 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}{4349A3} \definecolor{LightBackground}{HTML}{F3F3F9} \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{Kubernetes Platform Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{rajuganesh} via \textcolor{DarkBackground}{\uline{cheatography.com/104561/cs/21348/}}} \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}rajuganesh \\ \uline{cheatography.com/rajuganesh} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 23rd May, 2023.\\ 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}{K8 : Pod}} \tn % Row 0 \SetRowColor{LightBackground} Get list of namespaces & `kubectl get ns` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Get list of pods in a namespace & `kubectl get pod -n {[}namespace{]}` \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} To get all running pods & `kubectl get pods -{}-field-selector=status.phase=Running` \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} Get list of services in a namespace & `kubectl get svc -n {[}namespace{]}` \tn % Row Count 9 (+ 2) % Row 4 \SetRowColor{LightBackground} Get list of deployment in a namespace & `kubectl get deployment -n {[}namespace{]}` \tn % Row Count 11 (+ 2) % Row 5 \SetRowColor{white} Get list of stateful set in a namespace & `kubectl get sts -n {[}namespace{]}` \tn % Row Count 13 (+ 2) % Row 6 \SetRowColor{LightBackground} Get list of all resources in a namespace & `kubectl get all -n {[}namespace{]}` \tn % Row Count 15 (+ 2) % Row 7 \SetRowColor{white} Get daemon list in namespace & `kubectl get ds -n {[}namespace{]}` \tn % Row Count 17 (+ 2) % Row 8 \SetRowColor{LightBackground} To exec into a pod & `kubectl exec -it {[}pod{]} -n {[}namespace{]} sh` \tn % Row Count 20 (+ 3) % Row 9 \SetRowColor{white} To get pod logs & `kubectl logs -f {[}pod{]} -n {[}namespace{]}` \tn % Row Count 22 (+ 2) % Row 10 \SetRowColor{LightBackground} To get cpu and memory utilization of pod & `kubectl top pod -n {[}namespace{]}` \tn % Row Count 24 (+ 2) % Row 11 \SetRowColor{white} Kill a pod & `kubectl delete pod {[}pod{]} -n {[}namespace{]} -{}-force -{}-grace-period=0` \tn % Row Count 28 (+ 4) % Row 12 \SetRowColor{LightBackground} Copy data from pod & `kubectl cp {[}namespace{]}/{[}podname{]}:{[}filepath{]} .` \tn % Row Count 31 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{-{}-show-labels \newline -{}-all-namespaces \newline -{}-sort-by=.spec.capacity} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{K8 : Helm 2}} \tn % Row 0 \SetRowColor{LightBackground} Get list of deployed Helm & `helm ls` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Deploy a helm & `helm install {[}folderpath{]} -n {[}helmname{]} -{}-namespace {[}namespace{]}` \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} Update a helm & ` helm upgrade -f {[}pathtovalues.yaml{]} {[}helmname{]} .` \tn % Row Count 8 (+ 3) % Row 3 \SetRowColor{white} Delete a helm & `helm delete -{}-purge {[}helmname{]}` \tn % Row Count 10 (+ 2) \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}{Docker}} \tn % Row 0 \SetRowColor{LightBackground} Get version of docker & `docker version` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Get information on docker & `docker info` \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} Pull image from registry & `docker pull {[}image{]}` \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} Run an image & `docker run {[}image{]}` \tn % Row Count 7 (+ 1) % Row 4 \SetRowColor{LightBackground} Run image and login to pod & `docker run -it {[}image{]} /bin/bash` \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} List images & `docker images` \tn % Row Count 10 (+ 1) % Row 6 \SetRowColor{LightBackground} & `docker images -q` \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{sudo docker run -p 8080:8080 -p 50000:50000 jenkins \newline sudo docker rmi 7a86f8ffcb25 \newline sudo docker inspect jenkins \newline docker ps \newline docker ps -a \newline sudo docker history centos \newline sudo docker top 9f215ed0b0d3 \newline sudo docker stop 9f215ed0b0d3 \newline sudo docker rm 9f215ed0b0d3 \newline sudo docker attach 07b0b6f434fe \newline sudo docker pause 07b0b6f434fe \newline sudo docker kill 07b0b6f434fe} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4.96 cm} x{3.04 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Linux : Setup password less login b/w hosts}} \tn % Row 0 \SetRowColor{LightBackground} Create key in source server & `ssh-keygen -t rsa` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Copy public key to target server & `ssh-copy-id target` \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Alternate : Copy id\_rsa.pub content to .ssh/authorized\_keys. 700 to .ssh 640 to authorized\_keys} \tn \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}{LINUX : YUM}} \tn % Row 0 \SetRowColor{LightBackground} To install a package & `yum install firefox` or `yum -y install firefox` \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Install a package from Specific Repository & `yum -{}-enablerepo=epel install phpmyadmin` \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} To remove a package completely with their all dependencies & `yum remove firefox` or `yum -y remove firefox` \tn % Row Count 9 (+ 3) % Row 3 \SetRowColor{white} To update a installed package & `yum update mysql` \tn % Row Count 11 (+ 2) % Row 4 \SetRowColor{LightBackground} List a Package using YUM & `yum list openssh` \tn % Row Count 13 (+ 2) % Row 5 \SetRowColor{white} Search for a package using YUM & `yum search vsftpd` \tn % Row Count 15 (+ 2) % Row 6 \SetRowColor{LightBackground} Get Information of a Package using YUM & `yum info firefox` \tn % Row Count 17 (+ 2) % Row 7 \SetRowColor{white} To list all the available packages in the Yum database & `yum list | less` \tn % Row Count 20 (+ 3) % Row 8 \SetRowColor{LightBackground} List all Installed Packages using YUM & `yum list installed | less` \tn % Row Count 22 (+ 2) % Row 9 \SetRowColor{white} To know the name of the package that has the \seqsplit{/etc/httpd/conf/httpd}.conf & `yum provides \seqsplit{/etc/httpd/conf/httpd}.conf` \tn % Row Count 26 (+ 4) % Row 10 \SetRowColor{LightBackground} To find how many of installed packages on your system have updates available. & `yum check-update` \tn % Row Count 30 (+ 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}{LINUX : YUM (cont)}} \tn % Row 11 \SetRowColor{LightBackground} Install all latest patches and security updates to your system & `yum update` \tn % Row Count 4 (+ 4) % Row 12 \SetRowColor{white} List all available Group Packages & `yum grouplist` \tn % Row Count 6 (+ 2) % Row 13 \SetRowColor{LightBackground} Install a Group Packages & `yum groupinstall 'MySQL Database' ` \tn % Row Count 8 (+ 2) % Row 14 \SetRowColor{white} Update a Group Packages & `yum groupupdate 'DNS Name Server'` \tn % Row Count 10 (+ 2) % Row 15 \SetRowColor{LightBackground} Remove a Group Packages & `yum groupremove 'DNS Name Server'` \tn % Row Count 12 (+ 2) % Row 16 \SetRowColor{white} To list all enabled Yum repositories in your system & `yum repolist` \tn % Row Count 15 (+ 3) % Row 17 \SetRowColor{LightBackground} List all Enabled and Disabled Yum Repositories & `yum repolist all` \tn % Row Count 18 (+ 3) % Row 18 \SetRowColor{white} Interactive Yum Shell & `yum shell` \tn % Row Count 20 (+ 2) % Row 19 \SetRowColor{LightBackground} Clean Yum Cache & `yum clean all` \tn % Row Count 21 (+ 1) % Row 20 \SetRowColor{white} To view all the past transactions of yum command & `yum history` \tn % Row Count 24 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{: \newline :} \tn \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}{K8 : Node}} \tn % Row 0 \SetRowColor{LightBackground} Display addresses of the master and services & `kubectl cluster-info` \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Get list of nodes in cluster & `kubectl get nodes` \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} Get all details of a node & `kubectl describe node {[}nodename{]}` \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} Get vital details of node & `kubectl describe node apollocomp23|grep 'Taints:\textbackslash{}|cpu\textbackslash{}|slave\textbackslash{}| Hostname:\textbackslash{}|memory'` \tn % Row Count 12 (+ 5) % Row 4 \SetRowColor{LightBackground} Taint a node & `kubectl taint node {[}nodename{]} \seqsplit{temp=temp:NoSchedule`} \tn % Row Count 15 (+ 3) % Row 5 \SetRowColor{white} Untaint a node & `kubectl taint node {[}nodename{]} temp-` \tn % Row Count 17 (+ 2) % Row 6 \SetRowColor{LightBackground} Make a node unschedulable & `kubectl cordon {[}nodename{]}` \tn % Row Count 19 (+ 2) % Row 7 \SetRowColor{white} Make a node schedulable & `kubectl uncordon {[}nodename{]}` \tn % Row Count 21 (+ 2) % Row 8 \SetRowColor{LightBackground} Drain a node & `kubectl drain {[}nodename{]}` \tn % Row Count 23 (+ 2) % Row 9 \SetRowColor{white} Dump cluster state to file & `kubectl cluster-info dump -{}-output-directory=/home/cluster-state` \tn % Row Count 27 (+ 4) % Row 10 \SetRowColor{LightBackground} Display node type & `kubectl get nodes -o json|jq -Cjr '.items{[}{]} | .metadata.name," ",.metadata.labels."beta.kubernetes.io/instance-type"," ",.metadata.labels."beta.kubernetes.io/arch", "\textbackslash{}n"'|sort -k3 -r` \tn % Row Count 37 (+ 10) \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}{K8 : Volume}} \tn % Row 0 \SetRowColor{LightBackground} Create secret in storage & `maprlogin password` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Convert secret (/any text) to base64 & `echo -n "{[}mapr password content{]}" | base64` \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} Get list of secrets in a namespace & `kubectl get secret -n {[}namespace{]}` \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} Get list of PVC in a namespace & `kubecrl get pvc -n {[}namespace{]}` \tn % Row Count 9 (+ 2) % Row 4 \SetRowColor{LightBackground} To get details of PV & `kubectl describe pv {[}pvname{]}` \tn % Row Count 11 (+ 2) % Row 5 \SetRowColor{white} Edit a PV & `kubectl edit pv {[}pvname{]}` \tn % Row Count 13 (+ 2) % Row 6 \SetRowColor{LightBackground} Detail details of mount & `maprcli volume info -name insite\_bharti -columns volumename,used,totalused,quota,advisoryquota` \tn % Row Count 18 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Create secret \& Mount details - To be executed in storage node} \tn \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}{Linux : Service Management}} \tn % Row 0 \SetRowColor{LightBackground} Check status of service & `systemctl status {[}service name{]}` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Start a service & `systemctl start {[}service name{]}` \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} Stop a service & `systemctl stop {[}service name{]}` \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} enable a service and start now & `systemctl enable {[}service name{]} -{}-now` \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} disable a service and stop now & `systemctl disable {[}service name{]} -{}-now` \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} check service logs & `journalctl -xe` \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.84 cm} x{4.16 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{GIT}} \tn % Row 0 \SetRowColor{LightBackground} Get version of git & `git -{}-version` \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Initialize local git repo in a folder & `git init` \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Add files to index & `git add file1 file2` \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} Other add option & All: `git add .` All match: `*.sh` \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} Remove file from tracking & `git rm -{}-cached file1` \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} Check status of working tree & `git status` \tn % Row Count 11 (+ 2) % Row 6 \SetRowColor{LightBackground} Commit the changes & `git commit -m 'new change'` \tn % Row Count 13 (+ 2) % Row 7 \SetRowColor{white} Set remote repo & `git remote add origin \seqsplit{https://github.com/abc/def.git`} \tn % Row Count 16 (+ 3) % Row 8 \SetRowColor{LightBackground} Push to remote repo & `git push -u origin master` \tn % Row Count 18 (+ 2) % Row 9 \SetRowColor{white} Pull lates from repo & 'git pull' \tn % Row Count 20 (+ 2) % Row 10 \SetRowColor{LightBackground} Clone a repo to local (with login) & `git clone \seqsplit{git@github.com:ypasmk/robot-framework-docker.git`} \tn % Row Count 23 (+ 3) % Row 11 \SetRowColor{white} clone a repo to local (without login) & `git clone \seqsplit{git@github.com:ypasmk/robot-framework-docker.git`} \tn % Row Count 26 (+ 3) % Row 12 \SetRowColor{LightBackground} Set user name & `git config user.name 'abcd'` \tn % Row Count 28 (+ 2) % Row 13 \SetRowColor{white} Set user email & `git config user.email 'abc@def.com'` \tn % Row Count 30 (+ 2) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.84 cm} x{4.16 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{GIT (cont)}} \tn % Row 14 \SetRowColor{LightBackground} Blacklist files & Create `.gitignore` file and add exeception list in it \tn % Row Count 3 (+ 3) \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}{Linux Commands}} \tn % Row 0 \SetRowColor{LightBackground} List directory including hidden file & `ls -la` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Size of each folder/file in currect directory & `du -d 1 -h` \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} Create directory & `mkdir {[}dirname{]}` \tn % Row Count 6 (+ 1) % Row 3 \SetRowColor{white} Rename directory & `mv {[}dirname{]} {[}newname{]}` \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} Copy directory & `cp -r {[}dirname{]} {[}newname{]}` \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} Remove directory & `rm -rf {[}dir1{]} {[}dir2{]}` \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} Create a file & `touch {[}filename{]}` \tn % Row Count 13 (+ 1) % Row 7 \SetRowColor{white} Edit file & `vi {[}filename{]}` \tn % Row Count 14 (+ 1) % Row 8 \SetRowColor{LightBackground} Create 1 GB file unreadable content & `dd if=/dev/zero of=file.txt count=1024 bs=1048576` \tn % Row Count 17 (+ 3) % Row 9 \SetRowColor{white} Create 2 GB file readable content & `dd if=/dev/urandom of=file2.txt bs=2048 count=1000000` \tn % Row Count 20 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}