about summary refs log tree commit diff stats
path: root/core/bash.html
diff options
context:
space:
mode:
Diffstat (limited to 'core/bash.html')
-rw-r--r--core/bash.html153
1 files changed, 153 insertions, 0 deletions
diff --git a/core/bash.html b/core/bash.html
new file mode 100644
index 0000000..ab1350d
--- /dev/null
+++ b/core/bash.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html dir="ltr" lang="en">
+    <head>
+        <meta charset='utf-8'>
+        <title>4. Bash</title>
+    </head>
+    <body>
+        <a href="index.html">Systools Index</a>
+
+        <h1 id="bash">4. Bash</h1>
+
+        <p>First create skeleton directory to place the default user
+        files to be copied to its home directory by
+        <a href="users.html#useradd">useradd</a> command.</p>
+
+        <pre>
+        $ sudo mkdir /etc/skel
+        </pre>
+
+        <p>Just to be sure, setup bash as default;<p>
+
+        <pre>
+        $ chsh
+        </pre>
+
+        <h3>Description of configuration files</h3>
+
+        <dl>
+            <dt>~/.bash_profile</dt>
+            <dd>Minimal file that just load .profile and then .bashrc,
+            in this order.</dd>
+
+            <dt>~/.profile<dt>
+            <dd>Not specifically related to bash, such as
+            environment variables (PATH). Only for login shells (sh)
+            or graphical applications.</dd>
+
+            <dt>~/.bashrc</dt>
+            <dd>Related to interactive command line, such as bash
+            alias, editor.</dd>
+        </dl>
+
+        <h2 id="profile">4.1. Profile</h2>
+
+        <p>Example of ~/.profile;</p>
+
+        <pre>
+        $ sudo vim /etc/skel/.profile
+        </pre>
+
+        <pre>
+        PATH=~/.composer/vendor/bin:${PATH}
+
+        export GPG_AGENT_INFO  # the env file does not contain the export statement
+        export SSH_AUTH_SOCK   # enable gpg-agent for ssh
+        </pre>
+
+        <h2 id="bashrc">4.2. Bash RC</h2>
+
+        <p>Example of bashrc;</p>
+
+        <pre>
+        $ sudo vim /etc/skel/.bashrc
+        </pre>
+
+        <pre>
+        # If not running interactively, don't do anything
+        case $- in
+                *i*) ;;
+                *) return;;
+        esac
+
+
+        # check the window size after each command and, if necessary,
+        # update the values of LINES and COLUMNS.
+        shopt -s checkwinsize
+
+
+        # don't put duplicate lines or lines starting with space in the history.
+        # See bash(1) for more options
+        HISTCONTROL=ignoreboth
+
+        # append to the history file, don't overwrite it
+        shopt -s histappend
+
+        # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+        HISTSIZE=1000
+        HISTFILESIZE=2000
+
+        alias tmux="tmux -2"
+
+        alias rm='rm -i'
+        #alias cp='cp -i'
+        alias mv='mv -i'
+        # Prevents accidentally clobbering files.
+        alias mkdir='mkdir -p'
+
+        alias h='history'
+        alias j='jobs -l'
+        alias which='type -a'
+        alias ..='cd ..'
+
+        # Generate a password
+        genpasswd () {
+            local l=$1
+            [ "$l" == "" ] && l=20
+            tr -dc A-Za-z0-9_ &lt; /dev/urandom | head -c ${l} | xargs
+        }
+
+        # Git graph log
+        glog () {
+            git log --graph --abbrev-commit --decorate --date=relative --all
+        }
+
+        if [[ -z "$TMUX" ]] ;then
+            ID="`tmux ls | grep -vm1 attached | cut -d: -f1`" # get the id of a deattached session
+            if [[ -z "$ID" ]] ;then # if not available create a new one
+                tmux new-session
+            else
+                tmux attach-session -t "$ID" # if available attach to it
+            fi
+        fi
+        </pre>
+
+        <h2 id="bash_profile">4.3. Bash profile</h2>
+
+        <pre>
+        $ sudo vim /etc/skel/.bash_profile
+        </pre>
+
+        <pre>
+                #!/bin/bash
+                if [ -f ~/.profile ]; then
+                   source ~/.profile
+                fi
+
+                if [ -f ~/.bashrc ]; then
+                   source ~/.bashrc
+                fi
+        </pre>
+
+
+        <a href="index.html">Systools Index</a>
+        <p>
+        This is part of the SysDoc Manual.
+        Copyright (C) 2016
+        Silvino Silva.
+        See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
+        for copying conditions.</p>
+
+
+    </body>
+</html>