ubuntuusers.de

Eigene Benachrichtigungen im Terminal

Status: Gelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

dippes

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Hallo

wenn ich ein Terminal öffne werden immer Nachrichten oder Systeminformationen angezeigt.

Wie kann man eigene hinterlegen?

Zb. habe ich aliase angelegt welche ich nach einiger Zeit immer vergesse.Wäre schön wenn diese angezeigt werden wenn ich ein Terminal öffne.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Na ja, die .bashrc ist das Skript, das immer beim Terminal-Start ausgeführt wird,
und normalerweise vor allem die Konfiguration einstellt wie gewünscht.

Aber da kannst Du im Prinzip am Ende alles reinschreiben was das Herz begehrt ... 😉 (ist ja auch nur ein ganz gewöhnliches Bash-Skript)

LG,

track

fb@plusq

Avatar von fb@plusq

Anmeldungsdatum:
26. Juni 2015

Beiträge: 60

Ich habe mir ein Menü angelegt, in daß ich meine Alias Dinge und ein paar Infos reingeschrieben habe:

meine .bashrc

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# ~/.bashrc: executed by bash(1) 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
case $- in
    *i*)	;;
      *)	return;;
esac

# 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

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
#    echo "debian_chroot=\$(cat /etc/debian_chroot) in Zeile 36 wurde gesetzt"
#else
#    echo "die IF Abfrage in Zeile 36 ist nicht aktiviert"
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm|xterm-color|*-256color)	color_prompt=yes
#					echo "Case in Zeile 44 wurde gesetzt"
    ;;
#    *)					echo "Case in Zeile 44 wurde ignoriert";;
esac

# 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
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
#    echo "\$force_color_prompt in Zeile 55 ist aktiv und hat den Wert" $force_color_prompt
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
#	echo "Zeile 575 ist aktiv und color_prompt wird auf yes gesetzt"
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
#	echo "Zeile 575 ist nicht aktiv und color_prompt wird leer"
    fi
fi

if [ "$color_prompt" = yes ]; then
#    echo "color_promt ist yes"
    if [[ ${EUID} == 0 ]] ; then
#	echo "\${EUID} hat den Wert "${EUID}" in Zeile 71"
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;31m\]\h\[\033[01;34m\] \w \[\033[01;31m\]\$\[\033[00m\] '
    else
#	echo "\${EUID} hat den Wert "${EUID}" in Zeile 71"
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[01;33m\]@\[\033[01;32m\]\h\[\033[00m\] \[\033[01;34m\]\w \[\033[01;32m\]\$\[\033[00m\] '
    fi
else
#    echo "color_promt ist leer"
    PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
#    echo "xterm ist an  in Zeile 85"
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a\]$PS1"
    ;;
#*)	echo "xterm ist nicht an in Zeile 85"
#    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
#    echo "Color Support ist an in Zeile 95"
    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

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias l='ls -alF'
alias ll='ls -lF'
alias lb='ls -alFR'
alias lk='ls -aCF'
alias llk='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'
alias m='~/.bashmenue'
alias c='clear'

# Menue nachladen
. ~/.bashmenue


# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
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$//'\'')"'

# Alias definitions.
# 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.

if [ -f ~/.bash_aliases ]; then
#    echo "bash_aliases sind aktiv in Zeile 124"
    . ~/.bash_aliases
fi

# 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).
if ! shopt -oq posix; then
#    echo "Zeile 132 ist aktiv"
  if [ -f /usr/share/bash-completion/bash_completion ]; then
#    echo "Zeile 134 ist aktiv"
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
#    echo "Zeile 137 ist aktiv"
    . /etc/bash_completion
  fi
fi

if [ -x /usr/bin/mint-fortune ]; then
#    echo "Zeile 143 mint-fortune ist aktiv"
     /usr/bin/mint-fortune
fi

ab Zeile 97 habe ich meine Anpassungen gemacht.

Dann noch die Datei .bashmenue angelegt, die in Zeile 122 geladen wird

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Vordergrundfarben definieren
hrot() { echo "$(tput setaf 1)$*$(tput setaf 9)"; }
gruen() { echo "$(tput setaf 2)$*$(tput setaf 9)"; }
gelb() { echo "$(tput setaf 3)$*$(tput setaf 9)"; }
blau() { echo "$(tput setaf 4)$*$(tput setaf 9)"; }
magenta() { echo "$(tput setaf 5)$*$(tput setaf 9)"; }
cyan() { echo "$(tput setaf 6)$*$(tput setaf 9)"; }
weiss() { echo "$(tput setaf 7)$*$(tput setaf 9)"; }
grau() { echo "$(tput setaf 8)$*$(tput setaf 9)"; }
rot() { echo "$(tput setaf 9)$*$(tput setaf 9)"; }
hgruen() { echo "$(tput setaf 10)$*$(tput setaf 9)"; }
hgelb() { echo "$(tput setaf 11)$*$(tput setaf 9)"; }
hblau() { echo "$(tput setaf 12)$*$(tput setaf 9)"; }

# Hintergrundfarben definieren
textb() { echo $(tput bold)${1}$(tput sgr0); }
gruenb() { echo $(tput bold)$(tput setaf 2)${1}$(tput sgr0); }
rotb() { echo $(tput bold)$(tput setaf 1)${1}$(tput sgr0); }
gelbb() { echo $(tput bold)$(tput setaf 3)${1}$(tput sgr0); }
cyanb() { echo $(tput bold)$(tput setaf 5)${1}$(tput sgr0); }

# Menu anzeigen
echo $(cyan '******************************************************************')
echo $(cyan '******************************************************************')
echo $(cyan '****')"                                                          "$(cyan '****')
echo $(cyan '**** Folgende Alias-Befehle wurden eingestellt:')"               "$(cyan '****')
echo $(cyan '****')"                                                          "$(cyan '****')
echo $(cyan '****')" Inhaltsverzeichnis anzeigen:                             "$(cyan '****')
echo $(cyan '****') $(hgelb 'l')"     "$(cyan '- ausführliches mit versteckten Dateien')"            "$(cyan '****')
echo $(cyan '****') $(hgelb 'll')"    "$(cyan '- ausführliches OHNE versteckte Dateien')"            "$(cyan '****')
echo $(cyan '****') $(hgelb 'lk')"    "$(cyan '- wie "l" nur Kurzform, Dateien nebeneinander')"      "$(cyan '****')
echo $(cyan '****') $(hgelb 'llk')"   "$(cyan '- wie "ll" nur Kurzform, Dateien nebeneinander')"     "$(cyan '****')
echo $(cyan '****') $(hgelb 'ls')"    "$(cyan '- ist der normale Befehl ohne Zusätze')"              "$(cyan '****')
echo $(cyan '****') $(hgelb 'lb')"    "$(cyan '- wie "l" aber inkl. Unterverzeichnisse')"            "$(cyan '****')
echo $(cyan '****')"                                                          "$(cyan '****')
echo $(cyan '****') $(hgelb '..')"    "$(cyan '- bedeutet cd .. (ein Verzeichnis hochgehen')"        "$(cyan '****')
echo $(cyan '****') $(hgelb '...')"   "$(cyan '- bedeutet cd ../.. (zwei Verzeichnisse hochgehen')"  "$(cyan '****')
echo $(cyan '****')"                                                          "$(cyan '****')
echo $(cyan '****') $(hgelb 'm')"     "$(cyan '- dieses Menü aufrufen')"                             "$(cyan '****')
echo $(cyan '****') $(hgelb 'c')"     "$(cyan '- Bildschirm löschen')"                               "$(cyan '****')
echo $(cyan '****')"                                                          "$(cyan '****')
echo $(cyan '******************************************************************')
echo $(cyan '******************************************************************')
echo $(cyan '**** Vor dem ')$(hgelb '@') $(cyan ' steht der aktuelle Benutzername')
echo $(cyan '**** Hinter dem ')$(hgelb '@') $(cyan ' steht der aktuelle Rechnername')
echo $(cyan '**** Das Prompt-Zeichen ')$(hgruen '$') $(cyan ' heißt sind Sie als Normaler Benutzer angemeldet')
echo $(cyan '**** Das Prompt-Zeichen ')$(hrot '#') $(cyan ' heißt sind Sie als ROOT-Benutzer angemeldet ')$(hrot 'Vorsichtig arbeiten')
echo $(cyan '**** Der blaue Teil zeigt Ihren aktuellen Pfad an Bsp.: ')$(hblau '/var/lib') $(cyan)
echo $(cyan '**** Steht nur das Zeichen ')$(hblau '~') $(cyan ' da, sind Sie in Ihrem HOME-Verzeichnis')
echo

und jedesmal, wenn ein Terminal gestartet wird kommt das Menü

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
******************************************************************
******************************************************************
****                                                          ****
**** Folgende Alias-Befehle wurden eingestellt:               ****
****                                                          ****
**** Inhaltsverzeichnis anzeigen:                             ****
**** l     - ausführliches mit versteckten Dateien            ****
**** ll    - ausführliches OHNE versteckte Dateien            ****
**** lk    - wie "l" nur Kurzform, Dateien nebeneinander      ****
**** llk   - wie "ll" nur Kurzform, Dateien nebeneinander     ****
**** ls    - ist der normale Befehl ohne Zusätze              ****
**** lb    - wie "l" aber inkl. Unterverzeichnisse            ****
****                                                          ****
**** ..    - bedeutet cd .. (ein Verzeichnis hochgehen        ****
**** ...   - bedeutet cd ../.. (zwei Verzeichnisse hochgehen  ****
****                                                          ****
**** m     - dieses Menü aufrufen                             ****
**** c     - Bildschirm löschen                               ****
****                                                          ****
******************************************************************
******************************************************************
**** Vor dem @  steht der aktuelle Benutzername
**** Hinter dem @  steht der aktuelle Rechnername
**** Das Prompt-Zeichen $  heißt sind Sie als Normaler Benutzer angemeldet
**** Das Prompt-Zeichen #  heißt sind Sie als ROOT-Benutzer angemeldet Vorsichtig arbeiten
**** Der blaue Teil zeigt Ihren aktuellen Pfad an Bsp.: /var/lib 
**** Steht nur das Zeichen ~  da, sind Sie in Ihrem HOME-Verzeichnis

tester@pc01 ~ $

allerdings farbig...

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Danke für die Anleitung

Habs auf meine Bedürfnisse angepasst.

So wirds in der Konsole angezeigt

******************************************************************
******************************************************************
****                                                          ****
**** Meine Alias-Befehle :                                 ****
****                                                          ****
**** Inhaltsverzeichnis anzeigen:                             ****
**** hdsentinel  - Hdsentinel starten                         ****
**** aushängen  - Backupplatte aushängen                      ****
**** checkupdates - wie Systemupgrade                         ****
**** m      - dieses Menü aufrufen                            ****
**** cl     - Bildschirm löschen  

Das ist der inhalt in der bashmenue

# Menu anzeigen Menu anzeigen
echo $(cyan '******************************************************************')
echo $(cyan '******************************************************************')
echo $(cyan '****')"                                                          "$(cyan '****')
echo $(cyan '**** Meine Alias-Befehle :')"                                 "$(cyan '****')
echo $(cyan '****')"                                                          "$(cyan '****')
echo $(cyan '****')" Inhaltsverzeichnis anzeigen:                             "$(cyan '****')
echo $(cyan '****') $(hgelb 'hdsentinel')" "$(cyan '  - Hdsentinel starten')"                         "$(cyan '****')
echo $(cyan '****') $(hgelb 'aushängen')" "$(cyan '   - Backupplatte aushängen')"                      "$(cyan '****')
echo $(cyan '****') $(hgelb 'checkupdates')" "$(cyan '- wie Systemupgrade')"                         "$(cyan '****')
echo $(cyan '****') $(hgelb 'm')"     "$(cyan '       - dieses Menü aufrufen')"                            "$(cyan '****'                                                                    )
echo $(cyan '****') $(hgelb 'cl')"    "$(cyan '       - Bildschirm löschen')"                              "$(cyan '****'                                                                    )
echo

Frage:Wie bekomme ich die Bindestriche in die Flucht?

edit: Funktioniert jetzt

wenn ich das Menü aufrufen will kommt

root@HP-Server ~ > m
bash: /root/.bashmenue: Keine Berechtigung

ich führe doch den Befehl als "root"aus?

fb@plusq

Avatar von fb@plusq

Anmeldungsdatum:
26. Juni 2015

Beiträge: 60

Hi,

mit deinen Bearbeitungen und Durchgestreichungen bin ich nun nicht sicher was jetzt geht und was nicht 😲

gehts um die Bindestriche, oder die Berechtigung??

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

Um die Bindestriche

fb@plusq

Avatar von fb@plusq

Anmeldungsdatum:
26. Juni 2015

Beiträge: 60

einfach die Leerzeichen anpassen

also so z.B.:

1
2
3
4
5
6
echo $(cyan '****')" Inhaltsverzeichnis anzeigen:                                    "$(cyan '****')
echo $(cyan '****') $(hgelb 'hdsentinel')"    "$(cyan '- Hdsentinel starten')"                              "$(cyan '****')
echo $(cyan '****') $(hgelb 'aushängen')"     "$(cyan '- Backupplatte aushängen')"                          "$(cyan '****')
echo $(cyan '****') $(hgelb 'checkupdates')"  "$(cyan '- wie Systemupgrade')"                               "$(cyan '****')
echo $(cyan '****') $(hgelb 'm')"             "$(cyan '- dieses Menü aufrufen')"                            "$(cyan '****')
echo $(cyan '****') $(hgelb 'cl')"            "$(cyan '- Bildschirm löschen')"                              "$(cyan '****')

So sieht deine Version aus:

1
2
3
4
5
6
echo $(cyan '****')" Inhaltsverzeichnis anzeigen:                             "$(cyan '****')
echo $(cyan '****') $(hgelb 'hdsentinel')" "$(cyan '  - Hdsentinel starten')"                         "$(cyan '****')
echo $(cyan '****') $(hgelb 'aushängen')" "$(cyan '   - Backupplatte aushängen')"                      "$(cyan '****')
echo $(cyan '****') $(hgelb 'checkupdates')" "$(cyan '- wie Systemupgrade')"                         "$(cyan '****')
echo $(cyan '****') $(hgelb 'm')"     "$(cyan '       - dieses Menü aufrufen')"                            "$(cyan '****'                                                                    )
echo $(cyan '****') $(hgelb 'cl')"    "$(cyan '       - Bildschirm löschen')"                              "$(cyan '****'                                                                    )

Bei Leerzeichen innerhalb einer Variable zeigt es irgendwie immer nur eines an. Mehrere müssen zwischen " stehen

also

1
$(cyan '       -')

ist gleich

1
$(cyan ' -')

mehrere Leerzeichen:

1
$(cyan '"         " -')

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

oder man gibt einfach alias im Terminal ein ☺

dippes

(Themenstarter)

Anmeldungsdatum:
31. Dezember 2009

Beiträge: 553

So jetzt schauts sauber aus.

Ich habe jetzt meine Aliase im Menü untergebracht.

Ich habe noch Aliase von intallierten Programmen.Diese finde ich aber nicht in der .bascrc und co. Wo könnte die versteckt sein?

@ChickenLipsRfun2e

Auch gut 👍

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Könnten in /etc/profile, /etc/bash.bashrc liegen oder in jedem anderen Script exportiert werden, welches ausgeführt wird.

Antworten |