# TIL

> Today I Learned

Things I Learned today, found on [Simon's Blog](https://simonwillison.net/2020/Apr/20/self-rewriting-readme/), and repo can be found here: [Repo](https://github.com/jbranchaud/til)

***190 TILs so far.***

***

## Recently Added/Updated TILs

* [Run MTR on MacOS without sudo](https://til.devjugal.com/macos/run-mtr-without-sudo)
* [Limit Upload Download Speeds in Rclone](https://til.devjugal.com/rclone/limit-upload-download-speeds)
* [Fix Icons Not Displaying in Terminal](https://til.devjugal.com/vscode/fix-icons-not-displaying-in-terminal)
* [Why All Users Can Write to `/tmp`](https://til.devjugal.com/linux/why-all-users-can-write-to-tmp)
* [Fix Clear Command Not Found](https://til.devjugal.com/linux/fedora/fix-clear-command-not-found)

***

## Categories

* [Linux](#linux)
* [Ansible](#ansible)
* [Caddy](#caddy-server)
* [Cheatsheets](#cheatsheets)
* [Docker](#docker)
* [Git](#git)
* [Github](#github)
* [Go](#go)
* [Learning Resources](#learning-resources)
* [MacOS](#macos)
* [Miscellaneous](#miscellaneous)
* [Python](#python)
* [Rclone](#rclone)
* [ReactJS](#reactjs)
* [Vagrant](#vagrant)
* [VSCode](#vscode)
* [WSL](#wsl)

***

## [Linux](https://til.devjugal.com/linux)

* [Add Swap Space To System](https://til.devjugal.com/linux/add-swap-space-to-system)
* [Add User To System](https://til.devjugal.com/linux/add-user-to-system)
* [Beautify Logs](https://til.devjugal.com/linux/beautify-logs)
* [Benchmark System](https://til.devjugal.com/linux/benchmark-system)
* [Ccze Scrolling Output](https://til.devjugal.com/linux/ccze-scrolling-output)
* [Change Default Shell](https://til.devjugal.com/linux/change-default-shell)
* [Change Hostname Of A system](https://til.devjugal.com/linux/change-hostname-of-a-system)
* [Changing User Password In Shell Script](https://til.devjugal.com/linux/changing-user-password-in-shell-script)
* [Check Group Of A User](https://til.devjugal.com/linux/check-group-of-a-user)
* [Check If A Package Is Installed Or Not](https://til.devjugal.com/linux/check-if-a-package-is-installed-or-not)
* [Check If A Port Is In Use](https://til.devjugal.com/linux/check-if-a-port-is-in-use)
* [Check If A User Exists](https://til.devjugal.com/linux/check-if-a-user-exists)
* [Check Open Port](https://til.devjugal.com/linux/check-open-port)
* [CMake Parallel Build with All Cores](https://til.devjugal.com/linux/cmake-parallel-build-with-all-cores)
* [Create Symbolic Links](https://til.devjugal.com/linux/create-symbolic-links)
* [Determine Which Process Is Using a File](https://til.devjugal.com/linux/determine-which-process-is-using-a-file)
* [Enable SSH Server](https://til.devjugal.com/linux/enable-ssh-server)
* [Fix Permission For Newly Created Partitions](https://til.devjugal.com/linux/fix-permission-for-newly-created-partitions)
* [Fix Windows And Linux Different Time Issue](https://til.devjugal.com/linux/fix-windows-and-linux-different-time-issue)
* [Get Arch Of System](https://til.devjugal.com/linux/get-arch-of-system)
* [Increase Limit of Inotify Watchers](https://til.devjugal.com/linux/increase-limit-of-inotify-watchers)
* [Install Latest NodeJS In Linux](https://til.devjugal.com/linux/install-latest-nodejs-in-linux)
* [Install Pavucontrol](https://til.devjugal.com/linux/install-pavucontrol)
* [Install Postman](https://til.devjugal.com/linux/install-postman)
* [Kill A Process In Linux](https://til.devjugal.com/linux/kill-a-process-in-linux)
* [Mount Partition On System Startup](https://til.devjugal.com/linux/mount-partition-on-system-startup)
* [OpenVPN Server](https://til.devjugal.com/linux/openvpn-server)
* [Ping over TCP](https://til.devjugal.com/linux/ping-over-tcp)
* [Pipe Password to Sudo](https://til.devjugal.com/linux/pipe-password-to-sudo)
* [Remove PPA From System](https://til.devjugal.com/linux/remove-ppa-from-system)
* [Remove User Password](https://til.devjugal.com/linux/remove-user-password)
* [Root Check in Scripts](https://til.devjugal.com/linux/root-check)
* [Run Go Binaries Without Installing Go](https://til.devjugal.com/linux/run-go-binaries-without-installing-go)
* [Set Different Time Zone](https://til.devjugal.com/linux/set-different-time-zone)
* [Show Disk Usage By Directories](https://til.devjugal.com/linux/show-disk-usage-by-directories)
* [Show Public IP](https://til.devjugal.com/linux/show-public-ip)
* [Show Size of Current Directory](https://til.devjugal.com/linux/show-size-of-current-directory)
* [System Ugprade](https://til.devjugal.com/linux/system-upgrade)
* [Tar Exclude Directories](https://til.devjugal.com/linux/tar-exclude-directories)
* [Tar Retain File Permissions](https://til.devjugal.com/linux/tar-retain-file-permissions)
* [Why All Users Can Write to /tmp](https://til.devjugal.com/linux/why-all-users-can-write-to-tmp)

### [Alpine Linux](https://til.devjugal.com/linux/alpine)

* [Adding User On Alpine](https://til.devjugal.com/linux/alpine/adding-user-on-alpine)
* [Chaning Timezone On Alpine](https://til.devjugal.com/linux/alpine/changing-timezone-on-alpine)
* [Installing Ansible On Alpine](https://til.devjugal.com/linux/alpine/installing-ansible-on-alpine)
* [Installing Dig On Alpine](https://til.devjugal.com/linux/alpine/installing-dig-on-alpine)
* [Installing Pip On Alpine](https://til.devjugal.com/linux/alpine/installing-pip-on-alpine)
* [Installing Python2 On Alpine](https://til.devjugal.com/linux/alpine/installing-python2-on-alpine)

### [Apt](https://til.devjugal.com/linux/apt)

* [APT Fix Broken Packages](https://til.devjugal.com/linux/apt/apt-fix-broken-packages)
* [APT Hold Packages From Upgrade](https://til.devjugal.com/linux/apt/apt-hold-packages-from-upgrades)

### [Arch Linux](https://til.devjugal.com/linux/arch)

* [Install Docker Compose](https://til.devjugal.com/linux/arch/install-docker-compose)
* [Install Docker](https://til.devjugal.com/linux/arch/install-docker)
* [Install Pip](https://til.devjugal.com/linux/arch/install-pip)

### [Bash](https://til.devjugal.com/linux/bash)

* [Bash List Only Directories](https://til.devjugal.com/linux/bash/bash-list-only-directories)
* [BashTOP Resource Monitor](https://til.devjugal.com/linux/bash/bashtop-resource-monitor)
* [Case Statements](https://til.devjugal.com/linux/bash/case-statements)
* [Concatenate Strings](https://til.devjugal.com/linux/bash/concatenate-strings)
* [Custom Shell Prompt](https://til.devjugal.com/linux/bash/custom-shell-prompt)
* [Length of String in Variable](https://til.devjugal.com/linux/bash/length-of-string-in-variable)
* [Test Regular Expression Against A String](https://til.devjugal.com/linux/bash/test-regular-expression-against-a-string)
* [Pass Arguments while Piping](https://til.devjugal.com/linux/bash/pass-arguments-while-piping)
* [Read Command Output In Reverse Order](https://til.devjugal.com/linux/bash/read-command-output-in-reverse-order)
* ["set -e" In Scripts](https://til.devjugal.com/linux/bash/set-e-in-scripts)
* [Set MacOS Like Terminal Font](https://til.devjugal.com/linux/bash/set-macos-like-terminal-font)
* [Set Unlimited Bash History](https://til.devjugal.com/linux/bash/set-unlimited-bash-history)
* [Shell Formatter](https://til.devjugal.com/linux/bash/shell-formatter)
* [Yes](https://til.devjugal.com/linux/bash/yes)

### [Curl](https://til.devjugal.com/linux/curl)

* [Fix Failed Writing Body While Piping](https://til.devjugal.com/linux/curl/fix-failed-writing-body-while-piping)
* [Use Proxy Server in cURL](https://til.devjugal.com/linux/curl/use-proxy-server-in-curl)

### [Fedora](https://til.devjugal.com/linux/fedora)

* [Fix Clear Command Not Found](https://til.devjugal.com/linux/fedora/fix-clear-command-not-found)
* [Install RPM Packages in Fedora](https://til.devjugal.com/linux/fedora/install-rpm-packages-in-fedora)

### [GPG](https://til.devjugal.com/linux/gpg)

* [Fix "Inappropriate ioctl for device" Error](https://til.devjugal.com/linux/gpg/fix-inappropriate-ioctl-for-device-error)
* [GPG Import Keys](https://til.devjugal.com/linux/gpg/gpg-import-keys)
* [GPG Test](https://til.devjugal.com/linux/gpg/gpg-test)
* [GPG Trust Key](https://til.devjugal.com/linux/gpg/gpg-trust-key)
* [GPG Verify Signature](https://til.devjugal.com/linux/gpg/gpg-verify-signature)

### [Grep](https://til.devjugal.com/linux/grep)

* [Grep Case Insensitive Search](https://til.devjugal.com/linux/grep/grep-case-insensitive-search)
* [Grep Count Occurance](https://til.devjugal.com/linux/grep/grep-count-matches)
* [Grep Exact Match](https://til.devjugal.com/linux/grep/grep-exact-match)
* [Grep Invert Search](https://til.devjugal.com/linux/grep/grep-invert-search)
* [Grep On Continous Stream](https://til.devjugal.com/linux/grep/grep-on-continous-stream)
* [Grep Quiet Mode](https://til.devjugal.com/linux/grep/grep-quiet-mode)
* [Grep Search For Multiple Strings](https://til.devjugal.com/linux/grep/grep-search-for-multiple-strings)
* [Remove Empty Lines](https://til.devjugal.com/linux/grep/remove-empty-lines)

### [Journalctl](https://til.devjugal.com/linux/journalctl)

* [Get Errors in Running Services using Journalctl](https://til.devjugal.com/linux/journalctl/get-errors-in-running-services-using-journalctl)

### [Networking](https://til.devjugal.com/linux/networking)

* [Install Dig](https://til.devjugal.com/linux/networking/install-dig)
* [Install MTR](https://til.devjugal.com/linux/networking/install-mtr)
* [Set Metric For A Network Using nmcli](https://til.devjugal.com/linux/networking/set-metric-for-a-network-using-nmcli)
* [WireGuard Server](https://til.devjugal.com/linux/networking/wireguard-server)

### [Raspberry Pi](https://til.devjugal.com/linux/raspberry-pi)

* [Disable Swap Memory on SD Card](https://til.devjugal.com/linux/raspberry-pi/disable-swap-memory-on-sd-card)

### [SSH](https://til.devjugal.com/linux/ssh)

* [Reconnect To a Disconnected SSH Session](https://til.devjugal.com/linux/ssh/reconnect-to-a-disconnected-ssh-session)
* [Run A Local Script On Remote SSH Server](https://til.devjugal.com/linux/ssh/run-a-local-script-on-remote-ssh-server)
* [Screen](https://til.devjugal.com/linux/ssh/screen)
* [Tmux](https://til.devjugal.com/linux/ssh/tmux)

### [Systemd](https://til.devjugal.com/linux/systemd)

* [Create A Service](https://til.devjugal.com/linux/systemd/create-a-service)
* [Create A Systemd Timer](https://til.devjugal.com/linux/systemd/create-a-systemd-timer)
* [List Systemd Services Of A User](https://til.devjugal.com/linux/systemd/list-services-of-a-user)
* [Prevent Systemd Timers From Overlapping](https://til.devjugal.com/linux/systemd/prevent-systemd-timers-from-overlapping)
* [Watch Systemd Service Status](https://til.devjugal.com/linux/systemd/watch-systemd-service-status)

### [Tcpdump](https://til.devjugal.com/linux/tcpdump)

* [Capture ICMP Packets](https://til.devjugal.com/linux/tcpdump/capture-icmp-packets)
* [Capture Traffic By IP Or A Network](https://til.devjugal.com/linux/tcpdump/capture-traffic-by-an-ip-address-or-a-network)

### [Ubuntu Linux](https://til.devjugal.com/linux/ubuntu)

* [Get Clipboard History](https://til.devjugal.com/linux/ubuntu/get-clipboard-history)
* [Install HMAC256 On Ubuntu](https://til.devjugal.com/linux/ubuntu/install-hmac256-on-ubuntu)
* [Obtaining a List of Ubuntu Repository Mirror Servers](https://til.devjugal.com/linux/ubuntu/obtaining-a-list-of-ubuntu-repository-mirror-servers)

### [Wget](https://til.devjugal.com/linux/wget)

* [Basic Authentication](https://til.devjugal.com/linux/wget/basic-auth)

## [Ansible](https://til.devjugal.com/ansible)

* [Add Authorized SSH Key to User using Ansible](https://til.devjugal.com/ansible/add-ssh-key-to-user-using-ansible)
* [Ansible Add User to System](https://til.devjugal.com/ansible/add-user-to-system)
* [Ansible Configure Default Inventory File](https://til.devjugal.com/ansible/ansible-configure-default-inventory-file)
* [Ansible Disable Python Interpreter Warnings](https://til.devjugal.com/ansible/ansible-disable-python-interpreter-warnings)
* [Ansible Pause Playbook Execution](https://til.devjugal.com/ansible/ansible-pause-playbook-execution)
* [Ansible Test Connection](https://til.devjugal.com/ansible/ansible-test-connection)
* [Run Ansible Playbook Locally](https://til.devjugal.com/ansible/run-ansible-playbook-locally)
* [Setting a Password in Ansible Inventory File](https://til.devjugal.com/ansible/setting-a-password-in-ansible-inventory-file)

## [Caddy Server](https://til.devjugal.com/caddy)

* [Caddy Write Logs to a File](https://til.devjugal.com/caddy/caddy-write-logs-to-a-file)
* [Return Client IP Address As Plain Text](https://til.devjugal.com/caddy/return-client-ip-address-as-plain-text)

## [Cheatsheets](https://til.devjugal.com/cheatsheets)

* [Bash Cheatsheet](https://til.devjugal.com/cheatsheets/bash-cheatsheet)
* [Grep Cheatsheet](https://til.devjugal.com/cheatsheets/grep-cheatsheet)
* [Markdown Cheatsheet](https://til.devjugal.com/cheatsheets/markdown-cheatsheet)
* [MongoDB Cheatsheet](https://til.devjugal.com/cheatsheets/mongodb-cheatsheet)
* [Networking Cheatsheet](https://til.devjugal.com/cheatsheets/networking-cheatsheet)
* [Python Cheatsheet](https://til.devjugal.com/cheatsheets/python-cheatsheet)
* [ReactJS Cheatsheet](https://til.devjugal.com/cheatsheets/reactjs-cheatsheet)
* [Regex Cheatsheet](https://til.devjugal.com/cheatsheets/regex-cheatsheet)

## [Docker](https://til.devjugal.com/docker)

* [Docker Build Multiple Tags At Once](https://til.devjugal.com/docker/docker-build-multiple-tags-at-once)
* [Docker Exec](https://til.devjugal.com/docker/docker-exec)
* [Docker Publish Port](https://til.devjugal.com/docker/docker-publish-port)
* [Docker Run Without Cache](https://til.devjugal.com/docker/docker-run-without-cache)
* [Docker Run](https://til.devjugal.com/docker/docker-run)
* [Fix UFW Security Flaw](https://til.devjugal.com/docker/fix-ufw-security-flaw)
* [Install Docker](https://til.devjugal.com/docker/install-docker)
* [Install Ping in Docker](https://til.devjugal.com/docker/install-ping-in-docker)
* [Pass Build Time Arguments To Docker Build](https://til.devjugal.com/docker/pass-build-time-arguments-to-docker-build)
* [Remove Container When It Exits](https://til.devjugal.com/docker/remove-container-when-it-exits)
* [Remove Unused Data](https://til.devjugal.com/docker/remove-unused-data)
* [Run Docker without root](https://til.devjugal.com/docker/run-docker-without-root)
* [Setup Docker Buildx For Multi Arch Builds](https://til.devjugal.com/docker/setup-docker-buildx-for-multi-arch-builds)

## [Git](https://til.devjugal.com/git)

* [Change Last Commit Message](https://til.devjugal.com/git/change-last-commit-message)
* [Delete Tag](https://til.devjugal.com/git/delete-tag)
* [Get Tag Names in Git](https://til.devjugal.com/git/get-tag-names-in-git)
* [Save Credentials for Remotes in Git](https://til.devjugal.com/git/save-credentials-for-remotes)
* [Show Commit Only From One Author](https://til.devjugal.com/git/show-commit-only-from-one-author)
* [View Git Commit Changes](https://til.devjugal.com/git/view-git-commit-changes)

## [GitHub](https://til.devjugal.com/github)

### [GitHub Actions](https://til.devjugal.com/github/actions)

* [Setting An Environment Variable](https://til.devjugal.com/github/actions/setting-an-environment-variable)
* [Running Jobs in a Container](https://til.devjugal.com/github/actions/running-jobs-in-a-container)

## [Go](https://til.devjugal.com/go)

* [Convert String To Uppercase in Go](https://til.devjugal.com/go/convert-string-to-uppercase)
* [List All Possible GOOS And GOARCH](https://til.devjugal.com/go/list-all-possible-goos-and-goarch)
* [Print Go Version](https://til.devjugal.com/go/print-go-version)
* [Resolve Hostname To IP Address](https://til.devjugal.com/go/resolve-hostname-to-ip-address)
* [Trim Whitespaces From String](https://til.devjugal.com/go/trim-whitespaces-from-string)
* [Update Project Libraries To Latest](https://til.devjugal.com/go/update-project-libraries-to-latest)

## [Learning Resources](https://til.devjugal.com/learning-resources)

* [Algorithms](https://til.devjugal.com/learning-resources/algorithms)
* [DevOps](https://til.devjugal.com/learning-resources/devops)
* [Git](https://til.devjugal.com/learning-resources/git)
* [Linux](https://til.devjugal.com/learning-resources/linux)
* [Networking](https://til.devjugal.com/learning-resources/networking)
* [Programming Languages](https://til.devjugal.com/learning-resources/programming-languages)

## [MacOS](https://til.devjugal.com/macos)

* [Run MTR without sudo](https://til.devjugal.com/macos/run-mtr-without-sudo)

## [Miscellaneous](https://til.devjugal.com/miscellaneous)

* [Good Reads](https://til.devjugal.com/miscellaneous/good-reads)
* [Must Read Sites](https://til.devjugal.com/miscellaneous/must-read-sites)
* [Useful Sites](https://til.devjugal.com/miscellaneous/useful-sites)

## [Python](https://til.devjugal.com/python)

* [Add An Item To Dictionary](https://til.devjugal.com/python/add-an-item-to-dictionary)
* [Check If A Key Exists In Dictionary](https://til.devjugal.com/python/check-if-a-key-exists-in-dictionary)
* [Check If a String is Empty](https://til.devjugal.com/python/check-if-a-string-is-empty)
* [Check Image Size](https://til.devjugal.com/python/check-image-size)
* [Check Python Version Programmatically](https://til.devjugal.com/python/check-python-version-programmatically)
* [Convert List To Tuple](https://til.devjugal.com/python/convert-list-to-tuple)
* [Execute Python Code in Command Shell](https://til.devjugal.com/python/execute-python-code-in-command-shell)
* [Formatted Strings](https://til.devjugal.com/python/formatted-strings)
* [Get IP Address From Hostname](https://til.devjugal.com/python/get-ip-address-from-hostname)
* [Limit Floating Point To Two Decimal Places](https://til.devjugal.com/python/limit-floating-point-to-two-decimal-places)
* [Measure Latency Using TCP](https://til.devjugal.com/python/measure-latency-using-tcp)
* [Pass List as Argument to a Function](https://til.devjugal.com/python/pass-list-as-argument-to-a-function)
* [Print Tabular Data](https://til.devjugal.com/python/print-tabular-data)
* [Python Padding Strings](https://til.devjugal.com/python/python-padding-strings)
* [Read A File Line By Line](https://til.devjugal.com/python/read-a-file-line-by-line)
* [Remove A File](https://til.devjugal.com/python/remove-a-file)
* [Remove Trailing Spaces And New Lines From A String](https://til.devjugal.com/python/remove-trailing-spaces-and-new-lines-from-a-string)
* [Run Python Script in Background](https://til.devjugal.com/python/run-python-script-in-background)
* [Split String with Delimiter](https://til.devjugal.com/python/split-string-with-delimiter)
* [Validate IP Address](https://til.devjugal.com/python/validate-ip-address)

### [Pipenv](https://til.devjugal.com/python/pipenv)

* [Install Dependencies System Wide](https://til.devjugal.com/python/pipenv/install-dependencies-system-wide)
* [Remove Virtualenv](https://til.devjugal.com/python/pipenv/remove-virtualenv)

## [Rclone](https://til.devjugal.com/rclone)

* [Limit Upload Download Speeds in Rclone](https://til.devjugal.com/rclone/limit-upload-download-speeds)

## [ReactJS](https://til.devjugal.com/reactjs)

* [ReactJS Resources](https://til.devjugal.com/reactjs/reactjs-resources)

## [Vagrant](https://til.devjugal.com/vagrant)

* [Increase RAM And CPU On Vagrant Machine](https://til.devjugal.com/vagrant/increase-ram-and-cpu-on-vagrant-machine)
* [Vagrant Specify Disk Size](https://til.devjugal.com/vagrant/vagrant-specify-disk-size)

## [VSCode](https://til.devjugal.com/vscode)

* [Fix Icons Not Displaying in Terminal](https://til.devjugal.com/vscode/fix-icons-not-displaying-in-terminal)
* [Install VS Code on a Linux Server](https://til.devjugal.com/vscode/install-vs-code-on-a-linux-server)

## [WSL](https://til.devjugal.com/wsl)

* [Convert WSL1 to WSL2](https://til.devjugal.com/wsl/convert-wsl1-to-wsl2)
* [Enable Systemd Support in WSL2](https://til.devjugal.com/wsl/enable-systemd-support-in-wsl2)
