Skip to content
Snippets Groups Projects
Commit 27a5a9c4 authored by Michael Blaschek's avatar Michael Blaschek :bicyclist:
Browse files

add bash stuff

parent ac5c7652
No related branches found
No related tags found
No related merge requests found
testing/*
# Miscellaneous Topics
[[_TOC_]]
## Customize your shell
On a Linux system there are numerous ways of customizing user experience. And of course there is a way to customize the shell. It should be common by now, that people use [BASH](https://de.wikipedia.org/wiki/Bash_(Shell)), if not run `chsh -s /bin/bash` in your terminal and if you are not sure run `echo $SHELL` wich should show bash.
![](https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Gnu-bash-logo.svg/216px-Gnu-bash-logo.svg.png)
The main files to make your shell unique is to edit two files:
- `.bashrc` - Main configuration file for each terminal, as oposed to `.bash_profile` that is only loaded when you first login.
- `.inputrc` - Configuration file for keybaord shortcuts
Please find examples of these two files here [bashrc](./bashrc) [inputrc](./inputrc). Please adjust these files to your needs. Some parts are only available on special systems.
## Q: How to extract a table from a PDF?
There is a tool for investigative reporting at news organizations, that developed this tool. [Got to tabula](https://tabula.technology/)
### How to Use Tabula
1. run tabula depending on your OS and got to http://localhost:8080
2. Upload a PDF file containing a data table.
3. Browse to the page you want, then select the table by clicking and dragging to draw a box around the table.
4. Click "Preview & Export Extracted Data". Tabula will try to extract the data and display a preview. Inspect the data to make sure it looks correct. If data is missing, you can go back to adjust your selection.
5. Click the "Export" button.
6. Now you can work with your data as text file or a spreadsheet rather than a PDF
Note: Tabula only works on text-based PDFs, not scanned documents.
# BASH configuration file
# By MB
# some examples / options
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# HISTORY
#
# don't put duplicate lines in the history. See bash(1) for more options
# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
# ... or force ignoredups and ignorespace
export HISTCONTROL=ignoreboth:erasedups
export HISTIGNORE='&:ls:ll:cd ~:cd ..:[bf]g:exit:h:history'
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
export HISTSIZE=2000
export HISTFILESSIZE=2000
export PROMPT_COMMAND="history -a" # update histfile after every command
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto -h --group-directories-first'
alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias ...="cd ../.." #go to grandparent dir
alias -- -="cd -" #go to previous dir
alias l.='ls -d .*' #list hidden files
# PATHs
export PATH=${PATH}:${HOME}/bin # add ./bin directory
export PATH=${PATH}:${HOME}/.local/bin # add .local/bin
# Python / Anaconda
# use your favorite python
# module show anaconda3 - use PATH
# or which python3
PYTHONROOT=
if [ -f "${PYTHONROOT}/etc/profile.d/conda.sh" ]; then
# Sourcing this, is similar to conda init
. "${PYTHONROOT}/etc/profile.d/conda.sh"
else
export PATH="${PYTHONROOT}/bin:$PATH"
fi
# do not generate .pyc files
export PYTHONDONTWRITEBYTECODE=1
# Define your favorite editor
# /usr/bin/nano
export EDITOR=/usr/bin/vim
# Define your language
# run locale
# export LANG=en_US.UTF-8
# User Limits
ulimit -u 10000 # max user processes 1024
# Limit number of Threads
# export MKL_NUM_THREADS=1
# export NUMEXPR_NUM_THREADS=1
export OMP_NUM_THREADS=4 # OpenMP Threads
# Special Modifications
## environmental modules
export MODULES_PAGER=cat # or less
# Alias for JET to show running user services
alias running_services='systemctl list-units --user --type=service'
\ No newline at end of file
# https://en.wikipedia.org/wiki/ANSI_escape_code
# use cursor up/down to search in history
"\e[B": history-search-forward
"\e[A": history-search-backward
# pos1, home
"\e[1~": beginning-of-line
# end
"\e[4~": end-of-line
# page up/down
#"\e[5~": history-search-backward
#"\e[6~": history-search-forward
# backward delete
"\e[3~": delete-char
# insert
"\e[2~": quoted-insert
# ctrl + cursors (forward / backward)
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
#
# some general options for inputrc
#
set completion-ignore-case On
set show-all-if-ambiguous on
set completion-query-items 350
set page-completions off
set match-hidden-files off
# Include system wide settings which are ignored
# by default if one has their own .inputrc
$include /etc/inputrc
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment