diff options
Diffstat (limited to 'core/bash.html')
-rw-r--r-- | core/bash.html | 153 |
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_ < /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> |