<?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 LYon's Blog</title><link>https://yindongliang.com/docs/Linux/%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8EShell/</link><description>Recent content in 命令行与 Shell on LYon's Blog</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://yindongliang.com/docs/Linux/%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8EShell/index.xml" rel="self" type="application/rss+xml"/><item><title>命令行</title><link>https://yindongliang.com/docs/Linux/%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8EShell/%E5%91%BD%E4%BB%A4%E8%A1%8C/</link><pubDate>Fri, 02 Mar 2018 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Linux/%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8EShell/%E5%91%BD%E4%BB%A4%E8%A1%8C/</guid><description>&lt;h2 id="概要">概要&lt;a class="anchor" href="#%e6%a6%82%e8%a6%81">#&lt;/a>&lt;/h2>
&lt;p>文档可参考 &lt;a href="https://github.com/jlevy/the-art-of-command-line">the-art-of-command-line&lt;/a> / &lt;a href="https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md">命令行的艺术&lt;/a>&lt;/p>
&lt;p>如今有 AI 了，也就不需要记住大量选项，高频使用的命令自然而然会记住。&lt;/p>
&lt;h2 id="awk">awk&lt;a class="anchor" href="#awk">#&lt;/a>&lt;/h2>
&lt;p>AWK 镇楼&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>cat table.csv | awk -F&lt;span style="color:#5af78e">&amp;#39;,&amp;#39;&lt;/span> &lt;span style="color:#5af78e">&amp;#39;{print $4}&amp;#39;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="alias">alias&lt;a class="anchor" href="#alias">#&lt;/a>&lt;/h2>
&lt;p>下面是我在 &lt;code>.zshrc&lt;/code> 的 &lt;code>alias&lt;/code> 相关配置，非常实用。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">a&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#39;. venv/bin/activate&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#5af78e">&amp;#39;cd..&amp;#39;&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#39;cd ..&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">cdr&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#39;cd-gitroot&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">o&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#39;open .&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">ctags&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#39;/usr/local/Cellar/ctags/5.8_1/bin/ctags&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">s&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#34;/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">merge&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#34;/Applications/Sublime\ Merge.app/Contents/SharedSupport/bin/smerge&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">c&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#34;~/.cargo/bin/cargo&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">p&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>pyhton3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">i&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>ipython
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">lg&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#39;lazygit&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">d&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>docker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">de&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>deactivate
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">k&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>kubectl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">gg&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>gitup
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">f&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>fuck
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">ts&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>ts-node
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">my&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#34;mycli -uroot -p &amp;#39;&amp;lt;YOUR_DATABASE_PASSWORD&amp;gt;&amp;#39; -h localhost&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">stree&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#39;/Applications/SourceTree.app/Contents/Resources/stree&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff5c57">alias&lt;/span> &lt;span style="color:#ff5c57">x&lt;/span>&lt;span style="color:#ff6ac1">=&lt;/span>&lt;span style="color:#5af78e">&amp;#34;sudo xattr -r -d com.apple.quarantine&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="cat">cat&lt;a class="anchor" href="#cat">#&lt;/a>&lt;/h2>
&lt;h2 id="comm">comm&lt;a class="anchor" href="#comm">#&lt;/a>&lt;/h2>
&lt;p>命令用于比较两个已排过序的文件，不常见但很有用。&lt;/p></description></item><item><title>Shell 脚本</title><link>https://yindongliang.com/docs/Linux/%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8EShell/Shell/</link><pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Linux/%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8EShell/Shell/</guid><description>&lt;h2 id="bash-版本">Bash 版本&lt;a class="anchor" href="#bash-%e7%89%88%e6%9c%ac">#&lt;/a>&lt;/h2>
&lt;p>Dash: Debian Almquist shell&lt;/p>
&lt;p>现在 zsh 比较常用，配合 &lt;a href="https://ohmyz.sh/">oh-my-zsh&lt;/a> 使用更香，zsh 相比 bash 还支持更多脚本功能。&lt;/p>
&lt;h2 id="shell-的父子关系">Shell 的父子关系&lt;a class="anchor" href="#shell-%e7%9a%84%e7%88%b6%e5%ad%90%e5%85%b3%e7%b3%bb">#&lt;/a>&lt;/h2>
&lt;p>通过 &lt;code>ps -f&lt;/code> 可以查看 &lt;code>PID&lt;/code> 和 &lt;code>PPID&lt;/code> 号来判断父子关系，创建了子 Shell 就意味着创建了子进程。&lt;/p></description></item></channel></rss>