Comment créer un simple fichier .txt (texte) avec terminal? [fermé]


77

J'essaie simplement de passer en revue les commandes de base du terminal. Cela dit, comment puis-je créer un fichier texte en utilisant uniquement le terminal?


Bien que la question soit vraiment trop large, un tutoriel rapide (vim, éditeurs, redirection de commandes shell, etc.) pourrait être utile pour l’avenir, en particulier avec le nombre de vues et les scores de vote de la publication et les réponses. Cela serait peut-être plus utile en tant que publication wiki sur la communauté.
user259412

Réponses:


106

Vous ne pouvez pas utiliser un terminal pour créer un fichier. Vous pouvez utiliser une application s'exécutant dans un terminal. Il suffit de se prévaloir d' un éditeur non GUI ( emacs -nw, joe, nano, vi, vim, ...).

Si vous vouliez utiliser la ligne de commande, vous demandez comment créer un fichier à l'aide du shell. Voir Quelle est la différence exacte entre un "terminal", un "shell", un "tty" et une "console"?

La méthode de base pour créer un fichier avec le shell consiste à rediriger la sortie . Par exemple, la commande suivante crée un fichier appelé foo.txtcontenant la ligneHello, world.

echo 'Hello, world.' >foo.txt

Si vous voulez écrire plusieurs lignes, voici quelques possibilités. Vous pouvez utiliser printf.

printf '%s\n' 'First line.' 'Second line.' 'Third line.' >foo.txt

Vous pouvez utiliser un littéral de chaîne contenant des nouvelles lignes.

echo 'First line.
Second line.
Third line.' >foo.txt

ou

echo $'First line.\nSecond line.\nThird line.' >foo.txt

Une autre possibilité est de regrouper des commandes.

{
  echo 'First line.'
  echo 'Second line.'
  echo 'Third line.'
} >foo.txt

Sur la ligne de commande, vous pouvez le faire plus directement avec cat. Réorientez sa sortie vers le fichier et tapez l’entrée standard ligne par ligne de catl’entrée. Appuyez sur Ctrl+ Dau début de la ligne pour indiquer la fin de la saisie.

$ cat> foo.txt 
Première ligne. 
Deuxième ligne. 
Troisième ligne.
Ctrl+D

Dans un script, vous utiliseriez un document here pour obtenir le même effet:

cat <<EOF >foo.txt
First line.
Second line.
Third line.
EOF

Si vous souhaitez simplement créer un fichier vide, vous pouvez utiliser la touchcommande: il crée le fichier s'il n'existe pas et met à jour sa date de dernière modification, le cas échéant.

touch foo.txt

De manière équivalente:

>>foo.txt

c'est-à-dire ouvrir foo.txtpour ajouter, mais lui écrire 0 octet - cela crée le fichier mais ne le modifie pas. Contrairement à touchcela, cela ne met pas à jour la date de dernière modification du fichier s'il existait déjà.

Pour créer un fichier vide et supprimer le contenu du fichier s'il existait déjà, vous pouvez utiliser

>foo.txt

13
touch ~/Desktop/something.txt

Cela va créer un txtfichier vide .

Ou

echo "Hello" > ~/Desktop/somethingelse.txt

Cela créera un txtfichier disant "Bonjour".

nano ~/Desktop/anotherfile.txt

Cela ouvrira ~/Desktop/anotherfile.txtdans nano, ou si elle n'existe pas, il va créer et ouvrir dans nano.

La même chose peut être faite simplement en remplaçant nanopar emacsou vimet il utilisera emacsou vimau lieu denano


devrait également mentionner catavec <<, et mentionner >>.
o11c

Ne réinventons pas la roue. <<et >>sont décrits dans Quels sont les opérateurs de contrôle et de redirection du shell?
G-Man

9

Tout ce qu'il faut pour créer un fichier vide est:

> my.txt

2
Dans certains shells (zsh, tcsh, ...) au moins :> my.txtest nécessaire. :est une commande vide.
Jofel

{echo 'Première ligne.' echo 'Deuxième ligne.' echo 'Troisième ligne.' }> foo.txt ne fonctionnera pas
Waterfr Villa

2

Vous pouvez utiliser le programme d'édition nano, vi ou emacs pour créer un fichier au niveau du terminal. Si vous utilisez un système x windows, vous devez dire à votre système de ne pas utiliser le programme dans l'interface graphique; mais de toute façon, je vais utiliser emacs comme exemple.

De la bash; type:

 emacs filename.txt (press enter) - it will create an empty file with the filename specified "filename.txt". It will save "filename.txt" from which ever 
directory type in "emacs filename.txt" command.

Gardez à l'esprit que dans tous les systèmes UNIX, VI les accompagne. emacs ne le fait pas, vous devrez installer emacs. Nano en revanche est plus populaire; juste au cas où si cela ne répond pas, cela signifie que lorsque vous "nano filename.ext" et que rien ne se produit, vous devez l'installer.

Une fois que vous avez publié vi nomfichier.txt, vous finirez probablement par créer un nouveau fichier. Vous devriez rechercher vi, emacs ou nano comment utiliser Google avant de commencer. Comment écrire un fichier, l’éditer, utiliser ses outils pour rechercher et remplacer du texte est différent dans ces programmes d’édition. J'aime emacs parmi tous les choix mais vous trouverez des développeurs obsédés ou favorables à vi et nano


pour aucune option d'éditeur graphique dans emacs est "emacs nomfichier.txt -nw" où "-nw" signifie pas de fenêtre utilisateur graphique, pas de fenêtre
unixmiah

2

Quelque chose d’aide lorsque vous êtes bloqué et que vous devez créer un fichier texte multiligne sur la ligne de commande ressemble à ceci:

# cat <<'EOF' > textfile
> This "should"
> prove useful, 'maybe'.
> EOF
# cat textfile 
This "should"
prove useful, 'maybe'.

Vous pouvez remplacer catune autre commande, par exemple, grepet un motif , et faire en sorte que grep fasse son travail sur votre entrée, ce qui produirait dans un fichier de la même manière.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.