diff --git a/docs/index.md b/docs/index.md index d50dfb9..bd90e37 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,56 +1,45 @@ -[](bash4) \~\~DISCUSSION:off\~\~ +--- +# hide: [navigation] +tags: + - bash + - shell + - linux + - scripting +--- # The Bash Hackers Wiki -![](keywords>bash shell linux scripting) +This wiki is intended to hold documentation of any kind about GNU Bash. +The main motivation was to provide *human-readable documentation* and information so users aren't forced to read every bit of the Bash manpage - which can be difficult to understand. +However, the docs here are **not** meant as a newbie tutorial. -Come visit us at #bash ! \~ormaaj +This wiki and any programs found in this wiki are free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -\ This wiki is intended to hold -documentation of any kind about GNU Bash. The main motivation was to -provide *human-readable documentation* and information so users aren\'t -forced to read every bit of the Bash manpage - which can be difficult to -understand. However, the docs here are **not** meant as a newbie -tutorial. +This wiki and its programs are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU General Public License for more details. -This wiki and any programs found in this wiki are free software: you can -redistribute it and/or modify it under the terms of the GNU General -Public License as published by the Free Software Foundation, either -version 3 of the License, or (at your option) any later version. +You should have received a copy of the GNU General Public License along with this program. +If not, see [http://www.gnu.org/licenses/](http://www.gnu.org/licenses/). -This wiki and its programs are distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -Public License for more details. +[What would YOU like to see here?](wishes) (outdated and locked, please use the discussions) -You should have received a copy of the GNU General Public License along -with this program. If not, see \<\>. - -[What would YOU like to see here?](wishes) (outdated and locked, please -use the discussions) - -**Stranger!** [Feel free to -register](http://wiki.bash-hackers.org/start&do=register) and comment or -edit the contents. There is a [Bash Hackers Wiki needs love -page](/meta/need_love) that lists some things to do. The registration is -only there to prevent SPAM. \ +**Stranger!** Feel free to comment or edit the contents on GitHub. +There is a [Bash Hackers Wiki needs love page](/meta/need_love) that lists some things to do. ## Scripting and general information -- [Bash v4 - a rough overview](bash4) (unmaintained, since Bash 4 is - more or less standard) -- [style](/scripting/style) \-- an assorted collection of style and - optic hints -- [basics](/scripting/basics) -- [newbie_traps](/scripting/newbie_traps) -- [bashbehaviour](/scripting/bashbehaviour) -- [posparams](/scripting/posparams) -- [processtree](/scripting/processtree) -- [obsolete](/scripting/obsolete) -- [nonportable](/scripting/nonportable) -- [debuggingtips](/scripting/debuggingtips) -- [terminalcodes](/scripting/terminalcodes) -- [tutoriallist](/scripting/tutoriallist) +- [Bash v4 - a rough overview](bash4) (unmaintained, since Bash 4 is more or less standard) +- [style](/scripting/style) – an assorted collection of style and optic hints +- [basics](/scripting/basics) +- [newbie_traps](/scripting/newbie_traps) +- [bashbehaviour](/scripting/bashbehaviour) +- [posparams](/scripting/posparams) +- [processtree](/scripting/processtree) +- [obsolete](/scripting/obsolete) +- [nonportable](/scripting/nonportable) +- [debuggingtips](/scripting/debuggingtips) +- [terminalcodes](/scripting/terminalcodes) +- [tutoriallist](/scripting/tutoriallist) ## Code snippets @@ -58,347 +47,216 @@ There is a [section that holds small code snippets](/snipplets/start). See also [some Bash source code excerpts](/misc/readthesourceluke). -## How to\.... +## How to [Doing specific tasks: concepts, methods, ideas](/howto/start): -- [Simple locking (against parallel run)](/howto/mutex) -- [Rudimentary config files for your scripts](/howto/conffile) -- [Editing files with ed(1)](/howto/edit-ed) -- [Collapsing Functions](/howto/collapsing_functions) -- [Illustrated Redirection Tutorial](/howto/redirection_tutorial) -- [Calculate with dc(1)](/howto/calculate-dc) -- [Introduction to pax - the POSIX archiver](/howto/pax) -- [getopts_tutorial](/howto/getopts_tutorial) (*under construction!*) -- [dissectabadoneliner](/howto/dissectabadoneliner) An example of a - bad oneliner, breakdown and fix (by `kojoro`) -- [Write tests for ./your-script.sh](/howto/testing-your-scripts) by - using bashtest util +- [Simple locking (against parallel run)](/howto/mutex) +- [Rudimentary config files for your scripts](/howto/conffile) +- [Editing files with ed](/howto/edit-ed) +- [Collapsing Functions](/howto/collapsing_functions) +- [Illustrated Redirection Tutorial](/howto/redirection_tutorial) +- [Calculate with dc](/howto/calculate-dc) +- [Introduction to pax - the POSIX archiver](/howto/pax) +- [getopts_tutorial](/howto/getopts_tutorial) (*under construction!*) +- [dissectabadoneliner](/howto/dissectabadoneliner) An example of a bad oneliner, breakdown and fix (by `kojoro`) +- [Write tests for ./your-script.sh](/howto/testing-your-scripts) by using bashtest util ## Bash syntax and operations -- [Bash features overview by version](/scripting/bashchanges) -- [Basic grammar rules](/syntax/basicgrammar) -- [Quoting and character escaping](/syntax/quoting) -- [Parsing and execution](/syntax/grammar/parser_exec) -- [Some words about words\...](/syntax/words) -- [Patterns and pattern matching](/syntax/pattern) -- [Arithmetic expressions](/syntax/arith_expr) -- [List of shell options](/internals/shell_options) -- [Redirection](/syntax/redirection) -- [Special parameters and shell variables](/syntax/shellvars) -- [Arrays](/syntax/arrays) +- [Bash features overview by version](/scripting/bashchanges) +- [Basic grammar rules](/syntax/basicgrammar) +- [Quoting and character escaping](/syntax/quoting) +- [Parsing and execution](/syntax/grammar/parser_exec) +- [Some words about words...](/syntax/words) +- [Patterns and pattern matching](/syntax/pattern) +- [Arithmetic expressions](/syntax/arith_expr) +- [List of shell options](/internals/shell_options) +- [Redirection](/syntax/redirection) +- [Special parameters and shell variables](/syntax/shellvars) +- [Arrays](/syntax/arrays) -\ ***[Compound commands]{.underline}*** +## Compound commands - **[Compound commands overview](/syntax/ccmd/intro)** - ------------------------------------------------------ ------------------------------------------------------------------ - Grouping - `{ ...; }` [command grouping](/syntax/ccmd/grouping_plain) - `( ... )` [command grouping in a subshell](/syntax/ccmd/grouping_subshell) - Conditionals - `[[ ... ]]` [conditional expression](/syntax/ccmd/conditional_expression) - `if ...; then ...; fi` [conditional branching](/syntax/ccmd/if_clause) - `case ... esac` [pattern-based branching](/syntax/ccmd/case) - Loops - `for word in ...; do ...; done` [classic for-loop](/syntax/ccmd/classic_for) - `for ((x=1; x<=10; x++)); do ...; done` [C-style for-loop](/syntax/ccmd/c_for) - `while ...; do ...; done` [while loop](/syntax/ccmd/while_loop) - `until ...; do ...; done` [until loop](/syntax/ccmd/until_loop) - Misc - `(( ... ))` [arithmetic evaluation](/syntax/ccmd/arithmetic_eval) - `select word in ...; do ...; done` [user selections](/syntax/ccmd/user_select) +| [Compound commands overview](/syntax/ccmd/intro) | | +| ------------------------------------------------ | ---------------------------------------------------------------- | +| **Grouping** | | +| `{ ...; }` | [command grouping](/syntax/ccmd/grouping_plain) | +| `( ... )` | [command grouping in a subshell](/syntax/ccmd/grouping_subshell) | +| **Conditionals** | | +| `[[ ... ]]` | [conditional expression](/syntax/ccmd/conditional_expression) | +| `if ...; then ...; fi` | [conditional branching](/syntax/ccmd/if_clause) | +| `case ... esac` | [pattern-based branching](/syntax/ccmd/case) | +| **Loops** | | +| `for word in ...; do ...; done` | [classic for-loop](/syntax/ccmd/classic_for) | +| `for ((x=1; x<=10; x++)); do ...; done` | [C-style for-loop](/syntax/ccmd/c_for) | +| `while ...; do ...; done` | [while loop](/syntax/ccmd/while_loop) | +| `until ...; do ...; done` | [until loop](/syntax/ccmd/until_loop) | +| **Misc** | | +| `(( ... ))` | [arithmetic evaluation](/syntax/ccmd/arithmetic_eval) | +| `select word in ...; do ...; done` | [user selections](/syntax/ccmd/user_select) | -\ +## Expansions and substitutions -\ ***[Expansions and substitutions]{.underline}*** - - **[Introduction to expansions and substitutions](/syntax/expansion/intro)** - ----------------------------------------------------------------------------- ------------------------------------------------------ - `{A,B,C} {A..C}` [Brace expansion](/syntax/expansion/brace) - `~/ ~root/` [Tilde expansion](/syntax/expansion/tilde) - `$FOO ${BAR%.mp3}` [Parameter expansion](/syntax/pe) - `` `command` $(command) `` [Command substitution](/syntax/expansion/cmdsubst) - `<(command) >(command)` [Process substitution](/syntax/expansion/proc_subst) - `$((1 + 2 + 3)) $[4 + 5 + 6]` [Arithmetic expansion](/syntax/expansion/arith) - `Hello <---> Word!` [Word splitting](/syntax/expansion/wordsplit) - `/data/*-av/*.mp?` [Pathname expansion](/syntax/expansion/globs) - -\ \\ +| [Introduction to expansions and substitutions](/syntax/expansion/intro) | | +| ------------------------------------------------------------------------| ---------------------------------------------------- | +| `{A,B,C} {A..C}` | [Brace expansion](/syntax/expansion/brace) | +| `~/ ~root/` | [Tilde expansion](/syntax/expansion/tilde) | +| `$FOO ${BAR%.mp3}` | [Parameter expansion](/syntax/pe) | +| `` `command` $(command) `` | [Command substitution](/syntax/expansion/cmdsubst) | +| `<(command) >(command)` | [Process substitution](/syntax/expansion/proc_subst) | +| `$((1 + 2 + 3)) $[4 + 5 + 6]` | [Arithmetic expansion](/syntax/expansion/arith) | +| `Hello <---> Word!` | [Word splitting](/syntax/expansion/wordsplit) | +| `/data/*-av/*.mp?` | [Pathname expansion](/syntax/expansion/globs) | ## Builtin Commands -This is a selection of builtin commands and command-like keywords, -loosely arranged by their common uses. These are provided directly by -the shell, rather than invoked as standalone external commands. +This is a selection of builtin commands and command-like keywords, loosely arranged by their common uses. +These are provided directly by the shell, rather than invoked as standalone external commands. -\ +### Declaration commands - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - Declaration commands\ Alt Type - \Commands that set and query attributes/types, and manipulate simple datastructures.\ - --------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------ -------------- ----------------- - [declare](/commands/builtin/declare) Display or set shell variables or functions along with attributes. `typeset` builtin +!!! note + Commands that set and query attributes/types, and manipulate simple datastructures. - [export](/commands/builtin/export) Display or set shell variables, also giving them the export attribute. `typeset -x` special builtin +| Command | Description | Alt | Type | +| -------------------------------------- | ---------------------------------------------------------------------- | ------------ | --------------- | +| [declare](/commands/builtin/declare) | Display or set shell variables or functions along with attributes. | `typeset` | builtin | +| [export](/commands/builtin/export) | Display or set shell variables, also giving them the export attribute. | `typeset -x` | special builtin | +| [eval](/commands/builtin/eval) | Evaluate arguments as shell code. | | special builtin | +| [local](/commands/builtin/local) | Declare variables as having function local scope. | | builtin | +| [readonly](/commands/builtin/readonly) | Mark variables or functions as read-only. | `typeset -r` | special builtin | +| [unset](/commands/builtin/unset) | Unset variables and functions. | | special builtin | +| [shift](/commands/builtin/shift) | Shift positional parameters | | special builtin | - [eval](/commands/builtin/eval) Evaluate arguments as shell code. \- special builtin +### IO - [local](/commands/builtin/local) Declare variables as having function local scope. \- builtin +!!! note + Commands for reading/parsing input, or producing/formatting output of standard streams. - [readonly](/commands/builtin/readonly) Mark variables or functions as read-only. `typeset -r` special builtin +| Command | Description | Alt | Type | +| ------------------------------------ | ---------------------------------------------------------------------- | ----------- | ---------| +| [coproc](/syntax/keywords/coproc) | Co-processes: Run a command in the background with pipes for reading / writing its standard streams. | | keyword | +| [echo](/commands/builtin/echo) | Create output from arguments. | | builtin | +| [mapfile](/commands/builtin/mapfile) | Read lines of input into an array. | `readarray` | builtin | +| [printf](/commands/builtin/printf) | "advanced `echo`" | | builtin | +| [read](/commands/builtin/read) | Read input into variables or arrays, or split strings into fields using delimiters. | | builtin | - [unset](/commands/builtin/unset) Unset variables and functions. \- special builtin +### Configuration and Debugging - [shift](/commands/builtin/shift) Shift positional parameters \- special builtin +!!! note + Commands that modify shell behavior, change special options, assist in debugging. - I/O\ Alt Type - \Commands for reading/parsing input, or producing/formatting output of standard streams.\ +| Command | Description | Alt | Type | +| ---------------------------------- | ----------------------------------------------------------------------------- | --- | --------------- | +| [caller](/commands/builtin/caller) | Identify/print execution frames. | | builtin | +| [set](/commands/builtin/set) | Set the positional parameters and/or set options that affect shell behaviour. | | special builtin | +| [shopt](/commands/builtin/shopt) | set/get some bash-specific shell options. | | builtin | - [coproc](/syntax/keywords/coproc) Co-processes: Run a command in the background with pipes for reading / writing its standard streams. \- keyword +### Control flow and data processing - [echo](/commands/builtin/echo) Create output from arguments. \- builtin +!!! note + Commands that operate on data and/or affect control flow. - [mapfile](/commands/builtin/mapfile) Read lines of input into an array. `readarray` builtin +| Command | Description | Alt | Type | +| --------------------------------------------------- | ---------------------------------------------------- | -------- | --------------- | +| [colon](/commands/builtin/true) | "true" null command. | `true` | special builtin | +| [dot](/commands/builtin/source) | Source external files. | `source` | special builtin | +| [false](/commands/builtin/false) | Fail at doing nothing. | | builtin | +| [continue / break](/commands/builtin/continueBreak) | continue with or break out of loops. | | special builtin | +| [let](/commands/builtin/let) | Arithmetic evaluation simple command. | | builtin | +| [return](/commands/builtin/return) | Return from a function with a specified exit status. | | special builtin | +| [[]](/commands/classictest) | The classic `test` simple command. | `test` | builtin | - [printf](/commands/builtin/printf) \"advanced `echo`.\" \- builtin +### Process and Job control - [read](/commands/builtin/read) Read input into variables or arrays, or split strings into fields using delimiters. \- builtin +!!! note + Commands related to jobs, signals, process groups, subshells. - Configuration and Debugging\ Alt Type - \Commands that modify shell behavior, change special options, assist in debugging.\ - - [caller](/commands/builtin/caller) Identify/print execution frames. \- builtin - - [set](/commands/builtin/set) Set the positional parameters and/or set options that affect shell behaviour. \- special builtin - - [shopt](/commands/builtin/shopt) set/get some bash-specific shell options. \- builtin - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -\ - -\ - - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - Control flow and data processing\ Alt Type - \Commands that operate on data and/or affect control flow.\ - ------------------------------------------------------------------------------------------------------------- -------------------------------------------------------- -------- ----------------- - [colon](/commands/builtin/true) \"true\" null command. true special builtin - - [dot](/commands/builtin/source) Source external files. source special builtin - - [false](/commands/builtin/false) Fail at doing nothing. \- builtin - - [continue / break](/commands/builtin/continueBreak) continue with or break out of loops. \- special builtin - - [let](/commands/builtin/let) Arithmetic evaluation simple command. \- builtin - - [return](/commands/builtin/return) Return from a function with a specified exit status. \- special builtin - - [\[](/commands/classictest) The classic `test` simple command. test builtin - - Process and Job control\ Alt Type - \Commands related to jobs, signals, process groups, subshells.\ - - [exec](/commands/builtin/exec) Replace the current shell process or set redirections. \- special builtin - - [exit](/commands/builtin/exit) Exit the shell. \- special builtin - - [kill](/commands/builtin/kill) Send a signal to specified process(es) \- builtin - - [trap](/commands/builtin/trap) Set signal handlers or output the current handlers. \- special builtin - - [times](/commands/builtin/times) Display process times. \- special builtin - - [wait](/commands/builtin/wait) Wait for background jobs and asynchronous lists. \- builtin - - Alt Type - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -\ \\ \ previous alphabetical -version \ - - A-G - -------------------------------------- ------------------------------------------------------------------------------------------------------ - [caller](/commands/builtin/caller) identify/print execution frames (Bash builtin) - [coproc](/syntax/keywords/coproc) Co-processes (Bash keyword) - [declare](/commands/builtin/declare) display or set shell variables or functions along with attributes (Bash builtin, synonym: `typeset`) - [exec](/commands/builtin/exec) replace the shell, set redirections (Bash builtin) - I-N - [let](/commands/builtin/let) arithmetic evaluation - an old fashioned way (Bash builtin) - [mapfile](/commands/builtin/mapfile) Mapping lines of input to an array, also named `readarray` (Bash builtin) - -\ - -\ - - O-T - ---------------------------------------- ------------------------------------------------------------------ - [printf](/commands/builtin/printf) \"advanced `echo`\" (Bash builtin) - [read](/commands/builtin/read) getting input from `stdin` (Bash builtin) - [readonly](/commands/builtin/readonly) mark variables or functions as read-only (Bash builtin) - [set](/commands/builtin/set) control positional parameters and shell behaviour (Bash builtin) - [shopt](/commands/builtin/shopt) set/get shell options (Bash builtin) - [test](/commands/classictest) the classic `test` command (Bash builtin) - U-Z - [unset](/commands/builtin/unset) unset variables and functions (Bash builtin) - -\ \\ \ +| Command | Description | Alt | Type | +| -------------------------------- | ------------------------------------------------------ | --- | --------------- | +| [exec](/commands/builtin/exec) | Replace the current shell process or set redirections. | | special builtin | +| [exit](/commands/builtin/exit) | Exit the shell. | | special builtin | +| [trap](/commands/builtin/trap) | Set signal handlers or output the current handlers. | | special builtin | +| [kill](/commands/builtin/kill) | Send a signal to specified process(es) | | builtin | +| [times](/commands/builtin/times) | Display process times. | | special builtin | +| [wait](/commands/builtin/wait) | Wait for background jobs and asynchronous lists. | | builtin | ## Dictionary -\A list of expressions, words, and their meanings is -[here](/dict/index).\ +A list of expressions, words, and their meanings is [here](/dict/index). ## Links ### Official Bash links -- [Chet Ramey\'s Bash - page](http://tiswww.case.edu/php/chet/bash/bashtop.html) and its - [FAQ](http://tiswww.case.edu/php/chet/bash/FAQ). -- [GNU Bash software page](http://www.gnu.org/software/bash/) -- Official Bash mailing lists: - - **Bug reports**: - ([archives](http://mail.gnu.org/pipermail/bug-bash)) - - **General questions**: - ([archives](http://mail.gnu.org/pipermail/help-bash)) -- Official Bash git repository: - - **Browse**: [cgit](http://git.savannah.gnu.org/cgit/bash.git) - - **Clone**: // ssh://git.sv.gnu.org/srv/git/bash.git • - // ssh://git.sv.gnu.org/srv/git/bash.git • // - http://git.savannah.gnu.org/r/bash.git +- [Chet Ramey's Bash page](http://tiswww.case.edu/php/chet/bash/bashtop.html) and its [FAQ](http://tiswww.case.edu/php/chet/bash/FAQ). +- [GNU Bash software page](http://www.gnu.org/software/bash/) +- Official Bash mailing lists: + - **Bug reports**: ([archives](http://mail.gnu.org/pipermail/bug-bash)) + - **General questions**: ([archives](http://mail.gnu.org/pipermail/help-bash)) +- Official Bash git repository: + - **Browse**: [cgit](http://git.savannah.gnu.org/cgit/bash.git) + - **Clone**: `git clone git.sv.gnu.org/srv/git/bash.git` ### Recommended Shell resources -- [Greg\'s wiki](http://mywiki.wooledge.org/) - Greg Wooledge\'s (aka - \"greycat\") wiki \-- with **MASSIVE** information about Bash and - UNIX(r) in general. - - [BashFAQ](http://mywiki.wooledge.org/BashFAQ) • - [BashGuide](http://mywiki.wooledge.org/BashGuide) • - [BashPitfalls](http://mywiki.wooledge.org/BashPitfalls) • - [BashSheet](http://mywiki.wooledge.org/BashSheet) -- [Sven Mascheck\'s pages](http://www.in-ulm.de/~mascheck/) - A - goldmine of information. A must-read. -- [#ksh channel page](https://www.mirbsd.org/ksh-chan.htm) - #ksh - Freenode channel page maintains a solid collection of recommended - links. -- [The Grymoire Unix pages](http://www.grymoire.com/Unix/) - Good - scripting information, especially read the - [quoting](http://www.grymoire.com/Unix/Quote.html) guide. -- [Heiner\'s \"Shell Dorado\"](http://www.shelldorado.com) - Tips, - tricks, links - for every situation. -- [The Single Unix Specification (version 4, aka - POSIX-2008)](http://pubs.opengroup.org/onlinepubs/9699919799/) -- [The Austin Group](http://www.opengroup.org/austin/) - [List - archives](http://dir.gmane.org/gmane.comp.standards.posix.austin.general), - [Bug tracker](http://austingroupbugs.net/main_page.php) -- [comp.unix.shell FAQ](http://cfajohnson.com/shell/cus-faq.html) -- [Advanced Bash-Scripting - Guide](https://tldp.org/LDP/abs/html/index.html) - last update: 10 - Mar 2014, but still very useful guide. +- [Greg's wiki](http://mywiki.wooledge.org/) - Greg Wooledge's (aka "greycat") wiki -- with **MASSIVE** information about Bash and UNIX(r) in general. +- [BashFAQ](http://mywiki.wooledge.org/BashFAQ) • [BashGuide](http://mywiki.wooledge.org/BashGuide) • [BashPitfalls](http://mywiki.wooledge.org/BashPitfalls) • [BashSheet](http://mywiki.wooledge.org/BashSheet) +- [Sven Mascheck's pages](http://www.in-ulm.de/~mascheck/) - A goldmine of information. A must-read. +- [#ksh channel page](https://www.mirbsd.org/ksh-chan.htm) - #ksh Freenode channel page maintains a solid collection of recommended links. +- [The Grymoire Unix pages](http://www.grymoire.com/Unix/) - Good scripting information, especially read the [quoting](http://www.grymoire.com/Unix/Quote.html) guide. +- [Heiner's "Shell Dorado"](http://www.shelldorado.com) - Tips, tricks, links - for every situation. +- [The Single Unix Specification (version 4, aka POSIX-2008)](http://pubs.opengroup.org/onlinepubs/9699919799/) +- [The Austin Group](http://www.opengroup.org/austin/) - [List archives](http://dir.gmane.org/gmane.comp.standards.posix.austin.general), [Bug tracker](http://austingroupbugs.net/main_page.php) +- [comp.unix.shell FAQ](http://cfajohnson.com/shell/cus-faq.html) +- [Advanced Bash-Scripting Guide](https://tldp.org/LDP/abs/html/index.html) - last update: 10 Mar 2014, but still very useful guide. #### Documentation / Reference -- **Bash**: [man page](http://tiswww.case.edu/php/chet/bash/bash.html) - [info page](http://tiswww.case.edu/php/chet/bash/bashref.html) -- **AT&T ksh**: - [ksh88](http://www2.research.att.com/sw/download/man/man1/ksh88.html) - [ksh93](http://www2.research.att.com/sw/download/man/man1/ksh.html) -- [mksh](https://www.mirbsd.org/htman/i386/man1/mksh.htm) (pdksh - successor) -- [zsh](http://zsh.sourceforge.net/Doc/) -- [dash](http://man7.org/linux/man-pages/man1/dash.1.html) -- [Heirloom Bourne - shell](http://heirloom.sourceforge.net/man/sh.1.html) -- [Thompson shell](http://v6shell.org/man/osh.1.html) +- **Bash**: [man page](http://tiswww.case.edu/php/chet/bash/bash.html), [info page](http://tiswww.case.edu/php/chet/bash/bashref.html) +- **AT&T ksh**: [ksh88](http://www2.research.att.com/sw/download/man/man1/ksh88.html), [ksh93](http://www2.research.att.com/sw/download/man/man1/ksh.html) +- [mksh](https://www.mirbsd.org/htman/i386/man1/mksh.htm) (pdksh successor) +- [zsh](http://zsh.sourceforge.net/Doc/) +- [dash](http://man7.org/linux/man-pages/man1/dash.1.html) +- [Heirloom Bourne shell](http://heirloom.sourceforge.net/man/sh.1.html) +- [Thompson shell](http://v6shell.org/man/osh.1.html) ### Assorted interesting links -- [History and development of the traditional Bourne shell - family](http://www.in-ulm.de/~mascheck/bourne/) - very interesting - and nice to read! -- [Interview with Chet - Ramey](http://www.computerworld.com.au/article/222764/-z_programming_languages_bash_bourne-again_shell) -- [Interview with Steve - Bourne](http://www.computerworld.com.au/article/279011/a-z_programming_languages_sh) - • [Stephen Bourne - BSDCan 2015 - keynote](https://www.youtube.com/watch?v=2kEJoWfobpA) -- [Interview with David - Korn](http://news.slashdot.org/story/01/02/06/2030205/david-korn-tells-all) -- [Kernighan on the Unix pipeline (computerphile - video)](https://www.youtube.com/watch?v=bKzonnwoR2I) -- Linux in general, with some shell related stuff: [nixCraft: Linux - Tips, Hacks, Tutorials and Ideas](http://www.cyberciti.biz/) -- Linux tutorials, guides and how-tos: [RoseHosting - Blog](https://www.rosehosting.com/blog/), [bash script for - installing - WordPress](https://www.rosehosting.com/blog/script-install-wordpress-on-a-debianubuntu-vps/) - and some [basic shell - commands](https://www.rosehosting.com/blog/basic-shell-commands-after-putty-ssh-logon/) -- [Bashphorism list from the Bash IRC channel on - Freenode](/misc/bashphorisms) -- [Some more or less funny commandline stuff](/misc/shell_humor) -- [How to Enable SSH on Ubuntu - Tutorial](https://thishosting.rocks/how-to-enable-ssh-on-ubuntu/) -- [How To Make an Awesome Custom Shell with - ZSH](https://linuxstans.com/how-to-make-an-awesome-custom-shell-with-zsh/) +- [History and development of the traditional Bourne shell family](http://www.in-ulm.de/~mascheck/bourne/) - very interesting and nice to read! +- [Interview with Chet Ramey](http://www.computerworld.com.au/article/222764/-z_programming_languages_bash_bourne-again_shell) +- [Interview with Steve Bourne](http://www.computerworld.com.au/article/279011/a-z_programming_languages_sh) • [Stephen Bourne - BSDCan 2015 keynote](https://www.youtube.com/watch?v=2kEJoWfobpA) +- [Interview with David Korn](http://news.slashdot.org/story/01/02/06/2030205/david-korn-tells-all) +- [Kernighan on the Unix pipeline (computerphile video)](https://www.youtube.com/watch?v=bKzonnwoR2I) +- Linux in general, with some shell related stuff: [nixCraft: Linux Tips, Hacks, Tutorials and Ideas](http://www.cyberciti.biz/) +- Linux tutorials, guides and how-tos: [RoseHosting Blog](https://www.rosehosting.com/blog/), [bash script for installing WordPress](https://www.rosehosting.com/blog/script-install-wordpress-on-a-debianubuntu-vps/) and some [basic shell commands](https://www.rosehosting.com/blog/basic-shell-commands-after-putty-ssh-logon/) +- [Bashphorism list from the Bash IRC channel on Freenode](/misc/bashphorisms) +- [Some more or less funny commandline stuff](/misc/shell_humor) +- [How to Enable SSH on Ubuntu Tutorial](https://thishosting.rocks/how-to-enable-ssh-on-ubuntu/) +- [How To Make an Awesome Custom Shell with ZSH](https://linuxstans.com/how-to-make-an-awesome-custom-shell-with-zsh/) ### Bash Libraries (needs review) -- [An oo-style bash library for bash - 4](http://sourceforge.net/projects/oobash/) - provides tools for - rapid script development and huge libraries. -- [General purpose shell framework for bash - 4](https://github.com/hornos/shf3) - in development. -- [General purpose bash library for bash - 4](https://github.com/chilicuil/learn/blob/master/sh/lib) - active - development - -\
- -## Most wanted - - Statistics for Month: **April 2012** - -------------------------------------- ------- ------------------------------------------------------------ - Rank Views Article - 1 6833 [getopts_tutorial](/howto/getopts_tutorial) (March: 11663) - 2 4025 [printf](/commands/builtin/printf) (March: 7079) - 3 2861 [quoting](/syntax/quoting) (March: 5730) - 4 2854 [classictest](/commands/classictest) (March: 6145) - 5 2222 [pe](/syntax/pe) (March: 4540) - 6 1760 [posparams](/scripting/posparams) (March: 3591) - 7 1249 [bash4](bash4) (March: \--) - 8 1212 [edit-ed](/howto/edit-ed) (March: 2727) - 9 1205 [read](/commands/builtin/read) (March: \--) - 10 1182 [mutex](/howto/mutex) (March: \--) - -- \"Total visits\": 35144 -- The overall \"start\" page is not counted - -\ +- [An oo-style bash library for bash 4](http://sourceforge.net/projects/oobash/) - provides tools for rapid script development and huge libraries. +- [General purpose shell framework for bash 4](https://github.com/hornos/shf3) - in development. +- [General purpose bash library for bash 4](https://github.com/chilicuil/learn/blob/master/sh/lib) - active development ## Contact -\ Visit us in , channel -`#bash` ;-) +Visit us in [ircs://irc.libera.chat:6697](ircs://irc.libera.chat:6697), channel `#bash` ;-) -If you have critiques or suggestions, please feel free to send a mail -using the contact form on the right. Note that there is a simple -discussion option below every article. +If you have critiques or suggestions, please feel free to send a mail using the contact form on the right. +Note that there is a simple discussion option below every article. -Please also see the [imprint](/user/thebonsai/imprint) if you have -problems with the site and its contents (legality, \...)! +Please also see the [imprint](/user/thebonsai/imprint) if you have problems with the site and its contents (legality, ...)! It also would be nice to drop a line when -- it helped you -- it didn\'t help you (something missing / unclear) -- you like it -- you don\'t like it -- you found mistakes / bugs +- it helped you +- it didn't help you (something missing / unclear) +- you like it +- you don't like it +- you found mistakes / bugs -Simply: Reader\'s feedback \ - -\ ![](contact>subj=Wiki reader feedback) \ -\\ +Simply: Reader's feedback. diff --git a/mkdocs.yml b/mkdocs.yml index d23bafa..d1e097b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,3 +1,15 @@ -site_name: Wiki Bash Hackers +site_name: The Bash Hackers Wiki + theme: name: material + features: + - navigation.tabs + +plugins: + - tags + +markdown_extensions: + - admonition + +nav: + - Start: index.md \ No newline at end of file