<html> <head> <title>fish user documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <style type='text/css'> /* fish documentation CSS overrides */ /* No scrollbar on the body. Our columns are independently scrollable */ body { overflow: hidden; } .fish_left_bar, .fish_right_bar, .fish_only_bar { position: absolute; top: 36px; bottom: 0; overflow-y: scroll; -webkit-overflow-scrolling: touch; /* necessary for momentum scrolling */ } .fish_left_bar { width: 250px; color: white; } .fish_left_bar a { color: white; } .fish_left_bar a:visited { color: inherit; } .fish_right_bar { margin-left: 250px; margin-right: 0px; padding: 0 0 0 20px; /* 20 px on left */ background-color: white; -moz-box-shadow: -5px 0px 5px -2px black; -webkit-box-shadow: -5px 0px 5px -2px black; box-shadow: -5px 0px 5px -2px black; } .fish_right_bar p { margin-right: 8px; } .fish_left_big { width: 380px; } .fish_right_little { margin-left: 380px; } .fish_left_medium { width: 280; } .fish_right_medium { margin-left: 280; } .fish_left_little { width: 200px; } .fish_right_big { margin-left: 200px; } .fish_only_bar { padding: 0px 20px; } h1, h2, h3 { color: #1E335E; } h1 { font-size: 150%; } h2 { font-size: 115%; } h3 { font-size: 105%; } /* Don't show the header */ div.header { display: none; } h1.interior_title, h1.interior_title_borderless { color: #333; } h1.interior_title { padding-bottom: 10px; border-bottom: 1px solid #AAA; } div.contents { margin: 0px; } div.qindex { height: 30px; line-height: 30px; text-align: center; background-image: none; color: white; border: none; } .fish_left_bar, div.header, div.qindex { background-color: #1E335E; } div.qindex { border: none; padding: 3px 0px; /* Ensure the bottom border is visible over the left column */ position: relative; z-index: 2; } div.qindex a { color: white; } /* Hide the doxygen logo */ .footer { display: none; } /* Don't let pre elements create a minimum width on the right bar */ .fish_right_bar pre { white-space:pre-wrap; } /* Adjust list */ .fish_left_bar ul { padding-left: 27px; padding-right: 10px; } .fish_left_bar ul li { margin-bottom: 5px; } /* Tighter lists for the little (command) bar */ .fish_left_little ul li { margin-bottom: 0; } /* Adjust sublists */ .fish_left_bar ul ul { padding-left: 17px; } .fish_left_bar ul ul li { margin-bottom: 0; } /* Link hover */ .fish_left_bar a:hover { text-decoration: none; background-color: inherit; color: #99BBFF; } /* Horizontal bar */ hr { height: 1px; border: 0; background-color: #AAA; } </style> </head> <body> <div class="qindex"> <a class="qindex" href="http://fishshell.com/"><tt>fish</tt> shell</a> | <a class="qindex" href="index.html">Documentation</a> | <a class="qindex" href="tutorial.html">Tutorial</a> | <a class="qindex" href="design.html">Design</a> | <a class="qindex" href="commands.html">Commands</a> | <a class="qindex" href="faq.html">FAQ</a> | <a class="qindex" href="license.html">License</a> </div> <!-- Generated by Doxygen 1.8.7 --> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">doc.h</div> </div> </div><!--header--> <div class="contents"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> <div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> \htmlonly </div> \endhtmlonly</div> <div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  color: #005fd7;</div> <div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  font-weight: normal;</div> <div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> }</div> <div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> </div> <div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> pre i {</div> <div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  <span class="comment">/* Used for arguments */</span></div> <div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>  color: #00afff;</div> <div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  font-style: normal;</div> <div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> }</div> <div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> </div> <div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> pre em {</div> <div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  <span class="comment">/* Used for path/help word */</span></div> <div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  color: #0a0;</div> <div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  font-style: normal;</div> <div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> }</div> <div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> </div> <div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> .quote {</div> <div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  color: #A50;</div> <div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> }</div> <div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> </div> <div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> .error {</div> <div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  <span class="comment">/* Used for errors */</span></div> <div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  color: #F55;</div> <div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  font-weight: bold;</div> <div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> }</div> <div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> </div> <div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> .tutorial_nav {</div> <div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  position: relative;</div> <div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  z-index: 2;</div> <div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>  margin-left: 10px;</div> <div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  margin-top: 15px;</div> <div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> }</div> <div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> </div> <div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> .tutorial_nav ul {</div> <div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  padding: 0 15px;</div> <div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  margin: 0;</div> <div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> }</div> <div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> </div> <div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> .tutorial_nav li {</div> <div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  margin: 0;</div> <div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  line-height: normal;</div> <div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  height: <span class="keyword">auto</span>;</div> <div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  color: #EEE;</div> <div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  font-size: 12pt;</div> <div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  font-family: <span class="stringliteral">"Trebuchet MS"</span>, Verdana, Arial, sans-serif;</div> <div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  list-style-image: none;</div> <div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  list-style-position: outside;</div> <div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  list-style-type: none;</div> <div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  padding: 3px 15px;</div> <div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  margin: 0 -15px;</div> <div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> }</div> <div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> </div> <div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> .tutorial_nav a {</div> <div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  color: inherit;</div> <div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  text-decoration: none;</div> <div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  font-family:</div> <div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  font-size: 12pt;</div> <div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> }</div> <div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> </div> <div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> .tutorial_nav .chevron {</div> <div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  font-family: Times, <span class="stringliteral">"Times New Roman"</span>;</div> <div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  color: #DDF;</div> <div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  font-size: 16pt;</div> <div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  line-height: 10pt;</div> <div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>  font-weight: bold;</div> <div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> }</div> <div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> </div> <div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> .no_shadow > li > a,</div> <div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> .no_shadow {</div> <div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  text-shadow: none;</div> <div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> }</div> <div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> </div> <div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> .nav > li > a:hover {</div> <div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  text-decoration: none;</div> <div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  background-color: inherit;</div> <div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  color: #99BBFF;</div> <div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> }</div> <div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> </div> <div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> <span class="comment">/* Override some default left bar stuff */</span></div> <div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> ul.nav li {</div> <div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  margin-bottom: 0;</div> <div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> }</div> <div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> </div> <div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> </div> <div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> .title_top {</div> <div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  width: 100%;</div> <div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  text-align: left;</div> <div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  color: white;</div> <div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  font-size: 18pt;</div> <div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  height: 72px;</div> <div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  z-index: 1;</div> <div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  text-indent: 260px;</div> <div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> }</div> <div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> </div> <div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> .tutorial_content {</div> <div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  -moz-box-shadow: -5px 0px 5px -2px black;</div> <div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>  -webkit-box-shadow: -5px 0px 5px -2px black;</div> <div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  box-shadow: -5px 0px 5px -2px black;</div> <div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> </div> <div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>  margin-left: 280px;</div> <div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  padding: 1px 25px 10px 10px;</div> <div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  position: relative;</div> <div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  z-index: 5;</div> <div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  background-color: white;</div> <div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> }</div> <div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> </div> <div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> h3 {</div> <div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  font-size: 25px;</div> <div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>  margin-top: 12px;</div> <div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> }</div> <div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> </div> <div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> h1, h2, h3 { color: #1E335E; }</div> <div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> h1.interior_title {</div> <div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>  color: #333;</div> <div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  padding-bottom: 10px;</div> <div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>  border-bottom: 1px solid #AAA;</div> <div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> }</div> <div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> </div> <div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> h1 { font-size: 150%; }</div> <div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> h2 { font-size: 135%; }</div> <div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> h3 { font-size: 110%; }</div> <div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> </div> <div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> </div> <div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> </div> <div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> </style></div> <div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> </div> <div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> </div> <div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <div <span class="keyword">class</span>=<span class="stringliteral">"fish_left_bar fish_left_medium"</span>></div> <div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>  <div <span class="keyword">class</span>=<span class="stringliteral">"tutorial_nav"</span>></div> <div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>  <ul <span class="keyword">class</span>=<span class="stringliteral">"nav no_shadow"</span>></div> <div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>  <li><a href=<span class="stringliteral">"#tut_why_fish"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Why fish?</a></li></div> <div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>  <li><a href=<span class="stringliteral">"#tut_learning_Fish"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Learning fish</a></li></div> <div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>  <li><a href=<span class="stringliteral">"#tut_running_commands"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Running Commands</a></li></div> <div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>  <li><a href=<span class="stringliteral">"#tut_getting_help"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Getting Help</a></li></div> <div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  <li><a href=<span class="stringliteral">"#tut_syntax_highlighting"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Syntax Highlighting</a></li></div> <div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>  <li><a href=<span class="stringliteral">"#tut_wildcards"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Wildcards</a></li></div> <div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  <li><a href=<span class="stringliteral">"#tut_pipes_and_redirections"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Pipes and Redirections</a></li></div> <div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <li><a href=<span class="stringliteral">"#tut_autosuggestions"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Autosuggestions</a></li></div> <div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  <li><a href=<span class="stringliteral">"#tut_tab_completions"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Tab Completions</a></li></div> <div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  <li><a href=<span class="stringliteral">"#tut_variables"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Variables</a></li></div> <div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  <li><a href=<span class="stringliteral">"#tut_exit_status"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Exit Status</a></li></div> <div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  <li><a href=<span class="stringliteral">"#tut_exports"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Environment Variables</a></li></div> <div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <li><a href=<span class="stringliteral">"#tut_lists"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Lists</a></li></div> <div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  <li><a href=<span class="stringliteral">"#tut_command_substitutions"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Command Substitutions</a></li></div> <div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  <li><a href=<span class="stringliteral">"#tut_combiners"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Combiners (And, Or, Not)</a></li></div> <div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  <li><a href=<span class="stringliteral">"#tut_conditionals"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Conditionals (If, Else, Switch)</a></li></div> <div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <li><a href=<span class="stringliteral">"#tut_functions"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Functions</a></li></div> <div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <li><a href=<span class="stringliteral">"#tut_loops"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Loops</a></li></div> <div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>  <li><a href=<span class="stringliteral">"#tut_prompt"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Prompt</a></li></div> <div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>  <li><a href=<span class="stringliteral">"#tut_startup"</span>><span <span class="keyword">class</span>=<span class="stringliteral">"chevron"</span>>&rsaquo;</span> Startup</a></li></div> <div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  </ul></div> <div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  </div></div> <div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> </div></div> <div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> </div> <div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <div <span class="keyword">class</span>=<span class="stringliteral">"fish_right_bar fish_right_medium"</span>></div> <div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> </div> <div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> <h1 <span class="keyword">class</span>=<span class="stringliteral">"interior_title"</span>>fish tutorial</h1></div> <div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> </div> <div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> <h2 <span class="keywordtype">id</span>=<span class="stringliteral">"tut_why_fish"</span>>Why fish?</h2></div> <div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> </div> <div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <p>fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. fish supports powerful features like syntax highlighting, autosuggestions, and tab completions that just work, with nothing to learn or configure.</div> <div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> </div> <div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <p>If you want to make your command line more productive, more useful, and more fun, without learning a bunch of arcane syntax and configuration options, then fish might be just what you<span class="stringliteral">'re looking for!</span></div> <div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="stringliteral"><h2 id="tut_learning_Fish">Learning fish</h2></span></div> <div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="stringliteral"><p>This tutorial assumes a basic understanding of command line shells and Unix commands, and that you have a working copy of fish.</span></div> <div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> <span class="stringliteral"><p>If you have a strong understanding of other shells, and want to know what fish does differently, search for the magic phrase <i>unlike other shells</i>, which is used to call out important differences.</span></div> <div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="stringliteral"><p>When you start fish, you should see this:</span></div> <div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> <span class="stringliteral"><pre></span></div> <div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> <span class="stringliteral">Welcome to fish, the friendly interactive shell</span></div> <div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> <span class="stringliteral">Type <em>help</em> for instructions on how to use fish</span></div> <div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="stringliteral">you@hostname <em>~</em>></span></div> <div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> <span class="stringliteral"></pre></span></div> <div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> <span class="stringliteral"><p>fish comes with a default prompt that shows your username, hostname, and working directory. You'</span>ll see <a href=<span class="stringliteral">"#tut_prompt"</span>>how to change your prompt</a> further down. From now on, we<span class="stringliteral">'ll pretend your prompt is just a '</span>><span class="stringliteral">' to save space.</span></div> <div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> <span class="stringliteral"><h2 id="tut_running_commands">Running Commands</h2></span></div> <div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> <span class="stringliteral"><p>fish runs commands like other shells: you type a command, followed by its arguments. Spaces are separators:</span></div> <div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> <span class="stringliteral"><pre></span></div> <div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> <span class="stringliteral">> <b>echo</b> <i>hello world</i></span></div> <div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <span class="stringliteral">hello world</span></div> <div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="stringliteral"></pre></span></div> <div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="stringliteral">You can include a literal space in an argument with a backslash, or by using single or double quotes:</span></div> <div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="stringliteral"><pre></span></div> <div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="stringliteral">> <b>mkdir</b> <i>My\ Files</i></span></div> <div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> <span class="stringliteral">> <b>cp</b> <i>~/Some\ File</i> <i class=quote>'</span>My Files<span class="stringliteral">'</i></span></div> <div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="stringliteral">> <b>ls</b> <i class=quote>"My Files"</i></span></div> <div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="stringliteral">Some File</span></div> <div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="stringliteral"></pre></span></div> <div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="stringliteral">Commands can be chained with semicolons.</span></div> <div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> <span class="stringliteral"><h2 id="tut_getting_help">Getting Help</h2></span></div> <div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> <span class="stringliteral">fish has excellent help and man pages. Run <tt>help</tt> to open help in a web browser, and <tt>man</tt> to open it in a man page. You can also ask for help with a specific command, for example, <tt>help set</tt> to open in a web browser, or <tt>man set</tt> to see it in the terminal.</span></div> <div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> <span class="stringliteral"><pre></span></div> <div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> <span class="stringliteral">> <b>man</b> <i>set</i></span></div> <div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="stringliteral">set - handle environment variables</span></div> <div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <span class="stringliteral"> Synopsis...</span></div> <div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="stringliteral"></pre></span></div> <div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> <span class="stringliteral"></span></div> <div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> <span class="stringliteral"><h2 id="tut_syntax_highlighting">Syntax Highlighting</h2></span></div> <div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> <span class="stringliteral">You'</span>ll quickly notice that fish performs syntax highlighting as you type. Invalid commands are colored red by <span class="keywordflow">default</span>:</div> <div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> </div> <div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> <pre></div> <div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> > <b <span class="keyword">class</span>=<span class="stringliteral">"error"</span>>/bin/mkd</b></div> <div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> </pre></div> <div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> </div> <div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> A command may be invalid because it does not exist, or refers to a file that you cannot execute. When the command becomes valid, it is shown in a different color:</div> <div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> </div> <div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <pre></div> <div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> > <b>/bin/mkdir</b></div> <div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> </pre></div> <div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> </div> <div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> fish will underline valid file paths as you type them:</div> <div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> </div> <div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> <pre></div> <div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> > <b>cat</b> <i><span style=<span class="stringliteral">"text-decoration: underline"</span>>~/somef<u>i</u></span></i></div> <div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> </pre></div> <div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> </div> <div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> <p>This tells you that there exists a file that starts with <span class="stringliteral">'<tt>somefi</tt>'</span>, which is useful feedback as you type.</div> <div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> </div> <div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <p>These colors, and many more, can be changed by running <tt>fish_config</tt>, or by modifying variables directly.</div> <div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> </div> <div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> <h2 <span class="keywordtype">id</span>=<span class="stringliteral">"tut_wildcards"</span>>Wildcards</h2></div> <div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> </div> <div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> fish supports the familiar wildcard *. To list all JPEG files:</div> <div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> </div> <div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> <pre></div> <div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> > <b>ls</b> <i>*.jpg</i></div> <div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> lena.jpg</div> <div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> meena.jpg</div> <div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> santa maria.jpg</div> <div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> </pre></div> <div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> </div> <div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> <p>You can include multiple wildcards:</div> <div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> </div> <div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> <pre></div> <div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> > <b>ls</b> <i>l*.p*</i></div> <div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> lena.png</div> <div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> lesson.pdf</div> <div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> </pre></div> <div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> </div> <div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <p>Especially powerful is the <i>recursive wildcard</i> ** which searches directories recursively:</div> <div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> </div> <div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> <pre></div> <div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> > <b>ls</b> <i>/var</div> <div class="line"><a name="l02382"></a><span class="lineno"> 2382</span> </div> <div class="line"><a name="l03807"></a><span class="lineno"> 3807</span> </div> <div class="line"><a name="l06620"></a><span class="lineno"> 6620</span> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Sep 25 2014 21:11:04 for fish by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.7 </small></address> </body> </html>