Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 utilisable de commande
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 utilisable de commande
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

ClementF a écrit :

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).


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne