<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Cheatsheets on Linuxize</title><link>https://linuxize.com/cheatsheet/</link><description>Recent content in Cheatsheets on Linuxize</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>hello@linuxize.com (Linuxize)</managingEditor><webMaster>hello@linuxize.com (Linuxize)</webMaster><lastBuildDate>Fri, 05 Jun 2026 10:20:00 +0200</lastBuildDate><atom:link href="https://linuxize.com/cheatsheet/index.xml" rel="self" type="application/rss+xml"/><image><url>https://linuxize.com/icons/icon-512x512.png</url><title>Linuxize</title><link>https://linuxize.com/</link></image><item><title>npm Cheatsheet</title><link>https://linuxize.com/cheatsheet/npm/</link><pubDate>Fri, 05 Jun 2026 10:20:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/npm/</guid><description>Quick reference for npm commands for project setup, dependency management, scripts, updates, and package inspection</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="project-setup"&gt;Project Setup &lt;a class="headline-link" href="#project-setup" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create and inspect project metadata.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/npm-command/"&gt;&lt;code&gt;npm init&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Create package.json interactively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm init -y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create package.json with defaults&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm pkg get name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print package name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm pkg set scripts.start=&amp;quot;node index.js&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add or update a script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm pkg delete scripts.old&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a package.json field&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="install-dependencies"&gt;Install Dependencies &lt;a class="headline-link" href="#install-dependencies" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Add project, development, and global packages.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install project dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/npm-command/"&gt;&lt;code&gt;npm install package&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install and save dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install -D package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install development dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install -g package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install global CLI package&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install package@1.2.3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install a specific version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install package@latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install latest published version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install --no-save package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install without saving&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="clean-installs"&gt;Clean Installs &lt;a class="headline-link" href="#clean-installs" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Reproduce dependency trees from lock files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm ci&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clean install from package-lock.json&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm ci --omit=dev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install production dependencies only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install --omit=dev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip development dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install --package-lock-only&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update lock file only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install --ignore-scripts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install without lifecycle scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="versions-and-updates"&gt;Versions and Updates &lt;a class="headline-link" href="#versions-and-updates" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check outdated packages and update dependency ranges.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm outdated&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show packages with newer versions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm update&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update within package.json ranges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm update package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update one package&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm view package version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show latest package version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm view package versions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List published versions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm version patch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bump package patch version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm version minor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bump package minor version&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="remove-and-clean"&gt;Remove and Clean &lt;a class="headline-link" href="#remove-and-clean" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Uninstall packages and clear generated files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm uninstall package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm uninstall -D package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove development dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm uninstall -g package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove global package&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove extraneous packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm dedupe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reduce duplicate dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm cache verify&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify npm cache&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm cache clean --force&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear npm cache&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="scripts-and-execution"&gt;Scripts and Execution &lt;a class="headline-link" href="#scripts-and-execution" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Run package scripts and one-off tools.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List available scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/npm-command/"&gt;&lt;code&gt;npm run script&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Run a named script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm start&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run the start script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm test&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run the test script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run build -- --watch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pass args to script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npx package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run package binary once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm create vite@latest app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run create package&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="inspect-packages"&gt;Inspect Packages &lt;a class="headline-link" href="#inspect-packages" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;List dependencies and package metadata.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List direct dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm list --all&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List full dependency tree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm list -g --depth=0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List global packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm explain package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Explain why package is installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm root&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show local node_modules path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm root -g&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show global node_modules path&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="configuration"&gt;Configuration &lt;a class="headline-link" href="#configuration" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;View and change npm settings.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm config list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show current config&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm config get prefix&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show global install prefix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm config set prefix ~/.npm-global&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set global install prefix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm config get registry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show registry URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm config set registry url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set registry URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm whoami&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show logged-in npm user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm login&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log in to npm registry&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="security-and-audit"&gt;Security and Audit &lt;a class="headline-link" href="#security-and-audit" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check dependency risks and funding metadata.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm audit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scan dependencies for advisories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm audit fix&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply compatible security fixes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm audit --omit=dev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Audit production dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm fund&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show funding links&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm doctor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check npm environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm ping&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test registry connection&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these references for Node.js and package workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/npm-command/"&gt;&lt;code&gt;npm Command&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full npm tutorial with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-node-js-on-ubuntu-26-04/"&gt;&lt;code&gt;Install Node.js on Ubuntu 26.04&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install Node.js and npm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-yarn-on-ubuntu-20-04/"&gt;&lt;code&gt;Install Yarn on Ubuntu 20.04&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Alternative package manager&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>Podman Cheatsheet</title><link>https://linuxize.com/cheatsheet/podman/</link><pubDate>Wed, 03 Jun 2026 14:15:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/podman/</guid><description>Quick reference for Podman commands and rootless container workflows</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="container-lifecycle"&gt;Container Lifecycle &lt;a class="headline-link" href="#container-lifecycle" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create, start, stop, and remove containers.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create and start a container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run -d image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run container in background&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run -it image sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run with an interactive shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run --name web image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run with a custom name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run -p 8080:80 image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Map host port to container port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run -v /host:/container image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bind mount a host path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman start container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start a stopped container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman stop container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gracefully stop a container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman restart container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Restart a container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman rm container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a stopped container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman rm -f container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force remove a running container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman kill container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill a container with SIGKILL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pause container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pause a running container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman unpause container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resume a paused container&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="container-inspection"&gt;Container Inspection &lt;a class="headline-link" href="#container-inspection" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;List containers, inspect state, and watch resource use.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman ps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List running containers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman ps -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all containers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman ps -q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only container IDs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman inspect container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show detailed JSON info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman inspect --format '{{.State.Status}}' container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print one field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman top container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List processes in a container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman stats&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show live resource usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman stats --no-stream&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print one usage snapshot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman port container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show port mappings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman diff container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show filesystem changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="logs"&gt;Logs &lt;a class="headline-link" href="#logs" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Read and follow container logs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman logs container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View container logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman logs -f container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow live logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman logs --tail 50 container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 50 lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman logs -t container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add timestamps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman logs --since 10m container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show recent logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman logs --until 2026-06-03T12:00:00 container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop at a time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;journalctl --user -u name.service&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View logs for a user service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo journalctl -u name.service&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View logs for a system service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="images-and-builds"&gt;Images and Builds &lt;a class="headline-link" href="#images-and-builds" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Pull, build, tag, and manage images. Podman accepts Dockerfiles and Containerfiles.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pull image:tag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pull image from a registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pull docker.io/library/nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pull with a full image name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman push image:tag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Push image to a registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-build-docker-images-with-dockerfile/"&gt;&lt;code&gt;podman build -t name .&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Build image from Dockerfile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman build -f Containerfile .&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Build with a custom file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman images&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List local images&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman rmi image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove an image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman tag source target:tag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tag an image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman save image &amp;gt; image.tar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save image to tar archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman load &amp;lt; image.tar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Load image from tar archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman history image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show image layer history&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="exec-and-copy"&gt;Exec and Copy &lt;a class="headline-link" href="#exec-and-copy" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Run commands inside containers and copy files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman exec -it container sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open shell in container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman exec -it container bash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open Bash if installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman exec container command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run command in container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman exec -u root container command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run as a specific user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman cp ./file container:/path/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy file into container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman cp container:/path/file ./&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy file from container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman attach container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Attach to main process&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman wait container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wait for container to stop&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="volumes"&gt;Volumes &lt;a class="headline-link" href="#volumes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Manage persistent container data.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman volume create data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a named volume&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman volume ls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman volume inspect data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show volume details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman volume rm data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a volume&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman volume prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove unused volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run -v data:/data image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mount named volume&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run -v /host:/data image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bind mount host directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run -v /host:/data:Z image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bind mount with SELinux relabeling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run --tmpfs /tmp image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mount tmpfs in a container&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="networks"&gt;Networks &lt;a class="headline-link" href="#networks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create networks and connect containers.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/docker-networking/"&gt;&lt;code&gt;podman network create net&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Create a network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman network ls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List networks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman network inspect net&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show network details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman network rm net&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman network connect net container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect container to network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman network disconnect net container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disconnect from network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run --network net image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run container on network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run --network host image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use host networking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run --network none image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable networking&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="pods"&gt;Pods &lt;a class="headline-link" href="#pods" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Run groups of containers that share a network namespace.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod create --name app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a pod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod create --name app -p 8080:80&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create pod with port mapping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman run --pod app image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run container in pod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod ps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List pods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman ps --pod&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show containers with pod info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod inspect app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show pod details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod stop app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop all containers in pod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod start app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start pod containers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod rm app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a stopped pod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pod rm -f app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force remove a pod&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="rootless-and-systemd"&gt;Rootless and systemd &lt;a class="headline-link" href="#rootless-and-systemd" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect rootless mode and manage Podman with systemd.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-podman-on-ubuntu/"&gt;&lt;code&gt;podman info&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show Podman host configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman info --format '{{.Host.Security.Rootless}}'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check if rootless&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman system migrate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply user namespace changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;systemctl --user enable --now podman.socket&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start user Podman socket&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl enable --now podman.socket&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start system Podman socket&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo loginctl enable-linger $USER&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Keep user services after logout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;systemctl --user daemon-reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload user units&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;systemctl --user status name.service&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check user service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl status name.service&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check system service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman auto-update&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update containers with auto-update labels&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="compose"&gt;Compose &lt;a class="headline-link" href="#compose" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Run Compose projects with Podman.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman compose up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start Compose project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman compose up -d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start in background&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman compose down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop and remove services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman compose ps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List Compose services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman compose logs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View Compose logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman compose exec service sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shell into a service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman-compose up -d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use podman-compose directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Point Docker Compose at Podman&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run Docker Compose against Podman socket&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="system-and-cleanup"&gt;System and Cleanup &lt;a class="headline-link" href="#system-and-cleanup" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check disk usage and remove unused data.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman system df&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show storage usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman system prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove unused data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman system prune --volumes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Also remove unused volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman image prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove dangling images&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman image prune -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove unused images&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman container prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove stopped containers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman volume prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove unused volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman network prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove unused networks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman system reset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove all Podman storage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="registry-and-login"&gt;Registry and Login &lt;a class="headline-link" href="#registry-and-login" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Authenticate and work with container registries.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman login docker.io&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log in to Docker Hub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman login registry.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log in to private registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman logout docker.io&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log out from registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman search term&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search configured registries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman pull user/image:tag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pull image from registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman push user/image:tag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Push image to registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman tag image registry/user/image:tag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tag image for registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman manifest create name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create manifest list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman manifest push name destination&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Push manifest list&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="docker-compatibility"&gt;Docker Compatibility &lt;a class="headline-link" href="#docker-compatibility" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use Podman with Docker-style commands and tooling.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-podman-on-ubuntu/"&gt;&lt;code&gt;sudo apt install podman-docker&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install Docker-compatible wrapper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docker ps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run Podman through Docker wrapper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alias docker=podman&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add shell alias&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman --remote ps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use remote Podman client&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman system service --time=0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start API service manually&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;podman info --format '{{.Host.RemoteSocket.Path}}'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show remote socket path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/podman-vs-docker/"&gt;&lt;code&gt;podman run -d -p 8080:80 nginx&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Docker-like run command&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>dpkg Cheatsheet</title><link>https://linuxize.com/cheatsheet/dpkg/</link><pubDate>Mon, 01 Jun 2026 13:40:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/dpkg/</guid><description>Quick reference for installing, removing, querying, and inspecting Debian packages with dpkg</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="install-and-remove"&gt;Install and Remove &lt;a class="headline-link" href="#install-and-remove" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Work with installed packages and local .deb files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/dpkg-command-in-linux/"&gt;&lt;code&gt;sudo dpkg -i package.deb&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install a local .deb file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg -i *.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install multiple .deb files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg -r package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove package, keep config&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg -P package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Purge package and config&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg --unpack package.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unpack without configuring&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="query-installed-packages"&gt;Query Installed Packages &lt;a class="headline-link" href="#query-installed-packages" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;List packages and inspect installed package metadata.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List installed packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -l 'nginx*'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter packages by pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -s package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show package status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg --status package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Same as &lt;code&gt;dpkg -s&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg-query -W package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show package and version&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="package-files"&gt;Package Files &lt;a class="headline-link" href="#package-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Find installed files and file ownership.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -L package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List files installed by package&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -S /path/to/file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find package owning a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -S '*/bin/curl'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search ownership by pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -L package | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Browse long file lists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -V package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify installed package files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="inspect-deb-files"&gt;Inspect deb Files &lt;a class="headline-link" href="#inspect-deb-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Read package archives before installing them.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg --info package.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show .deb metadata&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -I package.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Same as &lt;code&gt;dpkg --info&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg --contents package.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List files in .deb&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -c package.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Same as &lt;code&gt;dpkg --contents&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg-deb -f package.deb Version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print package version field&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="extract-deb-files"&gt;Extract deb Files &lt;a class="headline-link" href="#extract-deb-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Unpack archive contents without installing.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -x package.deb /tmp/extract&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract package files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -X package.deb /tmp/extract&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract with details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg -e package.deb /tmp/control&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract control files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg-deb --ctrl-tarfile package.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print control tar archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg-deb --fsys-tarfile package.deb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print filesystem tar archive&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="package-selections"&gt;Package Selections &lt;a class="headline-link" href="#package-selections" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Export and restore package selection states.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg --get-selections&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print package selections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg --get-selections &amp;gt; packages.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save selections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg --set-selections &amp;lt; packages.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Restore selections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpkg --get-selections 'nginx*'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter selections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo apt-get dselect-upgrade&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply restored selections&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="repair-and-configure"&gt;Repair and Configure &lt;a class="headline-link" href="#repair-and-configure" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Resume interrupted installs and fix package state.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg --configure -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Configure pending packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg --configure package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Configure one package&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg -C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Audit broken packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo apt install -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fix missing dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo dpkg-reconfigure package&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Re-run package setup&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these references for package management workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/dpkg-command-in-linux/"&gt;&lt;code&gt;dpkg Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full dpkg tutorial with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-deb-packages-on-ubuntu/"&gt;&lt;code&gt;Install deb Files on Ubuntu&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install local .deb files with apt and dpkg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/apt/"&gt;&lt;code&gt;apt Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Higher-level package management commands&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>reboot Cheatsheet</title><link>https://linuxize.com/cheatsheet/reboot/</link><pubDate>Sun, 31 May 2026 13:15:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/reboot/</guid><description>Quick reference for rebooting and scheduling restarts on Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="immediate-reboot"&gt;Immediate Reboot &lt;a class="headline-link" href="#immediate-reboot" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/reboot-linux-using-command-line/"&gt;&lt;code&gt;sudo reboot&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Reboot immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl reboot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reboot via systemd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo shutdown -r now&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reboot immediately via shutdown&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="systemctl-options"&gt;systemctl Options &lt;a class="headline-link" href="#systemctl-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl reboot --force&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip graceful shutdown if unresponsive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl --no-wall reboot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reboot without broadcasting a wall message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl --message=&amp;quot;reason&amp;quot; reboot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log a reason in the system journal&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="schedule-with-shutdown--r"&gt;Schedule with shutdown -r &lt;a class="headline-link" href="#schedule-with-shutdown--r" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo shutdown -r +5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reboot in 5 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo shutdown -r 10:00&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reboot at 10:00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo shutdown -r +10 &amp;quot;message&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reboot in 10 minutes with a wall message&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo shutdown -r&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reboot after 1 minute (default)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="cancel-and-status"&gt;Cancel and Status &lt;a class="headline-link" href="#cancel-and-status" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo shutdown -c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cancel a scheduled reboot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;last reboot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show reboot history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;uptime -s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show current boot time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;journalctl --list-boots&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all boot sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>ripgrep Cheatsheet</title><link>https://linuxize.com/cheatsheet/ripgrep/</link><pubDate>Tue, 26 May 2026 10:20:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/ripgrep/</guid><description>Quick reference for recursive text searches with the ripgrep command</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-search"&gt;Basic Search &lt;a class="headline-link" href="#basic-search" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Search files and directories for matching text.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ripgrep-in-linux/"&gt;&lt;code&gt;rg &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Search recursively from the current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg &amp;quot;pattern&amp;quot; file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search a single file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg &amp;quot;pattern&amp;quot; dir/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search a specific directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg &amp;quot;pattern&amp;quot; file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search specific files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the installed ripgrep version&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="file-type-filters"&gt;File Type Filters &lt;a class="headline-link" href="#file-type-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Limit searches to known file types.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -t py &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search only Python files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -t js &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search only JavaScript files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -t markdown &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search only Markdown files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -T js &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude JavaScript files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --type-list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available file type names&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="glob-filters"&gt;Glob Filters &lt;a class="headline-link" href="#glob-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Include or exclude paths with glob patterns.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -g '*.log' &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search only &lt;code&gt;.log&lt;/code&gt; files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -g '*.conf' &amp;quot;listen&amp;quot; /etc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search matching config files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -g '!*.min.js' &amp;quot;console.log&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude minified JavaScript files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -g '!node_modules/' &amp;quot;TODO&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -g '*.md' -g '!README.md' &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Combine include and exclude globs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="case-and-literal-search"&gt;Case and Literal Search &lt;a class="headline-link" href="#case-and-literal-search" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control case matching and regex handling.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -i &amp;quot;warning&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Case-insensitive search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -S &amp;quot;warning&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Smart case search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -s &amp;quot;Warning&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force case-sensitive search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -F &amp;quot;price[0]&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search for a fixed string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -w &amp;quot;id&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match whole words only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="counts-and-file-lists"&gt;Counts and File Lists &lt;a class="headline-link" href="#counts-and-file-lists" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Summarize matches or print filenames.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -c &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count matching lines per file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --count-matches &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count individual matches per file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -l &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List files with matches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --files-without-match &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List files without matches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --stats &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print search statistics&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="context-output"&gt;Context Output &lt;a class="headline-link" href="#context-output" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show lines around each match.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -C 3 &amp;quot;panic&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show 3 lines before and after&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -A 2 &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show 2 lines after&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -B 2 &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show 2 lines before&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -n &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show line numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -N &amp;quot;error&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hide line numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="patterns-and-regex"&gt;Patterns and Regex &lt;a class="headline-link" href="#patterns-and-regex" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Search with multiple patterns and regex features.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -e &amp;quot;error&amp;quot; -e &amp;quot;warning&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match either pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -e &amp;quot;--force&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search for a pattern starting with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg 'error|warning'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use regex alternation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg '^server'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match lines starting with &lt;code&gt;server&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg 'listen$'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match lines ending with &lt;code&gt;listen&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="hidden-and-ignored-files"&gt;Hidden and Ignored Files &lt;a class="headline-link" href="#hidden-and-ignored-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Search paths that &lt;code&gt;rg&lt;/code&gt; skips by default.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --hidden &amp;quot;api_key&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include hidden files and directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --no-ignore &amp;quot;TODO&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore &lt;code&gt;.gitignore&lt;/code&gt;, &lt;code&gt;.ignore&lt;/code&gt;, and &lt;code&gt;.rgignore&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg --hidden --no-ignore &amp;quot;password&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search hidden and ignored files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -u &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reduce ignore filtering by one level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -uuu &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search almost everything, including binary files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="replacement-preview"&gt;Replacement Preview &lt;a class="headline-link" href="#replacement-preview" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Preview changed output without editing files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg &amp;quot;old&amp;quot; -r &amp;quot;new&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview replacing &lt;code&gt;old&lt;/code&gt; with &lt;code&gt;new&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg '(foo)(bar)' -r '$2$1'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reorder capture groups in output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -o 'v[0-9]+\.[0-9]+\.[0-9]+'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print only matched version strings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rg -o -r '$1' 'version = &amp;quot;([^&amp;quot;]+)&amp;quot;'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract a captured value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-sed-to-find-and-replace-string-in-files/"&gt;&lt;code&gt;rg &amp;quot;foo&amp;quot; -r &amp;quot;bar&amp;quot;&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Preview before using &lt;code&gt;sed&lt;/code&gt; or an editor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;rg&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;File is missing from results&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;rg --debug &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hidden files are skipped&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;--hidden&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ignored files are skipped&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;--no-ignore&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Glob does not work&lt;/td&gt;
&lt;td&gt;Quote it, for example &lt;code&gt;-g '*.conf'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pattern starts with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;rg -e &amp;quot;--flag&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-options"&gt;Common Options &lt;a class="headline-link" href="#common-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Useful flags to remember.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-t TYPE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search only a file type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-T TYPE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude a file type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-g GLOB&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include or exclude paths by glob&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore case&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-S&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Smart case&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-F&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fixed string search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Whole-word match&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List matching files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--files-without-match&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List non-matching files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-C N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show context lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-r TEXT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview replacement output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--hidden&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include hidden files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--no-ignore&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore ignore-file rules&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full command workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ripgrep-in-linux/"&gt;ripgrep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;rg&lt;/code&gt; tutorial with practical examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-grep-command-to-search-files-in-linux/"&gt;grep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Standard text search with GNU &lt;code&gt;grep&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/grep-exclude/"&gt;Grep Exclude&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Exclude files, directories, and patterns with &lt;code&gt;grep&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-find-files-in-linux-using-the-command-line/"&gt;find Files in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Locate files by metadata and path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-sed-to-find-and-replace-string-in-files/"&gt;sed Find and Replace&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Replace text after previewing matches&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>ss Cheatsheet</title><link>https://linuxize.com/cheatsheet/ss/</link><pubDate>Thu, 21 May 2026 10:00:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/ss/</guid><description>Quick reference for listing sockets, listening ports, connection states, and process owners with the ss command</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;ss&lt;/code&gt; command forms and output controls.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show non-listening sockets with an established connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all sockets, listening and non-listening&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show numeric addresses and ports, no name resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the process that owns each socket&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show a summary of socket counts by type and state&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="filter-by-protocol"&gt;Filter by Protocol &lt;a class="headline-link" href="#filter-by-protocol" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Restrict output to a single socket family.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TCP sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;UDP sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -x&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unix domain sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -ta&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;All TCP sockets, including listening&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IPv4 sockets only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -6&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IPv6 sockets only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="listening-ports"&gt;Listening Ports &lt;a class="headline-link" href="#listening-ports" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Find services that are accepting connections.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show listening sockets only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listening TCP sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -ul&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listening UDP sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tulpn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listening TCP/UDP with process and numeric output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ss -tlpn 'sport = :80'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find the process listening on TCP port 80&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="connection-state-filters"&gt;Connection State Filters &lt;a class="headline-link" href="#connection-state-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Narrow output to a specific TCP state.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn state ESTABLISHED&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Established TCP connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn state listening&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listening TCP sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn state TIME-WAIT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connections in &lt;code&gt;TIME-WAIT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn state CLOSE-WAIT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connections in &lt;code&gt;CLOSE-WAIT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn state ESTABLISHED | tail -n +2 | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count established TCP connections&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="address-and-port-filters"&gt;Address and Port Filters &lt;a class="headline-link" href="#address-and-port-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Match sockets by source or destination.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tnp 'dport = :443'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter by destination port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tnp 'sport = :22'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter by source port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn dst 192.168.1.5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter by remote address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn src 192.168.1.10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter by local address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ss -tlpn sport = :8080&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find the process listening on port 8080&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="process-and-statistics"&gt;Process and Statistics &lt;a class="headline-link" href="#process-and-statistics" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Tie sockets to processes and read summary counts.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ss -tp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TCP sockets with process name and PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ss -tulpn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listening sockets with owning processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total sockets by transport and state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TCP sockets with numeric addresses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ss -tn dst 203.0.113.10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;All connections to a remote host&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="netstat-to-ss-translation"&gt;netstat to ss Translation &lt;a class="headline-link" href="#netstat-to-ss-translation" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Map old &lt;code&gt;netstat&lt;/code&gt; commands to their &lt;code&gt;ss&lt;/code&gt; equivalents.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;netstat Command&lt;/th&gt;
&lt;th&gt;ss Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -tuln&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ss -tuln&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -tulnp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo ss -tulpn&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -at&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ss -ta&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -ant | grep ESTABLISHED&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ss -tn state ESTABLISHED&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ss -s&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common &lt;code&gt;ss&lt;/code&gt; issues and quick fixes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-p&lt;/code&gt; shows no process&lt;/td&gt;
&lt;td&gt;Run with &lt;code&gt;sudo&lt;/code&gt; to see sockets owned by other users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filters return nothing&lt;/td&gt;
&lt;td&gt;Quote the expression and verify &lt;code&gt;sport&lt;/code&gt; versus &lt;code&gt;dport&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Service names hide ports&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-n&lt;/code&gt; to keep numeric ports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output too broad&lt;/td&gt;
&lt;td&gt;Start with &lt;code&gt;-t&lt;/code&gt;, &lt;code&gt;-u&lt;/code&gt;, or a &lt;code&gt;state&lt;/code&gt; filter, then narrow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port match too broad&lt;/td&gt;
&lt;td&gt;Use a built-in filter, such as &lt;code&gt;ss -tlpn 'sport = :80'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full walkthroughs and related tools.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ss-command-in-linux/"&gt;&lt;code&gt;ss&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;ss&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/netstat-command-in-linux/"&gt;&lt;code&gt;netstat&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;The legacy tool &lt;code&gt;ss&lt;/code&gt; replaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-ip-command/"&gt;&lt;code&gt;ip&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Modern routes and interface management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/check-listening-ports-linux/"&gt;How to Check Listening Ports in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Compare &lt;code&gt;ss&lt;/code&gt;, &lt;code&gt;netstat&lt;/code&gt;, and &lt;code&gt;lsof&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/lsof-command-in-linux/"&gt;&lt;code&gt;lsof&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Tie sockets and files back to processes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>nmcli Cheatsheet</title><link>https://linuxize.com/cheatsheet/nmcli/</link><pubDate>Sun, 17 May 2026 10:40:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/nmcli/</guid><description>Quick reference for using nmcli to manage NetworkManager devices, connection profiles, Wi-Fi, static IP addresses, DNS, and troubleshooting</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use this structure for most &lt;code&gt;nmcli&lt;/code&gt; commands.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli [OPTIONS] OBJECT COMMAND&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;General command syntax&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli OBJECT help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show help for an object&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli --version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show nmcli version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -t ...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use terse output for scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -f FIELD1,FIELD2 ...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Select output fields&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -g FIELD ...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print field values only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="general-status"&gt;General Status &lt;a class="headline-link" href="#general-status" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check NetworkManager state and hostname settings.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli general status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show overall NetworkManager status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli networking connectivity&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check internet connectivity state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli general hostname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show system hostname&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli general hostname server01&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set system hostname&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli general permissions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show NetworkManager permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli general logging&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show logging level and domains&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="devices"&gt;Devices &lt;a class="headline-link" href="#devices" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect and control network interfaces.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli device status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List devices and connection state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli device show eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show detailed device properties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -f GENERAL,IP4 device show eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show selected device sections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli device connect eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect a device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli device disconnect eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disconnect a device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli device reapply eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reapply active profile settings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="connection-profiles"&gt;Connection Profiles &lt;a class="headline-link" href="#connection-profiles" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Manage saved NetworkManager profiles.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli connection show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all profiles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli connection show --active&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List active profiles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli connection show &amp;quot;home-wifi&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show one profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection up &amp;quot;home-wifi&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Activate a profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection down &amp;quot;home-wifi&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deactivate a profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection delete &amp;quot;home-wifi&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete a saved profile&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="wi-fi"&gt;Wi-Fi &lt;a class="headline-link" href="#wi-fi" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Scan networks and connect to wireless profiles.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli radio wifi&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show Wi-Fi radio state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli radio wifi on&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Turn Wi-Fi on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli radio wifi off&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Turn Wi-Fi off&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli device wifi list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scan visible Wi-Fi networks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli device wifi connect &amp;quot;SSID&amp;quot; password &amp;quot;PASSWORD&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect with password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli --ask device wifi connect &amp;quot;SSID&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt for Wi-Fi password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli device wifi connect &amp;quot;SSID&amp;quot; password &amp;quot;PASSWORD&amp;quot; hidden yes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect to hidden network&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="static-ipv4"&gt;Static IPv4 &lt;a class="headline-link" href="#static-ipv4" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Set or remove manual IPv4 settings on a profile.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.method manual&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use manual IPv4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.addresses 192.168.1.50/24&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set static address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.gateway 192.168.1.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.dns &amp;quot;1.1.1.1 9.9.9.9&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set DNS servers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection up &amp;quot;Wired connection 1&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply profile changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -g IP4.ADDRESS,IP4.GATEWAY connection show &amp;quot;Wired connection 1&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check IPv4 settings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="dhcp-and-dns"&gt;DHCP and DNS &lt;a class="headline-link" href="#dhcp-and-dns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Return to DHCP or adjust DNS servers.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.method auto&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use DHCP for IPv4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.addresses &amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear static address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.gateway &amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear static gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; ipv4.dns &amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear static DNS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; +ipv4.dns 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append DNS server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;Wired connection 1&amp;quot; -ipv4.dns 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove DNS server&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="add-profiles"&gt;Add Profiles &lt;a class="headline-link" href="#add-profiles" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create new wired and wireless profiles.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection add type ethernet ifname eth0 con-name &amp;quot;wired-dhcp&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add wired DHCP profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection add type ethernet ifname eth0 con-name &amp;quot;wired-static&amp;quot; ip4 192.168.1.50/24 gw4 192.168.1.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add wired static profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection add type wifi ifname wlan0 con-name &amp;quot;office-wifi&amp;quot; ssid &amp;quot;Office&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add Wi-Fi profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;office-wifi&amp;quot; wifi-sec.key-mgmt wpa-psk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set WPA-PSK security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection modify &amp;quot;office-wifi&amp;quot; wifi-sec.psk &amp;quot;PASSWORD&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set Wi-Fi password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection up &amp;quot;wired-static&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Activate new profile&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="scripting-output"&gt;Scripting Output &lt;a class="headline-link" href="#scripting-output" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use stable output formats in scripts.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -t connection show --active&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Terse active profile list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -t -f NAME,DEVICE connection show --active&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Active names and devices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -g GENERAL.STATE device show eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print device state value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -g IP4.ADDRESS device show eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print IPv4 address values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -f DEVICE,TYPE,STATE device status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Select device status fields&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli -m multiline connection show &amp;quot;home-wifi&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Multiline profile details&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="monitor-and-reload"&gt;Monitor and Reload &lt;a class="headline-link" href="#monitor-and-reload" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Watch changes and reload profile files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Watch NetworkManager events&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nmcli device monitor eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Watch one device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload profile files from disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli general reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload NetworkManager configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli general reload dns-rc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rewrite DNS resolver configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;journalctl -u NetworkManager -n 100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show recent NetworkManager logs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Fast checks for common NetworkManager issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NetworkManager is not running&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl start NetworkManager&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wi-Fi list is empty&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli radio wifi on&lt;/code&gt; and &lt;code&gt;rfkill list&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong profile is active&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nmcli connection show --active&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Static IP did not apply&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo nmcli connection up &amp;quot;PROFILE&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS is not working&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nmcli -g IP4.DNS device show eth0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Permission denied&lt;/td&gt;
&lt;td&gt;Run the command with &lt;code&gt;sudo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these articles for detailed networking workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/nmcli-command-in-linux/"&gt;&lt;code&gt;nmcli Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Complete &lt;code&gt;nmcli&lt;/code&gt; command guide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-ip-command/"&gt;&lt;code&gt;Linux ip Command with Examples&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Interface, address, and route management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-20-04/"&gt;&lt;code&gt;How to Configure Static IP Address on Ubuntu&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Netplan and desktop static IP setup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-dig-command-to-query-dns-in-linux/"&gt;&lt;code&gt;How to Use the dig Command&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;DNS lookup and troubleshooting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ssh-command-in-linux/"&gt;&lt;code&gt;SSH Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Remote shell access and options&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>fdisk Cheatsheet</title><link>https://linuxize.com/cheatsheet/fdisk/</link><pubDate>Thu, 07 May 2026 12:10:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/fdisk/</guid><description>Quick reference for fdisk commands: list disks, create partition tables, add partitions, change partition types, write changes, and quit safely</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-usage"&gt;Basic Usage &lt;a class="headline-link" href="#basic-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Open a disk or print partition tables.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/fdisk-command-in-linux/"&gt;&lt;code&gt;sudo fdisk /dev/sdX&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Open a disk in interactive mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fdisk -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all detected partition tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fdisk -l /dev/sdX&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List one disk partition table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fdisk --help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show command-line options&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fdisk --version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show fdisk version&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="list-disks"&gt;List Disks &lt;a class="headline-link" href="#list-disks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Identify the correct device before changing partitions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsblk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show disks, partitions, and mount points&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsblk -d -o NAME,SIZE,MODEL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show whole disks only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsblk -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show filesystems and UUIDs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fdisk -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show partition tables with disk labels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fdisk -x /dev/sdX&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show detailed partition information&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="interactive-commands"&gt;Interactive Commands &lt;a class="headline-link" href="#interactive-commands" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Commands used inside the &lt;code&gt;fdisk&lt;/code&gt; prompt.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show help menu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the current partition table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a new partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete a partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change partition type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List available partition types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write changes and exit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit without saving&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="partition-tables"&gt;Partition Tables &lt;a class="headline-link" href="#partition-tables" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create a new disk label before adding partitions on a blank disk.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;g&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a new GPT partition table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;o&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a new MBR (DOS) partition table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Review the current table before saving&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write the new table to disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exit without writing changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="create-partitions"&gt;Create Partitions &lt;a class="headline-link" href="#create-partitions" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common answers while creating a new partition with &lt;code&gt;n&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start a new partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Accept the default partition number&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Accept the default first sector&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;+1G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a 1 GiB partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;+100G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a 100 GiB partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use the rest of the available disk space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the proposed layout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save the changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="partition-types"&gt;Partition Types &lt;a class="headline-link" href="#partition-types" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Set the partition type when the partition is not a regular Linux data partition.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List partition types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change a partition type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Linux filesystem&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Regular Linux data partition (GPT)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Linux swap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Swap partition (GPT)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;EFI System&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;EFI System partition (GPT)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Linux LVM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;LVM physical volume (GPT)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Linux RAID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux RAID member (GPT)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;83&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Regular Linux partition (MBR)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;82&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Swap partition (MBR)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;8e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;LVM partition (MBR)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="review-and-save"&gt;Review and Save &lt;a class="headline-link" href="#review-and-save" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check the in-memory table before writing it to disk.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the pending partition table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;v&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify the partition table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show details about a partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write changes to disk and exit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit without saving changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="format-and-mount"&gt;Format and Mount &lt;a class="headline-link" href="#format-and-mount" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;After writing the partition table, create a filesystem and mount the partition.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo mkfs.ext4 /dev/sdX1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Format a partition as ext4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo mkswap /dev/sdX2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create swap on a partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo swapon /dev/sdX2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable swap&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo mkdir -p /mnt/data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a mount point&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo mount /dev/sdX1 /mnt/data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mount the partition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsblk -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm filesystem and mount details&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="safety-checks"&gt;Safety Checks &lt;a class="headline-link" href="#safety-checks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Commands that help avoid editing the wrong disk.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsblk -d -o NAME,SIZE,MODEL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compare disk names, sizes, and models&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsblk -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check existing filesystems and mount points&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fdisk -l /dev/sdX&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Review the current table before editing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mount | grep /dev/sdX&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check whether partitions are mounted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo umount /dev/sdX1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unmount a partition before changing it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo partprobe /dev/sdX&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ask the kernel to re-read the table&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-tools"&gt;Related Tools &lt;a class="headline-link" href="#related-tools" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;References for the full workflow around disks and partitions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-mount-and-unmount-file-systems-in-linux/"&gt;&lt;code&gt;mount&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Mount and unmount filesystems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-format-usb-sd-card-linux/"&gt;&lt;code&gt;mkfs.ext4&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Format a partition with a filesystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-check-disk-space-in-linux-using-the-df-command/"&gt;&lt;code&gt;df&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check filesystem disk usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/fsck-command-in-linux/"&gt;&lt;code&gt;fsck&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check and repair filesystems&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>SFTP Cheatsheet</title><link>https://linuxize.com/cheatsheet/sftp/</link><pubDate>Thu, 07 May 2026 07:00:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/sftp/</guid><description>Quick reference for the Linux sftp client, covering login, navigation, transfers, and remote file management over SSH</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="connect-and-authenticate"&gt;Connect and Authenticate &lt;a class="headline-link" href="#connect-and-authenticate" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Open an SFTP session against a remote host.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-linux-sftp-command-to-transfer-files/"&gt;&lt;code&gt;sftp user@hostname&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Connect to remote server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sftp user@192.168.1.10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect by IP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sftp -P 2222 user@hostname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect to a custom SSH port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sftp -i ~/.ssh/id_ed25519 user@hostname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect with a specific key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sftp -b commands.txt user@hostname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run commands from a batch file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;quit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bye&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit session (alias for &lt;code&gt;quit&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="local-and-remote-paths"&gt;Local and Remote Paths &lt;a class="headline-link" href="#local-and-remote-paths" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Navigate directories on both sides of the session.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show remote working directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lpwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show local working directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd /remote/path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change remote directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lcd /local/path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change local directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List remote files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List local files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -la&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Long listing of remote files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="download-files"&gt;Download Files &lt;a class="headline-link" href="#download-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Pull files from the remote server to the local system.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;get file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Download one file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;get remote.txt local.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Download and rename locally&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;get -r remote_dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Download a directory recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;get -P file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preserve file permissions and timestamps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mget *.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Download multiple files matching a pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reget large.iso&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resume an interrupted download&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="upload-files"&gt;Upload Files &lt;a class="headline-link" href="#upload-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Push local files to the remote server.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;put file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Upload one file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;put local.txt remote.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Upload with a remote name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;put -r local_dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Upload a directory recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;put -P file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preserve permissions and timestamps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mput *.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Upload multiple files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reput large.iso&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resume an interrupted upload&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="remote-file-management"&gt;Remote File Management &lt;a class="headline-link" href="#remote-file-management" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Manage files and directories on the SFTP server.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mkdir dirname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create remote directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rmdir dirname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove empty remote directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete remote file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rename old.txt new.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rename remote file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln source link&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a hard link on the remote&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s source link&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a symbolic link on the remote&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show remote filesystem usage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="permissions-and-ownership"&gt;Permissions and Ownership &lt;a class="headline-link" href="#permissions-and-ownership" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Adjust permissions and ownership on remote files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/chmod-command-in-linux/"&gt;&lt;code&gt;chmod 644 file.txt&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Change remote file mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/chown-command-in-linux/"&gt;&lt;code&gt;chown 1000 file.txt&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Change remote owner by UID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chgrp 1000 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change remote group by GID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;umask 022&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set default permission mask&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="session-helpers"&gt;Session Helpers &lt;a class="headline-link" href="#session-helpers" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect and control the active session.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;!command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a local shell command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;!&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Drop into a local shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show SFTP protocol version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;progress&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle transfer progress meter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;help&lt;/code&gt; or &lt;code&gt;?&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List available SFTP commands&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="non-interactive-and-scripting"&gt;Non-Interactive and Scripting &lt;a class="headline-link" href="#non-interactive-and-scripting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use SFTP from scripts and automated jobs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sftp -b script.txt user@host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a batch file of commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sftp -q user@host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quiet mode (suppress banner and progress)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sftp -o IdentityFile=key user@host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pass any &lt;code&gt;ssh_config&lt;/code&gt; option&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;get file.txt&amp;quot; | sftp -b - user@host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pipe commands via stdin&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-tools"&gt;Related Tools &lt;a class="headline-link" href="#related-tools" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Other ways to move files between systems.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-scp-command-to-securely-transfer-files/"&gt;&lt;code&gt;scp&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Secure copy over SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/"&gt;&lt;code&gt;rsync&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Efficient sync and incremental transfer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-does-ssh-work/"&gt;&lt;code&gt;ssh&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Underlying secure shell protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ftp/"&gt;&lt;code&gt;ftp&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Legacy unencrypted file transfer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>cd Cheatsheet</title><link>https://linuxize.com/cheatsheet/cd/</link><pubDate>Sun, 03 May 2026 22:55:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/cd/</guid><description>Quick reference for changing directories with cd in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core command forms for changing directories.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd [DIRECTORY]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to your home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd -- DIRECTORY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to a directory whose name may start with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the current working directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="everyday-navigation"&gt;Everyday Navigation &lt;a class="headline-link" href="#everyday-navigation" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common ways to move around the filesystem.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd /etc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to an absolute path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd Downloads&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to a relative path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ..&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move up one directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ../..&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move up two directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ./scripts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to a directory under the current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="home-directories"&gt;Home Directories &lt;a class="headline-link" href="#home-directories" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use shell shortcuts for your home directory and other users&amp;rsquo; homes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ~&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to your home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ~/Downloads&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to &lt;code&gt;Downloads&lt;/code&gt; inside your home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ~username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to another user&amp;rsquo;s home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd &amp;quot;$HOME&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to the directory stored in &lt;code&gt;$HOME&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="relative-paths"&gt;Relative Paths &lt;a class="headline-link" href="#relative-paths" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Build paths from your current directory.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd .&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stay in the current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ..&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move to the parent directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ../src&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move up one level, then into &lt;code&gt;src&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd ../../var&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move up two levels, then into &lt;code&gt;var&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd project/docs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move through nested directories&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="previous-directory"&gt;Previous Directory &lt;a class="headline-link" href="#previous-directory" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Switch between recently used directories.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd -&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to the previous working directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;$OLDPWD&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the previous working directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd &amp;quot;$OLDPWD&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to the previous directory without using &lt;code&gt;cd -&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pushd /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change directory and save the old one on the stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;popd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Return to a directory from the stack&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="paths-with-spaces"&gt;Paths with Spaces &lt;a class="headline-link" href="#paths-with-spaces" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quote or escape paths that contain spaces or shell metacharacters.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd &amp;quot;Project Files&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quote a directory name with spaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd 'Project Files'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use single quotes for a literal path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd Project\ Files&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Escape the space with a backslash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd -- &amp;quot;-reports&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enter a directory whose name starts with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="symlinks-and-physical-paths"&gt;Symlinks and Physical Paths &lt;a class="headline-link" href="#symlinks-and-physical-paths" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control whether &lt;code&gt;cd&lt;/code&gt; follows logical or physical paths.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd -L linkdir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow symbolic links (default in Bash)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd -P linkdir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resolve to the physical directory path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the shell&amp;rsquo;s logical current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pwd -P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the physical current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd -P ..&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move using the physical directory structure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="cdpath"&gt;CDPATH &lt;a class="headline-link" href="#cdpath" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Search extra base directories when changing by name.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export CDPATH=.:~/projects:/opt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search current directory, &lt;code&gt;~/projects&lt;/code&gt;, and &lt;code&gt;/opt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd myapp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Try matching &lt;code&gt;myapp&lt;/code&gt; in each &lt;code&gt;CDPATH&lt;/code&gt; entry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unset CDPATH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable &lt;code&gt;CDPATH&lt;/code&gt; for the current shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CDPATH= cd myapp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run one &lt;code&gt;cd&lt;/code&gt; command without &lt;code&gt;CDPATH&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common directory-change errors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;No such file or directory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify the path with &lt;code&gt;ls -ld path&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check execute permission on the directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Path with spaces fails&lt;/td&gt;
&lt;td&gt;Quote the path or escape spaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cd -&lt;/code&gt; fails&lt;/td&gt;
&lt;td&gt;&lt;code&gt;$OLDPWD&lt;/code&gt; is not set yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unexpected target with &lt;code&gt;CDPATH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;unset CDPATH&lt;/code&gt; or use an absolute path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Symlink path looks different&lt;/td&gt;
&lt;td&gt;Compare &lt;code&gt;pwd&lt;/code&gt; and &lt;code&gt;pwd -P&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for detailed directory navigation workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-cd-command/"&gt;&lt;code&gt;cd Command in Linux: Change Directories&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;cd&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/current-working-directory/"&gt;&lt;code&gt;How to Get the Current Working Directory in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;pwd&lt;/code&gt; and understand the current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/popd-and-pushd-commands-in-linux/"&gt;&lt;code&gt;pushd and popd Commands in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Work with the directory stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/linux-commands/"&gt;&lt;code&gt;Linux Commands Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;General Linux command quick reference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>netstat Cheatsheet</title><link>https://linuxize.com/cheatsheet/netstat/</link><pubDate>Sat, 02 May 2026 10:30:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/netstat/</guid><description>Quick reference for listing network connections, listening ports, routes, interface counters, and protocol statistics with netstat</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;netstat&lt;/code&gt; command forms and output controls.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show active non-listening sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show numeric addresses and ports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show PID and program name where available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refresh output every second&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="listening-ports"&gt;Listening Ports &lt;a class="headline-link" href="#listening-ports" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Find services that are accepting local connections.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -tuln&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show TCP and UDP listening sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -tulnp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show listening sockets with PID and process name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -tnlp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show listening TCP sockets only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -unlp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show listening UDP sockets only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -tulnp | grep ':80'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find the process listening on port 80&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="connections-and-tcp-states"&gt;Connections and TCP States &lt;a class="headline-link" href="#connections-and-tcp-states" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect active connections and common TCP states.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -at&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all TCP sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -au&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all UDP sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -ant&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show TCP sockets with numeric addresses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -ant | grep ESTABLISHED&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show established TCP connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -ant | grep TIME_WAIT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show TCP connections in &lt;code&gt;TIME_WAIT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -atnc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Watch TCP connection output continuously&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="counts-and-filters"&gt;Counts and Filters &lt;a class="headline-link" href="#counts-and-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use shell filters with &lt;code&gt;netstat&lt;/code&gt; output.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -ant | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count TCP output rows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -ant | grep ':80' | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count TCP connections involving port 80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -ant | grep ESTABLISHED | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count established TCP connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -tulnp | grep nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find sockets owned by &lt;code&gt;nginx&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -ant | grep 203.0.113.10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter connections by remote IP address&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="routes-interfaces-and-stats"&gt;Routes, Interfaces, and Stats &lt;a class="headline-link" href="#routes-interfaces-and-stats" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show routing, interface, and protocol information.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -rn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the routing table with numeric addresses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -r&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the routing table with name resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show interface counters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -ie&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show extended interface details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show protocol statistics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -st&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show TCP protocol statistics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -su&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show UDP protocol statistics&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="modern-replacements"&gt;Modern Replacements &lt;a class="headline-link" href="#modern-replacements" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use current Linux tools for new workflows and scripts.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;netstat Command&lt;/th&gt;
&lt;th&gt;Modern Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -tuln&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ss -tuln&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo netstat -tulnp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo ss -tulnp&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -rn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ip route&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ip -s link&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat -s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ss -s&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common &lt;code&gt;netstat&lt;/code&gt; issues and quick fixes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netstat: command not found&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install the &lt;code&gt;net-tools&lt;/code&gt; package or use &lt;code&gt;ss&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process column is empty&lt;/td&gt;
&lt;td&gt;Run with &lt;code&gt;sudo&lt;/code&gt; when using &lt;code&gt;-p&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output is slow&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-n&lt;/code&gt; to disable name resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port lookup matches too much&lt;/td&gt;
&lt;td&gt;Search with a colon, such as &lt;code&gt;grep ':80'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need listeners only&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-l&lt;/code&gt; with protocol flags such as &lt;code&gt;-tuln&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full walkthroughs and modern alternatives.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/netstat-command-in-linux/"&gt;&lt;code&gt;netstat&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;netstat&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ss-command-in-linux/"&gt;&lt;code&gt;ss&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Modern socket inspection tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-ip-command/"&gt;&lt;code&gt;ip&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Modern routes and interface management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/check-listening-ports-linux/"&gt;How to Check Listening Ports in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Compare &lt;code&gt;ss&lt;/code&gt;, &lt;code&gt;netstat&lt;/code&gt;, and &lt;code&gt;lsof&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/lsof-command-in-linux/"&gt;&lt;code&gt;lsof&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Tie sockets and files back to processes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>Netcat Cheatsheet</title><link>https://linuxize.com/cheatsheet/netcat/</link><pubDate>Thu, 30 Apr 2026 11:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/netcat/</guid><description>Quick reference for using the Netcat nc command to test ports, listen for connections, transfer files, and send raw network requests</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;nc&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc host port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open a TCP connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -u host port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open a UDP connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -l port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listen on a local port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show help and options&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;man nc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read the local Netcat manual&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="connect-and-listen"&gt;Connect and Listen &lt;a class="headline-link" href="#connect-and-listen" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create simple client and server connections.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/netcat-nc-command-with-examples/"&gt;&lt;code&gt;nc example.com 80&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Connect to TCP port 80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -l 5555&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listen on port 5555&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc server.example.com 5555&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect to a listening host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -v host 22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect with verbose output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -n 192.168.1.10 22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip DNS lookups&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="port-checks"&gt;Port Checks &lt;a class="headline-link" href="#port-checks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check whether TCP ports are open.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -z -v host 22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check one TCP port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -z -v host 20-80&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check a port range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -z -v host 80 443&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check selected ports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -z -w 3 host 443&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check with a timeout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/nmap-command/"&gt;&lt;code&gt;nmap host&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Use Nmap for deeper scans&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="udp"&gt;UDP &lt;a class="headline-link" href="#udp" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use UDP instead of TCP.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -u host 53&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect to a UDP service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -u -l 5555&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Listen for UDP datagrams&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -z -v -u host 53&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check a UDP port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -u -w 3 host 123&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;UDP check with timeout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -u 192.168.1.10 5555&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send text to a UDP listener&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="file-transfers"&gt;File Transfers &lt;a class="headline-link" href="#file-transfers" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Send files between two hosts.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -l 5555 &amp;gt; file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Receive a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc host 5555 &amp;lt; file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -l 5555 | tar xzvf -&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Receive and extract a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tar czvf - dir | nc host 5555&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Archive and send a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -w 5 host 5555 &amp;lt; file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send with a timeout&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="http-and-raw-requests"&gt;HTTP and Raw Requests &lt;a class="headline-link" href="#http-and-raw-requests" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Send plain text requests to network services.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf &amp;quot;GET / HTTP/1.1\r\nHost: example.com\r\n\r\n&amp;quot; | nc example.com 80&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send an HTTP request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;QUIT&amp;quot; | nc mail.example.com 25&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send a simple SMTP command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;PING&amp;quot; | nc host 5555&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send text to a listener&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc host 80&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Type a request manually&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/curl-command-examples/"&gt;&lt;code&gt;curl http://example.com&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Use curl for HTTP work&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="timeouts-and-persistent-listeners"&gt;Timeouts and Persistent Listeners &lt;a class="headline-link" href="#timeouts-and-persistent-listeners" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how long Netcat waits and whether it keeps listening.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -w 5 host 80&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Timeout after 5 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -k -l 5555&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Keep listening after disconnect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -v -w 3 host 22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verbose connection with timeout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc -l 8080 &amp;lt; index.html&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Serve one file on port 8080&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;while true; do nc -l 8080 &amp;lt; index.html; done&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Serve the file repeatedly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common Netcat issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nc: command not found&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install &lt;code&gt;netcat-openbsd&lt;/code&gt;, &lt;code&gt;netcat-traditional&lt;/code&gt;, or &lt;code&gt;nmap-ncat&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Connection refused&lt;/td&gt;
&lt;td&gt;Confirm the remote service is running and listening on that port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command hangs&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-w&lt;/code&gt; to set a timeout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UDP result is unclear&lt;/td&gt;
&lt;td&gt;UDP has no TCP-style handshake, use Nmap for reliable scans&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Option behaves differently&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;man nc&lt;/code&gt; and check the Netcat implementation on that system&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for broader networking workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/netcat-nc-command-with-examples/"&gt;Netcat Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full Netcat guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/nmap-command/"&gt;Nmap Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Scan hosts and ports in more detail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/curl/"&gt;curl cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Work with HTTP requests and APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/tcpdump/"&gt;tcpdump cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Capture and inspect network packets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ss-command-in-linux/"&gt;ss Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect sockets and listening services&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>timedatectl Cheatsheet</title><link>https://linuxize.com/cheatsheet/timedatectl/</link><pubDate>Tue, 21 Apr 2026 09:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/timedatectl/</guid><description>Quick reference for checking time status, changing time zones, controlling NTP sync, and setting the system clock with timedatectl</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-status"&gt;Basic Status &lt;a class="headline-link" href="#basic-status" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check the current time, date, time zone, and sync state.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show current time, time zone, and NTP status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the same formatted status explicitly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show status in key-value format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=Timezone --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the current time zone only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=NTPSynchronized --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print whether the clock is synchronized&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="time-zones"&gt;Time Zones &lt;a class="headline-link" href="#time-zones" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;List and change time zone settings.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl list-timezones&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all available time zones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl list-timezones | grep -i berlin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter the time zone list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-timezone Europe/Berlin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the system time zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-timezone Etc/UTC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch the system back to UTC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=Timezone --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm the current time zone in scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="ntp-synchronization"&gt;NTP Synchronization &lt;a class="headline-link" href="#ntp-synchronization" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Enable, disable, and inspect time synchronization.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-ntp true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable automatic time sync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-ntp false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable automatic time sync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl timesync-status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the current NTP server, offset, and poll interval&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show-timesync&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show timesync details in key-value format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=NTP --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show whether NTP is enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="set-time-and-date"&gt;Set Time and Date &lt;a class="headline-link" href="#set-time-and-date" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Disable NTP first when setting the clock manually.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-ntp false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Turn off NTP before manual changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-time '2026-04-21 14:30:00'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set both date and time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-time '14:30:00'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the time only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-time '2026-04-21'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the date only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-ntp true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Re-enable NTP after manual changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="rtc-and-hardware-clock"&gt;RTC and Hardware Clock &lt;a class="headline-link" href="#rtc-and-hardware-clock" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control whether the RTC uses UTC or local time.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=LocalRTC --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check whether the RTC uses local time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-local-rtc 0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the RTC to UTC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-local-rtc 1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the RTC to local time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-local-rtc 1 --adjust-system-clock&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch RTC mode and adjust the system clock&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm the &lt;code&gt;RTC in local TZ&lt;/code&gt; status line&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="script-friendly-output"&gt;Script-Friendly Output &lt;a class="headline-link" href="#script-friendly-output" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Extract single values for shell scripts and automation.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=Timezone --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get the current time zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=LocalRTC --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get the RTC mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=CanNTP --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check whether NTP is supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=NTP --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check whether NTP is enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl show --property=NTPSynchronized --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check whether the clock is synchronized&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="remote-and-container-use"&gt;Remote and Container Use &lt;a class="headline-link" href="#remote-and-container-use" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Run &lt;code&gt;timedatectl&lt;/code&gt; against another host or a local container.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl -H user@server status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check time settings on a remote host over SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl -H root@server set-timezone UTC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change the remote host time zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl -M mycontainer status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check time settings in a local container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl -M mycontainer show --property=Timezone --value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the container time zone only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="quick-fixes"&gt;Quick Fixes &lt;a class="headline-link" href="#quick-fixes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these when &lt;code&gt;timedatectl&lt;/code&gt; does not behave as expected.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo timedatectl set-ntp false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fix &lt;code&gt;Automatic time synchronization is enabled&lt;/code&gt; before &lt;code&gt;set-time&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl timesync-status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check which server is syncing the clock&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timedatectl --no-pager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print directly without opening a pager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo date -s '2026-04-21 14:30:00'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the clock on non-systemd systems where &lt;code&gt;timedatectl&lt;/code&gt; does not work&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these articles for deeper explanations and step-by-step instructions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-set-or-change-timezone-in-linux/"&gt;&lt;code&gt;How to Set or Change the Time Zone in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Change the system time zone with &lt;code&gt;timedatectl&lt;/code&gt;, &lt;code&gt;tzdata&lt;/code&gt;, or &lt;code&gt;/etc/localtime&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-date-command/"&gt;&lt;code&gt;date Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Read and set the system clock with the traditional &lt;code&gt;date&lt;/code&gt; command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/journalctl/"&gt;&lt;code&gt;journalctl Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect time sync and service logs from the systemd journal&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>PostgreSQL Cheatsheet</title><link>https://linuxize.com/cheatsheet/postgresql/</link><pubDate>Thu, 16 Apr 2026 15:50:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/postgresql/</guid><description>Quick reference for connecting to PostgreSQL, managing databases and roles, granting privileges, and running backup commands.</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core PostgreSQL command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open an interactive PostgreSQL shell using local defaults&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql -U user -d dbname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect as a specific user to a specific database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql -h host -p 5432 -U user -d dbname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect to a remote PostgreSQL server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql -c &amp;quot;SQL_STATEMENT&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run one SQL command and exit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo -u postgres psql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open &lt;code&gt;psql&lt;/code&gt; as the local &lt;code&gt;postgres&lt;/code&gt; superuser&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="connect-and-switch"&gt;Connect and Switch &lt;a class="headline-link" href="#connect-and-switch" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common ways to connect and move between databases.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo -u postgres psql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect locally as the &lt;code&gt;postgres&lt;/code&gt; system user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql -U app_user -d app_db&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect to &lt;code&gt;app_db&lt;/code&gt; as &lt;code&gt;app_user&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql &amp;quot;host=localhost port=5432 dbname=app_db user=app_user&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connect with a connection string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\c app_db&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch to another database inside &lt;code&gt;psql&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\conninfo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the current connection details&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="databases"&gt;Databases &lt;a class="headline-link" href="#databases" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create, list, rename, and remove databases.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CREATE DATABASE app_db;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a new database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CREATE DATABASE app_db OWNER app_user;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a database owned by a specific role&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List databases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ALTER DATABASE app_db RENAME TO app_prod;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rename a database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DROP DATABASE app_db;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete a database&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="roles-and-users"&gt;Roles and Users &lt;a class="headline-link" href="#roles-and-users" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create login roles and inspect existing roles.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CREATE ROLE app_user;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a role without login&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CREATE ROLE app_user WITH LOGIN PASSWORD 'strong_password';&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a login role&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CREATE USER app_user WITH PASSWORD 'strong_password';&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shortcut for a login role&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ALTER ROLE app_user WITH PASSWORD 'new_password';&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change a role password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\du&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List roles and attributes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="grant-and-revoke-privileges"&gt;Grant and Revoke Privileges &lt;a class="headline-link" href="#grant-and-revoke-privileges" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Give or remove access at the database, schema, and table levels.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GRANT CONNECT ON DATABASE app_db TO app_user;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow a role to connect to a database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GRANT USAGE, CREATE ON SCHEMA public TO app_user;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow schema access and object creation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE orders TO app_user;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Grant table privileges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;REVOKE INSERT, UPDATE ON TABLE orders FROM app_user;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove selected table privileges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO app_user;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Grant defaults for future tables&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="table-and-schema-introspection"&gt;Table and Schema Introspection &lt;a class="headline-link" href="#table-and-schema-introspection" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect schemas, tables, columns, and query results.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\dn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List schemas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\dt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List tables in the current search path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\dt public.*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List tables in the &lt;code&gt;public&lt;/code&gt; schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\d orders&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Describe a table, view, or sequence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SELECT * FROM orders LIMIT 10;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview rows from a table&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="psql-meta-commands"&gt;psql Meta-Commands &lt;a class="headline-link" href="#psql-meta-commands" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Useful built-in &lt;code&gt;psql&lt;/code&gt; commands for daily administration.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\?&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show &lt;code&gt;psql&lt;/code&gt; meta-command help&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\h CREATE ROLE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show SQL help for one statement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\x&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle expanded output for wide rows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\timing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle query timing display&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;\q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit &lt;code&gt;psql&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="backup-and-restore"&gt;Backup and Restore &lt;a class="headline-link" href="#backup-and-restore" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common logical backup and restore commands.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pg_dump -U app_user -d app_db &amp;gt; app_db.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Export a database as plain SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pg_dump -Fc -U app_user -d app_db -f app_db.dump&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a custom-format backup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql -U app_user -d app_db &amp;lt; app_db.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Restore a plain SQL dump&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pg_restore -U app_user -d app_db app_db.dump&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Restore a custom-format dump&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pg_dumpall &amp;gt; cluster.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Back up all databases and global objects&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="version-and-service-checks"&gt;Version and Service Checks &lt;a class="headline-link" href="#version-and-service-checks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for server version and service status.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SELECT version();&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the PostgreSQL server version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;psql --version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the client version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHOW server_version;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the server version only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl status postgresql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check the PostgreSQL service state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl restart postgresql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Restart the PostgreSQL service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full PostgreSQL walkthroughs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/postgresql-user-management/"&gt;PostgreSQL User Management: Create Users and Grant Privileges&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full guide to roles, passwords, and grants&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-check-postgresql-version/"&gt;How to Check the PostgreSQL Version&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Find the installed and running PostgreSQL version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-postgresql-on-ubuntu-20-04/"&gt;How to Install PostgreSQL on Ubuntu 20.04&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install PostgreSQL on Ubuntu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-postgresql-on-debian-10/"&gt;How to Install PostgreSQL on Debian 10&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install PostgreSQL on Debian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-install-postgresql-on-centos-8/"&gt;How to Install PostgreSQL on CentOS 8&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Install PostgreSQL on CentOS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>du Cheatsheet</title><link>https://linuxize.com/cheatsheet/du/</link><pubDate>Mon, 13 Apr 2026 14:49:31 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/du/</guid><description>Quick reference for the du command: check directory sizes, human-readable output, depth limits, sorting by size, exclusions, and apparent size.</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-usage"&gt;Basic Usage &lt;a class="headline-link" href="#basic-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common ways to check directory and file sizes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/du-command-in-linux/"&gt;&lt;code&gt;du&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show disk usage of the current directory and its subdirectories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show disk usage of a single file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show disk usage for multiple paths&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable sizes (K, M, G)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only the total size of a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh *&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the size of every item in the current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo du -sh /var&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run with sudo to read root-owned paths&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="size-formats"&gt;Size Formats &lt;a class="headline-link" href="#size-formats" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how sizes are printed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable, powers of 1024 (&lt;code&gt;K&lt;/code&gt;, &lt;code&gt;M&lt;/code&gt;, &lt;code&gt;G&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable, powers of 1000 (SI units)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-k&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display sizes in 1K blocks (default on most systems)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display sizes in 1M blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-BG&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display sizes in 1G blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-B SIZE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use SIZE-byte blocks, for example &lt;code&gt;-BM&lt;/code&gt; or &lt;code&gt;-B512&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Equivalent to &lt;code&gt;--apparent-size --block-size=1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="summary-and-totals"&gt;Summary and Totals &lt;a class="headline-link" href="#summary-and-totals" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Reduce noise or add a grand total row.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -s dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only the total for the given directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total in human-readable format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -c dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add a &lt;code&gt;total&lt;/code&gt; line at the bottom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -csh /var/log /var/lib&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable totals plus a combined grand total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -a dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include every file in the listing, not just directories&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="depth-control"&gt;Depth Control &lt;a class="headline-link" href="#depth-control" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Limit how deep &lt;code&gt;du&lt;/code&gt; descends into the directory tree.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h --max-depth=1 dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only the first level of subdirectories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h --max-depth=2 dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show two levels deep&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h -d 1 dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Short form of &lt;code&gt;--max-depth=1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h --max-depth=0 dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only the directory total (same as &lt;code&gt;-s&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="excluding-files"&gt;Excluding Files &lt;a class="headline-link" href="#excluding-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Skip paths or patterns from the report.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--exclude=PATTERN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip files and directories matching the shell pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--exclude-from=FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read exclude patterns from a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-x&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stay on the same filesystem (skip mounted ones)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh --exclude=&amp;quot;*.log&amp;quot; /var&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude &lt;code&gt;.log&lt;/code&gt; files from the total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh --exclude=node_modules ~/projects&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip &lt;code&gt;node_modules&lt;/code&gt; directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -xsh /&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total of the root filesystem only, ignoring mounts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="sorting-and-top-n"&gt;Sorting and Top N &lt;a class="headline-link" href="#sorting-and-top-n" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Combine &lt;code&gt;du&lt;/code&gt; with &lt;code&gt;sort&lt;/code&gt; and &lt;code&gt;head&lt;/code&gt; to find the largest items.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h dir | sort -rh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort entries by size, largest first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h dir | sort -rh | head -10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List the 10 largest items&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -h --max-depth=1 / | sort -rh | head -20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Largest top-level directories under &lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -ah dir | sort -rh | head -10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Largest individual files and directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh */ | sort -rh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort current directory&amp;rsquo;s children by size&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="apparent-vs-disk-usage"&gt;Apparent vs Disk Usage &lt;a class="headline-link" href="#apparent-vs-disk-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;du&lt;/code&gt; reports allocated blocks by default. Use these flags to see actual byte counts.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--apparent-size&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show how many bytes the file contains, not how much it occupies on disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apparent size in bytes (shorthand for &lt;code&gt;--apparent-size --block-size=1&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh --apparent-size /var/log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apparent size of &lt;code&gt;/var/log&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sb file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exact byte count of a file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="counting-and-time"&gt;Counting and Time &lt;a class="headline-link" href="#counting-and-time" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Less common but useful options.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow all symbolic links&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Never follow symbolic links (default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count sizes many times if hard linked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--time&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show last modification time of the file or directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--time=atime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the access time instead of modification time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use a NUL character as the line separator (for piping into &lt;code&gt;xargs -0&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these references for deeper disk usage workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/du-command-in-linux/"&gt;&lt;code&gt;du Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;du&lt;/code&gt; guide with practical examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-get-size-of-file-directory-linux/"&gt;&lt;code&gt;How to Get the Size of a File or Directory&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Focused walkthrough for sizing files and directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-check-disk-space-in-linux-using-the-df-command/"&gt;&lt;code&gt;How to Check Disk Space in Linux Using df&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Filesystem-level disk space reporting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/find-large-files-in-linux/"&gt;&lt;code&gt;Find Large Files in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Locate the biggest files across a tree&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>nslookup Cheatsheet</title><link>https://linuxize.com/cheatsheet/nslookup/</link><pubDate>Sat, 11 Apr 2026 14:20:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/nslookup/</guid><description>Quick reference for querying DNS records and checking name resolution with nslookup</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;nslookup&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Look up a domain using the default resolver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup example.com 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query a specific DNS server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=mx example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query a specific record type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup 192.0.2.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a reverse DNS lookup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start interactive mode&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-lookups"&gt;Common Lookups &lt;a class="headline-link" href="#common-lookups" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for hostnames and addresses.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Look up A and AAAA records using the default resolver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check a hostname or subdomain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup localhost&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify local name resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup 127.0.0.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reverse lookup for the local loopback address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup 192.0.2.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reverse lookup for a public IP address&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="record-types"&gt;Record Types &lt;a class="headline-link" href="#record-types" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;-type&lt;/code&gt; to query specific DNS records.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=a example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query IPv4 address records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=aaaa example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query IPv6 address records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=mx example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query mail exchanger records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=ns example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query authoritative name servers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=txt example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query TXT records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=soa example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query the SOA record&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=cname www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check whether a hostname is an alias&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=any example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run an &lt;code&gt;ANY&lt;/code&gt; query&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="specific-dns-servers"&gt;Specific DNS Servers &lt;a class="headline-link" href="#specific-dns-servers" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Compare answers from different resolvers.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup example.com 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query Google Public DNS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup example.com 1.1.1.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query Cloudflare DNS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup example.com 9.9.9.9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query Quad9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=mx example.com 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query MX records from a specific resolver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup -type=txt example.com 1.1.1.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compare TXT answers between resolvers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="interactive-mode"&gt;Interactive Mode &lt;a class="headline-link" href="#interactive-mode" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Run multiple queries in one session.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nslookup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open interactive mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;set type=mx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch the active query type to MX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;set type=txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch the active query type to TXT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;server 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change the active DNS server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query a domain after entering interactive mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Leave the interactive session&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;nslookup&lt;/code&gt; errors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;NXDOMAIN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify the domain name and make sure it exists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SERVFAIL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Try another resolver such as &lt;code&gt;8.8.8.8&lt;/code&gt; or &lt;code&gt;1.1.1.1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Connection timed out; no servers could be reached&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check network access and verify &lt;code&gt;/etc/resolv.conf&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Non-authoritative answer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Normal cached response from a resolver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;No answer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The queried record type is not set for that name&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for fuller DNS troubleshooting workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/nslookup-command-in-linux/"&gt;nslookup Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;nslookup&lt;/code&gt; guide with practical examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-dig-command-to-query-dns-in-linux/"&gt;How to Use the dig Command to Query DNS in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Detailed &lt;code&gt;dig&lt;/code&gt; guide for deeper DNS debugging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ping/"&gt;ping Cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Quick connectivity checks before DNS troubleshooting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ip/"&gt;IP command cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect interfaces, addresses, and routes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/curl/"&gt;curl Cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Test HTTP reachability after DNS resolution succeeds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>tail Cheatsheet</title><link>https://linuxize.com/cheatsheet/tail/</link><pubDate>Tue, 07 Apr 2026 11:40:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/tail/</guid><description>Quick reference for viewing the end of files, following logs, and using tail with lines, bytes, and pipelines in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;tail&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 10 lines of a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n 20 FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 20 lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -f FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow a file as new lines are appended&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -c 200 FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 200 bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | tail&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the end of piped output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="show-the-last-lines"&gt;Show the Last Lines &lt;a class="headline-link" href="#show-the-last-lines" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common line-based usage patterns.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail /var/log/syslog&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 10 lines of a system log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n 50 /var/log/nginx/access.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 50 log lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -5 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Short form for the last 5 lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n 1 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only the last line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n +5 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start printing from line 5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="follow-logs-in-real-time"&gt;Follow Logs in Real Time &lt;a class="headline-link" href="#follow-logs-in-real-time" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Monitor changing files without reopening them.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -f /var/log/auth.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow a log file live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n 100 -f app.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show recent lines, then keep following&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -F /var/log/nginx/error.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow by filename and survive log rotation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tail -f /var/log/secure&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow a root-owned log file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -f --pid=1234 app.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop following when PID 1234 exits&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="bytes-and-starting-positions"&gt;Bytes and Starting Positions &lt;a class="headline-link" href="#bytes-and-starting-positions" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Switch from lines to byte counts or start offsets.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -c 500 file.bin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 500 bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -c 2K file.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 2 KiB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n +2 file.csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip the first line, useful for headers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n +20 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print from line 20 to the end&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -c +101 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print starting from byte 101&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="multiple-files"&gt;Multiple Files &lt;a class="headline-link" href="#multiple-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect or follow more than one file at a time.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail file1.log file2.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 10 lines from each file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n 20 file1.log file2.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the last 20 lines from each file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -f /var/log/syslog /var/log/auth.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow multiple log files live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -q file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Suppress file headers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -v file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Always show file headers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="pipelines-and-combos"&gt;Pipelines and Combos &lt;a class="headline-link" href="#pipelines-and-combos" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;tail&lt;/code&gt; with other text-processing tools.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dmesg | tail -n 20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the most recent kernel messages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps aux | sort -nk 3 | tail -5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show processes with the highest CPU usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep ERROR app.log | tail -n 20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the latest matching error lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n +20 file.txt | head -n 11&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract lines 20 through 30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;journalctl -u nginx | tail -n 50&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the latest service log lines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;tail&lt;/code&gt; confusion.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No new output appears with &lt;code&gt;-f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm the file is still being written to and you are watching the correct path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output stops after log rotation&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;tail -F&lt;/code&gt; to follow the filename instead of the old file descriptor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check file ownership and run with the correct user or &lt;code&gt;sudo&lt;/code&gt; if needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need only one field or last value&lt;/td&gt;
&lt;td&gt;Combine &lt;code&gt;tail&lt;/code&gt; with &lt;code&gt;awk&lt;/code&gt; or &lt;code&gt;cut&lt;/code&gt; after confirming the file format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong starting line with &lt;code&gt;+N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remember &lt;code&gt;tail -n +N&lt;/code&gt; starts printing at line &lt;code&gt;N&lt;/code&gt;, not after it&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full logging and text-processing workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-tail-command/"&gt;tail Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;tail&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-head-command/"&gt;head Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show the first lines of files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/less-command-in-linux/"&gt;less Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Scroll, search, and follow file output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-grep-command-to-search-files-in-linux/"&gt;grep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Filter matching log lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-wc-command/"&gt;linux wc Command&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Count lines and bytes in files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>htop Cheatsheet</title><link>https://linuxize.com/cheatsheet/htop/</link><pubDate>Mon, 06 Apr 2026 11:35:00 +0200</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/htop/</guid><description>Quick reference for monitoring processes, sorting tasks, filtering output, and managing processes with htop in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-usage"&gt;Basic Usage &lt;a class="headline-link" href="#basic-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Start &lt;code&gt;htop&lt;/code&gt; and limit the view when needed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start &lt;code&gt;htop&lt;/code&gt; with the default interactive view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop -u username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only processes owned by one user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop -p 1234,5678&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Monitor only the specified PIDs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop -t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start in tree view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo htop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run with elevated privileges to manage more processes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="navigation-and-search"&gt;Navigation and Search &lt;a class="headline-link" href="#navigation-and-search" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Move around the process list and find what you need quickly.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Arrow keys&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move up and down through processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Page Up&lt;/code&gt; / &lt;code&gt;Page Down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scroll one page at a time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Home&lt;/code&gt; / &lt;code&gt;End&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to the top or bottom of the list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F3&lt;/code&gt; or &lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search for a process by name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F4&lt;/code&gt; or &lt;code&gt;\\&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter the process list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Space&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tag or untag the selected process&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;U&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear all tags&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="sorting-and-views"&gt;Sorting and Views &lt;a class="headline-link" href="#sorting-and-views" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Change how processes are grouped and sorted.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key / Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by CPU usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;M&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by memory usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by running time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle tree view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F6&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Choose a sort column&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop -s PERCENT_MEM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start sorted by memory usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle display of user threads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;K&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle display of kernel threads&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="process-actions"&gt;Process Actions &lt;a class="headline-link" href="#process-actions" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Manage processes directly from inside &lt;code&gt;htop&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F7&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Decrease nice value (raise priority)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Increase nice value (lower priority)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send a signal to the selected process&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;15 SIGTERM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ask a process to exit cleanly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;9 SIGKILL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force a process to stop immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;2 SIGINT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Interrupt a process, similar to &lt;code&gt;Ctrl+C&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt; or &lt;code&gt;F10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit &lt;code&gt;htop&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="startup-options"&gt;Startup Options &lt;a class="headline-link" href="#startup-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Useful options for changing the initial view.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop -d 20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refresh every 2 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop -C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use monochrome mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop -H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Highlight new and old processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop --readonly&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable process-kill and renice actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop --sort-key PERCENT_CPU&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start sorted by CPU usage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="customization"&gt;Customization &lt;a class="headline-link" href="#customization" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Adjust the display and save the layout.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key / Path&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open the setup menu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Columns&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add, remove, or reorder process columns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Meters&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change header meters and display style&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Display options&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle tree lines, thread names, and other UI settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;~/.config/htop/htoprc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Configuration file where settings are saved&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;htop&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;htop: command not found&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install &lt;code&gt;htop&lt;/code&gt; with &lt;code&gt;apt&lt;/code&gt; or &lt;code&gt;dnf&lt;/code&gt; first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cannot renice a process&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;htop&lt;/code&gt; with &lt;code&gt;sudo&lt;/code&gt; to change priorities for other users&amp;rsquo; processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cannot kill a process&lt;/td&gt;
&lt;td&gt;Confirm you have permission, then use &lt;code&gt;F9&lt;/code&gt; with &lt;code&gt;SIGTERM&lt;/code&gt; first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process list is too noisy&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;F4&lt;/code&gt; to filter or start with &lt;code&gt;-u USER&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fast processes disappear&lt;/td&gt;
&lt;td&gt;Lower the update interval with &lt;code&gt;-d&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for the full walkthroughs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/htop-command-in-linux/"&gt;&lt;code&gt;htop&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;htop&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/top-command-in-linux/"&gt;&lt;code&gt;top&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Monitor processes in real time with &lt;code&gt;top&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ps-command-in-linux/"&gt;&lt;code&gt;ps&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;List and inspect processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/kill-command-in-linux/"&gt;&lt;code&gt;kill&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Send signals to processes by PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/pstree-command-in-linux/"&gt;&lt;code&gt;pstree&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;View parent and child process relationships&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>lsof Cheatsheet</title><link>https://linuxize.com/cheatsheet/lsof/</link><pubDate>Wed, 01 Apr 2026 11:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/lsof/</guid><description>Quick reference for finding open files, processes, ports, and deleted files with lsof in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;lsof&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsof&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List open files visible to the current user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List open files system-wide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsof /path/to/file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show which process has a file open&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsof -p 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show files opened by one PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsof -u username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show files opened by one user&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="port-and-network-checks"&gt;Port and Network Checks &lt;a class="headline-link" href="#port-and-network-checks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Find listeners and active network connections.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -nP -iTCP:80 -sTCP:LISTEN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find what is listening on TCP port 80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all network connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -i TCP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List TCP connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -i UDP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List UDP connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -nP -iTCP:443 -sTCP:LISTEN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter to listeners on TCP port 443&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="process-and-user-filters"&gt;Process and User Filters &lt;a class="headline-link" href="#process-and-user-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Filter open files by process, command name, or user.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -p 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Files opened by PID 1234&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -p ^1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude PID 1234&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -c nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Files opened by commands starting with &lt;code&gt;nginx&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsof -u john&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Files opened by user &lt;code&gt;john&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -u ^john&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude files opened by user &lt;code&gt;john&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="files-and-directories"&gt;Files and Directories &lt;a class="headline-link" href="#files-and-directories" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check who is using a file or directory tree.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsof /var/log/nginx/access.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show processes using one file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof +d /var/log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show open files in one directory level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof +D /var/log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show open files in a directory recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof +D /mountpoint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find what is blocking an unmount&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof /dev/sda&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check processes using a device file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="deleted-files-and-disk-space"&gt;Deleted Files and Disk Space &lt;a class="headline-link" href="#deleted-files-and-disk-space" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Find deleted files that still consume disk space.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof +L1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List deleted files still held open&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof +L1 /var&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limit deleted-file search to one path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -a +L1 -u nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deleted files still open for one user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof +L1 | sort -k7 -n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort deleted-file output by size/off column&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof +L1 | grep deleted&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick filter for deleted entries&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="scripting-and-combined-filters"&gt;Scripting and Combined Filters &lt;a class="headline-link" href="#scripting-and-combined-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;lsof&lt;/code&gt; in scripts and tighter searches.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -t -iTCP:8080 -sTCP:LISTEN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Output only the PID listening on port 8080&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -a -u john -i TCP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only TCP connections owned by &lt;code&gt;john&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -a -p 1234 -d cwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only the current working directory for one PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo lsof -Fn -p 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Machine-readable output for scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill $(sudo lsof -t -iTCP:8080 -sTCP:LISTEN)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop the process listening on port 8080&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;lsof&lt;/code&gt; usage issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Output looks incomplete&lt;/td&gt;
&lt;td&gt;Run with &lt;code&gt;sudo&lt;/code&gt; to see files opened by other users&amp;rsquo; processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port lookup shows service names instead of numbers&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-nP&lt;/code&gt; for numeric addresses and ports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need listeners only, not all connections&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-sTCP:LISTEN&lt;/code&gt; with &lt;code&gt;-iTCP:PORT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recursive directory search is slow&lt;/td&gt;
&lt;td&gt;Prefer &lt;code&gt;+d&lt;/code&gt; for top-level only, or narrow the path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Disk space is still not freed after delete&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;lsof +L1&lt;/code&gt; and restart the process holding the file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for the full walkthroughs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/lsof-command-in-linux/"&gt;&lt;code&gt;lsof&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;lsof&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ss-command-in-linux/"&gt;&lt;code&gt;ss&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect sockets and listening services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/check-listening-ports-linux/"&gt;How to Check Listening Ports in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Compare &lt;code&gt;ss&lt;/code&gt;, &lt;code&gt;netstat&lt;/code&gt;, and &lt;code&gt;lsof&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/find-large-files-in-linux/"&gt;Find Large Files in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Track disk usage and deleted files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ps-command-in-linux/"&gt;&lt;code&gt;ps&lt;/code&gt; Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect processes and related details&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>fsck Cheatsheet</title><link>https://linuxize.com/cheatsheet/fsck/</link><pubDate>Sat, 28 Mar 2026 11:00:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/fsck/</guid><description>Quick reference for fsck: check Linux filesystems, run safe repairs, force checks, review exit codes, and handle boot-time recovery</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-usage"&gt;Basic Usage &lt;a class="headline-link" href="#basic-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common &lt;code&gt;fsck&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/fsck-command-in-linux/"&gt;&lt;code&gt;fsck /dev/sdb1&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check a filesystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fsck -n /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check only, do not write changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fsck -f /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force a check even if the filesystem looks clean&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fsck -t ext4 /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check only filesystems of the given type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fsck -A&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check filesystems listed in &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="safe-repair-workflow"&gt;Safe Repair Workflow &lt;a class="headline-link" href="#safe-repair-workflow" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use this sequence before making repairs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsblk -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Identify the device, mount point, and filesystem type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mount | grep /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm whether the device is mounted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo umount /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unmount the filesystem before repair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fsck -n /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a read-only check first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fsck -p /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Auto-fix safe problems without prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="repair-modes"&gt;Repair Modes &lt;a class="headline-link" href="#repair-modes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Choose how interactive the repair should be.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Do not make changes, useful for a safe first pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Automatically repair safe problems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Answer yes to all prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-r&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt before each repair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force checking even if the filesystem appears clean&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="filesystem-selection"&gt;Filesystem Selection &lt;a class="headline-link" href="#filesystem-selection" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Target one filesystem, one type, or all entries in &lt;code&gt;fstab&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fsck /dev/nvme0n1p2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check one device directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fsck -t ext4 /dev/nvme0n1p2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check one device as &lt;code&gt;ext4&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fsck -A&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check all eligible filesystems in &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fsck -AR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check all except the root filesystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo fsck.ext4 /dev/nvme0n1p2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run the filesystem-specific checker directly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="root-filesystem-recovery"&gt;Root Filesystem Recovery &lt;a class="headline-link" href="#root-filesystem-recovery" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;fsck&lt;/code&gt; cannot repair the mounted root filesystem on a running system.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Recovery mode&lt;/td&gt;
&lt;td&gt;Boot into recovery and choose the filesystem check option&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Live USB&lt;/td&gt;
&lt;td&gt;Boot a live system, identify the root partition, then run &lt;code&gt;fsck&lt;/code&gt; there&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fsck.mode=force&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kernel parameter to force a check during boot on systemd systems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fsck.repair=yes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kernel parameter to approve repairs during boot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo touch /forcefsck&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Older non-systemd pattern to force a boot-time check&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="tune2fs-scheduling"&gt;tune2fs Scheduling &lt;a class="headline-link" href="#tune2fs-scheduling" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control when ext filesystems are checked automatically.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tune2fs -l /dev/sdb1 | grep -i 'last checked|mount count'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show last check time and mount counters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tune2fs -c 25 /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a check after every 25 mounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tune2fs -c -1 /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable mount-count-based checks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tune2fs -i 1m /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a check at most once per month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tune2fs -i 0 /dev/sdb1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable time-based checks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="fstab-pass-values"&gt;fstab Pass Values &lt;a class="headline-link" href="#fstab-pass-values" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The sixth &lt;code&gt;/etc/fstab&lt;/code&gt; column controls boot-time check order.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Do not check this filesystem at boot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check first, usually the root filesystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check after root, for other local filesystems&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;/dev/sda2 /home ext4 defaults 0 2&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="exit-codes"&gt;Exit Codes &lt;a class="headline-link" href="#exit-codes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use exit codes to understand what &lt;code&gt;fsck&lt;/code&gt; found.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No errors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filesystem errors corrected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System should be rebooted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filesystem errors left uncorrected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Operational error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Usage or syntax error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;32&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Checking canceled by user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;128&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shared-library error&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="other-filesystems"&gt;Other Filesystems &lt;a class="headline-link" href="#other-filesystems" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Some filesystems use tools other than &lt;code&gt;fsck&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filesystem&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;XFS&lt;/td&gt;
&lt;td&gt;&lt;code&gt;xfs_repair&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Btrfs&lt;/td&gt;
&lt;td&gt;&lt;code&gt;btrfs check&lt;/code&gt; or &lt;code&gt;btrfs scrub&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NTFS&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntfsfix&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FAT/VFAT&lt;/td&gt;
&lt;td&gt;&lt;code&gt;fsck.vfat&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ext2/3/4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;fsck.ext2&lt;/code&gt;, &lt;code&gt;fsck.ext3&lt;/code&gt;, &lt;code&gt;fsck.ext4&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these articles for the full workflow around filesystem repair.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/fsck-command-in-linux/"&gt;&lt;code&gt;Fsck Command in Linux (Repair Filesystem)&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;fsck&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-check-disk-space-in-linux-using-the-df-command/"&gt;&lt;code&gt;How to Check Disk Space in Linux Using the df Command&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check mounted filesystems and free space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-mount-and-unmount-file-systems-in-linux/"&gt;&lt;code&gt;How to Mount and Unmount File Systems in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Unmount a filesystem before repair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/sudo-command-in-linux/"&gt;&lt;code&gt;Sudo Command in Linux: Run Commands as Root&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;fsck&lt;/code&gt; with the required privileges&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>firewalld Cheatsheet</title><link>https://linuxize.com/cheatsheet/firewalld/</link><pubDate>Wed, 25 Mar 2026 11:00:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/firewalld/</guid><description>Quick reference for managing firewall rules with firewalld on Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-commands"&gt;Basic Commands &lt;a class="headline-link" href="#basic-commands" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Start, stop, and reload the firewalld service.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --state&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check if firewalld is running&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl start firewalld&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start the service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl stop firewalld&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop the service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl enable firewalld&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable at boot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo systemctl disable firewalld&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable at boot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload rules without dropping connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --complete-reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full reload, resets all connections&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="runtime-vs-permanent"&gt;Runtime vs Permanent &lt;a class="headline-link" href="#runtime-vs-permanent" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;By default, &lt;code&gt;firewall-cmd&lt;/code&gt; changes apply at runtime only and are lost on reload. Add &lt;code&gt;--permanent&lt;/code&gt; to persist a rule, then reload to activate it.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --add-service=http&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow HTTP (runtime only)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --add-service=http --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow HTTP (survives reload)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Activate permanent rules&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --runtime-to-permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save all runtime rules as permanent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="zones"&gt;Zones &lt;a class="headline-link" href="#zones" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Zones define trust levels for network connections. Each interface belongs to one zone.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --get-zones&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all available zones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --get-default-zone&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the default zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --set-default-zone=public&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the default zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --get-active-zones&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show active zones and their interfaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --zone=public --list-all&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all settings for a zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --change-interface=eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Assign interface to zone (runtime)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-interface=eth0 --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Assign interface permanently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --remove-interface=eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove interface from zone&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="services"&gt;Services &lt;a class="headline-link" href="#services" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Allow or block named services defined in &lt;code&gt;/usr/lib/firewalld/services/&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --get-services&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all predefined services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --zone=public --list-services&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List services allowed in zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --info-service=http&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show ports and protocols for a service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-service=http --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow service permanently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --remove-service=http --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="ports"&gt;Ports &lt;a class="headline-link" href="#ports" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Open or close individual ports when no predefined service exists.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --zone=public --list-ports&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List open ports in zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open a TCP port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-port=4000-4500/tcp --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open a port range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Close a port&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="rich-rules"&gt;Rich Rules &lt;a class="headline-link" href="#rich-rules" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Rich rules allow fine-grained control over source, destination, port, and action.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --zone=public --list-rich-rules&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List rich rules in zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-rich-rule='rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;192.168.1.0/24&amp;quot; accept' --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow traffic from subnet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-rich-rule='rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;203.0.113.10&amp;quot; reject' --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reject traffic from IP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-rich-rule='rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;192.168.1.0/24&amp;quot; port port=&amp;quot;22&amp;quot; protocol=&amp;quot;tcp&amp;quot; accept' --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow SSH from subnet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --remove-rich-rule='rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;203.0.113.10&amp;quot; reject' --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a rich rule&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="masquerade-nat"&gt;Masquerade (NAT) &lt;a class="headline-link" href="#masquerade-nat" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Masquerading lets machines on a private network reach the internet through the firewall host.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --zone=public --query-masquerade&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check if masquerading is enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-masquerade --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable masquerading&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --remove-masquerade --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable masquerading&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="logging"&gt;Logging &lt;a class="headline-link" href="#logging" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control which denied packets are logged to help with debugging.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --get-log-denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show current log-denied setting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --set-log-denied=all&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log all denied packets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --set-log-denied=unicast&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log denied unicast only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --set-log-denied=off&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable denied-packet logging&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-server-setup"&gt;Common Server Setup &lt;a class="headline-link" href="#common-server-setup" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Baseline rules for a web server using firewalld.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --set-default-zone=public&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set zone to public&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-service=ssh --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Keep SSH access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-service=http --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow HTTP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-service=https --permanent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allow HTTPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo firewall-cmd --reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Activate all permanent rules&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;firewall-cmd --zone=public --list-all&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify active rules&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>df Cheatsheet</title><link>https://linuxize.com/cheatsheet/df/</link><pubDate>Thu, 19 Mar 2026 18:00:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/df/</guid><description>Quick reference for the df command: check disk space, display formats, filesystem filtering, inodes, and custom output fields</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-usage"&gt;Basic Usage &lt;a class="headline-link" href="#basic-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common ways to check disk space.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-check-disk-space-in-linux-using-the-df-command/"&gt;&lt;code&gt;df&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show disk usage for all mounted filesystems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show filesystem usage for the given path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable sizes (K, M, G — powers of 1024)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable sizes (K, M, G — powers of 1000)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include all filesystems (including pseudo and duplicate)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df --total&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add a grand total row at the bottom&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="size-formats"&gt;Size Formats &lt;a class="headline-link" href="#size-formats" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how sizes are displayed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Auto-scale using powers of 1024 (&lt;code&gt;K&lt;/code&gt;, &lt;code&gt;M&lt;/code&gt;, &lt;code&gt;G&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Auto-scale using powers of 1000 (SI units)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-k&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display sizes in 1K blocks (default on most systems)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display sizes in 1M blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-BG&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display sizes in 1G blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-B SIZE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use SIZE-byte blocks (e.g., &lt;code&gt;-BM&lt;/code&gt;, &lt;code&gt;-BG&lt;/code&gt;, &lt;code&gt;-B512&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="output-columns"&gt;Output Columns &lt;a class="headline-link" href="#output-columns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;What each column in the default output means.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Filesystem&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Device or remote path of the filesystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;1K-blocks&lt;/code&gt; / &lt;code&gt;Size&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total size of the filesystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Used&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Space currently in use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Available&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Space available for use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Use%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Percentage of space used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Mounted on&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Directory where the filesystem is mounted&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="filesystem-type"&gt;Filesystem Type &lt;a class="headline-link" href="#filesystem-type" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show or filter by filesystem type.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show filesystem type column&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-t TYPE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Only show filesystems of the given type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-x TYPE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude filesystems of the given type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only local filesystems (exclude network mounts)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -t ext4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only ext4 filesystems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -x tmpfs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude tmpfs from output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -Th&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show type column with human-readable sizes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="inode-usage"&gt;Inode Usage &lt;a class="headline-link" href="#inode-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show inode counts instead of block usage.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show inode usage for all filesystems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -ih&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show inode usage with human-readable counts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -i /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show inode usage for a specific filesystem&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Inodes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total number of inodes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IUsed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inodes in use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IFree&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inodes available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IUse%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Percentage of inodes used&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="custom-output-fields"&gt;Custom Output Fields &lt;a class="headline-link" href="#custom-output-fields" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Select specific fields with &lt;code&gt;--output&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filesystem device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filesystem type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;size&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;used&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Space used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;avail&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Space available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pcent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Percentage used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;iused&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inodes used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;iavail&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inodes available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ipcent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inode percentage used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mount point&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;df --output=source,size,used,avail,pcent,target -h&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these references for deeper disk usage workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-check-disk-space-in-linux-using-the-df-command/"&gt;&lt;code&gt;How to Check Disk Space in Linux Using the df Command&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;df&lt;/code&gt; guide with practical examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/du-command-in-linux/"&gt;&lt;code&gt;Du Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check disk usage for directories and files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>top Cheatsheet</title><link>https://linuxize.com/cheatsheet/top/</link><pubDate>Thu, 19 Mar 2026 07:00:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/top/</guid><description>Quick reference for monitoring processes, CPU, and memory usage with top in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="startup-options"&gt;Startup Options &lt;a class="headline-link" href="#startup-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common command-line flags for launching &lt;code&gt;top&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start top with default settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -d 5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set refresh interval to 5 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -n 3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exit after 3 screen updates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -u username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only processes owned by a user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -p 1234,5678&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Monitor specific PIDs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Batch mode (non-interactive, for scripts and logging)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -b -n 1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print a single snapshot and exit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show individual threads instead of processes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="interactive-navigation"&gt;Interactive Navigation &lt;a class="headline-link" href="#interactive-navigation" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Key commands available while &lt;code&gt;top&lt;/code&gt; is running.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit top&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;h&lt;/code&gt; or &lt;code&gt;?&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show help screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Space&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refresh the display immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt; or &lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change the refresh interval&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;k&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill a process (prompts for PID and signal)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Renice a process (change priority)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter by user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;n&lt;/code&gt; or &lt;code&gt;#&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the number of displayed processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;W&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save current settings to &lt;code&gt;~/.toprc&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="sorting"&gt;Sorting &lt;a class="headline-link" href="#sorting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Change the sort column interactively.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by CPU usage (default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;M&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by memory usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by cumulative CPU time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reverse the current sort order&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;&lt;/code&gt; / &lt;code&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move the sort column left / right&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F&lt;/code&gt; or &lt;code&gt;O&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open the field management screen to pick a sort column&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="display-toggles"&gt;Display Toggles &lt;a class="headline-link" href="#display-toggles" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show or hide parts of the summary and task list.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle the load average line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cycle through CPU summary modes (bar, text, off)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cycle through memory summary modes (bar, text, off)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle per-CPU breakdown (one line per core)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle thread view (show individual threads)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle between command name and full command line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;V&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle forest (tree) view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Highlight the current sort column&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle color output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="filtering-and-searching"&gt;Filtering and Searching &lt;a class="headline-link" href="#filtering-and-searching" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Narrow the process list while top is running.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only processes for a specific user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;U&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show processes by effective or real user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;o&lt;/code&gt; / &lt;code&gt;O&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add a filter (e.g., &lt;code&gt;COMMAND=nginx&lt;/code&gt; or &lt;code&gt;%CPU&amp;gt;5.0&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Ctrl+O&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show active filters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;=&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear all filters for the current window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search for a string in the display&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find next occurrence of the search string&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="summary-area-fields"&gt;Summary Area Fields &lt;a class="headline-link" href="#summary-area-fields" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Key metrics in the header area.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;load average&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System load over 1, 5, and 15 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;us&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CPU time in user space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CPU time in kernel space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ni&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CPU time for niced (reprioritized) processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CPU idle time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wa&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CPU time waiting for I/O&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;hi&lt;/code&gt; / &lt;code&gt;si&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hardware / software interrupt time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;st&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CPU time stolen by hypervisor (VMs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;MiB Mem&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total, free, used, and buffer/cache memory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;MiB Swap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total, free, used swap, and available memory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="batch-mode-and-logging"&gt;Batch Mode and Logging &lt;a class="headline-link" href="#batch-mode-and-logging" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;top&lt;/code&gt; in scripts or for capturing snapshots.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -b -n 1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print one snapshot to stdout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -b -n 5 -d 2 &amp;gt; top.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Log 5 snapshots at 2-second intervals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -b -n 1 -o %MEM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Single snapshot sorted by memory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -b -n 1 -u www-data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Snapshot of one user&amp;rsquo;s processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top -b -n 1 -p 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Snapshot of a specific PID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Full guides for process monitoring and management.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/top-command-in-linux/"&gt;&lt;code&gt;top Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;top&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ps-command-in-linux/"&gt;&lt;code&gt;ps Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;List and filter processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/kill-command-in-linux/"&gt;&lt;code&gt;Kill Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Send signals to processes by PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-uptime-command/"&gt;&lt;code&gt;Linux Uptime Command&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check system uptime and load average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/check-memory-linux/"&gt;&lt;code&gt;Check Memory in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect RAM and swap usage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>diff Cheatsheet</title><link>https://linuxize.com/cheatsheet/diff/</link><pubDate>Wed, 18 Mar 2026 08:45:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/diff/</guid><description>Quick reference for the diff command: compare files, output formats, filtering, and patch workflow</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-usage"&gt;Basic Usage &lt;a class="headline-link" href="#basic-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Compare files and save output.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/diff-command-in-linux/"&gt;&lt;code&gt;diff file1 file2&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Compare two files (normal format)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -u file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unified format (most common)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -c file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Context format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -y file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Side-by-side format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff file1 file2 &amp;gt; file.patch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save diff to a patch file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="output-symbols"&gt;Output Symbols &lt;a class="headline-link" href="#output-symbols" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;What each symbol means in the diff output.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symbol&lt;/th&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;normal&lt;/td&gt;
&lt;td&gt;Line from file1 (removed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;normal&lt;/td&gt;
&lt;td&gt;Line from file2 (added)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;unified/context&lt;/td&gt;
&lt;td&gt;Line removed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;+&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;unified/context&lt;/td&gt;
&lt;td&gt;Line added&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;!&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;context&lt;/td&gt;
&lt;td&gt;Line changed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@@&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;unified&lt;/td&gt;
&lt;td&gt;Hunk header with line numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="directory-comparison"&gt;Directory Comparison &lt;a class="headline-link" href="#directory-comparison" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Compare entire directory trees.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -r dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compare directories recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -rq dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Only report which files differ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -rN dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Treat absent files as empty&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -rNu dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unified recursive diff (for patches)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="filtering"&gt;Filtering &lt;a class="headline-link" href="#filtering" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ignore specific types of differences.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore case differences&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore all whitespace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore changes in whitespace amount&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-B&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore blank lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--strip-trailing-cr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore Windows carriage returns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-options"&gt;Common Options &lt;a class="headline-link" href="#common-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unified format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Context format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Side-by-side format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-U n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show &lt;code&gt;n&lt;/code&gt; lines of context (default: 3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-C n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show &lt;code&gt;n&lt;/code&gt; lines of context (context format)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-W n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set column width for side-by-side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Report when files are identical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--color&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Colorize output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Brief output (only whether files differ)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="patch-workflow"&gt;Patch Workflow &lt;a class="headline-link" href="#patch-workflow" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create and apply patches with &lt;code&gt;diff&lt;/code&gt; and &lt;code&gt;patch&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -u file1 file2 &amp;gt; file.patch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a patch for a single file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diff -rNu dir1 dir2 &amp;gt; dir.patch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a patch for a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;patch file1 &amp;lt; file.patch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply patch to file1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;patch -p1 &amp;lt; dir.patch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply directory patch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;patch -R file1 &amp;lt; file.patch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reverse (undo) a patch&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>export Cheatsheet</title><link>https://linuxize.com/cheatsheet/export/</link><pubDate>Mon, 16 Mar 2026 09:10:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/export/</guid><description>Quick reference for exporting shell variables and functions to child processes with export in Bash</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;export&lt;/code&gt; command forms in Bash.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export VAR=value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create and export a variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export VAR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Export an existing shell variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export -p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all exported variables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export -n VAR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove the export property&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;help export&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show Bash help for &lt;code&gt;export&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="export-variables"&gt;Export Variables &lt;a class="headline-link" href="#export-variables" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;export&lt;/code&gt; to pass variables to child processes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export APP_ENV=production&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Export one variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PORT=8080; export PORT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Define first, export later&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export PATH=&amp;quot;$HOME/bin:$PATH&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extend &lt;code&gt;PATH&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export EDITOR=nano&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set a default editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export LANG=en_US.UTF-8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set a locale variable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="export-for-one-shell-session"&gt;Export for One Shell Session &lt;a class="headline-link" href="#export-for-one-shell-session" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;These changes last only in the current shell session unless you save them in a startup file.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export DEBUG=1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable a debug variable for the current session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export API_URL=https://api.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set an application endpoint&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export PATH=&amp;quot;$HOME/.local/bin:$PATH&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add a per-user bin directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;$DEBUG&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify that the exported variable is set&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bash -c 'echo &amp;quot;$DEBUG&amp;quot;'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm the child shell inherits the variable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="export-functions"&gt;Export Functions &lt;a class="headline-link" href="#export-functions" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Bash can export functions to child Bash shells.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;greet() { echo &amp;quot;Hello&amp;quot;; }&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Define a shell function&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export -f greet&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Export a function&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bash -c 'greet'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run the exported function in a child shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export -nf greet&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove the export property from a function&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="remove-or-reset-exports"&gt;Remove or Reset Exports &lt;a class="headline-link" href="#remove-or-reset-exports" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these commands when you no longer want a variable inherited.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export -n VAR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Keep the variable, but stop exporting it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unset VAR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove the variable completely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unset -f greet&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a shell function&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;export -n PATH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop exporting &lt;code&gt;PATH&lt;/code&gt; in the current shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`env&lt;/td&gt;
&lt;td&gt;grep &amp;lsquo;^VAR='`&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="make-variables-persistent"&gt;Make Variables Persistent &lt;a class="headline-link" href="#make-variables-persistent" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Add &lt;code&gt;export&lt;/code&gt; lines to shell startup files when you want them loaded automatically.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;~/.bashrc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Interactive non-login Bash shells&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;~/.bash_profile&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Login Bash shells&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/etc/environment&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System-wide environment variables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/etc/profile&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System-wide shell startup logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload the current shell after editing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;export&lt;/code&gt; problems.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A child process cannot see the variable&lt;/td&gt;
&lt;td&gt;Confirm you used &lt;code&gt;export VAR&lt;/code&gt; or &lt;code&gt;export VAR=value&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The variable disappears in a new terminal&lt;/td&gt;
&lt;td&gt;Add the export line to &lt;code&gt;~/.bashrc&lt;/code&gt; or another startup file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A function is missing in a child shell&lt;/td&gt;
&lt;td&gt;Export it with &lt;code&gt;export -f name&lt;/code&gt; and use Bash as the child shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The shell still sees the variable after &lt;code&gt;export -n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;export -n&lt;/code&gt; removes inheritance only; use &lt;code&gt;unset&lt;/code&gt; to remove the variable completely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The variable is set but a command ignores it&lt;/td&gt;
&lt;td&gt;Check whether the program reads that variable or expects a config file instead&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for broader shell and environment-variable workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/export-command-in-linux/"&gt;export Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full guide to &lt;code&gt;export&lt;/code&gt; options and examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-set-and-list-environment-variables-in-linux/"&gt;How to Set and List Environment Variables in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Broader environment-variable overview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/env/"&gt;env cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect and override environment variables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/bash/"&gt;Bash cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Quick reference for Bash syntax and shell behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>env Cheatsheet</title><link>https://linuxize.com/cheatsheet/env/</link><pubDate>Sun, 15 Mar 2026 09:00:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/env/</guid><description>Quick reference for listing, clearing, and overriding environment variables with env in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;env&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the current environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env --help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available options&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env --version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the installed &lt;code&gt;env&lt;/code&gt; version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env -0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print variables separated with NUL bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="inspect-environment-variables"&gt;Inspect Environment Variables &lt;a class="headline-link" href="#inspect-environment-variables" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;env&lt;/code&gt; with filters to inspect specific variables.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;`env&lt;/td&gt;
&lt;td&gt;sort`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`env&lt;/td&gt;
&lt;td&gt;grep &amp;lsquo;^PATH='`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`env&lt;/td&gt;
&lt;td&gt;grep &amp;lsquo;^HOME='`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`env&lt;/td&gt;
&lt;td&gt;grep &amp;lsquo;^LANG='`&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="run-commands-with-temporary-variables"&gt;Run Commands with Temporary Variables &lt;a class="headline-link" href="#run-commands-with-temporary-variables" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Set variables for one command without changing the current shell session.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;VAR=value env command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run one command with a temporary variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;VAR1=dev VAR2=1 env command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set multiple temporary variables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env PATH=/custom/bin:$PATH command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Override &lt;code&gt;PATH&lt;/code&gt; for one command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env LANG=C command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a command with the &lt;code&gt;C&lt;/code&gt; locale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env HOME=/tmp bash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start a shell with a temporary home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="clean-or-remove-variables"&gt;Clean or Remove Variables &lt;a class="headline-link" href="#clean-or-remove-variables" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Start with a minimal environment or remove selected variables.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env -i command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a command with an empty environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env -i PATH=/usr/bin:/bin bash --noprofile --norc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start a mostly clean shell with a minimal &lt;code&gt;PATH&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env -u VAR command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a command without one variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env -u http_proxy command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a proxy variable for one command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;env -i VAR=value command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a command with only the variables you set explicitly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-variables"&gt;Common Variables &lt;a class="headline-link" href="#common-variables" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;These variables are often inspected or overridden with &lt;code&gt;env&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PATH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Directories searched for commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HOME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Current user&amp;rsquo;s home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;USER&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Current user name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHELL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Default login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LANG&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Locale and language setting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TZ&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System timezone (e.g. &lt;code&gt;America/New_York&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;EDITOR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Default text editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TERM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Terminal type (e.g. &lt;code&gt;xterm-256color&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TMPDIR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Directory for temporary files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PWD&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Current working directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;env&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A temporary variable does not persist&lt;/td&gt;
&lt;td&gt;&lt;code&gt;env VAR=value command&lt;/code&gt; affects only that command and its children&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A command is not found after &lt;code&gt;env -i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add a minimal &lt;code&gt;PATH&lt;/code&gt;, such as &lt;code&gt;/usr/bin:/bin&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output is hard to parse safely&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;env -0&lt;/code&gt; with tools that support NUL-delimited input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A variable is still visible in the shell&lt;/td&gt;
&lt;td&gt;&lt;code&gt;env&lt;/code&gt; does not modify the parent shell; use &lt;code&gt;export&lt;/code&gt; or unset the variable in the shell itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A locale-sensitive command behaves differently&lt;/td&gt;
&lt;td&gt;Check whether &lt;code&gt;LANG&lt;/code&gt; or related locale variables were overridden&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for broader environment-variable workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-set-and-list-environment-variables-in-linux/"&gt;How to Set and List Environment Variables in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full guide to listing and setting environment variables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/export-command-in-linux/"&gt;export Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Export shell variables to child processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/bashrc-vs-bash-profile/"&gt;Bashrc vs Bash Profile&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Understand shell startup files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/bash/"&gt;Bash cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Quick reference for Bash syntax and variables&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>Python Cheatsheet</title><link>https://linuxize.com/cheatsheet/python/</link><pubDate>Sat, 14 Mar 2026 08:45:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/python/</guid><description>Quick reference for Python 3 syntax, data types, string and list methods, control flow, functions, file I/O, and exception handling.</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="data-types"&gt;Data Types &lt;a class="headline-link" href="#data-types" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core Python types and how to inspect them.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;42&lt;/code&gt;, &lt;code&gt;3.14&lt;/code&gt;, &lt;code&gt;-7&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;int, float literals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;True&lt;/code&gt;, &lt;code&gt;False&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;quot;hello&amp;quot;&lt;/code&gt;, &lt;code&gt;'world'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;str (immutable)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;[1, 2, 3]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;list — mutable, ordered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;(1, 2, 3)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;tuple — immutable, ordered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;{&amp;quot;a&amp;quot;: 1, &amp;quot;b&amp;quot;: 2}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;dict — key-value pairs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;{1, 2, 3}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;set — unique, unordered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;None&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Absence of a value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;type(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get type of &lt;code&gt;x&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;isinstance(x, int)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check if &lt;code&gt;x&lt;/code&gt; is of a given type&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="operators"&gt;Operators &lt;a class="headline-link" href="#operators" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Arithmetic, comparison, logical, and membership operators.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operator&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add, subtract, multiply, divide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;//&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Floor division&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modulo (remainder)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;**&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exponentiation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;==&lt;/code&gt;, &lt;code&gt;!=&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Equal, not equal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;=&lt;/code&gt;, &lt;code&gt;&amp;gt;=&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;and&lt;/code&gt;, &lt;code&gt;or&lt;/code&gt;, &lt;code&gt;not&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Logical operators&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;in&lt;/code&gt;, &lt;code&gt;not in&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Membership test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;is&lt;/code&gt;, &lt;code&gt;is not&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Identity test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x if cond else y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ternary (conditional) expression&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="string-methods"&gt;String Methods &lt;a class="headline-link" href="#string-methods" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common operations on &lt;code&gt;str&lt;/code&gt; objects. Strings are immutable — methods return a new string.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.upper()&lt;/code&gt; / &lt;code&gt;s.lower()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Convert to upper / lowercase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.strip()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove leading and trailing whitespace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.lstrip()&lt;/code&gt; / &lt;code&gt;s.rstrip()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove leading / trailing whitespace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.split(&amp;quot;,&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Split on delimiter, return list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;quot;,&amp;quot;.join(lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Join list elements into a string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.replace(&amp;quot;old&amp;quot;, &amp;quot;new&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Replace all occurrences&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.find(&amp;quot;x&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;First index of substring (-1 if not found)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.startswith(&amp;quot;x&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;True&lt;/code&gt; if string starts with prefix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.endswith(&amp;quot;x&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;True&lt;/code&gt; if string ends with suffix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.count(&amp;quot;x&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count non-overlapping occurrences&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.isdigit()&lt;/code&gt; / &lt;code&gt;s.isalpha()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check all digits / all letters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;len(s)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;String length&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s[i]&lt;/code&gt;, &lt;code&gt;s[i:j]&lt;/code&gt;, &lt;code&gt;s[::step]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Index, slice, step&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;quot;x&amp;quot; in s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Substring membership test&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="string-formatting"&gt;String Formatting &lt;a class="headline-link" href="#string-formatting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Embed values in strings.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f&amp;quot;Hello, {name}&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;f-string (Python 3.6+)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f&amp;quot;{val:.2f}&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Float with 2 decimal places&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f&amp;quot;{val:&amp;gt;10}&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Right-align in 10 characters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f&amp;quot;{val:,}&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Thousands separator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f&amp;quot;{{name}}&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Literal braces in output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;quot;Hello, {}&amp;quot;.format(name)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;str.format()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;quot;Hello, %s&amp;quot; % name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;%-formatting (legacy)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="list-methods"&gt;List Methods &lt;a class="headline-link" href="#list-methods" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common operations on &lt;code&gt;list&lt;/code&gt; objects.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.append(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add element to end&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.extend([x, y])&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add multiple elements to end&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.insert(i, x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Insert element at index &lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.remove(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove first occurrence of &lt;code&gt;x&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.pop()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove and return last element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.pop(i)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove and return element at index &lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.index(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;First index of &lt;code&gt;x&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.count(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count occurrences of &lt;code&gt;x&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.sort()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort in place (ascending)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.sort(reverse=True)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort in place (descending)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.reverse()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reverse in place&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.copy()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shallow copy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst.clear()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove all elements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;len(lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List length&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lst[i]&lt;/code&gt;, &lt;code&gt;lst[i:j]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Index and slice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x in lst&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Membership test&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="dictionary-methods"&gt;Dictionary Methods &lt;a class="headline-link" href="#dictionary-methods" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common operations on &lt;code&gt;dict&lt;/code&gt; objects.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d[key]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get value by key (raises &lt;code&gt;KeyError&lt;/code&gt; if missing)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.get(key)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get value or &lt;code&gt;None&lt;/code&gt; if key not found&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.get(key, default)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get value or default if key not found&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d[key] = val&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set or update a value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;del d[key]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete a key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.pop(key)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove key and return its value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.keys()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View of all keys&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.values()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View of all values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.items()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View of all (key, value) pairs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.update(d2)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Merge another dict into &lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d.setdefault(key, val)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set key if missing, return value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;key in d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check if key exists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;len(d)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number of key-value pairs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;{**d1, **d2}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Merge dicts (Python 3.9+: &lt;code&gt;d1 | d2&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="sets"&gt;Sets &lt;a class="headline-link" href="#sets" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common operations on &lt;code&gt;set&lt;/code&gt; objects.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;set()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Empty set (use this, not &lt;code&gt;{}&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.add(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.remove(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove element (raises &lt;code&gt;KeyError&lt;/code&gt; if missing)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s.discard(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove element (no error if missing)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s1 | s2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Union&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s1 &amp;amp; s2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Intersection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s1 - s2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Difference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s1 ^ s2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Symmetric difference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s1 &amp;lt;= s2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Subset check&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x in s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Membership test&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="control-flow"&gt;Control Flow &lt;a class="headline-link" href="#control-flow" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Conditionals, loops, and flow control keywords.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;if cond:&lt;/code&gt; / &lt;code&gt;elif cond:&lt;/code&gt; / &lt;code&gt;else:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Conditional blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;for item in iterable:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Iterate over a sequence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;for i, v in enumerate(lst):&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Iterate with index and value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;while cond:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Loop while condition is true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;break&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exit loop immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;continue&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip to next iteration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pass&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No-op placeholder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;match x:&lt;/code&gt; / &lt;code&gt;case val:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pattern matching (Python 3.10+)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="functions"&gt;Functions &lt;a class="headline-link" href="#functions" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Define and call functions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;def func(x, y):&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Define a function&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;return val&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Return a value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;def func(x=0):&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Default argument&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;def func(*args):&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Variable positional arguments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;def func(**kwargs):&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Variable keyword arguments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lambda x: x * 2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Anonymous (lambda) function&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;func(y=1, x=2)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Call with keyword arguments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;result = func(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Call and capture return value&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="file-io"&gt;File I/O &lt;a class="headline-link" href="#file-io" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Open, read, and write files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;open(&amp;quot;f.txt&amp;quot;, &amp;quot;r&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open for reading (default mode)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;open(&amp;quot;f.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open for writing — creates or overwrites&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;open(&amp;quot;f.txt&amp;quot;, &amp;quot;a&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open for appending&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;open(&amp;quot;f.txt&amp;quot;, &amp;quot;rb&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open for reading in binary mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;with open(&amp;quot;f.txt&amp;quot;) as f:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open with context manager (auto-close)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f.read()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read entire file as a string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f.read(n)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read &lt;code&gt;n&lt;/code&gt; characters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f.readline()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read one line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f.readlines()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read all lines into a list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;for line in f:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Iterate over lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f.write(&amp;quot;text&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write string to file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f.writelines(lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write list of strings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="exception-handling"&gt;Exception Handling &lt;a class="headline-link" href="#exception-handling" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Catch and handle runtime errors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;try:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start guarded block&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;except ValueError:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Catch a specific exception&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;except (TypeError, ValueError):&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Catch multiple exception types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;except Exception as e:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Catch and bind exception to variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;else:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run if no exception was raised&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;finally:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Always run — use for cleanup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;raise ValueError(&amp;quot;msg&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Raise an exception&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;raise&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Re-raise the current exception&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="comprehensions"&gt;Comprehensions &lt;a class="headline-link" href="#comprehensions" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Build lists, dicts, sets, and generators in one expression.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;[x for x in lst]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List comprehension&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;[x for x in lst if cond]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filtered list comprehension&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;[f(x) for x in range(n)]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Comprehension with expression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;{k: v for k, v in d.items()}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Dict comprehension&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;{x for x in lst}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set comprehension&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;(x for x in lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Generator expression (lazy)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="useful-built-ins"&gt;Useful Built-ins &lt;a class="headline-link" href="#useful-built-ins" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Frequently used Python built-in functions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;print(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print to stdout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;input(&amp;quot;prompt&amp;quot;)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read user input as string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;len(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Length of sequence or collection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;range(n)&lt;/code&gt; / &lt;code&gt;range(a, b, step)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Integer sequence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enumerate(lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(index, value) pairs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip(a, b)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pair elements from two iterables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;map(func, lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply function to each element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;filter(func, lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter elements by predicate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sorted(lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Return sorted copy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sum(lst)&lt;/code&gt;, &lt;code&gt;min(lst)&lt;/code&gt;, &lt;code&gt;max(lst)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sum, minimum, maximum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;abs(x)&lt;/code&gt;, &lt;code&gt;round(x, n)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Absolute value, round to &lt;code&gt;n&lt;/code&gt; places&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;int(x)&lt;/code&gt;, &lt;code&gt;float(x)&lt;/code&gt;, &lt;code&gt;str(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Type conversion&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/python-f-strings/"&gt;Python f-Strings&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;String formatting with f-strings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/python-list/"&gt;Python Lists&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;List operations and methods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/python-dictionaries/"&gt;Python Dictionaries&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Dictionary operations and methods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/python-for-loop/"&gt;Python for Loop&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Iterating with for loops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/python-while-loop/"&gt;Python while Loop&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Looping with while&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/python-if-else-statement/"&gt;Python if/else Statement&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Conditionals and branching&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/replace-string-python/"&gt;How to Replace a String in Python&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;String replacement methods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/split-string-python/"&gt;How to Split a String in Python&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Splitting strings into lists&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>kill Cheatsheet</title><link>https://linuxize.com/cheatsheet/kill/</link><pubDate>Fri, 13 Mar 2026 07:25:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/kill/</guid><description>Quick reference for sending signals to processes by PID with kill and killall in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;kill&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill PID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send &lt;code&gt;SIGTERM&lt;/code&gt; (graceful stop) to a process&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -9 PID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force kill a process (&lt;code&gt;SIGKILL&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -1 PID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload process config (&lt;code&gt;SIGHUP&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all available signal names and numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -0 PID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check if a PID exists without sending a signal&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="signal-reference"&gt;Signal Reference &lt;a class="headline-link" href="#signal-reference" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Signals most commonly used with &lt;code&gt;kill&lt;/code&gt;, &lt;code&gt;killall&lt;/code&gt;, and &lt;code&gt;pkill&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;Number&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGHUP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload config — most daemons reload settings without restarting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGINT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Interrupt process — equivalent to pressing &lt;code&gt;Ctrl+C&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGQUIT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit and write a core dump for debugging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGKILL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force kill — cannot be caught or ignored; always terminates immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGTERM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Graceful stop — default signal; process can clean up before exiting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGUSR1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;User-defined signal 1 — meaning depends on the application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGUSR2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;User-defined signal 2 — meaning depends on the application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGCONT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resume a process that was suspended with &lt;code&gt;SIGSTOP&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGSTOP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Suspend process — cannot be caught or ignored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGTSTP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Terminal stop — equivalent to pressing &lt;code&gt;Ctrl+Z&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="kill-by-pid"&gt;Kill by PID &lt;a class="headline-link" href="#kill-by-pid" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Send signals to one or more specific processes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gracefully stop PID &lt;code&gt;1234&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -9 1234 5678&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force kill multiple PIDs at once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -HUP 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload config for PID &lt;code&gt;1234&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -STOP 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Suspend PID &lt;code&gt;1234&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -CONT 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resume suspended PID &lt;code&gt;1234&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -9 $(pidof firefox)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force kill all PIDs for a process by name&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="killall-kill-by-name"&gt;killall: Kill by Name &lt;a class="headline-link" href="#killall-kill-by-name" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Send signals to all processes matching an exact name.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;killall process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send &lt;code&gt;SIGTERM&lt;/code&gt; to all matching processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;killall -9 process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force kill all matching processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;killall -HUP nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload all &lt;code&gt;nginx&lt;/code&gt; processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;killall -u username process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill matching processes owned by a user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;killall -v process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill and report which processes were signaled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;killall -r &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match process names with a regex pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="background-jobs"&gt;Background Jobs &lt;a class="headline-link" href="#background-jobs" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Kill jobs running in the current shell session.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;jobs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List background jobs and their job numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill %1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send &lt;code&gt;SIGTERM&lt;/code&gt; to background job number &lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill -9 %1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force kill background job number &lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill %+&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill the most recently started background job&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kill %%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill the current (most recent) background job&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick fixes for common &lt;code&gt;kill&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Process does not stop after &lt;code&gt;SIGTERM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wait a moment, then escalate to &lt;code&gt;kill -9 PID&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;No such process&lt;/code&gt; error&lt;/td&gt;
&lt;td&gt;PID has already exited; verify with &lt;code&gt;ps -p PID&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Operation not permitted&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Process belongs to another user — use &lt;code&gt;sudo kill PID&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SIGKILL&lt;/code&gt; has no effect&lt;/td&gt;
&lt;td&gt;Process is in uninterruptible sleep (&lt;code&gt;D&lt;/code&gt; state in &lt;code&gt;ps&lt;/code&gt;); only a reboot can free it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Not sure which PID to kill&lt;/td&gt;
&lt;td&gt;Find it first with &lt;code&gt;pidof name&lt;/code&gt;, &lt;code&gt;pgrep name&lt;/code&gt;, or &lt;code&gt;ps aux | grep name&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/kill-command-in-linux/"&gt;kill Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full guide to kill options, signals, and examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-kill-a-process-in-linux/"&gt;How to Kill a Process in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Practical walkthrough for finding and stopping processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/pkill-command-in-linux/"&gt;pkill Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Kill processes by name and pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/pgrep-command-in-linux/"&gt;pgrep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Find process PIDs before signaling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ps-command-in-linux/"&gt;ps Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect the running process list&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>watch Cheatsheet</title><link>https://linuxize.com/cheatsheet/watch/</link><pubDate>Thu, 12 Mar 2026 10:40:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/watch/</guid><description>Quick reference for rerunning commands at intervals and monitoring output changes with watch in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;watch&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a command repeatedly every 2 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -n 5 command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refresh every 5 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -n 1 date&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update output every second&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch --help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available options&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-monitoring-tasks"&gt;Common Monitoring Tasks &lt;a class="headline-link" href="#common-monitoring-tasks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;watch&lt;/code&gt; to keep an eye on changing system state.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch free -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Monitor memory usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch df -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Monitor disk space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch uptime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check load averages and uptime&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`watch &amp;ldquo;ps -ef&lt;/td&gt;
&lt;td&gt;grep nginx&amp;rdquo;`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch &amp;quot;ss -tulpn&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Monitor listening sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="timing-and-refresh-control"&gt;Timing and Refresh Control &lt;a class="headline-link" href="#timing-and-refresh-control" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how often &lt;code&gt;watch&lt;/code&gt; reruns the command.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -n 0.5 command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refresh every 0.5 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -n 10 command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refresh every 10 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -t command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hide the header line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -p command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Try to run at precise intervals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -x command arg1 arg2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run the command directly without &lt;code&gt;sh -c&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="highlighting-changes"&gt;Highlighting Changes &lt;a class="headline-link" href="#highlighting-changes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Make changing output easier to spot.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -d command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Highlight differences between updates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -d free -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Highlight memory changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -d &amp;quot;ip -brief address&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Highlight interface state or address changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -d -n 1 &amp;quot;cat /proc/loadavg&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Highlight load-average changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="commands-with-pipes-and-quotes"&gt;Commands with Pipes and Quotes &lt;a class="headline-link" href="#commands-with-pipes-and-quotes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Wrap pipelines and shell syntax in quotes unless you use &lt;code&gt;-x&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;`watch &amp;ldquo;ps -ef&lt;/td&gt;
&lt;td&gt;grep apache&amp;rdquo;`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`watch &amp;ldquo;ls -lh /var/log&lt;/td&gt;
&lt;td&gt;tail&amp;rdquo;`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch &amp;quot;grep -c error /var/log/syslog&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count matching lines repeatedly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -x ls -lh /var/log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;ls&lt;/code&gt; directly without shell parsing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`watch &amp;ldquo;find /tmp -maxdepth 1 -type f&lt;/td&gt;
&lt;td&gt;wc -l&amp;rdquo;`&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="exit-conditions-and-beeps"&gt;Exit Conditions and Beeps &lt;a class="headline-link" href="#exit-conditions-and-beeps" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Stop or alert when output changes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -g command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exit when command output changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -b command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Beep if the command exits with non-zero status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -b -n 5 &amp;quot;systemctl is-active nginx&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Alert if the service is no longer active&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;watch -g &amp;quot;cat /tmp/status.txt&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exit when the file content changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick fixes for common &lt;code&gt;watch&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pipes or redirects do not work&lt;/td&gt;
&lt;td&gt;Quote the whole command or use &lt;code&gt;sh -c&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The screen flickers too much&lt;/td&gt;
&lt;td&gt;Increase the interval or hide the header with &lt;code&gt;-t&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output changes are hard to spot&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-d&lt;/code&gt; to highlight differences&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The command exits immediately&lt;/td&gt;
&lt;td&gt;Check the command syntax outside &lt;code&gt;watch&lt;/code&gt; first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You need shell expansion and variables&lt;/td&gt;
&lt;td&gt;Use quoted shell commands instead of &lt;code&gt;-x&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for broader monitoring and process tasks.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-watch-command/"&gt;Linux Watch Command&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full guide to &lt;code&gt;watch&lt;/code&gt; options and examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ps-command-in-linux/"&gt;ps Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect running processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/free-command-in-linux/"&gt;free Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check memory usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ss-command-in-linux/"&gt;ss Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect sockets and ports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/top-command-in-linux/"&gt;top Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Monitor processes interactively&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>tcpdump Cheatsheet</title><link>https://linuxize.com/cheatsheet/tcpdump/</link><pubDate>Tue, 10 Mar 2026 08:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/tcpdump/</guid><description>Quick reference for capturing and filtering network packets with tcpdump in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;tcpdump&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start capturing on the default interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture on a specific interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i any&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture on all interfaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List available interfaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show help and usage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="limit-and-format-output"&gt;Limit and Format Output &lt;a class="headline-link" href="#limit-and-format-output" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how much data is shown and how packets are displayed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -c 10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop after 10 packets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Do not resolve hostnames&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -nn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Do not resolve hostnames or service names&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -v&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verbose output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -X&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show packet contents in hex and ASCII&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="protocol-filters"&gt;Protocol Filters &lt;a class="headline-link" href="#protocol-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Capture only the protocol traffic you care about.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump tcp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture TCP packets only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump udp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture UDP packets only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump icmp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture ICMP packets only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump arp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture ARP traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump port 53&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture DNS traffic on port 53&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="host-and-port-filters"&gt;Host and Port Filters &lt;a class="headline-link" href="#host-and-port-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Match packets by source, destination, host, or port.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump host 192.168.1.10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture traffic to or from one host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump src host 192.168.1.10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture packets from one source host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump dst host 192.168.1.10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture packets to one destination host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump port 22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture SSH traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump src port 443&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture packets from source port 443&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="combine-filters"&gt;Combine Filters &lt;a class="headline-link" href="#combine-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use boolean operators to build precise capture expressions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump 'tcp and port 80'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture HTTP traffic over TCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump 'host 10.0.0.5 and port 22'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture SSH traffic for one host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump 'src 10.0.0.5 and dst port 443'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match one source and HTTPS destination&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump 'port 80 or port 443'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture HTTP or HTTPS traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump 'net 192.168.1.0/24 and not port 22'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture a subnet except SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="write-and-read-capture-files"&gt;Write and Read Capture Files &lt;a class="headline-link" href="#write-and-read-capture-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Save traffic to a file or inspect an existing pcap capture.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -w capture.pcap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write packets to a pcap file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -r capture.pcap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read packets from a pcap file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i eth0 -w web.pcap port 80&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save filtered traffic to a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -nn -r capture.pcap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read a file without name resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -r capture.pcap 'host 10.0.0.5'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply a filter while reading a pcap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-use-cases"&gt;Common Use Cases &lt;a class="headline-link" href="#common-use-cases" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Practical commands for day-to-day packet inspection.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i any port 22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Watch SSH connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i any port 53&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inspect DNS queries and replies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i eth0 host 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Trace traffic to one external host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i any 'tcp port 80 or tcp port 443'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Watch web traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo tcpdump -i any icmp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check ping and ICMP traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;tcpdump&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;You do not have permission to capture on that device&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run with &lt;code&gt;sudo&lt;/code&gt; or verify packet-capture capabilities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No packets appear&lt;/td&gt;
&lt;td&gt;Confirm the correct interface with &lt;code&gt;tcpdump -D&lt;/code&gt; and use &lt;code&gt;-i any&lt;/code&gt; if needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hostnames make output slow&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-n&lt;/code&gt; or &lt;code&gt;-nn&lt;/code&gt; to disable name resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output is too noisy&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-c&lt;/code&gt;, protocol filters, or host/port filters to narrow the capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need to inspect later&lt;/td&gt;
&lt;td&gt;Write to a file with &lt;code&gt;-w capture.pcap&lt;/code&gt; and review it with &lt;code&gt;tcpdump -r&lt;/code&gt; or Wireshark&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for broader networking and packet-capture workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/tcpdump-command-in-linux/"&gt;tcpdump Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;tcpdump&lt;/code&gt; guide with detailed examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ss-command-in-linux/"&gt;ss Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect sockets and listening services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ping/"&gt;ping cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Test reachability and latency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ip/"&gt;IP command cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check interfaces, addresses, and routes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/check-open-ports-linux/"&gt;How to Check Open Ports in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Review listening ports before capturing traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>su Cheatsheet</title><link>https://linuxize.com/cheatsheet/su/</link><pubDate>Tue, 10 Mar 2026 08:10:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/su/</guid><description>Quick reference for switching users and running commands with su in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;su&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch to root using the current shell environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch to root with a full login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch to another user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su - username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch to another user with a login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su --help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available options&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="login-shell-vs-current-shell"&gt;Login Shell vs Current Shell &lt;a class="headline-link" href="#login-shell-vs-current-shell" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Choose whether to keep the current environment or start a clean login session.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Keep most of the current environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Load the target user&amp;rsquo;s login environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su - username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change to the target user&amp;rsquo;s home directory and shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;whoami&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm the current effective user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check whether the working directory changed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="run-a-command-as-another-user"&gt;Run a Command as Another User &lt;a class="headline-link" href="#run-a-command-as-another-user" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;-c&lt;/code&gt; to run a single command without starting a full interactive shell.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -c 'whoami'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a single command as root&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -c 'id' username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a command as another user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -c 'ps aux'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a quoted command with spaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -c 'cd /tmp &amp;amp;&amp;amp; pwd' username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run a compound shell command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -c 'echo $HOME' username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check the target user&amp;rsquo;s home in a non-login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="shell-and-environment"&gt;Shell and Environment &lt;a class="headline-link" href="#shell-and-environment" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Adjust the shell or preserve the caller&amp;rsquo;s environment when needed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -s /bin/bash username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use Bash as the target shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -s /usr/bin/zsh username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use Zsh as the target shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preserve the current environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo $HOME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check the current home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo $SHELL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check the current shell&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="root-access-patterns"&gt;Root Access Patterns &lt;a class="headline-link" href="#root-access-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Compare common root-shell workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt for the root password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su -&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt for the root password and start a login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo su -&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;sudo&lt;/code&gt; to start a root login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo -i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start a root login shell without calling &lt;code&gt;su&lt;/code&gt; directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Leave the current &lt;code&gt;su&lt;/code&gt; shell&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;su&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Authentication failure&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify the target user&amp;rsquo;s password, not your own&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su: user username does not exist&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm the account exists with &lt;code&gt;id username&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;This account is currently not available&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check the target shell in &lt;code&gt;/etc/passwd&lt;/code&gt;; service accounts often use &lt;code&gt;/usr/sbin/nologin&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;su&lt;/code&gt; keeps the old &lt;code&gt;PATH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;su -&lt;/code&gt; to start a clean login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Root access fails on Ubuntu&lt;/td&gt;
&lt;td&gt;The root account may be locked; use &lt;code&gt;sudo -i&lt;/code&gt; instead&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides when working with users, passwords, and privilege escalation.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/su-command-in-linux/"&gt;su Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;su&lt;/code&gt; guide with examples and &lt;code&gt;sudo&lt;/code&gt; comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/sudo-command-in-linux/"&gt;sudo Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Run commands with elevated privileges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-change-user-password-in-linux/"&gt;How to Change User Password in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Set or reset passwords&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/useradd/"&gt;useradd cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Create and manage user accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-add-user-to-group-in-linux/"&gt;How to Add User to Group in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Manage group membership&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>ping Cheatsheet</title><link>https://linuxize.com/cheatsheet/ping/</link><pubDate>Mon, 09 Mar 2026 08:40:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/ping/</guid><description>Quick reference for testing network reachability and latency with ping in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;ping&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Continuously ping a host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -c 4 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send 4 echo requests, then stop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -i 2 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wait 2 seconds between packets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -w 10 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop after 10 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping --help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available options&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-reachability-checks"&gt;Common Reachability Checks &lt;a class="headline-link" href="#common-reachability-checks" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick tests for DNS names and IP addresses.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping google.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test DNS resolution and connectivity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test reachability to a public IPv4 address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping localhost&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify local TCP/IP stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;`ping $(hostname -I&lt;/td&gt;
&lt;td&gt;awk &amp;lsquo;{print $1}&amp;rsquo;)`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping router.local&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test a local network device by hostname&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="count-and-timing"&gt;Count and Timing &lt;a class="headline-link" href="#count-and-timing" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how many packets are sent and how long &lt;code&gt;ping&lt;/code&gt; runs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -c 3 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send exactly 3 packets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -c 5 -i 0.5 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send 5 packets at 0.5-second intervals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -w 5 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop after 5 seconds total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -W 2 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wait up to 2 seconds for each reply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -c 10 -q host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show summary only after 10 packets&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="ipv4-and-ipv6"&gt;IPv4 and IPv6 &lt;a class="headline-link" href="#ipv4-and-ipv6" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Force the address family when needed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -4 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use IPv4 only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -6 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use IPv6 only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping6 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IPv6 ping on systems that provide &lt;code&gt;ping6&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -c 4 -4 example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check IPv4 replies for a dual-stack host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -c 4 -6 example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check IPv6 replies for a dual-stack host&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="packet-size-and-interface"&gt;Packet Size and Interface &lt;a class="headline-link" href="#packet-size-and-interface" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Adjust packet payload and source interface.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -s 1400 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send larger packets with 1400-byte payload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -s 56 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use the default payload size explicitly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -I eth0 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send packets from a specific interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -I 192.168.1.10 host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use a specific source address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -D host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print timestamps before each reply&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;ping&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Name or service not known&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DNS failed; test with an IP address directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Destination Host Unreachable&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check routing, gateway, and local network link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100% packet loss&lt;/td&gt;
&lt;td&gt;The host may be down, blocked by a firewall, or not routing replies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping: socket: Operation not permitted&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;sudo&lt;/code&gt; or verify capabilities on systems with restricted raw sockets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IPv6 ping fails only&lt;/td&gt;
&lt;td&gt;Confirm the host has AAAA records and IPv6 connectivity&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for broader network troubleshooting workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-ping-command/"&gt;ping Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;ping&lt;/code&gt; guide with detailed examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ip/"&gt;IP command cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect interfaces, addresses, and routes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ss-command-in-linux/"&gt;ss Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect sockets and active network connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/traceroute-command-in-linux/"&gt;traceroute Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Trace the route packets take to a host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ssh/"&gt;SSH cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Quick reference for remote connectivity commands&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>xargs Cheatsheet</title><link>https://linuxize.com/cheatsheet/xargs/</link><pubDate>Sun, 08 Mar 2026 08:10:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/xargs/</guid><description>Quick reference for building commands from standard input with xargs in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;xargs&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read stdin and pass items to a command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pass newline-separated items to a command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat list.txt | xargs command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read arguments from a file through stdin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;/bin/echo&lt;/code&gt; as the default command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs --help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available options&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="limit-arguments"&gt;Limit Arguments &lt;a class="headline-link" href="#limit-arguments" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how many items &lt;code&gt;xargs&lt;/code&gt; passes at a time.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs -n 1 echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pass one argument per command run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c d | xargs -n 2 echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pass two arguments per command run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs -L 1 echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read one input line per command run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs -P 4 echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run up to four commands in parallel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs -n 100 rm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Batch large argument lists&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="replace-input"&gt;Replace Input &lt;a class="headline-link" href="#replace-input" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use placeholders when each input item must appear in a specific position.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' file1 file2 | xargs -I {} touch {}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Replace &lt;code&gt;{}&lt;/code&gt; with each input item&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' file1 file2 | xargs -I % sh -c 'echo %; ls -l %'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run multiple commands per item&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' img1 img2 | xargs -I {} mv {} {}.bak&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reuse the same item twice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' user1 user2 | xargs -I {} id {}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Insert input into a fixed command pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' src1 src2 | xargs -I {} cp {} /backup/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy each input item to a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="safe-file-handling"&gt;Safe File Handling &lt;a class="headline-link" href="#safe-file-handling" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use null-delimited input when paths may contain spaces or special characters.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type f -print0 | xargs -0 rm -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove found files safely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -name '*.log' -print0 | xargs -0 ls -lh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List matching files safely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type f -print0 | xargs -0 -n 1 basename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Process one safe path at a time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\0' 'file one' 'file two' | xargs -0 -n 1 echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Feed null-delimited names directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find /var/www -type f -print0 | xargs -0 chmod 644&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply permissions to many files safely&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="preview-and-confirm"&gt;Preview and Confirm &lt;a class="headline-link" href="#preview-and-confirm" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check generated commands before running them.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs -t touch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print each command before execution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs -p rm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt before running the command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type f -print0 | xargs -0 -t rm -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview destructive file removals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type f -print0 | xargs -0 echo rm -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Dry run by replacing &lt;code&gt;rm&lt;/code&gt; with &lt;code&gt;echo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' a b c | xargs -r echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Do nothing if stdin is empty&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="read-from-files"&gt;Read from Files &lt;a class="headline-link" href="#read-from-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Load items from a file instead of a pipeline.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs -a list.txt echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read arguments from &lt;code&gt;list.txt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs -a ips.txt -L 1 ping -c 1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read one IP per line and ping it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs -a packages.txt sudo apt install&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install packages listed in a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs -a dirs.txt mkdir -p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create directories from a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xargs -a users.txt -n 1 id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check users listed in a file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;xargs&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Filenames split at spaces&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;find -print0 | xargs -0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Too many arguments at once&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-n N&lt;/code&gt; to batch input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command order looks wrong&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-t&lt;/code&gt; to print generated commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Empty input still runs command&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-r&lt;/code&gt; to skip empty stdin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need item in the middle of a command&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-I {}&lt;/code&gt; with a placeholder&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full command workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-xargs-command/"&gt;xargs Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;xargs&lt;/code&gt; tutorial with practical examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-find-files-in-linux-using-the-command-line/"&gt;find Files in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Build file lists to pass into &lt;code&gt;xargs&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/rm-command-in-linux/"&gt;rm Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Remove files safely in bulk operations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-grep-command-to-search-files-in-linux/"&gt;grep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Filter text before passing results to &lt;code&gt;xargs&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/bash/"&gt;Bash Cheatsheet&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Shell patterns for scripts and pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>wc Cheatsheet</title><link>https://linuxize.com/cheatsheet/wc/</link><pubDate>Sat, 07 Mar 2026 08:55:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/wc/</guid><description>Quick reference for counting lines, words, bytes, characters, and longest line length with wc in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;wc&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show lines, words, and bytes for a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show counts per file and a total line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc *.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count all matching files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | wc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count output from another command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc --help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available options&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-count-flags"&gt;Common Count Flags &lt;a class="headline-link" href="#common-count-flags" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use flags to request specific counters.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -l file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count lines only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -w file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count words only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -c file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count bytes only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -m file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count characters only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -L file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show longest line length&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="useful-pipelines"&gt;Useful Pipelines &lt;a class="headline-link" href="#useful-pipelines" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Practical &lt;code&gt;wc&lt;/code&gt; combinations for quick shell checks.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -1 | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count directory entries (one per line)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep -r &amp;quot;ERROR&amp;quot; /var/log | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count matching log lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type f | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count files recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps aux | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count process list lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file.txt | wc -w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count words from stdin&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="multi-file-counting"&gt;Multi-File Counting &lt;a class="headline-link" href="#multi-file-counting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Summarize multiple files and totals.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -l *.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Line count for each file plus total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -w docs/*.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Word count per Markdown file and total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -c part1 part2 part3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Byte count per file and combined total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -m *.csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Character count for each CSV file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wc -L *.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Max line length per file and max total&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="script-friendly-patterns"&gt;Script-Friendly Patterns &lt;a class="headline-link" href="#script-friendly-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Extract numeric output safely in scripts.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;count=$(wc -l &amp;lt; file.txt)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture pure line count without filename&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;words=$(wc -w &amp;lt; file.txt)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture word count only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bytes=$(wc -c &amp;lt; file.txt)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Capture byte count only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;if [ &amp;quot;$(wc -l &amp;lt; file.txt)&amp;quot; -gt 1000 ]; then ... fi&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Threshold check in scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf '%s\n' &amp;quot;$text&amp;quot; | wc -m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count characters in a variable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;wc&lt;/code&gt; confusion.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Count includes filename&lt;/td&gt;
&lt;td&gt;Use input redirection: &lt;code&gt;wc -l &amp;lt; file&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unexpected word count&lt;/td&gt;
&lt;td&gt;Confirm whitespace and delimiters in the file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Character and byte counts differ&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-m&lt;/code&gt; for characters and &lt;code&gt;-c&lt;/code&gt; for bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total line missing with many files&lt;/td&gt;
&lt;td&gt;Ensure shell glob matches at least one file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pipeline count seems off by one&lt;/td&gt;
&lt;td&gt;Some commands add headers; account for that&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for complete text-processing workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-wc-command/"&gt;linux wc Command&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;wc&lt;/code&gt; guide with detailed examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-head-command/"&gt;head Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show first lines of files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-tail-command/"&gt;tail Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show last lines and follow logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-grep-command-to-search-files-in-linux/"&gt;grep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Search and filter matching lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-find-files-in-linux-using-the-command-line/"&gt;find Files in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Build file lists for counting&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>useradd Cheatsheet</title><link>https://linuxize.com/cheatsheet/useradd/</link><pubDate>Fri, 06 Mar 2026 14:30:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/useradd/</guid><description>Quick reference for creating Linux users with useradd, including home directories, shells, groups, and account policies</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;useradd&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a user account with defaults&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create user and home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -s /bin/bash username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create user with explicit login shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -c &amp;quot;Full Name&amp;quot; username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create user with GECOS/comment field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show current default &lt;code&gt;useradd&lt;/code&gt; settings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="home-directory-and-shell"&gt;Home Directory and Shell &lt;a class="headline-link" href="#home-directory-and-shell" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Set home path and login shell at creation time.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create &lt;code&gt;/home/username&lt;/code&gt; if missing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -M username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create user without home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -d /srv/appuser -m appuser&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create user with custom home path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -s /bin/zsh username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set login shell to Zsh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -s /usr/sbin/nologin serviceuser&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable interactive login for service account&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="groups-and-permissions"&gt;Groups and Permissions &lt;a class="headline-link" href="#groups-and-permissions" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Assign primary and supplementary groups during creation.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -g developers username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set primary group to &lt;code&gt;developers&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -G sudo username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add user to supplementary &lt;code&gt;sudo&lt;/code&gt; group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -G docker,developers username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add user to multiple supplementary groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;id username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify UID, GID, and group membership&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;groups username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show group memberships for a user&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="uid-expiry-and-inactive-policy"&gt;UID, Expiry, and Inactive Policy &lt;a class="headline-link" href="#uid-expiry-and-inactive-policy" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control account identity and lifetime.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -u 1050 username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create user with specific UID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -e 2026-12-31 username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set account expiration date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -f 30 username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable account after 30 inactive days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m -k /etc/skel username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use skeleton directory for initial files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo chage -l username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inspect account aging and expiry policy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="password-and-account-activation"&gt;Password and Account Activation &lt;a class="headline-link" href="#password-and-account-activation" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Set password and verify account usability.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo passwd username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set or reset user password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo passwd -l username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lock account password login&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo passwd -u username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unlock account password login&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo su - username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test login environment for new user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;getent passwd username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm user entry in account database&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="defaults-and-safe-workflow"&gt;Defaults and Safe Workflow &lt;a class="headline-link" href="#defaults-and-safe-workflow" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check defaults first and validate each account creation.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show defaults (&lt;code&gt;HOME&lt;/code&gt;, &lt;code&gt;SHELL&lt;/code&gt;, &lt;code&gt;SKEL&lt;/code&gt;, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -D -s /bin/bash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change default shell for future users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo useradd -m newuser &amp;amp;&amp;amp; sudo passwd newuser&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Common two-step creation flow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo usermod -aG sudo newuser&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Grant admin privileges after creation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo userdel -r username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove user and home directory when deprovisioning&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;useradd&lt;/code&gt; errors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;useradd: user 'name' already exists&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm with &lt;code&gt;id name&lt;/code&gt; or choose a different username&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;group 'name' does not exist&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create group first with &lt;code&gt;groupadd&lt;/code&gt; or use an existing group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Home directory not created&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-m&lt;/code&gt; and verify defaults with &lt;code&gt;useradd -D&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cannot log in after creation&lt;/td&gt;
&lt;td&gt;Check shell (&lt;code&gt;getent passwd user&lt;/code&gt;) and set password with &lt;code&gt;passwd&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UID conflict&lt;/td&gt;
&lt;td&gt;Verify used UIDs in &lt;code&gt;/etc/passwd&lt;/code&gt; before assigning &lt;code&gt;-u&lt;/code&gt; manually&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full account lifecycle tasks.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-create-users-in-linux-using-the-useradd-command/"&gt;How to Create Users in Linux Using the useradd Command&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;useradd&lt;/code&gt; tutorial with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/usermod-command-in-linux/"&gt;usermod Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Modify existing user accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-delete-users-in-linux-using-the-userdel-command/"&gt;How to Delete Users in Linux Using userdel&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Remove users safely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-add-user-to-group-in-linux/"&gt;How to Add User to Group in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Manage supplementary groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-change-user-password-in-linux/"&gt;How to Change User Password in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Set and rotate account passwords&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>less Cheatsheet</title><link>https://linuxize.com/cheatsheet/less/</link><pubDate>Thu, 05 Mar 2026 08:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/less/</guid><description>Quick reference for navigating, searching, and controlling output with the less pager in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-usage"&gt;Basic Usage &lt;a class="headline-link" href="#basic-usage" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common ways to open files and piped output in &lt;code&gt;less&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open a file in the pager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less /var/log/syslog&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read a system log file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pipe command output into &lt;code&gt;less&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less +G file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open a file and jump to the end&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less +/pattern file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open a file and jump to first match&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="navigation-keys"&gt;Navigation Keys &lt;a class="headline-link" href="#navigation-keys" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Move through content quickly in the pager.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Space&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move forward one page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move backward one page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move forward one line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;k&lt;/code&gt; / &lt;code&gt;y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move backward one line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt; / &lt;code&gt;u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move forward / backward half a page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;g&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to top of file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to bottom of file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;50g&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to line 50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow mode — stream new content as it is appended (press &lt;code&gt;Ctrl+C&lt;/code&gt; to stop)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit &lt;code&gt;less&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="search-and-match-navigation"&gt;Search and Match Navigation &lt;a class="headline-link" href="#search-and-match-navigation" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Find text and move between matches.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/pattern&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search forward for &lt;code&gt;pattern&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;?pattern&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search backward for &lt;code&gt;pattern&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Next match in current search direction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Previous match in current search direction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;pattern&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only lines matching &lt;code&gt;pattern&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;&lt;/code&gt; (empty)&lt;/td&gt;
&lt;td&gt;Clear &lt;code&gt;&amp;amp;pattern&lt;/code&gt; filtered view&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="useful-options"&gt;Useful Options &lt;a class="headline-link" href="#useful-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Flags that improve readability in daily use.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less -N file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show line numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less -S file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable line wrap (horizontal scrolling)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less -R file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show ANSI colors in output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less -i file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Case-insensitive search by default&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less -F file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit automatically if content fits one screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less -X file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Keep screen content after quitting&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="log-and-output-workflows"&gt;Log and Output Workflows &lt;a class="headline-link" href="#log-and-output-workflows" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Practical examples for troubleshooting and analysis.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;less +F /var/log/syslog&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow a log file live (like &lt;code&gt;tail -f&lt;/code&gt;); press &lt;code&gt;Ctrl+C&lt;/code&gt; to stop and search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;journalctl -xe | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Page through recent systemd logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dmesg | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inspect kernel messages page by page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps aux | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Browse long process listings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git log | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read long commit history safely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep -R \&amp;quot;ERROR\&amp;quot; /var/log | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Review search results interactively&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick fixes for common &lt;code&gt;less&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Search does not find expected text&lt;/td&gt;
&lt;td&gt;Retry with exact case or use &lt;code&gt;-i&lt;/code&gt; for case-insensitive search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Color codes look broken&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;less -R&lt;/code&gt; when input includes ANSI colors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lines wrap and are hard to read&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;less -S&lt;/code&gt; and move sideways with arrow keys&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pager exits immediately&lt;/td&gt;
&lt;td&gt;Content may fit one screen; remove &lt;code&gt;-F&lt;/code&gt; if you need manual paging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You opened from pipe and lost context&lt;/td&gt;
&lt;td&gt;Rerun command with &lt;code&gt;| less&lt;/code&gt; and search using &lt;code&gt;/pattern&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for deeper command and text-processing workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/less-command-in-linux/"&gt;less Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;less&lt;/code&gt; tutorial with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-head-command/"&gt;head Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show the first lines of files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-tail-command/"&gt;tail Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Follow file growth and recent lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-grep-command-to-search-files-in-linux/"&gt;grep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Search text patterns in files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-wc-command/"&gt;wc Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Count lines, words, and bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>pkill Cheatsheet</title><link>https://linuxize.com/cheatsheet/pkill/</link><pubDate>Tue, 03 Mar 2026 15:00:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/pkill/</guid><description>Quick reference for finding and terminating processes by name, user, and pattern with pkill in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;pkill&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send &lt;code&gt;SIGTERM&lt;/code&gt; to matching process names&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -f &amp;quot;pattern&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match against full command line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -u username process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match only processes owned by a user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -x process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match exact process name only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -l process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill matching processes and print their name and PID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-signals"&gt;Common Signals &lt;a class="headline-link" href="#common-signals" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Frequently used signals with &lt;code&gt;pkill&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -15 process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Graceful stop (&lt;code&gt;SIGTERM&lt;/code&gt;, default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -9 process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force kill (&lt;code&gt;SIGKILL&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -HUP process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reload/reopen config for daemons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -INT process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Interrupt process (&lt;code&gt;SIGINT&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -USR1 process_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Send user-defined signal 1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="match-controls"&gt;Match Controls &lt;a class="headline-link" href="#match-controls" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Limit matches to avoid terminating the wrong process.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -x nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kill only exact &lt;code&gt;nginx&lt;/code&gt; process name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -f &amp;quot;python3 app.py&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match a specific command string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -u deploy -x node&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match exact &lt;code&gt;node&lt;/code&gt; only for user &lt;code&gt;deploy&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -t pts/2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match processes attached to terminal &lt;code&gt;pts/2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -P 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match child processes of PID &lt;code&gt;1234&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="safer-workflow"&gt;Safer Workflow &lt;a class="headline-link" href="#safer-workflow" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Preview targets before signaling processes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pgrep -a nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview matching processes and command lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pgrep -afu deploy node&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview user-scoped full-command matches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pgrep -f &amp;quot;python3 app.py&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm full-pattern matches first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -x nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execute only after preview validation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo $?&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check exit code (&lt;code&gt;0&lt;/code&gt; match found, &lt;code&gt;1&lt;/code&gt; none found)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="service-and-app-examples"&gt;Service and App Examples &lt;a class="headline-link" href="#service-and-app-examples" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Practical process control patterns.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -HUP nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ask Nginx master process to reload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -u www-data -x php-fpm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop &lt;code&gt;php-fpm&lt;/code&gt; workers for one user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -f &amp;quot;gunicorn: worker&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Signal Gunicorn worker processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -f &amp;quot;node server.js&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stop a specific Node.js app instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pkill -x firefox&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Close all Firefox processes for current user&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;pkill&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nothing happened&lt;/td&gt;
&lt;td&gt;Verify matches with &lt;code&gt;pgrep -a&lt;/code&gt; using the same pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong process was terminated&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-x&lt;/code&gt; or stricter &lt;code&gt;-f&lt;/code&gt; pattern matching&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Operation not permitted&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;sudo&lt;/code&gt; or run as the process owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process did not stop&lt;/td&gt;
&lt;td&gt;Try &lt;code&gt;SIGTERM&lt;/code&gt; first, then escalate to &lt;code&gt;-9&lt;/code&gt; only if needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Script fails when nothing matches&lt;/td&gt;
&lt;td&gt;Handle exit code &lt;code&gt;1&lt;/code&gt; as a non-match condition&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for deeper signal and process-management workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/pkill-command-in-linux/"&gt;pkill Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;pkill&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/kill-command-in-linux/"&gt;kill Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Send signals by PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/pgrep-command-in-linux/"&gt;pgrep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Search processes by name and pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ps-command-in-linux/"&gt;ps Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect current process list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/top-command-in-linux/"&gt;top Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Monitor processes in real time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>ln Cheatsheet</title><link>https://linuxize.com/cheatsheet/ln/</link><pubDate>Tue, 03 Mar 2026 09:30:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/ln/</guid><description>Quick reference for creating hard links and symbolic links with ln in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;ln&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln TARGET LINK_NAME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a hard link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s TARGET LINK_NAME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a symbolic (soft) link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -sf TARGET LINK_NAME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create or overwrite a symbolic link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln TARGET... DIRECTORY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create hard links to multiple targets in a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s TARGET... DIRECTORY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create symbolic links to multiple targets in a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="symbolic-links"&gt;Symbolic Links &lt;a class="headline-link" href="#symbolic-links" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create and manage soft links that point to a path.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable an Nginx virtual host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s /usr/bin/python3 /usr/local/bin/python&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a &lt;code&gt;python&lt;/code&gt; alias&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s /opt/myapp /usr/local/bin/myapp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Link a binary into PATH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -s TARGET .&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a symlink to TARGET in the current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -sf NEW_TARGET LINK_NAME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update an existing symlink to point to a new target&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="hard-links"&gt;Hard Links &lt;a class="headline-link" href="#hard-links" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create additional directory entries pointing to the same inode.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln source.txt hardlink.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a hard link to a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln file1.txt file2.txt /backup/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create hard links to multiple files in a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ln -v source.txt link.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show each link as it is created&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Hard links share the same inode and data. Removing one does not delete the data until all hard links are removed. Hard links cannot span filesystems and cannot be created for directories.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="link-options"&gt;Link Options &lt;a class="headline-link" href="#link-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Flags for controlling overwrite, backup, and verbosity behavior.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-s&lt;/code&gt;, &lt;code&gt;--symbolic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a symbolic link instead of a hard link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-f&lt;/code&gt;, &lt;code&gt;--force&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove the destination file if it exists before linking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-b&lt;/code&gt;, &lt;code&gt;--backup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Make a backup of each existing destination file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-i&lt;/code&gt;, &lt;code&gt;--interactive&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt before removing an existing destination file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-n&lt;/code&gt;, &lt;code&gt;--no-dereference&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Treat a symlink to a directory as a normal file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-v&lt;/code&gt;, &lt;code&gt;--verbose&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the name of each linked file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-r&lt;/code&gt;, &lt;code&gt;--relative&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create symbolic links relative to the link location&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="inspect-and-verify-links"&gt;Inspect and Verify Links &lt;a class="headline-link" href="#inspect-and-verify-links" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check where links point and confirm they are valid.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -l link_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the link and its target&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -la /path/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all entries including hidden symlinks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;readlink link_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the target of a symbolic link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;readlink -f link_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print the fully resolved absolute path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stat link_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show full metadata including inode and link count&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;file link_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Identify whether a path is a symbolic link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find all symbolic links under the current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -xtype l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find broken symbolic links&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;ln&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;File exists&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-f&lt;/code&gt; to force overwrite, or &lt;code&gt;-i&lt;/code&gt; to confirm before replacing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Too many levels of symbolic links&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A circular symlink chain exists; use &lt;code&gt;readlink -f&lt;/code&gt; to trace the path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Invalid cross-device link&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hard links cannot span different filesystems; use a symbolic link instead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Broken symlink (dangling)&lt;/td&gt;
&lt;td&gt;The target path no longer exists; update with &lt;code&gt;ln -sf NEW_TARGET LINK_NAME&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Symlink points to wrong target&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;readlink link_name&lt;/code&gt; to confirm the current target, then use &lt;code&gt;ln -sf&lt;/code&gt; to correct it&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full workflows and file management patterns.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-create-symbolic-links-in-linux-using-the-ln-command/"&gt;ln Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;ln&lt;/code&gt; tutorial with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-remove-symbolic-links-in-linux/"&gt;How to Remove Symbolic Links in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Delete symlinks safely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/unlink-command-in-linux/"&gt;unlink Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Remove a single link entry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ls/"&gt;ls Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;List and inspect files and links&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/chmod/"&gt;chmod Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Set permissions on files and links&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>tee Cheatsheet</title><link>https://linuxize.com/cheatsheet/tee/</link><pubDate>Sun, 01 Mar 2026 16:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/tee/</guid><description>Quick reference for splitting command output to terminal and files with tee in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;tee&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | tee file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show output and write to a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | tee -a file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show output and append to a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | tee file1.txt file2.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write output to multiple files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | tee&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pass output through unchanged&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;command | tee /tmp/out.log &amp;gt;/dev/null&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write to file without terminal output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-options"&gt;Common Options &lt;a class="headline-link" href="#common-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Frequently used flags for &lt;code&gt;tee&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-a&lt;/code&gt;, &lt;code&gt;--append&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append to files instead of overwriting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-i&lt;/code&gt;, &lt;code&gt;--ignore-interrupts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore interrupt signals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show help text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show version information&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="logging-command-output"&gt;Logging Command Output &lt;a class="headline-link" href="#logging-command-output" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Capture output while still seeing it live.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping -c 4 linuxize.com | tee ping.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save ping output to a log file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;journalctl -u nginx -n 50 | tee nginx.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save recent service logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -la | tee listing.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save directory listing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -h | tee disk-usage.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save filesystem usage report&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;free -h | tee memory.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save memory snapshot&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="append-mode"&gt;Append Mode &lt;a class="headline-link" href="#append-mode" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Keep history in log files with &lt;code&gt;-a&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;date | tee -a run.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append current date to log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;deploy started&amp;quot; | tee -a deploy.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append status line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;./backup.sh 2&amp;gt;&amp;amp;1 | tee -a backup.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append stdout and stderr&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tail -n 20 app.log | tee -a diagnostics.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append recent log excerpt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;curl -I https://linuxize.com | tee -a headers.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append response headers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="pipelines-and-filters"&gt;Pipelines and Filters &lt;a class="headline-link" href="#pipelines-and-filters" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Combine &lt;code&gt;tee&lt;/code&gt; with text-processing commands.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat app.log | tee copy.log | grep ERROR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy stream and filter errors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps aux | tee processes.txt | grep nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save process list and filter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort users.txt | tee sorted-users.txt | uniq&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save sorted output and deduplicate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dmesg | tee dmesg.txt | tail -n 30&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save kernel messages and inspect recent lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find /etc -maxdepth 1 -type f | tee etc-files.txt | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save file list and count lines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="privileged-writes"&gt;Privileged Writes &lt;a class="headline-link" href="#privileged-writes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Write to root-owned files safely.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;127.0.0.1 app.local&amp;quot; | sudo tee -a /etc/hosts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append host mapping as root&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;printf &amp;quot;key=value\n&amp;quot; | sudo tee /etc/myapp.conf &amp;gt;/dev/null&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Overwrite config file as root&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat config.conf | sudo tee /etc/myapp/config.conf &amp;gt;/dev/null&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy config into protected path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo &amp;quot;net.ipv4.ip_forward=1&amp;quot; | sudo tee -a /etc/sysctl.conf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append kernel setting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo sysctl -p | tee sysctl-apply.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save reload output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;tee&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;sudo tee&lt;/code&gt; for root-owned targets instead of &lt;code&gt;sudo echo ... &amp;gt; file&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File content replaced unexpectedly&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-a&lt;/code&gt; when you need append mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No output on terminal&lt;/td&gt;
&lt;td&gt;Remove &lt;code&gt;&amp;gt;/dev/null&lt;/code&gt; if you want to see output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing errors in logs&lt;/td&gt;
&lt;td&gt;Redirect stderr too: &lt;code&gt;2&amp;gt;&amp;amp;1 | tee file.log&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command hangs in pipeline&lt;/td&gt;
&lt;td&gt;Check whether the upstream command runs continuously and needs manual stop&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for deeper command coverage and workflow patterns.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-tee-command/"&gt;tee Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;tee&lt;/code&gt; command tutorial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-grep-command-to-search-files-in-linux/"&gt;grep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Filter matching lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/sort-command-in-linux/"&gt;sort Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Sort text output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-tail-command/"&gt;tail Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inspect and follow recent lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-head-command/"&gt;head Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show first lines quickly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/journalctl-command-in-linux/"&gt;journalctl Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Query and filter systemd logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/bash-append-to-file/"&gt;Bash Append to File&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Append redirection patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>gzip Cheatsheet</title><link>https://linuxize.com/cheatsheet/gzip/</link><pubDate>Sun, 01 Mar 2026 12:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/gzip/</guid><description>Quick reference for compressing, listing, testing, and decompressing files with gzip and gunzip in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core command forms for &lt;code&gt;gzip&lt;/code&gt; and &lt;code&gt;gunzip&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compress a file and replace it with &lt;code&gt;FILE.gz&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -k FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compress and keep original file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -d FILE.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Decompress a &lt;code&gt;.gz&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gunzip FILE.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Decompress a &lt;code&gt;.gz&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zcat FILE.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print decompressed content to stdout&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="compression-levels"&gt;Compression Levels &lt;a class="headline-link" href="#compression-levels" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control speed versus compression ratio.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -1 FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fastest compression, larger output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -6 FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Default compression level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -9 FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Maximum compression, slower&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -k -9 FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Max compression while keeping original&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="compress-multiple-files"&gt;Compress Multiple Files &lt;a class="headline-link" href="#compress-multiple-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Apply gzip to groups of files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip *.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compress all matching log files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -r logs/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursively compress files in a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -name '*.txt' -print0 | xargs -0 gzip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compress matching files safely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;for f in *.csv; do gzip -k &amp;quot;$f&amp;quot;; done&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compress files and keep originals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -- *.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compress files, safe for dash-prefixed names&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="decompress-and-inspect"&gt;Decompress and Inspect &lt;a class="headline-link" href="#decompress-and-inspect" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Restore and verify compressed files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gunzip archive.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Decompress and remove &lt;code&gt;.gz&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -dk archive.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Decompress and keep &lt;code&gt;.gz&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -l archive.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show compressed/uncompressed sizes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -v FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show compression ratio and details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -t archive.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test integrity without extracting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zcat archive.gz | less&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View content without writing files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="streams-and-pipelines"&gt;Streams and Pipelines &lt;a class="headline-link" href="#streams-and-pipelines" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;gzip&lt;/code&gt; without intermediate files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mysqldump mydb | gzip &amp;gt; mydb.sql.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compress command output directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -c file.txt &amp;gt; file.txt.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write compressed output to stdout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gunzip -c backup.sql.gz &amp;gt; backup.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Decompress to a chosen file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tar -cf - project/ | gzip &amp;gt; project.tar.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create compressed tar stream&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip -dc access.log.gz | grep ERROR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search content in compressed logs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common gzip issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gzip: command not found&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install &lt;code&gt;gzip&lt;/code&gt; package and verify with &lt;code&gt;gzip --version&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Original file disappeared after compression&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-k&lt;/code&gt; to keep source files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;not in gzip format&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm file type with &lt;code&gt;file filename&lt;/code&gt; before decompression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Corrupt archive errors&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;gzip -t file.gz&lt;/code&gt; to validate integrity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unexpected overwrite behavior&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-k&lt;/code&gt; or output redirection with &lt;code&gt;-c&lt;/code&gt; to control file writes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full workflows and archive handling.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/gzip-command-in-linux/"&gt;gzip Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;gzip&lt;/code&gt; tutorial with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/gunzip-command-in-linux/"&gt;gunzip Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Decompress &lt;code&gt;.gz&lt;/code&gt; files in detail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-create-tar-gz-file/"&gt;How to Create Tar Gz File&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Build compressed tar archives&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-create-and-extract-archives-using-the-tar-command-in-linux/"&gt;Tar Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Create and extract tar archives&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/find-large-files-in-linux/"&gt;Find Large Files in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Locate files before compression cleanup&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>cat Cheatsheet</title><link>https://linuxize.com/cheatsheet/cat/</link><pubDate>Fri, 27 Feb 2026 19:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/cat/</guid><description>Quick reference for viewing, combining, and redirecting file content with cat in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;cat&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print a file to standard output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat FILE1 FILE2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print multiple files in sequence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read from standard input until EOF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -n FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all lines with line numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -b FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number only non-empty lines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="view-file-content"&gt;View File Content &lt;a class="headline-link" href="#view-file-content" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common read-only usage patterns.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat /etc/os-release&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print distro information file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show full file content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file1.txt file2.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show both files in one stream&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -A file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show tabs/end-of-line/non-printing chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -s file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Squeeze repeated blank lines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="line-numbering-and-visibility"&gt;Line Numbering and Visibility &lt;a class="headline-link" href="#line-numbering-and-visibility" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect structure and hidden characters.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -n file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number all lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -b file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number only non-blank lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -E file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show &lt;code&gt;$&lt;/code&gt; at end of each line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -T file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show tab characters as &lt;code&gt;^I&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat -v file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show non-printing characters&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="combine-files"&gt;Combine Files &lt;a class="headline-link" href="#combine-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create merged outputs from multiple files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat part1 part2 &amp;gt; merged.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Merge files into a new file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat header.txt body.txt footer.txt &amp;gt; report.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Build one file from sections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat a.txt b.txt c.txt &amp;gt; combined.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Join several text files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file.txt &amp;gt;&amp;gt; archive.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append one file to another&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat *.log &amp;gt; all-logs.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Merge matching files (shell glob)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="create-and-append-text"&gt;Create and Append Text &lt;a class="headline-link" href="#create-and-append-text" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;cat&lt;/code&gt; with redirection and here-docs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat &amp;gt; notes.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create/overwrite a file from terminal input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat &amp;gt;&amp;gt; notes.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append terminal input to a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat &amp;lt;&amp;lt;'EOF' &amp;gt; config.conf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write multiline text safely with a here-doc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat &amp;lt;&amp;lt;'EOF' &amp;gt;&amp;gt; config.conf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append multiline text using a here-doc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat &amp;gt; script.sh &amp;lt;&amp;lt;'EOF'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create a script file from inline content&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="pipelines-and-common-combos"&gt;Pipelines and Common Combos &lt;a class="headline-link" href="#pipelines-and-common-combos" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Practical command combinations with other tools.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat access.log | grep 500&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter matching lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file.txt | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file.txt | head -n 20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;First 20 lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file.txt | tail -n 20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Last 20 lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cat file.txt | tee copy.txt &amp;gt;/dev/null&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy stream to a file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;cat&lt;/code&gt; usage issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check ownership and file mode with &lt;code&gt;ls -l&lt;/code&gt;; run with correct user or &lt;code&gt;sudo&lt;/code&gt; if required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output is too long&lt;/td&gt;
&lt;td&gt;Pipe to &lt;code&gt;less&lt;/code&gt; (&lt;code&gt;cat file | less&lt;/code&gt;) or use &lt;code&gt;head&lt;/code&gt;/&lt;code&gt;tail&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unexpected binary output&lt;/td&gt;
&lt;td&gt;Verify file type with &lt;code&gt;file filename&lt;/code&gt; before printing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File was overwritten accidentally&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; to append, not &lt;code&gt;&amp;gt;&lt;/code&gt;; enable shell noclobber if needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hidden characters break scripts&lt;/td&gt;
&lt;td&gt;Inspect with &lt;code&gt;cat -A&lt;/code&gt; or &lt;code&gt;cat -vET&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full file-view and text-processing workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-cat-command/"&gt;How to Use the cat Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;cat&lt;/code&gt; command guide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-head-command/"&gt;head Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show the first lines of files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-tail-command/"&gt;tail Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Follow and inspect recent lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-tee-command/"&gt;tee Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Write output to file and terminal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-wc-command/"&gt;wc Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Count lines, words, and bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/create-a-file-in-linux/"&gt;Create a File in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;File creation methods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/bash-append-to-file/"&gt;Bash Append to File&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Safe append patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>sort Cheatsheet</title><link>https://linuxize.com/cheatsheet/sort/</link><pubDate>Fri, 27 Feb 2026 09:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/sort/</guid><description>Quick reference for sorting text lines with sort in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;sort&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort lines alphabetically (ascending)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -r file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort lines in reverse order&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -n file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort numerically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -nr file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort numerically, largest first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Merge and sort multiple files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="sort-by-field"&gt;Sort by Field &lt;a class="headline-link" href="#sort-by-field" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Sort lines by one column or key.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -k2 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by second field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -k2,2 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort using only field 2 as key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -t: -k3,3n /etc/passwd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by UID field in &lt;code&gt;/etc/passwd&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -t, -k1,1 data.csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort CSV by first column&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -k3,3 -k1,1 file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Secondary sort: key 3, then key 1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="numeric-and-human-sizes"&gt;Numeric and Human Sizes &lt;a class="headline-link" href="#numeric-and-human-sizes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Handle numbers and size suffixes correctly.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -n numbers.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Numeric sort&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -g values.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;General numeric sort (floats/scientific notation)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -h sizes.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort human-readable sizes (K, M, G)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;du -sh /var/* | sort -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort &lt;code&gt;du&lt;/code&gt; output by size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -V versions.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Natural version sort (&lt;code&gt;1.9&lt;/code&gt; before &lt;code&gt;1.10&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="unique-and-check"&gt;Unique and Check &lt;a class="headline-link" href="#unique-and-check" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Detect duplicates and verify sorted input.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -u file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort and remove duplicate lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort file.txt | uniq&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Equivalent two-step unique output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort file.txt | uniq -c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count duplicate occurrences&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -c file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check if file is sorted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -C file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quiet sorted-check (status code only)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="in-place-and-output"&gt;In-Place and Output &lt;a class="headline-link" href="#in-place-and-output" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Safe ways to write sorted results.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort file.txt &amp;gt; sorted.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write output to a new file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -o file.txt file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort in place safely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -o out.txt in.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write sorted output with &lt;code&gt;-o&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort -T /tmp bigfile.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use temp directory for large sorts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LC_ALL=C sort file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Byte-order sort for predictable locale behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-pipelines"&gt;Common Pipelines &lt;a class="headline-link" href="#common-pipelines" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Practical combinations with other commands.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep -Eo '[[:alnum:]_]+' file.txt | sort | uniq -c | sort -rn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Top repeated words&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cut -d',' -f2 data.csv | sort&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort one CSV column&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sort access.log | uniq -c | sort -rn | head&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Most common log lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo user= | sort | uniq -c | sort -rn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Process count by user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type f | sort&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sorted file listing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;sort&lt;/code&gt; issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Numbers sorted as text&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-n&lt;/code&gt; (or &lt;code&gt;-g&lt;/code&gt; for floats)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size values ordered incorrectly&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-h&lt;/code&gt; for human-readable sizes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unexpected uppercase/lowercase order&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-f&lt;/code&gt; or set locale with &lt;code&gt;LC_ALL=C&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File was emptied after sorting&lt;/td&gt;
&lt;td&gt;Do not use &lt;code&gt;sort file &amp;gt; file&lt;/code&gt;; use &lt;code&gt;sort -o file file&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Different results across systems&lt;/td&gt;
&lt;td&gt;Verify locale and use explicit key options (&lt;code&gt;-k&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full sorting and text-processing workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/sort-command-in-linux/"&gt;sort Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;sort&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;uniq&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove and count duplicate lines after sorting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-head-command/"&gt;head Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Show the first lines of output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-wc-command/"&gt;wc Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Count lines, words, and bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-cut-command/"&gt;cut Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Extract fields from text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-use-grep-command-to-search-files-in-linux/"&gt;grep Command in Linux&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Search and filter matching lines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>ps Cheatsheet</title><link>https://linuxize.com/cheatsheet/ps/</link><pubDate>Thu, 26 Feb 2026 09:10:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/ps/</guid><description>Quick reference for listing and filtering processes with ps in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core &lt;code&gt;ps&lt;/code&gt; command forms.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show processes in the current shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all running processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show full-format output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps aux&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;BSD-style all-process listing with user and resource info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -ef&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SysV-style all-process listing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="list-processes"&gt;List Processes &lt;a class="headline-link" href="#list-processes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common process listing commands.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -ef&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full process list with PPID and start time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps aux&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Detailed list including CPU and memory usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -u username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Processes owned by a specific user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -p 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show one process by PID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="select-and-filter"&gt;Select and Filter &lt;a class="headline-link" href="#select-and-filter" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Filter output to specific process groups.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -C nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match processes by command name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -p 1234,5678&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show multiple PIDs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -u root -U root&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show processes by effective and real user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -t pts/0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show processes attached to a terminal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Custom output sorted by CPU&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="custom-output-columns"&gt;Custom Output Columns &lt;a class="headline-link" href="#custom-output-columns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show only the process fields you need.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo pid,cmd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;PID and command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo user,pid,%cpu,%mem,cmd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;User, PID, CPU, memory, command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo pid,lstart,cmd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;PID with full start time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -o pid= -o comm=&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Output without column headers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -p 1234 -o pid,ppid,user,%cpu,%mem,cmd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Custom fields for one PID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="process-tree-and-parentchild"&gt;Process Tree and Parent/Child &lt;a class="headline-link" href="#process-tree-and-parentchild" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect process hierarchy.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -ejH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hierarchical process view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -axjf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Forest view (BSD style)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -o pid,ppid,cmd -p 1234&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Parent-child context for one process&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo pid,ppid,cmd --sort=ppid&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Group processes by parent PID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="useful-patterns"&gt;Useful Patterns &lt;a class="headline-link" href="#useful-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common real-world combinations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps aux | grep nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick process search (includes grep line)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -C nginx -o pid,cmd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cleaner command-name search without grep&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo pid,%cpu,%mem,cmd --sort=-%mem | head&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Top memory consumers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -eo pid,%cpu,cmd --sort=-%cpu | head&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Top CPU consumers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ps -ef | grep -v grep | grep sshd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Legacy grep pipeline pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common &lt;code&gt;ps&lt;/code&gt; usage issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Command not visible in output&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;ps -ef&lt;/code&gt; or &lt;code&gt;ps aux&lt;/code&gt; for full list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process disappears between checks&lt;/td&gt;
&lt;td&gt;It may be short-lived; sample repeatedly or use &lt;code&gt;watch&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep&lt;/code&gt; shows itself&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;ps -C name&lt;/code&gt; or &lt;code&gt;pgrep&lt;/code&gt; instead of raw grep&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing expected process details&lt;/td&gt;
&lt;td&gt;Add fields with &lt;code&gt;-o&lt;/code&gt; (for example &lt;code&gt;%cpu&lt;/code&gt;, &lt;code&gt;%mem&lt;/code&gt;, &lt;code&gt;lstart&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need exact process ID for kill&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;ps -C name -o pid=&lt;/code&gt; or &lt;code&gt;pgrep name&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full process-management workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/ps-command-in-linux/"&gt;&lt;code&gt;Ps Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;ps&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/kill-command-in-linux/"&gt;&lt;code&gt;Kill Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Terminate processes by PID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/pkill-command-in-linux/"&gt;&lt;code&gt;Pkill Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Kill processes by name/pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/pgrep-command-in-linux/"&gt;&lt;code&gt;Pgrep Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Find process IDs by name and pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-kill-a-process-in-linux/"&gt;&lt;code&gt;How to Kill a Process in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Practical process-stop workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>cp Cheatsheet</title><link>https://linuxize.com/cheatsheet/cp/</link><pubDate>Wed, 25 Feb 2026 10:35:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/cp/</guid><description>Quick reference for copying files and directories with cp in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core command forms for copy operations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp [OPTIONS] SOURCE DEST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy one file to destination&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp [OPTIONS] SOURCE... DIRECTORY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy multiple sources into a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -r [OPTIONS] SOURCE DEST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy directory recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -- FILE DEST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy file whose name starts with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="copy-files"&gt;Copy Files &lt;a class="headline-link" href="#copy-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common file copy commands.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp file.txt /tmp/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy file to another directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp file.txt newname.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy and rename in same directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp file1 file2 /backup/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy multiple files to a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp *.log /var/log/archive/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy files matching pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp /src/file.txt /dest/newname.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy and rename to another directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="copy-directories"&gt;Copy Directories &lt;a class="headline-link" href="#copy-directories" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Copy entire directory trees.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -r dir/ /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy directory recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -r dir1 dir2 /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy multiple directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -r /src/dir /dest/dir-new&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy and rename directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -r dir/. /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy directory contents only (not the directory itself)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="overwrite-behavior"&gt;Overwrite Behavior &lt;a class="headline-link" href="#overwrite-behavior" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control what happens when the destination already exists.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -i file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt before overwrite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -n file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Never overwrite existing file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -f file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force overwrite without prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -u file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy only if source is newer than destination&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="preserve-attributes"&gt;Preserve Attributes &lt;a class="headline-link" href="#preserve-attributes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Keep timestamps, ownership, and permissions when copying.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -p file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preserve mode, ownership, and timestamps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -a dir/ /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Archive mode — preserve all attributes, copy recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp --preserve=timestamps file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preserve only timestamps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp --preserve=mode file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preserve only permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="useful-patterns"&gt;Useful Patterns &lt;a class="headline-link" href="#useful-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common real-world &lt;code&gt;cp&lt;/code&gt; command combinations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp file.txt{,.bak}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick backup via brace expansion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -v file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verbose output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -rv dir/ /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verbose recursive copy output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -name '*.conf' -exec cp -t /backup/ {} +&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy matched files with &lt;code&gt;find&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cp -a /src/. /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mirror directory preserving all attributes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common copy errors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;omitting directory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-r&lt;/code&gt; to copy directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check source read permission and destination write permission&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;No such file or directory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify source path with &lt;code&gt;ls -l source&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Destination file overwritten&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-i&lt;/code&gt; or &lt;code&gt;-n&lt;/code&gt; to protect existing files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Attributes not preserved&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-a&lt;/code&gt; or &lt;code&gt;-p&lt;/code&gt; to preserve ownership and timestamps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;cp -t&lt;/code&gt; in the &lt;code&gt;find&lt;/code&gt; example is GNU-specific and may not be available on non-GNU systems.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for detailed copy workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/cp-command-in-linux/"&gt;&lt;code&gt;Linux cp Command: Copy Files and Directories&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;cp&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-copy-files-and-directories-in-linux/"&gt;&lt;code&gt;How to Copy Files and Directories in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Overview of all copy tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/mv/"&gt;&lt;code&gt;mv Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Move and rename files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/rsync/"&gt;&lt;code&gt;rsync Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Remote and local sync with progress&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>chown Cheatsheet</title><link>https://linuxize.com/cheatsheet/chown/</link><pubDate>Tue, 24 Feb 2026 10:30:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/chown/</guid><description>Quick reference for changing file and directory ownership with chown in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these core command forms for &lt;code&gt;chown&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-chown-command/"&gt;&lt;code&gt;chown USER FILE&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Change file owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown USER:GROUP FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change owner and group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown :GROUP FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change group only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown USER: FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change owner and set group to user&amp;rsquo;s login group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown --reference=REF FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy owner and group from another file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-examples"&gt;Common Examples &lt;a class="headline-link" href="#common-examples" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common ownership changes for files and directories.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown root file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set owner to &lt;code&gt;root&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown www-data:www-data /var/www/index.html&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set owner and group for a web file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo chown $USER:$USER file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Return ownership to current user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown :developers app.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change group only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown --reference=source.txt target.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match ownership of another file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="recursive-changes"&gt;Recursive Changes &lt;a class="headline-link" href="#recursive-changes" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Apply ownership updates to full directory trees.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R USER:GROUP /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursively change owner and group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R USER /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursively change owner only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R :GROUP /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursively change group only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R -h USER:GROUP /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change symlink ownership itself during recursion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R --from=OLDUSER:OLDGROUP NEWUSER:NEWGROUP /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change only matching current ownership&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="symlinks-and-traversal"&gt;Symlinks and Traversal &lt;a class="headline-link" href="#symlinks-and-traversal" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how &lt;code&gt;chown&lt;/code&gt; treats symbolic links.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown USER:GROUP symlink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change target by default&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -h USER:GROUP symlink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change symlink itself (not target)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R -H USER:GROUP /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow symlink command-line args to directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R -L USER:GROUP /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow all directory symlinks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown -R -P USER:GROUP /path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Never follow symlinks (default)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="safe-patterns"&gt;Safe Patterns &lt;a class="headline-link" href="#safe-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these patterns to avoid ownership mistakes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chown --from=root root:root /path/file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change only if current owner matches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find /path -user olduser -exec chown newuser {} +&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Target only files owned by one user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find /path -group oldgroup -exec chown :newgroup {} +&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Target only one group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -l /path/file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify ownership before and after changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;id username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Confirm user and group names exist&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-errors"&gt;Common Errors &lt;a class="headline-link" href="#common-errors" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks when ownership changes fail.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Operation not permitted&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You need root privileges; run with &lt;code&gt;sudo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;invalid user&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify user exists with &lt;code&gt;getent passwd username&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;invalid group&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify group exists with &lt;code&gt;getent group groupname&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Changes did not apply recursively&lt;/td&gt;
&lt;td&gt;Confirm &lt;code&gt;-R&lt;/code&gt; was used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access still denied after &lt;code&gt;chown&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check permission bits with &lt;code&gt;ls -l&lt;/code&gt; and ACLs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full ownership and permissions workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-chown-command/"&gt;&lt;code&gt;Chown Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;chown&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/chgrp-command-in-linux/"&gt;&lt;code&gt;chgrp Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Change file group ownership&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/chmod-command-in-linux/"&gt;&lt;code&gt;How to Change File Permissions in Linux (chmod command)&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Update permission bits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/understanding-linux-file-permissions/"&gt;&lt;code&gt;Understanding Linux File Permissions&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Ownership and permission model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-list-groups-in-linux/"&gt;&lt;code&gt;How to List Groups in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check group membership and IDs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>rm Cheatsheet</title><link>https://linuxize.com/cheatsheet/rm/</link><pubDate>Mon, 23 Feb 2026 09:20:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/rm/</guid><description>Quick reference for removing files and directories safely with rm in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core command forms for file and directory removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm [OPTIONS] FILE...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove one or more files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -r [OPTIONS] DIRECTORY...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove directories recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -- FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Treat argument as filename even if it starts with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -i FILE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt before each removal&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="remove-files"&gt;Remove Files &lt;a class="headline-link" href="#remove-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common file deletion commands.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove one file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm file1 file2 file3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove multiple files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm *.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove files matching pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -- -strange-filename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove file named with leading &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -v file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove file with verbose output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="remove-directories"&gt;Remove Directories &lt;a class="headline-link" href="#remove-directories" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Delete directories and their contents.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -r dir/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove directory recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -rf dir/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force recursive removal without prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -r dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove multiple directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -r -- */&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove all directories in current path&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="prompt-and-safety-options"&gt;Prompt and Safety Options &lt;a class="headline-link" href="#prompt-and-safety-options" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control how aggressively &lt;code&gt;rm&lt;/code&gt; deletes files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -i file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt before each file removal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -I file1 file2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt once before deleting many files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm --interactive=always file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Always prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm --interactive=once *.tmp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -f file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ignore nonexistent files, never prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="useful-patterns"&gt;Useful Patterns &lt;a class="headline-link" href="#useful-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Frequent real-world combinations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type f -name '*.tmp' -delete&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove matching temporary files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -type d -empty -delete&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove empty directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -rf -- build/ dist/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove common build directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rm -f -- *.bak *.old&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove backup files quietly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common removal errors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check ownership and permissions; use &lt;code&gt;sudo&lt;/code&gt; only when needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Is a directory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-r&lt;/code&gt; to remove directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;No such file or directory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify path and shell glob expansion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cannot remove write-protected file&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-i&lt;/code&gt; for prompts or &lt;code&gt;-f&lt;/code&gt; to force&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File name starts with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;rm -- filename&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these references for safer file management workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/rm-command-in-linux/"&gt;&lt;code&gt;Rm Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full &lt;code&gt;rm&lt;/code&gt; guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-find-files-in-linux-using-the-command-line/"&gt;&lt;code&gt;How to Find Files in Linux Using the Command Line&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Find and target files before deleting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/chmod-command-in-linux/"&gt;&lt;code&gt;Chmod Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Fix permission errors before removal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/linux-commands/"&gt;&lt;code&gt;Linux Commands Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;General Linux command quick reference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>mv Cheatsheet</title><link>https://linuxize.com/cheatsheet/mv/</link><pubDate>Sun, 22 Feb 2026 15:15:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/mv/</guid><description>Quick reference for moving and renaming files and directories with mv in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Core command forms for move and rename operations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv [OPTIONS] SOURCE DEST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move or rename one file/directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv [OPTIONS] SOURCE... DIRECTORY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move multiple sources into destination directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv file.txt newname.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rename file in same directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv dir1 dir2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rename directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="move-files"&gt;Move Files &lt;a class="headline-link" href="#move-files" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Move files between directories.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv file.txt /tmp/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move one file to another directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv file1 file2 /backup/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move multiple files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv *.log /var/log/archive/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move files matching pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv /src/file.txt /dest/newname.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move and rename in one step&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="move-directories"&gt;Move Directories &lt;a class="headline-link" href="#move-directories" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Move or rename complete directory trees.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv project/ /opt/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move directory to another location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv olddir newdir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rename directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv dir1 dir2 /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move multiple directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv /src/dir /dest/dir-new&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move and rename directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="overwrite-behavior"&gt;Overwrite Behavior &lt;a class="headline-link" href="#overwrite-behavior" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control what happens when destination already exists.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -i file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt before overwrite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -n file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Never overwrite existing file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -f file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force overwrite without prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -u file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move only if source is newer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="backup-and-safety"&gt;Backup and Safety &lt;a class="headline-link" href="#backup-and-safety" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Protect destination files while moving.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -b file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create backup of overwritten destination&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv --backup=numbered file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Numbered backups (&lt;code&gt;.~1~&lt;/code&gt;, &lt;code&gt;.~2~&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -v file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verbose output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -iv file.txt /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Interactive + verbose&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="useful-patterns"&gt;Useful Patterns &lt;a class="headline-link" href="#useful-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common real-world &lt;code&gt;mv&lt;/code&gt; command combinations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv -- *.txt archive/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move files when names may start with &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv &amp;quot;My File.txt&amp;quot; /dest/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move file with spaces in name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find . -maxdepth 1 -name '*.tmp' -exec mv -t /tmp/archive {} +&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move matched files safely with &lt;code&gt;find&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mv /path/file{,.bak}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick rename via brace expansion&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for common move/rename errors.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;No such file or directory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify source path with &lt;code&gt;ls -l source&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check destination permissions and ownership&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong file overwritten&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-i&lt;/code&gt; or &lt;code&gt;-n&lt;/code&gt; for safer moves&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wildcard misses hidden files&lt;/td&gt;
&lt;td&gt;&lt;code&gt;*&lt;/code&gt; does not match dotfiles by default&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Option-like filename fails&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;--&lt;/code&gt; before source names&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for detailed move and rename workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-move-files-in-linux-with-mv-command/"&gt;&lt;code&gt;How to Move Files in Linux with mv Command&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full mv guide with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-rename-files-in-linux/"&gt;&lt;code&gt;How to Rename Files in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;File renaming patterns and tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-rename-directories-in-linux/"&gt;&lt;code&gt;How to Rename Directories in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Directory rename methods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/cp-command-in-linux/"&gt;&lt;code&gt;Cp Command in Linux: Copy Files and Directories&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Compare copy vs move workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>ls Cheatsheet</title><link>https://linuxize.com/cheatsheet/ls/</link><pubDate>Sat, 21 Feb 2026 09:30:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/ls/</guid><description>Quick reference for listing files and directories with ls in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-listing"&gt;Basic Listing &lt;a class="headline-link" href="#basic-listing" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these commands for everyday directory listing.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List files in current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls /path/to/dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List files in specific directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;One entry per line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include hidden files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -A&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include hidden files except &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;..&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="long-format-and-metadata"&gt;Long Format and Metadata &lt;a class="headline-link" href="#long-format-and-metadata" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show permissions, ownership, size, and timestamps.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Long listing format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable file sizes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -la&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Long format with hidden files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -n&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Numeric UID and GID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -li&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show inode numbers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="sorting"&gt;Sorting &lt;a class="headline-link" href="#sorting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Sort files by time, size, extension, or version.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by modification time (newest first)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -ltr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by modification time (oldest first)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by file size (largest first)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lX&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort by extension&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Natural sort for version-like names&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="time-display"&gt;Time Display &lt;a class="headline-link" href="#time-display" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Control which timestamp is shown.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lt --time=atime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort/show by access time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lt --time=ctime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort/show by status change time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -l --time-style=long-iso&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ISO-like date format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -l --full-time&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full timestamp precision&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="directory-views"&gt;Directory Views &lt;a class="headline-link" href="#directory-views" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;List directories recursively or show directory entries only.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -la --group-directories-first&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Long listing with directories before files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -d */&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List only directories in current path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -ld /path/to/dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show metadata for directory itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursive listing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -laR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursive long listing with hidden files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="output-formatting"&gt;Output Formatting &lt;a class="headline-link" href="#output-formatting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Adjust visual style and indicators.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -F&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append indicator (&lt;code&gt;/&lt;/code&gt;, &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;@&lt;/code&gt;) by file type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Append &lt;code&gt;/&lt;/code&gt; to directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Comma-separated output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -x&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List entries across rows instead of down columns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls --color=auto&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable colorized output when supported&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="filtering-with-globs"&gt;Filtering with Globs &lt;a class="headline-link" href="#filtering-with-globs" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;List files that match shell patterns.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls *.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List files ending in &lt;code&gt;.log&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls file?.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match single-character wildcard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls [ab]*.conf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Match names starting with &lt;code&gt;a&lt;/code&gt; or &lt;code&gt;b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -d .[^.]*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List hidden files (common shell pattern)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="common-patterns"&gt;Common Patterns &lt;a class="headline-link" href="#common-patterns" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Frequent command combinations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lah&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Most common detailed listing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lhS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Largest files first with readable sizes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -lat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Newest files first including hidden entries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -1 | wc -l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Count entries in current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ls -l | grep '^d'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only directories from long listing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quick checks for typical listing issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hidden files not visible&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;-a&lt;/code&gt; or &lt;code&gt;-A&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File sizes are hard to read&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;-h&lt;/code&gt; with &lt;code&gt;-l&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong sort order&lt;/td&gt;
&lt;td&gt;Confirm flags (&lt;code&gt;-t&lt;/code&gt;, &lt;code&gt;-S&lt;/code&gt;, &lt;code&gt;-X&lt;/code&gt;, &lt;code&gt;-r&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No color output&lt;/td&gt;
&lt;td&gt;Try &lt;code&gt;ls --color=auto&lt;/code&gt; and check alias settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Path looks empty&lt;/td&gt;
&lt;td&gt;Verify permissions with &lt;code&gt;ls -ld /path&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these references for deeper file management workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-list-files-in-linux-using-the-ls-command/"&gt;&lt;code&gt;How to List Files in Linux Using the ls Command&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Full ls guide with practical examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/du-command-in-linux/"&gt;&lt;code&gt;Du Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Check disk usage and file sizes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/linux-commands/"&gt;&lt;code&gt;Linux Commands Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;General command quick reference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>ZIP/UNZIP Cheatsheet</title><link>https://linuxize.com/cheatsheet/zip-unzip/</link><pubDate>Thu, 19 Feb 2026 10:30:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/zip-unzip/</guid><description>Quick reference for creating, listing, testing, and extracting ZIP archives in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common command forms for ZIP operations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip [OPTIONS] archive.zip files&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create or update ZIP archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip [OPTIONS] archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract ZIP archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -r archive.zip directory/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recursively archive a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip archive.zip -d /path/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract to a specific directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip -t archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test archive integrity&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="create-zip-archives"&gt;Create ZIP Archives &lt;a class="headline-link" href="#create-zip-archives" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create archives from files and directories.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-zip-files-and-directories-in-linux/"&gt;&lt;code&gt;zip archive.zip file1 file2&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Archive multiple files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -r project.zip project/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Archive directory recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -j archive.zip path/to/file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Archive files without directory paths (flat)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -9 -r backup.zip /etc/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Maximum compression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -0 -r store.zip media/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No compression (faster)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -r logs.zip /var/log -x &amp;quot;*.gz&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude matching files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -q -r archive.zip dir/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create archive silently (no output)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="update-existing-archives"&gt;Update Existing Archives &lt;a class="headline-link" href="#update-existing-archives" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Add, refresh, or remove archive entries.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip archive.zip newfile.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add file to existing archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -r archive.zip newdir/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add directory to existing archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -u archive.zip file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update only changed files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -d archive.zip &amp;quot;*.tmp&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete matching entries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -FS archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sync archive with filesystem state&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="list-and-inspect"&gt;List and Inspect &lt;a class="headline-link" href="#list-and-inspect" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check archive contents before extraction.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip -l archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List archived files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip -Z -v archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Detailed listing (sizes, ratio, methods)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zipinfo archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display archive metadata&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zipinfo -1 archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List filenames only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip -t archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test archive integrity&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="extract-archives"&gt;Extract Archives &lt;a class="headline-link" href="#extract-archives" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Extract all files or selected paths.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-unzip-files-in-linux/"&gt;&lt;code&gt;unzip archive.zip&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Extract into current directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip archive.zip -d /tmp/extract&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract to target directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip archive.zip file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract one file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip archive.zip &amp;quot;dir/*&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract matching path pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip -n archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Never overwrite existing files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip -o archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Overwrite existing files without prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip -q archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract silently (no output)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="password-protected-archives"&gt;Password-Protected Archives &lt;a class="headline-link" href="#password-protected-archives" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create and extract encrypted ZIP files.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -e secure.zip file.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create encrypted archive (interactive password)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -er secure-dir.zip secrets/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Encrypt directory archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip secure.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract encrypted ZIP (prompts for password)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zipcloak archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add encryption to an existing archive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zipcloak -d archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove encryption from archive&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="split-archives"&gt;Split Archives &lt;a class="headline-link" href="#split-archives" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Split large ZIP files into smaller chunks.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -r -s 100m backup.zip bigdir/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create split archive with 100 MB parts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -s 0 split.zip --out merged.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recombine split ZIP into one file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip split.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extract split archive (all parts required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zip -s 2g -r media.zip media/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create split archive with 2 GB parts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common ZIP/UNZIP problems and checks.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unzip: cannot find or open&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify path and filename, then run &lt;code&gt;ls -lh archive.zip&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRC error during extraction&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;unzip -t archive.zip&lt;/code&gt; to test integrity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Files overwritten without warning&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;unzip -n archive.zip&lt;/code&gt; to skip existing files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong file permissions after extract&lt;/td&gt;
&lt;td&gt;Check with &lt;code&gt;ls -l&lt;/code&gt;, then adjust using &lt;code&gt;chmod&lt;/code&gt;/&lt;code&gt;chown&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Password prompt fails&lt;/td&gt;
&lt;td&gt;Re-enter password carefully; verify archive is encrypted with &lt;code&gt;zipinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these guides for full walkthroughs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-zip-files-and-directories-in-linux/"&gt;&lt;code&gt;How to Zip Files and Directories in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Detailed ZIP creation examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-unzip-files-in-linux/"&gt;&lt;code&gt;How to Unzip Files in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Detailed extraction methods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/tar/"&gt;&lt;code&gt;Tar Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Tar and compressed archive reference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item><item><title>IP Command Cheatsheet</title><link>https://linuxize.com/cheatsheet/ip/</link><pubDate>Thu, 19 Feb 2026 08:30:00 +0100</pubDate><author>hello@linuxize.com (Linuxize)</author><guid>https://linuxize.com/cheatsheet/ip/</guid><description>Quick reference for using ip command to manage addresses, routes, links, and network diagnostics in Linux</description><content:encoded>&lt;div class="card"&gt;
&lt;h3 id="basic-syntax"&gt;Basic Syntax &lt;a class="headline-link" href="#basic-syntax" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use this structure for most &lt;code&gt;ip&lt;/code&gt; operations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip [OPTIONS] OBJECT COMMAND&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;General &lt;code&gt;ip&lt;/code&gt; command syntax&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -br a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show addresses in brief format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -c a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show colorized output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -4 a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only IPv4 addresses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -6 a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show only IPv6 addresses&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="show-interfaces-and-addresses"&gt;Show Interfaces and Addresses &lt;a class="headline-link" href="#show-interfaces-and-addresses" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect links and assigned IP addresses.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip link show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all network interfaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip link show dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show one interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip addr show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all IP addresses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip addr show dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show addresses on one interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -br addr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Brief interface and address overview&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="add-and-remove-ip-addresses"&gt;Add and Remove IP Addresses &lt;a class="headline-link" href="#add-and-remove-ip-addresses" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Assign or remove IP addresses on interfaces.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip addr add 192.168.1.50/24 dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add IPv4 address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip addr del 192.168.1.50/24 dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove IPv4 address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip addr add 2001:db8::50/64 dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add IPv6 address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip addr flush dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove all addresses from interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip addr show dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify interface addresses&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="bring-interfaces-up-or-down"&gt;Bring Interfaces Up or Down &lt;a class="headline-link" href="#bring-interfaces-up-or-down" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Enable, disable, or rename network links.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip link set dev eth0 up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bring interface up&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip link set dev eth0 down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bring interface down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip link set dev eth0 mtu 9000&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Change MTU&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip link set dev eth0 name lan0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rename interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -br link&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show link state quickly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="routing-table"&gt;Routing Table &lt;a class="headline-link" href="#routing-table" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect and manage network routes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip route show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show IPv4 routing table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -6 route show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show IPv6 routing table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip route get 8.8.8.8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show route used for destination&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip route add default via 192.168.1.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add default gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip route del default&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove default gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip route add 10.10.0.0/16 via 192.168.1.254 dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add static route&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="neighbor-arpndp-table"&gt;Neighbor (ARP/NDP) Table &lt;a class="headline-link" href="#neighbor-arpndp-table" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;View and manage neighbor cache entries.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip neigh show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show neighbor table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip neigh show dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show neighbors for one interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip neigh flush dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear neighbor entries on interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip neigh del 192.168.1.10 dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a neighbor entry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -s neigh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show neighbor statistics&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="policy-routing"&gt;Policy Routing &lt;a class="headline-link" href="#policy-routing" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Work with multiple routing tables and rules.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip rule show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List policy routing rules&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip rule add from 192.168.10.0/24 table 100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Route source subnet using table 100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip route add default via 10.0.0.1 table 100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add default route to custom table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip rule del from 192.168.10.0/24 table 100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove policy rule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip route show table 100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show routes in table 100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="network-namespaces"&gt;Network Namespaces &lt;a class="headline-link" href="#network-namespaces" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Inspect or run commands inside network namespaces.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip netns list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List network namespaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip netns add ns1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create namespace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip netns exec ns1 ip a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;ip a&lt;/code&gt; inside namespace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo ip netns del ns1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete namespace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ip -n ns1 route&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show routes in namespace&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="troubleshooting"&gt;Troubleshooting &lt;a class="headline-link" href="#troubleshooting" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Fast checks for common network issues.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No IP assigned to interface&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ip addr show dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interface is down&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ip link show dev eth0&lt;/code&gt; then &lt;code&gt;sudo ip link set dev eth0 up&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong default route&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ip route show&lt;/code&gt; and verify &lt;code&gt;default via ...&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cannot reach destination&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ip route get DESTINATION_IP&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stale ARP/neighbor entry&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo ip neigh flush dev eth0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="card"&gt;
&lt;h3 id="related-guides"&gt;Related Guides &lt;a class="headline-link" href="#related-guides" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Use these articles for detailed networking workflows.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/linux-ip-command/"&gt;&lt;code&gt;Linux ip Command with Examples&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Complete &lt;code&gt;ip&lt;/code&gt; command guide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/how-to-find-ip-address-linux/"&gt;&lt;code&gt;How to Find Your IP Address in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Public and private IP lookup methods&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/post/traceroute-command-in-linux/"&gt;&lt;code&gt;Traceroute Command in Linux&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Path and hop diagnostics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://linuxize.com/cheatsheet/ufw/"&gt;&lt;code&gt;UFW Cheatsheet&lt;/code&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Firewall rules quick reference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</content:encoded></item></channel></rss>