I showed you my source code, pls respond
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#+TITLE: Shell #+AUTHOR: Christopher James Hayward #+EMAIL: chris@chrishayward.xyz
#+begin_src shell ln -s ~/.local/source/dotfiles/config/shell/bashrc ~/.bashrc ln -s ~/.local/source/dotfiles/config/shell/profile ~/.profile #+end_src
* Bash :PROPERTIES: :header-args: :tangle ~/.local/source/dotfiles/config/shell/bashrc :results silent :END:
Executed by bash for non-login shells. See ~/usr/share/doc/bash/examples/startup-files~ (in the package =bash-doc=) for examples.
If not running interactively, don't do anything.
#+begin_src shell case $- in *i*) ;; *) return;; esac #+end_src
Don't put duplicate lines or lines starting with space in the history.
#+begin_src shell HISTCONTROL=ignoreboth #+end_src
Append to the history file, don't overwrite it.
#+begin_src shell shopt -s histappend #+end_src
For setting history length see ~HISTSIZE~ and ~HISTFILESIZE~.
#+begin_src shell HISTSIZE=1000 HISTFILESIZE=2000 #+end_src
Check the window size after each command and, if necessary, update the values of ~LINES~ and ~COLUMNS~.
#+begin_src shell shopt -s checkwinsize #+end_src
If set, the pattern ="**"= used in a pathname expansion context will match all files and zero or more directories and subdirectories.
#+begin_src shell #shopt -s globstar #+end_src
Make less more friendly for non-text input files.
#+begin_src shell [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" #+end_src
Set variable identifying the chroot you work in (used in the prompt below).
#+begin_src shell if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi #+end_src
Set a fancy prompt (non-color, unless we know we "want" color).
#+begin_src shell case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac #+end_src
Uncomment for a colored prompt, if the terminal has the capability; turned off by default to not distract the user: the focus in a terminal window should be on the output of commands, not on the prompt.
#+begin_src shell #force_color_prompt=yes #+end_src
If we have color support; assume it's compliant with =Ecma-48 (ISO/IEC-6429)=.
#+begin_src shell if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then color_prompt=yes else color_prompt= fi fi #+end_src
Lack of such support is extremely rare, and such a case would tend to support ~setf~ rather than ~setaf~.
#+begin_src shell if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi unset color_prompt force_color_prompt #+end_src
If this is an xterm set the title to ~user@host:dir~.
#+begin_src shell case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac #+end_src
Enable color support of ~ls~ and also add handy aliases.
#+begin_src shell if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #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 #+end_src
Colored =GCC= warnings and errors.
#+begin_src shell #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' #+end_src
Some more ~ls~ aliases.
#+begin_src shell alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' #+end_src
Add an ~alert~ alias for long running commands.
#+begin_src shell alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' #+end_src
Use like so:
#+begin_example sleep 10; alert #+end_example
You may want to put all your additions into a separate file like ~~/.bash_aliases~, instead of adding them here directly. See ~/usr/share/doc/bash-doc/examples~ in the =bash-doc= package.
#+begin_src shell if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi #+end_src
Enable programmable completion features. You don't need to enable this, if it's already enabled in ~/etc/bash.bashrc~ and ~/etc/profile~ sources ~/etc/bash.bashrc~.
#+begin_src shell if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi #+end_src
* Profile :PROPERTIES: :header-args: :tangle ~/.local/source/dotfiles/config/shell/profile :results silent :END:
Executed by the command interpreter for login shells.
This file is *not* read by bash, if ~~/.bash_profile~ or ~~/.bash_login~ exists. See =/usr/share/doc/bash/examples/startup-files= for examples. The files are located in the bash-doc package.
The default umask is set in ~/etc/profile~. For =SSH= logins, install and configure the =libpam-umask= package.
#+begin_src shell #umask 022 #+end_src
If we're running =bash= make sure to include ~~/.bashrc~ if it exists.
#+begin_src shell if [ -n "$BASH_VERSION" ]; then if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi #+end_src
Add private bin directories to the ~$PATH~ (if they exist). + ~$HOME/bin~ + ~$HOME/.local/bin~
#+begin_src shell if [ -d "$HOME/bin" ]; then PATH="$HOME/bin:$PATH" fi if [ -d "$HOME/.local/bin" ]; then PATH="$HOME/.local/bin:$PATH" fi #+end_src Add ~$HOME/go/bin~ to the ~$PATH~ if it exists.
#+begin_src shell if [ -d "$HOME/go/bin" ]; then PATH="$HOME/go/bin:$PATH" fi #+end_src
Auto run =startx= on login if there's no display server running.
#+begin_src shell if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then exec startx fi #+end_src
|