<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shell on Bruce on AI Engineering</title><link>http://www.heyuan110.com/tags/shell/</link><description>Recent content in Shell on Bruce on AI Engineering</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 22 Jan 2026 15:47:58 +0800</lastBuildDate><atom:link href="http://www.heyuan110.com/tags/shell/index.xml" rel="self" type="application/rss+xml"/><item><title>Bash Special Variables Explained: $$, $?, $@, $# and More</title><link>http://www.heyuan110.com/posts/linux/2019-05-13-linux-shell-vars/</link><pubDate>Thu, 22 Jan 2026 15:47:58 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2019-05-13-linux-shell-vars/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/linux/2019-05-13-linux-shell-vars/cover.webp"
 alt="A complete guide to Bash special variables for Shell scripting"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="900"
/&gt;
&lt;/p&gt;
&lt;p&gt;If you have written any Bash scripts, you have almost certainly encountered cryptic-looking variables like &lt;code&gt;$?&lt;/code&gt;, &lt;code&gt;$@&lt;/code&gt;, and &lt;code&gt;$$&lt;/code&gt;. These are &lt;strong&gt;special parameters&lt;/strong&gt; built into Bash that give you access to script metadata, command-line arguments, and process information. Understanding them is essential for writing robust Shell scripts.&lt;/p&gt;
&lt;p&gt;This guide walks through every special variable with clear explanations, real-world use cases, and runnable examples.&lt;/p&gt;</description></item><item><title>Linux and macOS Command Cheat Sheet for Developers</title><link>http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/</link><pubDate>Thu, 19 Mar 2020 10:55:52 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/</guid><description>&lt;p&gt;The command line is an essential skill for every developer. This reference organizes the most frequently used Linux and macOS commands by category for quick lookup.&lt;/p&gt;
&lt;h2 id="networking"&gt;Networking&lt;a href="#networking" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="netstat--view-network-connections"&gt;netstat — View Network Connections&lt;a href="#netstat--view-network-connections" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Oh My Zsh Setup Guide: Build a Productive Terminal Environment</title><link>http://www.heyuan110.com/posts/linux/2015-06-17-shell-zsh/</link><pubDate>Wed, 17 Jun 2015 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/linux/2015-06-17-shell-zsh/</guid><description>&lt;p&gt;If you spend any time in a terminal on Linux or macOS, you owe it to yourself to move beyond the default Bash experience. &lt;strong&gt;Zsh&lt;/strong&gt; paired with &lt;strong&gt;Oh My Zsh&lt;/strong&gt; transforms your shell into something far more capable and enjoyable to use. This guide walks you through the entire setup — from installing Zsh to fine-tuning performance — so you can get more done on the &lt;a href="http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/"&gt;command line&lt;/a&gt; with less effort.&lt;/p&gt;</description></item></channel></rss>