bash.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 1905 fba288d59662
parent 1346 a2fbf50a43f4
child 1912 8b81a8f0f692
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1069
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
1334
9bf0d5a1f0cf Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1069
diff changeset
     2
.. include:: HEADER.rst
1069
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
=======
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
 Bash.
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
=======
1346
a2fbf50a43f4 Fix: Has no 'contents::' directive.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
     7
.. contents::
1905
fba288d59662 Include only local subsections into TOC. This prevent duplication of
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1346
diff changeset
     8
   :local:
1069
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
How override PS1, PS2?
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
======================
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
When loading bash read ~/.bash_profile and ~/.bashrc.
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
Put at end of these files::
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
  PS1='\u@\H$ '
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
When xterm start bash - it start as non-login. So ~/.bash_profile and ~/.bashrc
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
didn't read. To workaround this use::
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
  $ xterm -e bash -i -c "mc -x"
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
That make bash interactive and init file was readed.
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
Command history.
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
================
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
Bash allow accessing to command that you type previously. There are several
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
options to control command history behavior. Set corresponding variables in
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
your ~/.bashrc file (which is read by interactive shell)::
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
  #   ignorespace do not save lines that start with space
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
  #   erasedups all previous lines matching the current line to be removed from
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
  #             the history list before that line is saved
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
  export HISTCONTROL=igrorespace:erasedups
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
  export HISTIGNORE=" ?cd *":"e *":"sudo mv *":"sudo rm *":"sudo cp *":"sudo mkdir *":"sudo chmod *":"sudo chown *":ls:pwd:"vlc*"
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
There are another options, with default values (which satisfy my needs, so
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
I don't put they to ~/.bashrc)::
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
  export HISTFILE=~/.bash_history  # where is command history stored
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
  export HISTFILESIZE=500          # how many lines been in $HISTFILE
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
  export HISTSIZE=500              # how many lines been stored in bash process
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
mc (GNU Midnight Commander).
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
----------------------------
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
You can also set special history rules for mc subshell in ~/.mc/bashrc file.
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
Bash history.
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
=============
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
  http://wiki.bash-hackers.org/scripting/bashchanges
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
                This article is an incomplete overview of changes to Bash over
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
                the time.
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
2a7388c5fef2 Bash history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58