Excellent texte expliquant la ligne de commande #Unix, ses origines (avec la raison pour laquelle grep se nomme grep), son utilité, et l’invention géniale qu’a représenté le tube.
►http://geekblog.oneandoneis2.org/index.php/2012/09/30/to-understand-the-command-line
Voir aussi, sur le défunt projet TermKit ►http://seenthis.net/messages/52219
Xiki vient de réussir son financement ▻https://www.kickstarter.com/projects/xiki/xiki-the-command-revolution
Le triste état de la programmation sur #Unix, notamment du logiciel libre, vu par Poul-Henning Kamp. Pour ceux qui ne le connaissent pas, c’est un des meilleurs représentants de l’école « Le reste du monde est composé de crétins, je suis le seul à m’y connaître et on ne m’écoute pas. » Mais il a parfois raison (les accidents arrivent).
Outre le ton de PHK (« j’ai essayé, du haut de mon génie, de les éduquer, mais ils n’ont rien compris »), je vois les problèmes suivants dans son article :
Il mélange beaucoup de choses différentes. autoconf, qui fait l’objet de la majorité de l’article n’a par exemple rien à voir avec la bulle .com, qui est bien postérieure. PHK présente plusieurs choses qui l’énervent, mais qui ne sont pas liées.
Même si on n’aime pas autoconf, peut-on vraiment faire un article sur l’état de la programmation Unix à partir de ce seul programme ?
Il prête à Eric Raymond des pouvoirs extraordinaires : on savait faire des programmes mal fichus et bordéliques longtemps avant que Raymond n’écrive son article !
Je ne comprends pas le débat. Chacun y va de son interprétation de ce que sont la cathédrale et le bazar... Mais je n’y vois rien d’objectif - encore moins même que dans les débats concernant PHP cité dans l’article précédent : un projet informatique n’existe pas isolément de son environnement - il a un budget, des délais, des acteurs plus ou moins compétents, une organisation plus ou moins accueillante etc. Les choix d’outils ne peuvent être jugés que dans leur contexte et non dans l’absolu. PHP a ses cas usages pertinents, tout comme le développement basé sur quelques milliers de pages de normes et de spécifications parfaitement bouclées, tout comme les horreurs que je sais assembler en Bash avec des bibliothèques dans trois languages différents, l’inspiration du jour et beaucoup de chatterton. Je mélange volontairement des choix d’organisation et d’implémentation : ces deux catégories sont des outils. Choisir un outil à-priori mène rarement à de bons résultats, à moins d’avoir délibérément choisi de se lancer dans un exercice de style.
NCurses Disk Usage
►http://dev.yorhel.nl/ncdu
Sur un serveur pour voir rapidement là où il faut faire de la place. Attention la touche d fait un « rm -rf » (je l’utilise que pour naviguer personnelement.
Not quite happy with the available disk usage analyzers and looking for a fun project to get used to C programming, I started working on ncdu: A disk usage analyzer with an ncurses interface, aimed to be run on a remote server where you don’t have an entire gaphical setup, but have to do with a simple SSH connection. ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.
►http://www.michaelmalter.fr/wp-content/uploads/2011/08/ncdu2.gif
Authentication #security tip of the day: do ’echo -n your_password | sha1sum’ and search result in Google. Got a hit ? Change your password ! Repeat test with ’echo -n your_password | md5sum’. Yes, your favorite password is probably already in a rainbow table somewhere...
On Twitter, four proposals to improve security (because the command you mention leaves the password in the history).
Michel Leunen says « And do ’history -c’ at the end to erase your password from the terminal history ! »
And François Revol : « read p; echo -n “$p” | sha1sum # would avoid leaking it to history (but still briefly to ’ps’ output) » Colm MacCárthaigh suggests to solve this last proble with « tr -d ’\n’ | sha1sum »
Or Changaco, more radical : « don’t put it in the history at all (see HISTCONTROL in bash, HIST_IGNORE_SPACE in zsh) »
Prepending a space before the command keeps it from being written to the shell’s history.
The 5-Minute Essential Shell Tutorial
►http://community.linuxmint.com/tutorial/view/100
Many people are frightened by it for some reason or another, so this tutorial will attempt to provide you the most basic of commands to enable navigation and basic system actions from the comfort of your keyboard.
#shell #command_line #unix #linux #mint
FileSystemDB
►https://developer.mozilla.org/fr/demos/detail/filesystemdb
This is a WIP implementation of the FileSystemAPI (and FileWriter API) using IndexedDB.
In the code there are a few tests and a demo written by a Google developer to showcase the FileSystemAPI.
The demo is a terminal emulator with UNIX commands (cd, mkdir, rm, etc.). To add files, you can drag and drop them from the desktop.
#html5 #interfaces #web #unix
Multiple Search/Replace Operations on Multiple Recursive Files: replace_string
►http://unixgods.org/~tilo/replace_string
replace_string consistently changes/modifies any number of text files, either interactively or in batch mode, either with or without keeping backups, preserve modes/owner when run as root.
Why is the DOS path character « \ » ? - Larry Osterman’s WebLog - Site Home - MSDN Blogs
►http://blogs.msdn.com/b/larryosterman/archive/2005/06/24/432386.aspx
But there was a problem. They couldn’t use the *nix form of path separator of “/”, because the “/” was being used for the switch character.
So what were they to do? They could have used the “.” character like the DEC machines, but the “.” character was being used to differentiate between file and extension. So they chose the next best thing - the “\” character, which was visually similar to the “/” character.
And that’s how the “\” character was chosen.
En fait, l’histoire de l’informatique, ou plutôt de la programmation m’intéresse de plus en plus. On y découvre que rien n’est vraiment rationnel, juste une affire humaine comme les autres, avec ses aléas et ses vicissitudes.
Ce qui donne lieu à d’intéressants commentaires comme :
Larry Osterman [MSFT]
24 Jun 2005 6:18 PM
Andreas: *nix commands have no problems with files with “-” in the name?
How do you remove the file named “-r”?
@grommeleur
La méthode générérique : utiliser l’argument spécial double tiret (que @seenthis transforme en tiret long) :
rm — -r
Ce double tiret est à utiliser systématiquement dans les scripts shell pour éviter que les fichiers soient pris comme des arguments :
rm — $fichiers
All commands | commandlinefu.com
►http://www.commandlinefu.com/commands/browse
commandlinefu.com is the place to record those command-line gems that you return to again and again.
Le débat sur l’interface utilisateur idéale se focalise souvent en deux camps, les Unixiens purs et durs qui mettent en avant la souplesse et la puissance de la ligne de commande (c’est un langage, on peut tout exprimer avec, alors que pointer et cliquer, c’est ce que fait un bébé avant de savoir parler, ça ne va pas très loin) et les zélateurs de l’interface graphique, qui considèrent l’utilisateur (nommé « Mme Michu ») comme à peine plus évolué qu’un anthropoïde de l’Est africain d’il y a deux millions d’années, et qui se focalisent sur le graphique (s’il y a des images, c’est que c’est « convivial » et « intuitif »). En général, ces fanas du graphique n’imaginent que des tâches simples et ponctuelles (« détruire un fichier ») et ne proposent rien pour les tâches plus complexes (« détruire tous les fichiers nommés totoQUELQUECHOSE.txt contenant le mot foobar »).
Le projet #TermKit (pour l’instant, c’est surtout un projet) vise à la création d’une interface utilisateur moderne, utile à ceux et celles qui sont sortis de la crèche et ont donc dépassé le stade du pointer-et-cliquer, qui reprend les bons principes du shell Unix (notamment la composabilité et la programmabilité), tout en intégrant les progrès faits depuis la conception dudit shell, il y a trente ans : les interfaces graphiques, mais aussi le typage des données et leur structuration. C’est très prometteur.
Un bon article d’introduction (je recommande aux Unixiens d’être patients et de ne pas jeter leur écran par la fenêtre dès les premiers paragraphes, le texte s’améliore ensuite) ►http://acko.net/blog/on-termkit
Le site officiel (vide pour l’instant) ►http://termkit.org
Le code (MacOS uniquement pour l’instant) ►https://github.com/unconed/TermKit
As-tu eu l’occasion de voir Automator (OS X) à l’œuvre ?
Automator
►http://support.apple.com/kb/HT2488
Automator is your personal automation assistant, making it easy for you to do more, and with less hassle. With Automator, you use a simple drag-and-drop process to create and run “automation recipes” that perform simple or complex tasks for you, when and where you need them.
C’est un outil livré avec OS X qui fait office de chaînon manquant entre la puissance de la ligne de commande (paramétrange, enchaînement de programmes reprenant en entrée la sortie des autres) et l’ergonomie d’une interface graphique, puisque celui-ci se « programme » à la souris, en constituant les lignes du script Automator (qui génère une application OS X ou associe un évènement OS X) à partir des possibilités proposées nativement par les divers programmes (comme « Imprimer un Document » proposé par Microsoft Office pour les fichiers supportés) ou à partir de macros enregistrées clic par clic (cliquer sur le menu Fichier, cliquer sur Ouvrir..., cliquer sur...)
Je comprend pas pourquoi il faut choisir, n’importe quel OS graphique comporte un terminal, et tout le monde est content ?
@martin : le fait de se programmer à la souris ne me semble pas un avantage. Des programmes qui permettent de combiner des actions graphiquement, il y en a des tas. Des programmes qui utilisent un langage, c’est plus rare.
@baroug : non, tout le monde n’est pas content. Les utilisateurs du terminal trouvent que c’est très puissant mais quand même un peu archaïque (voir le début de l’article ►http://acko.net/blog/on-termkit qui liste bien les limites du shell Unix) et les utilisateurs du cliquodrome sont tenus à l’écart du shell par sa difficulté et sont donc limités à une interface d’école maternelle.
ça me fait penser à ce seen de @aris :
►http://seenthis.net/messages/31203 (+ critique en commentaire, que je trouve vraiment très valables)
Sinon, ce projet ça a(vait ?) l’air super prometteur. Je ne suis pas très doué en ligne de commande, mais c’est vraiment impressionnant d’efficacité (sed, awk et grep, notamment... super chaud à maitriser aussi... ).
Xiki réussira peut-être là où TermKit a échoué ►http://seenthis.net/messages/87023
Plus d’infos sur le pourquoi du comment (de l’abandon de Termkit)
►http://seenthis.net/messages/97876
Je suis sûr que les lecteurs de SeenThis peuvent m’aider pour ce choix difficile d’un logiciel pour afficher l’état de mes nombreuses boîtes aux lettres :
convmv - converts filenames from one encoding to another
►http://www.j3e.de/linux/convmv/man
quand on a un vieux #filesystem avec des noms de fichiers en iso-latin, ça passe mal quand on le #rsync vers un nouveau filesystem ; pour cela si on peut renommer les fichiers sur la source, utiliser #convmv :
# convmv -r . -f iso-8859-1 -t utf8 —notest
#unix
Dennis Ritchie, un des hommes qui a le plus changé l’informatique, est mort hier.
►http://fr.wikipedia.org/wiki/Dennis_Ritchie
►http://linuxfr.org/users/lmouillart/journaux/dennis-ritchie-est-bronsonis%C3%A9
Après le cirque médiatique sur la mort récente d’un soi-disant geek, voici un vrai geek qui disparaît.
Des bons articles sur son oeuvre :
►http://www.tbray.org/ongoing/When/201x/2011/10/12/DMR
►http://herbsutter.com/2011/10/12/dennis-ritchie
►http://www.nytimes.com/2011/10/14/technology/dennis-ritchie-programming-trailblazer-dies-at-70.html
►https://plus.google.com/101960720994009339267/posts/33mmANQZDtY
►http://www.zdnet.fr/blogs/infra-net/hommage-a-dennis-ritchie-39764791.htm
►http://www.numerama.com/magazine/20168-dennis-ritchie-le-pere-du-langage-c-est-mort.html
Hello world - Wikipédia
►http://fr.wikipedia.org/wiki/Hello_world
Alors que les petits programmes de test existaient depuis le début de la programmation, la tradition d’utiliser hello world comme message de test a été initiée par le livre The C Programming Language de Brian Kernighan et Dennis Ritchie. Le premier exemple de ce livre affiche hello, world (sans majuscule ni point final, mais avec une virgule et un retour à la ligne final). Le premier hello world dont Ritchie et Kernighan se souviennent provient d’un manuel d’apprentissage du langage B écrit par Kernighan.
Effectivement, tous ces idiots de journalistes qui racontent à longueur d’articles que l’autre a tout inventé feraient bien de se documenter un jour.
Mille mercis à Dennis Ritchie pour le C, je me rapelle encore dévorer son livre au cours de l’été 89 ou 90, je ne sais plus trop. Un modèle de clareté et de concision. On oublie parfois à quel point le C est un langage élégant, tout comme unix d’ailleurs.
SCADA Systems Are Online Now
►https://www.infosecisland.com/blogview/16696-FACT-CHECK-SCADA-Systems-Are-Online-Now.html
toujours rassurant de savoir qu’une machine aussi complexe qu’un Boeing est munie d’une passoire en guise de logiciel de contrôle d’accès…
For those who do not know, [#Boeing] #747 ’s are big flying #Unix hosts. At the time, the engine management system on this particular airline was Solaris based. The patching was well behind and they used telnet as #SSH broke the menus and the budget did not extend to fixing this. The engineers could actually access the engine management system of a 747 in route. If issues are noted, they can re-tune the engine in air.
The issue here is that all that separated the engine control systems and the open network was NAT based filters. There were (and as far as I know this is true today), no extrusion controls. They filter incoming traffic, but all outgoing traffic is allowed. For those who engage in Pen Testing and know what a shoveled shell is... I need not say more.
So, Scot... FACT CHECK, #SCADA systems ARE ONLINE!
How to Customize the Command Prompt
►http://net.tutsplus.com/tutorials/other/how-to-customize-the-command-prompt
I’m a big fan of the terminal: whether you’re leveraging a handful of commands (or more!) to improve your development process, or just using it to quickly move around your drives and open files and folders, the command line is an awesome tool. However, if you use it often, you’ll want to customize it to your needs. I’ll show you how to do that today!
#shell #unix #osx #linux #interfaces
►http://www.linux.org.uk/~dan/rumor/rumor.shrink
The truth about Unix: The user interface is horrid
Donald A. Norman Department of Psychology and Program in Cognitive Science Center for Human Information Processing University of California, San Diego La Jolla, California 92093
Pour aller avec : ►http://seenthis.net/messages/31203
#unix #linux #ergonomie #informatique #command_line #ligne_de_commande
arf, bravo #Open_Calais :)
Le papier date de 1981, mais encore pertinent.
Tu sais que pour Open Calais, s’il y a des détections qui ne sont pas pertinentes, tu peux les désactiver en cliquant « Modifier » à côté de « Thèmes automatiques », puis en cliquant sur chaque thème à désactiver (les thèmes désactivés apparaissent barrés).
Oui, @seenthis, j’avais vu.
C’est amusant ce qu’Open Calais trouve (et ne trouve pas) dans les contenus. Tu aurais un lien à me recommander vers une description du fonctionnement de ce « taggeur » sémantique ?
pigz - Parallel gzip
►http://www.zlib.net/pigz
pigz est un utilitaire tout à fait intéressant pour booster la compression de fichiers, y compris la compression de flux, le rendant intéressant dans le cadre de la création d’une archive .tgz de sauvegarde, par exemple.
#unix #pigz #gzip #.tgz #.tar.gz #compression #performance #parallélisme #sauvegarde
Cool, but obscure #unix tools :: KKovacs
►http://kkovacs.eu/cool-but-obscure-unix-tools
dstat & sar
slurm
vim (& ctags)
screen, dtach, tmux (ma config : ►https://github.com/Fil/tmux-config), byobu
multitail
tpp
xargs
duplicity & rsyncrypto
Encrypting #backup tools.
nethack & slash’em
lftp
htop
ttyrec & ipbt
rsync
mtr
socat & netpipes
iftop
siege & tsung
ledger
taskwarrior
curl
J’ai créé un deuxième client pour l’#API_seenthis. Celui-ci est en #shell #Unix et dépend de #curl. Il est interactif, lançant un éditeur pour créer le message avant de l’envoyer à SeenThis.
Compte-tenu des remarques précédentes, je l’ai cette fois distribué sous forme d’un gist :
Faire un client REST+XML en shell Unix était en effet peut-être un peu trop vicieux...
Mais XML Starlet est en
►http://xmlstar.sourceforge.net
Nouvelle version (qui ne résoud pas le problème de @Fil mais qui a l’avantage de tester s’il y a quelque chose sur l’entrée standard, avant d’appeler l’éditeur, ce qui permet de l’appeler avec ’seenthis < /mon/fichier/deja/pret’)
J’ai développé un petit programme en #Python qui utilise l’#API_seenthis pour envoyer un texte sur SeenThis. Il est en ►http://www.bortzmeyer.org/files/seenthis.py
Pour l’utiliser (testé uniquement sur #Unix), il faut un fichier ~/.seenthis/auth qui contient deux lignes, une pour le nom et une pour le mot de passe.
Ensuite :
% seenthis < mon_fichier_avec_mon_message
Prochaine version : appeler $EDITOR pour composer le message... Après, je porte sur #Android avec ►http://www.phonandroid.com/forum/comment-programmer-avec-un-androphone-t123.html :-)
Ne veux-tu pas en faire un gist, même si tu ne veux pas faire de dépôt formel ?
L’API est en mouvement très rapide, donc j’hésite un peu. Pour la prochaine version ?
Ôtes-moi un doute, un gist, c’est bien ►https://gist.github.com
et pas ►http://en.wikipedia.org/wiki/Gastrointestinal_stromal_tumor ?Sur #Mac_OS_X il faut installer #SimpleTAL (en 4.3 car c’est #python_2.6) :
# wget ►http://www.owlfish.com/software/simpleTAL/downloads/SimpleTAL-4.3.tar.gz
# tar -xzf SimpleTAL-4.3.tar.gz
# cd SimpleTAL-4.3
# sudo python setup.py install —install-scripts /usr/local/bin
# echo “ouais” | seenthis
Sous un Gist (de GitHub) il y a un dépôt Git qui conserve l’historique et auquel tu peux accéder soit par le web soit par Git. Tu commence donc sur le web avec un copier-coller, et tu peux continuer par copier-coller ou avec Git.
Quand ton projet prend de l’importance (ou que tu veux permettre à d’autres de contribuer avec GitHub avec les forks), il te suffit de créer un vrai projet GitHub et d’y pousser ton Gist. Tu gardes ainsi tout l’historique de ton Gist.
C’est ce que j’ai fait avec ►https://gist.github.com/553703 (un simple script which.cmd) qui est devenu Win32::App:which ►https://github.com/dolmen/Win32-App-which-perl
Fait pour le deuxième client :-) ►http://seenthis.net/messages/14713
Coda File System
►http://www.coda.cs.cmu.edu
“Coda is an advanced networked filesystem”
#Coda #filesystem #cluster #réseau #réplication #haute_disponibilité #clevermarks #Unix #Linux
Introduction à UNIX et à la programmation Shell
►http://home.gna.org/unix-initiation/website/00-unix-esme.html
Version « en ligne » (non complète) du poly de Seb.
#shell #unix #reference #programming #development #dev #linux #developpement
Autre outil équivalent ►http://www.hping.org/wbox
Et un dessin de #xkcd, qui critique l’absence de disponibilité d’un outil pratique et standard pour cela ►http://xkcd.com/949