#1 Le 30/01/2023, à 10:33
- ClementF
Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Bonjour à tous,
J'ai nouvellement installé ubuntu 22.04.1 LTS sur une nouvelle machine il y a plus d'un mois. Et je rencontre des erreurs quasiment systèmatiques quand à l'utilisation du tube, type d'erreur qui me surprend aux vues de l'importance de l'utilisation du tube dans le shell.
Depuis quelques années je travaillais sur un ubuntu 18.04.6 LTS qui est sur une autre de mes machines que j'ai encore, et je n'avais jamais rencontré de tel problème.
Je vous décris l'erreur que je rencontre. Je suis dans home, je lance un ls tube grep :
$ ls | grep .
La commande « grep » n'a pas été trouvée, mais il y en a 18 similaires.
Jusque là rien de trop méchant sauf que la commande grep est installée sur mon système, la preuve, un ls > log et grep . log me renvoie :
$ ls > log
$ grep . log
Bureau
doc_memo_cmds
Documents
fichier
Images
log
Logiciels
Modèles
Musique
OpenFOAM
Public
snap
Téléchargements
Vidéos
Sur cette version d'ubuntu quand je place un tube, le système me dit qu'il ne connaît pas la commande se trouvant juste derrière, ce qui m'empêche d'avancer dans mon travail. D'autres exemples avec wc et awk par exemple, je créer un fichier que je nomme fichier et qui contient une liste de noms d'animaux :
$ cat fichier
poisson
écureuil
sanglier
cerf
oie
poule
$ cat fichier | wc -l
La commande « wc » n'a pas été trouvée, voulez-vous dire :
commande « gwc » du deb geneweb (6.08+git20181019+dfsg-3)
commande « mwc » du deb mwc (2.0.5-1)
commande « wc » du deb coreutils (8.32-4.1ubuntu1)
Essayez : sudo apt install <nom du deb>
$ wc -l fichier
6 fichier
$ cat fichier | awk '{print $1}'
La commande « awk » n'a pas été trouvée, voulez-vous dire :
commande « mawk » du deb mawk (1.3.4.20200120-3)
commande « awk » du deb gawk (1:5.1.0-1build3)
commande « awk » du deb mawk (1.3.4.20200120-3)
commande « awk » du deb original-awk (2018-08-27-1)
commande « nawk » du deb gawk (1:5.1.0-1build3)
commande « nawk » du deb mawk (1.3.4.20200120-3)
commande « gawk » du deb gawk (1:5.1.0-1build3)
Essayez : sudo apt install <nom du deb>
$ awk '{print $1}' fichier
poisson
écureuil
sanglier
cerf
oie
poule
$ cat fichier | awk '{print $1}'
La commande « awk » n'a pas été trouvée, voulez-vous dire :
commande « gawk » du deb gawk (1:5.1.0-1build3)
commande « mawk » du deb mawk (1.3.4.20200120-3)
commande « awk » du deb gawk (1:5.1.0-1build3)
commande « awk » du deb mawk (1.3.4.20200120-3)
commande « awk » du deb original-awk (2018-08-27-1)
commande « nawk » du deb gawk (1:5.1.0-1build3)
commande « nawk » du deb mawk (1.3.4.20200120-3)
Essayez : sudo apt install <nom du deb>
Est ce que vous voyez l'erreur que je cible ? L'avez vous déjà rencontré ? J'ai peut-être passé une petite heure à chercher des solutions sur google, mais c'est le désert je n'ai rien trouvé. En attendant je dois me passer du tube, et si je veux avancer dans mon travail je dois tout rediriger vers un log et reprendre le log dans une nouvelle commande à chaque fois que je voulais me servir du tube sinon ça ne marche pas. Ce qui est un peu embêtant ... Quelqu'un connaitrait une solution ???
Merci
Cdt
Clément
Hors ligne
#2 Le 30/01/2023, à 10:52
- gl38
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Que donne
echo $SHELL
et
echo $PATH
Cordialement,
Guy
Dernière modification par gl38 (Le 30/01/2023, à 11:24)
Hors ligne
#3 Le 30/01/2023, à 11:39
- ClementF
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
$ echo $SHELL
/bin/bash
$ echo $PATH
/home/clement/OpenFOAM/ThirdParty-10/platforms/linux64Gcc/gperftools-svn/bin:/home/clement/OpenFOAM/ThirdParty-10/platforms/linux64Gcc/ParaView-5.6.3/bin:/home/clement/OpenFOAM/ThirdParty-10/platforms/linux64Gcc/cmake-*/bin:/home/clement/OpenFOAM/clement-18/platforms/Linux64GccDPInt320pt/bin:/home/clement/OpenFOAM/site/10/platforms/Linux64GccDPInt320pt/bin:/home/clement/OpenFOAM/OpenFOAM-18/platforms/Linux64GccDPInt320pt/bin:/home/clement/OpenFOAM/OpenFOAM-10/bin:/home/clement/OpenFOAM/OpenFOAM-10/wmake:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:.
Hors ligne
#4 Le 30/01/2023, à 11:54
- gl38
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Il est bien compliqué ton PATH !
En plus tu as modifié ton prompt, par défaut il y a d'autres choses avant le $.
As-tu modifié d'autres choses dans l'environnement ?
Ce serait peut-être plus sûr de mettre à la fin du PATH tout ce que tu as rajouté.
Cordialement,
Guy
Dernière modification par gl38 (Le 30/01/2023, à 12:16)
Hors ligne
#5 Le 30/01/2023, à 11:58
- pingouinux
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Bonjour,
Peux-tu donner le retour de :
echo $0
type $0
Hors ligne
#6 Le 30/01/2023, à 12:02
- iznobe
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Bonjour , a y etre , tu peux aussi donner :
cat .bashrc
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#7 Le 30/01/2023, à 12:25
- ClementF
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
clement@clement-TRX40-AORUS-XTREME:~$ echo $0
bash
clement@clement-TRX40-AORUS-XTREME:~$ type $0
bash est /usr/bin/bash
clement@clement-TRX40-AORUS-XTREME:~$ cat .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
source $HOME/OpenFOAM/OpenFOAM-10/etc/bashrc
PATH=$PATH:.
shopt -s extglob
J'ai changé le prompt en faisant PS1="$\ " mais seulement localement dans un terminal pour avoir plus de place. L'erreur que je souhaite pointer dans cette discussion s'est d'abord manifesté sans changement de prompt, c'est à dire dans des terminaux avec la variable PS1 d'origine.
La variable PATH est chargée du fait de l'installation d'un très gros logiciel sur la machine : openFoam. Mais dans la version 18.04.6 LTS je n'avais jamais eu ce problème pour avoir modifié PS1 et PATH, pourtant j'en ai exactement la même utilisation.
Les modifications permanentes que j'ai apporté à l'environnement de ma machine sont les 3 lignes à la fin de mon .bashrc que sont :
source $HOME/OpenFOAM/OpenFOAM-10/etc/bashrc
PATH=$PATH:.
shopt -s extglob
BIen à vous
Clem
Hors ligne
#8 Le 30/01/2023, à 12:29
- iznobe
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
et en commentant ces 3 lignes , puis en ouvrant un nouveau terminal , ca donne quoi ?
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#9 Le 30/01/2023, à 12:41
- pingouinux
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Au cas où il y aurait un truc bizarre dans ce fichier :
cat $HOME/OpenFOAM/OpenFOAM-10/etc/bashrc
Hors ligne
#10 Le 30/01/2023, à 16:46
- choops
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Bonjour
Sur cette version d'ubuntu quand je place un tube, le système me dit qu'il ne connaît pas la commande se trouvant juste derrière, ce qui m'empêche d'avancer dans mon travail.
En fait, ça fait un truc bizarre qui semble prendre un caractère " " après le pipe qui est compris comme 1er caractère de la commande qui suit. Il ne s'agit sans doute pas d'un espace standard mais plutôt d'un espace insécable, comme si cet espace spécial s'était glissé entre ton pipe et ton grep à la place d'un espace standard.
Ton retour montre bien 2 espaces entre '«' et 'grep':
$ ls | grep .
La commande « grep » n'a pas été trouvée, mais il y en a 18 similaires.
La commande non trouvée n'est donc pas 'grep', mais ' grep', idem pour tes autres exemples.
Le contournement simple, c'est de ne pas laisser d'espace après ton pipe... pas forcément élégant mais ça devrait fonctionner.
Après reste à savoir comment cet espace spécial vient se glisser là...
Éventuellement (sans certitude), ça peut venir d'un trainage d'appui sur une touche dans une combinaison qui précède l'espace problématique du genre: sur clavier FR trainage sur [Alt Gr] en prolongement de la saisie du "|" ([Alt Gr]+[6]), sur clavier US idem avec [Shift] ("|" = [Shift]+[#])
Autre piste, vois à changer ton layout de clavier (ça peut venir d'un défaut dans celui que tu appliques)
Dernière modification par choops (Le 30/01/2023, à 16:54)
Hors ligne
#11 Le 31/01/2023, à 13:16
- ClementF
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
Merci du coup de main. Il fallait une certaine expérience sur la question pour remarquer le petit espace en trop à chaque retour d'erreur devant la commande problèmatique. Chapeau car je n'avais pas vu.
Ca va m'aider dans mon travail car ça me bloquait régulièrement et je n'arrivais pas à faire la différence entre les fois où le tube fonctionnait et les fois où il ne fonctionnait pas. Parce que parfois en bidouillant un peu j'arrivais à faire passer la commande sans erreur mais du coup je ne comprenais pas encore pourquoi certaines fois la commande passait alors que d'autres fois non. Maintenant quand j'aurai à nouveau cette erreur j'enleverai l'espace devant le tube, ça va me faire gagner du temps et pour les nerfs c'est mieux.
Je vous remercie bien
Cdt
Clément
Dernière modification par ClementF (Le 31/01/2023, à 13:23)
Hors ligne
#12 Le 31/01/2023, à 14:01
- jplemoine
Re : Erreurs d'ubuntu 22.04 LTS quand à l'utilisation du Tube !
En fait, il faut effacer l'espace entre le grep et le pipe et le remettre. Je ne sais pas pourquoi mais par moment (mauvais appui sur une touche), il y a un espace qui n'est pas un ascii 32 (20 hexa).
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne