La remarque à propos de info relève à mon avis d’un jugement mal avisé.
À en juger par les commentaires des utilisateurs chevronnés de systèmes Unix dans les forums ou les listes de diffusion, les pages info ont moins bonne presse que les pages man, en raison de leur système de navigation quelque peu désuet et, surtout, de l’impossibilité de les mettre en forme, notamment pour en imprimer un extrait ou la totalité.
On peut produire divers formats en compilant les même fichiers sources : HTML, PDF ou Info. Il existe aussi plusieurs lecteurs de documents Info. Il est plus efficace et pratique de parcourir un sujet dans le système Info qu’en utilisant la commande less. Le système Info est recommandé par le projet GNU car il vise à former des utilisateurs et non pas à informer (comme les pages man).
Qu’en est-il de la compréhensibilité des pages de manuel ? Il faut comprendre l’anglais, avoir des notions d’administration système (pour appréhender les choses) et savoir situer son niveau technique. Cela n’est pas forcément problématique pour ceux ayant une formation. Parce que certains sujets sont complexes à traiter.
(Livre) Unix & Linux : utilisation et administration [de Jean-Michel Léry]
8.2.5 La documentation sur les shells
Les différents environnements sont très complexes (même pour les plus simples), et nombre de fonctionnalités, parfois accessoires, sont disponibles. Dans ce chapitre, nous présenterons, de manière précise mais non exhaustive, les fonctionnalités importantes et intéressantes de ces environnements. Le système UNIX propose des manuels sur les différents shells. Celui de la commande ksh s’affiche après la saisie de man ksh.
Attention
La documentation fournie par les manuels est à la fois imposante et condensée. Il est difficile de s’y retrouver sans avoir déjà une bonne maîtrise de l’environnement, voire parfois quelques connaissances en programmation. Plutôt que comme un point de départ, mieux vaut l’utiliser comme un complément d’apprentissage qui permet d’aller encore plus loin.
On indique d’utiliser cat pour visualiser des fichiers textes peu long par souci de simplification : cat est une commande simple à utiliser (pédagogiquement). Mais cat a été conçue pour concaténer des fichiers vers la sortie standard. Normalement, on ne doit pas avoir à se soucier de la longueur du fichier lu pour choisir quelle est la commande adéquate.
J’aime bien la présentation du livre « Reprenez le contrôle à l’aide de Linux » de Mathieu Nebra.
La commande cat permet d’afficher tout le contenu d’un fichier dans la console d’un seul coup.
Pour faire simple, la différence entre more et less c’est que more est vieux et possède peu de fonctionnalités, tandis que less est beaucoup plus puissant et rapide.
cat ne devrait pas (selon moi) être utilisée afin de visualiser le contenu d’un fichier : less -FXfichier.
Le guide complet du langage C (Claude Delannoy) > 11. L’opérateur séquentiel
Certes, un tel opérateur pourrait théoriquement être utilisé pour réunir plusieurs instructions en une seule. Dans la pratique, ce n’est pas là le principal usage que l’on fera de cet opérateur séquentiel. En revanche, il interviendra fréquemment dans les instructions de choix ou dans les boucles : là où la syntaxe n’a prévu qu’une seule expression, l’opérateur séquentiel permet d’en placer plusieurs, et partant, d’y réaliser plusieurs calculs ou plusieurs actions.
if (argc > 2 && argv[2][0] == '0')
{
action = 4; color = false;
}
Clairement, cette portion de code peut être écrite de façon usuelle. L’opérateur séquentiel n’a pas vraiment de sens dans le contexte.
printf("%d", a<b ? a : b);
if (a < b)
printf("%d", a);
else
printf("%d", b);
On a une écriture plus compacte sauf que initialement le sens du code est inapparent. Ce morceau de code aurait-il une pertinence ? Quelle pertinence aurait-il pu avoir ?
printf("%d", *(tab+2));
printf("%d", 2[tab]);
En programmation, les tableaux sont conventionnellement indexés en utilisant la syntaxe tab[i]. L’équivalence est admise car elle a un sens intrinsèque dans la conception du langage C. L’identificateur de tableau tab est converti en un pointeur constant sur le premier élément du tableau : on accède à une structure de donnée.
printf("%c", "!=~"[is_good]);
// Ou comme on l'a vu :
printf("%c", is_good["!=~"] ); // Affiche '!' si is_good vaut 0
// '=' si is_good vaut 1
// '~' si is_good vaut 2
Pour moi, ce code est totalement incompréhensible (ou vraiment incroyable, avec mes rudiments du C).
int tab[10] = {[2] = 5};
Au cours de ma lecture du livre « Le guide complet du langage C » de Claude Delannoy, je ne me souviens pas de ce genre de notation (?).
Édition : Ce genre de notation est apparue à partir de C99. La norme C appelle cela « designated initializer ».
L’explication paraît fautive puisque c’est peu probable que cela soit toujours identique à int tab[10] = {0, 0, 5}; en termes d’initialisation de tableau. Cela n’est vrai que pour les tableaux d’entiers de classe statique (les tableaux définis dans une fonction sont de classe automatique et ne sont pas initialisés, les valeurs qui n’ont pas été initialisées explicitement sont, de fait, imprévisibles).
int tab[10]; tab[2] = 5;
Mon niveau n’est pas suffisant pour me faire une idée de ce qui est valide ou pas dans le reste de l’article. Je reste sceptique.
“En revanche, si vous avez des arguments pour me convaincre que je me trompe, je n’aurai aucun mal à dire que j’ai changé d’avis s’ils m’ont convaincu.”
Les commentaires de ce billet sont fermés sur le blog haha.
Bon j’avais rien à dire mais l’ironie était à noter.
Je n’ai pas le même avis sur la conclusion, qui relève du mythe (voir ci-dessous). Il est omis qu’il faut maîtriserplusieurs commandes mais également le shell. D’autant plus qu’il faut pouvoir créer de nouvelles commandes.
À partir du moment où vous maîtrisez ne serait-ce qu’une poignée de commandes Unix, vous apprendrez à les combiner pour résoudre les problèmes de manière efficace.
Les choses sont exposées avec plus de réalisme dans la documentation de GNU Coreutils.
31. Opening the Software Toolbox > 31.1. Toolbox introduction
(An important additional point was that, if necessary, take a detour and build any software tools you may need first, if you don’t already have something appropriate in the toolbox.)
Il faut également prendre en considération la complexité du processus en question pour effectuer une tâche donnée : voir l’article Wiki « ParsingLS » pour avoir un aperçu.
L’article était pour répondre à un besoin particulier.
Mais en effet je préfère largement Anydesk qui est fonctionnel correctement et disponible directement en flatpak. D’ailleurs j’ai mis la petite phrase dans l’intro “A noter que je préfère personnellement Anydesk qui est disponible directement en Flatpak.”
Chtite suggestion. Sur les postes clients Linux dont je dois assurer la télémaintenance en mode graphique, j’utilise Anydesk, qui fonctionne à merveille.
Alors juste un grand merci pour ton article VPN bridgé.
J’ai acheté un WD Cloud il y a quelques années et du jour au lendemain ils ont décrété que l’accès à distance était désactivé. J’ai halluciné quand j’ai vu que le boitier tournait sur une Debian avec un noyau 2.3…. pour un produit sorti en 2016 je crois. Bref…
La seule solution pour moi était de passé par le VPN. J’ai vachement galéré, j’ai tout essayé et je suis tombé sur ton billet. Miracle. En 3 minutes s’était réglé. Bref un grand mais alors un grand grand merci.
Je ne comprends pas bien, Copilot reste une fonctionnalité facultative qu’un développeur peut ou ne pas activer, ne pas l’activer ne règle-t-il pas les craintes soulevées par l’article concernant la propriété du code? Merci
Merci pour l’inclusion de mon dernier article ! :D :p
La remarque à propos de
info
relève à mon avis d’un jugement mal avisé.On peut produire divers formats en compilant les même fichiers sources : HTML, PDF ou Info. Il existe aussi plusieurs lecteurs de documents Info. Il est plus efficace et pratique de parcourir un sujet dans le système Info qu’en utilisant la commande
less
. Le système Info est recommandé par le projet GNU car il vise à former des utilisateurs et non pas à informer (comme les pagesman
).Qu’en est-il de la compréhensibilité des pages de manuel ? Il faut comprendre l’anglais, avoir des notions d’administration système (pour appréhender les choses) et savoir situer son niveau technique. Cela n’est pas forcément problématique pour ceux ayant une formation. Parce que certains sujets sont complexes à traiter.
On indique d’utiliser
cat
pour visualiser des fichiers textes peu long par souci de simplification :cat
est une commande simple à utiliser (pédagogiquement). Maiscat
a été conçue pour concaténer des fichiers vers la sortie standard. Normalement, on ne doit pas avoir à se soucier de la longueur du fichier lu pour choisir quelle est la commande adéquate.Pourquoi ne pas utiliser cat ?
J’aime bien la présentation du livre « Reprenez le contrôle à l’aide de Linux » de Mathieu Nebra.
cat
ne devrait pas (selon moi) être utilisée afin de visualiser le contenu d’un fichier :less -FX
fichier.Les exemples avancés comme justificatifs sont quelque peu douteux.
On fournit deux nombres entiers pour finalement n’en afficher qu’un seul : ce qui est insensé.
Le guide complet du langage C (Claude Delannoy) > 11. L’opérateur séquentiel
Clairement, cette portion de code peut être écrite de façon usuelle. L’opérateur séquentiel n’a pas vraiment de sens dans le contexte.
On a une écriture plus compacte sauf que initialement le sens du code est inapparent. Ce morceau de code aurait-il une pertinence ? Quelle pertinence aurait-il pu avoir ?
En programmation, les tableaux sont conventionnellement indexés en utilisant la syntaxe
tab[i]
. L’équivalence est admise car elle a un sens intrinsèque dans la conception du langage C. L’identificateur de tableautab
est converti en un pointeur constant sur le premier élément du tableau : on accède à une structure de donnée.Pour moi, ce code est totalement incompréhensible (ou vraiment incroyable, avec mes rudiments du C).
Au cours de ma lecture du livre « Le guide complet du langage C » de Claude Delannoy, je ne me souviens pas de ce genre de notation (?).
Édition : Ce genre de notation est apparue à partir de C99. La norme C appelle cela « designated initializer ».
L’explication paraît fautive puisque c’est peu probable que cela soit toujours identique àint tab[10] = {0, 0, 5};
en termes d’initialisation de tableau. Cela n’est vrai que pour les tableaux d’entiers de classe statique (les tableaux définis dans une fonction sont de classe automatique et ne sont pas initialisés, les valeurs qui n’ont pas été initialisées explicitement sont, de fait, imprévisibles).Mon niveau n’est pas suffisant pour me faire une idée de ce qui est valide ou pas dans le reste de l’article. Je reste sceptique.
“En revanche, si vous avez des arguments pour me convaincre que je me trompe, je n’aurai aucun mal à dire que j’ai changé d’avis s’ils m’ont convaincu.”
Les commentaires de ce billet sont fermés sur le blog haha.
Bon j’avais rien à dire mais l’ironie était à noter.
Je n’ai pas le même avis sur la conclusion, qui relève du mythe (voir ci-dessous). Il est omis qu’il faut maîtriser plusieurs commandes mais également le shell. D’autant plus qu’il faut pouvoir créer de nouvelles commandes.
Les choses sont exposées avec plus de réalisme dans la documentation de GNU Coreutils.
Il faut également prendre en considération la complexité du processus en question pour effectuer une tâche donnée : voir l’article Wiki « ParsingLS » pour avoir un aperçu.
L’article était pour répondre à un besoin particulier. Mais en effet je préfère largement Anydesk qui est fonctionnel correctement et disponible directement en flatpak. D’ailleurs j’ai mis la petite phrase dans l’intro “A noter que je préfère personnellement Anydesk qui est disponible directement en Flatpak.”
Chtite suggestion. Sur les postes clients Linux dont je dois assurer la télémaintenance en mode graphique, j’utilise Anydesk, qui fonctionne à merveille.
Bonjour,
Ben super, je suis content que cela puisse servir. J’ai pas mal galéré moi même d’où l’article.
En tout cas bon courage
Alors juste un grand merci pour ton article VPN bridgé. J’ai acheté un WD Cloud il y a quelques années et du jour au lendemain ils ont décrété que l’accès à distance était désactivé. J’ai halluciné quand j’ai vu que le boitier tournait sur une Debian avec un noyau 2.3…. pour un produit sorti en 2016 je crois. Bref… La seule solution pour moi était de passé par le VPN. J’ai vachement galéré, j’ai tout essayé et je suis tombé sur ton billet. Miracle. En 3 minutes s’était réglé. Bref un grand mais alors un grand grand merci.
Merci ^^
Un peu dans la même idée que la série d’article, il y le livre sur Stallman disponible sur Framabook (que j’ai bien aimé pour le coup) : https://archives.framabook.org/docs/stallman/framabook6_stallman_v1_gnu-fdl.pdf
À priori, c’est sa seule méthode de déploiement possible, donc via GitHub ou à la main, autant que ce soit automatisé :)
Mais je suis d’accord avec toi sur l’utilisation du FTP en 2022, c’est dommage ^^
Déployer via github sur un FTP qui n’est pas sécurisé, quelle bonne idée ;(
Le soucis etant :
Qu un developpeur l active ou pas ne change rien au fait qu’il y a un problème de licence.
Je ne comprends pas bien, Copilot reste une fonctionnalité facultative qu’un développeur peut ou ne pas activer, ne pas l’activer ne règle-t-il pas les craintes soulevées par l’article concernant la propriété du code? Merci
n8n n’est pas open source (au sens strict du terme) et utilise une license Fair-code.