Ich habe beim starten eines Terminals seit neuesten sofort eine Meldung im Terminal ! Was ich gemacht habe die bash_aliases und bash_functions bearbeitet die in der bashrc notiert sind geändert. Ich komme nicht dahinter wo ich "neu" starte ?
Fehler beim ersten starten des Terminals
|
Anmeldungsdatum: Beiträge: 98 Wohnort: Niederkrüchten |
|
||
|
Moderator
Anmeldungsdatum: Beiträge: 1435 |
Hi waltermeister, magst du bitte Terminalausgaben nicht als Bild sondern als Text im Codeblock, wenn möglich von Prompt zu Prompt, posten. Dann kann man dir hier auch schneller helfen. Danke!
Genau das wäre auch sehr interessant. Bitte auch das im Codeblock hier Posten. Siehe hierzu codeblock-so-geht-s Gruß SH |
||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 98 Wohnort: Niederkrüchten |
So sieht das aus die aliase funktionen in den bash_aliases bash_functions kann ich nutzen ? Die Anzeige stört einfach,kann nicht sagen das es weitere Auswirkungen hat. Mit clear den das Fenster reinigen und arbeiten ist ja möglich . Beim öffnen eines zweiten Fensters steht es dann auch im zweiten Fenster . Hab die drei Dateien mal zusammengefügt ich hoffe so gehts !
##### .bashrc
# ~/.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)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
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
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# 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=
fi
fi
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
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# 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'
#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 ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# 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
. ~/.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
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
########### 27.05.2026 ergänzt
# nochmal am 1.9.2026 bereinigt
# 1. Funktionen einbinden (muss VOR PROMPT_COMMAND stehen!)
if [ -f ~/.bash_functions ]; then
. ~/.bash_functions
fi
# 2. Geheimnisse / API Keys laden
if [ -f ~/.secret_env ]; then
source ~/.secret_env
fi
# 3. Prompt Command & History Konfiguration
export PROMPT_COMMAND="log_terminal_source; history -a; history -n; $PROMPT_COMMAND"
export HISTCONTROL=ignoreboth
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTTIMEFORMAT="%d.%m.%y %T "
# 4. Pfad-Erweiterungen (pipx & deno)
export PATH="$PATH:/home/walter/.local/bin"
if [ -f "$HOME/.deno/env" ]; then
. "$HOME/.deno/env"
fi##### .bash_aliases # ========================================== # SYSTEM & UPDATES # ========================================== # Ein einziger Befehl für das komplette System-Update alias update='sudo apt update && sudo apt upgrade -y' # Fängt den klassischen Tippfehler ab alias ubdate='sudo apt update' # ========================================== # ========================================== # PYTHON & VIRTUAL ENVIRONMENTS (VENV) # ========================================== # erstellen alias virterst='python3 -m venv .venv' # löschen # ist nötig da sich die nicht beim ersten erstellen aktivieren lässt alias virtdel='rm -rf .venv' # Schneller in die virtuelle Umgebung kommen (einfach 'va' tippen) alias va='source .venv/bin/activate' # Fängt Tippfehler beim Verlassen der Venv ab alias dactivate='deactivate' alias dectivate='deactivate' # ========================================== # PROJEKT-SHORTCUTS (Der ultimative Zeitsparer!) # ========================================== # Springt sofort in deinen Schiffstracker-Ordner UND aktiviert direkt die Venv! alias go-vessel='cd ~/Projekte_VSC/Projekte_VSC_Python/Vesselfinder && source .venv/bin/activate' # ========================================== # SCHIFFSTRACKING LOGS DURCHSUCHEN # ========================================== # Zeigt dir sofort alle erfolgreichen Treffer in deinem Logfile an alias treffer='grep "VOLLTREFFER" log.txt' # ======================================== # Überarbeitet 26.8.26 # Neue Befehle im Überblick # ytneu: Aktualisiert yt-dlp in Sekundenschnelle auf die neueste Version. # ytdl "URL": Lädt ein einzelnes Video mit Metadaten. # ytpl "URL": Lädt eine komplette Playlist in einen eigenen Unterordner. # ytmp3 "URL": Extrahiert nur die Tonspur als MP3. # Wichtig URL immer in " " setzen #========================================== # YouTube Downloader Aliase & Updates #========================================== # Systemupdate für yt-dlp alias ytneu='pipx upgrade yt-dlp' # Einzelnes Video in bester Qualität alias ytdl='yt-dlp -f "bv*+ba/b" --embed-thumbnail --embed-metadata' # Video als MP3 speichern alias ytmp3='yt-dlp -x --audio-format mp3 --audio-quality 0' # Playlists automatisch in Unterordner speichern alias ytpl='yt-dlp --cookies-from-browser brave --ignore-errors -f "bv*+ba/b" --embed-thumbnail --embed-metadata --yes-playlist -o "%(playlist_title)s/%(playlist_index)s - %(title)s.%(ext)s"' ##### .bash_functions
# ==========================================
# .bash_functions
# Alle Bash-Funktionen (komplexere Logik als ein Alias).
#
# Einbindung in ~/.bashrc (falls noch nicht vorhanden):
# if [ -f ~/.bash_functions ]; then . ~/.bash_functions; fi
# ==========================================
# ==========================================
# DATEISUCHE (find Befehl erweitert)
# Ursprung: erweitert mit LEO, 30.08.26
#
# _dateisuche ist die gemeinsame interne Logik für txtfind und
# txtsave, damit der Suchcode nur an EINER Stelle gepflegt werden
# muss. Du rufst diese Funktion nicht direkt auf.
#
# WARUM sudo?
# sudo wird bewusst verwendet, damit auch USB-Sticks / externe
# Laufwerke unter /run/media durchsucht werden können, auf die dein
# Benutzer sonst evtl. keine Leserechte hat (z.B. wenn sie mit
# anderen Rechten oder von einem anderen System gemountet wurden).
# Für eine reine Suche im eigenen Home-Verzeichnis wäre sudo nicht
# nötig - aber da wir hier /run/media mit durchsuchen, bleibt es drin.
# ==========================================
_dateisuche() {
local extension="$1"
if [ -z "$extension" ]; then
echo "Verwendung: $2 <Dateierweiterung>"
echo "Beispiel: $2 txt"
return 1
fi
# Durchsucht Home-Verzeichnis UND eingehängte externe Laufwerke/Sticks
# unter /run/media. Ausgeschlossen werden: Dokumente-Ordner, versteckte
# Ordner (beginnend mit .) und der Projekte_VSC-Ordner, um die
# Ergebnisse relevant zu halten.
#
# HINWEIS: Falls dein Stick nicht unter /run/media eingehängt wird,
# sondern z.B. unter /media/DEIN_NAME, hier den Pfad ergänzen:
# sudo find ~ /run/media /media/DEIN_NAME -type f ...
sudo find ~ /run/media -type f -iname "*.${extension}" \
! -path "*/Dokumente/*" \
! -path "*/.*" \
! -path "*/Projekte_VSC/*" \
2>/dev/null
}
# txtfind <Erweiterung>: Zeigt alle Treffer seitenweise am Bildschirm an
# Beispiel: txtfind txt oder txtfind odt
txtfind() {
_dateisuche "$1" "txtfind" | less
}
# txtsave <Erweiterung>: Speichert alle Treffer in einer Datei
# <Erweiterung>.txt (z.B. txtsave pdf -> erzeugt "pdf.txt")
# Beispiel: txtsave txt oder txtsave odt
txtsave() {
local extension="$1"
if [ -z "$extension" ]; then
echo "Verwendung: txtsave <Dateierweiterung>"
echo "Beispiel: txtsave txt"
return 1
fi
local zieldatei="${extension}.txt"
# ÜBERSCHREIBSCHUTZ: Vorher war es möglich, eine bereits vorhandene
# Datei versehentlich zu überschreiben und damit alte Ergebnisse zu
# verlieren. Jetzt wird vorher nachgefragt.
if [ -f "$zieldatei" ]; then
read -p "Datei '$zieldatei' existiert bereits. Überschreiben? (j/n) " antwort
if [[ ! "$antwort" =~ ^[jJ]$ ]]; then
echo "Abgebrochen. Keine Datei geändert."
return 1
fi
fi
_dateisuche "$extension" "txtsave" > "$zieldatei"
echo "Ergebnisse gespeichert in: $zieldatei"
}
# ==========================================
# TERMINAL-HERKUNFT IM VERLAUF LOGGEN
# Verschoben aus .bashrc, 30.08.26
# Ursprung: 19.5.2026 (Gemini) / 27.05.2026 ergänzt
#
# Markiert jeden Befehl im Bash-Verlauf (history) mit seiner Herkunft
# ("[VSCode]" oder "[Terminal]"), damit man später nachvollziehen kann,
# aus welchem Kontext ein Befehl kam.
#
# WICHTIG: Der eigentliche Trigger (PROMPT_COMMAND), der diese Funktion
# nach jedem Befehl automatisch aufruft, bleibt bewusst in der .bashrc -
# das ist Shell-Verdrahtung (WANN wird ausgeführt), keine Funktions-
# definition (WAS wird ausgeführt), und gehört daher dorthin.
# ==========================================
# Setzt einmalig fest, aus welchem Terminal-Typ die aktuelle Sitzung läuft
if [ "$TERM_PROGRAM" = "vscode" ]; then
export TERMINAL_SOURCE="[VSCode]"
else
export TERMINAL_SOURCE="[Terminal]"
fi
log_terminal_source() {
# Schneidet die Zeilennummer UND das System-Datumsformat (DD.MM.YY HH:MM:SS) vorne sauber weg
local last_cmd=$(history 1 | sed -E 's/^[ ]*[0-9]+[ ]+[0-9]{2}\.[0-9]{2}\.[0-9]{2}[ ]+[0-9]{2}:[0-9]{2}:[0-9]{2}[ ]+//')
# Fallback: Falls (z.B. direkt beim Terminalstart) noch kein Datum davorstand,
# schneiden wir nur die Zeilennummer ab
if [ "$last_cmd" = "$(history 1)" ] || [[ "$last_cmd" == *" "* ]]; then
last_cmd=$(history 1 | sed 's/^[ ]*[0-9]*[ ]*//')
fi
# Prüfen, ob der Befehl existiert und noch nicht markiert wurde
if [ -n "$last_cmd" ] && [[ "$last_cmd" != *" # [VSCode]"* ]] && [[ "$last_cmd" != *" # [Terminal]"* ]]; then
# 1. Den alten, unmarkierten Befehl aus dem Speicher löschen
history -d $((HISTCMD - 1)) 2>/dev/null || history -d -1 2>/dev/null
# 2. Den REINEN Befehl mit dem Herkunfts-Kommentar neu einsetzen
history -s "$last_cmd # $TERMINAL_SOURCE"
fi
}Bearbeitet von schwarzheit: Codeblöcke zur besseren Übersicht separiert. |
||
|
Anmeldungsdatum: Beiträge: 6246 |
Ist da etwa bei einem alias "neu" das "=" vergessen worden? So müsste ein alias definiert werden, Code als Beispiel für DEB-Pakete aktuell halten und aufräumen in einem Rutsch: alias neu='sudo apt-get update && sudo apt-get -y dist-upgrade --allow-downgrades && sudo apt-get autoremove -y --purge && sudo apt-get autoclean' Wenn das Gleichheitszeichen fehlen würde, würde die Bash das sofort ausführen, ohne das zuvor "neu" eingegeben wird und die Entertaste gedrückt wird. |
||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 98 Wohnort: Niederkrüchten |
Habe den zweiten Beitrag bearbeitet dort stehen jetzt die Dateien drin. Wie kann ich z.Bsp trollsportverein direkt antworten ! |
||
|
Supporter
Anmeldungsdatum: Beiträge: 8762 |
Auf keinen Fall mit Fullquotes. Ein @ |
||
|
Anmeldungsdatum: Beiträge: 966 Wohnort: im Exil ;( |
Das macht es ja sooo übersichtlich. 😉 😇 In dem zusammengeschusterten Kram wird weder „neu“ definiert, noch aufgerufen, aber vielleicht da drin: Könnte man auch einfach mit grep auf Suche gehen (Oder der Suchfunktion im grafischen Editor). grep -w neu ~/.bashrc ~/.bash_functions ~/.bash_aliases ~/.deno/env |
||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 98 Wohnort: Niederkrüchten |
habe den Befehl mal ausgeführt
Gut das zusammenkopieren war nicht hilfreich,dachte besser eine Datei. mit grep hatte ich schonmal gesucht ! |
||
|
Supporter
Anmeldungsdatum: Beiträge: 8762 |
Bitte kopiere Terminalausgaben immer vollständig von Anfangs- bis einschliesslich Endprompt inkl. Befehlseingabe in einen Codeblock. schwarzheit@hp455g9:~$ date <-- Anfangsprompt inkl. Befehlseingabe - damit man sieht was du ausgeführt hast Sa 1. Nov 13:18:30 CET 2025 <-- Ausgabe schwarzheit@hp455g9:~$ <-- Endprompt - damit man sieht das die Ausgabe vollständig ist Das ist nichts neues, das habe ich dir schon X mal gesagt. |
||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 98 Wohnort: Niederkrüchten |
Jetzt nochmal als Foto ich starte ein Terminal mit strg alt t und sehe genau das gebe den greb von Ruth ein das Ergebnis ! |
||
|
Supporter
Anmeldungsdatum: Beiträge: 8762 |
Nein, Bilder braucht es dafür nich. Text bleibt Text und gehört genau so als Text in einen Codeblock. Kopiere ALLES aus dem Terminal hier in einen Codeblock. Also auch den Endprompt. Damit man sieht das da nichts weggelassen wurde. Muss man dir das wirklich in jedem Thread wieder neu erklären? |
||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 98 Wohnort: Niederkrüchten |
Was ich mache im Terminal alles markieren. Dann ist es hell, jetzt STRG SHFT C und hier einfügen wo ist der Fehler ?
|
||
|
Supporter
Anmeldungsdatum: Beiträge: 8762 |
Jetzt ist es richtig und vollständig.
Führe folgenden Befehl in einem Terminal aus und zeige uns die vollständige Ein- und Ausgabe hier im Forum als Codeblock formatiert: grep -RniE '(^|[;&|[:space:]])neu([;&|[:space:]]|$)' ~/.bashrc ~/.bash_aliases ~/.bash_functions ~/.profile ~/.bash_profile ~/.bash_login /etc/profile /etc/bash.bashrc /etc/profile.d/ 2>/dev/null (Benutze Kopieren Strg + C und Einfügen Strg + V . Im Terminal braucht es zusätzlich die ⇧ -Taste.) |
||
|
Anmeldungsdatum: Beiträge: 118 |
Verstehe bei dem ganzen Thema nur "Bahnhof". @waltermeister Was soll Dein ganzer Datei Quatsch? Übrigens, alle Aliasse anzeigen: alias #Funktionen declare -F Würde Dir empfehlen eine .txt Hilfedatei in einem Ordner anzulegen darin die Erklärungen/ Hilfe rein und nicht in .bash_aliases etc. Offenbar magst Du Chaos.
Heisst es wurde zu "neu" nur "# 2. Den REINEN Befehl ..." gefunden. |
||
|
Anmeldungsdatum: Beiträge: 14757 |
Bekommst Du mit: grep -Hn "^neu$" ~/.* 2>/dev/null eine Ausgabe? |