¿Cómo crear un archivo .txt (texto) simple usando terminal? [cerrado]

77

Solo estoy tratando de revisar los comandos básicos del terminal. Habiendo dicho eso, ¿cómo creo un archivo de texto usando solo la terminal?

Mike Wentworth
fuente
Aunque la pregunta es realmente demasiado amplia, un tutorial rápido (vim, editores, redirección de comandos de shell, etc.) podría ser útil para el futuro, particularmente junto con el recuento de vistas y los puntajes de votación de la publicación y las respuestas. Tal vez sería más útil como una publicación wiki de la comunidad.
user259412

Respuestas:

106

No puede usar una terminal para crear un archivo. Puede usar una aplicación que se ejecuta en una terminal. Simplemente invocar cualquier editor no GUI ( emacs -nw, joe, nano, vi, vim, ...).

Si quisiste usar la línea de comando, entonces estás preguntando cómo crear un archivo usando el shell. Consulte ¿Cuál es la diferencia exacta entre un 'terminal', un 'shell', un 'tty' y una 'consola'?

La forma básica de crear un archivo con el shell es con la redirección de salida . Por ejemplo, el siguiente comando crea un archivo llamado que foo.txtcontiene la líneaHello, world.

echo 'Hello, world.' >foo.txt

Si desea escribir varias líneas, aquí hay algunas posibilidades. Puedes usar printf.

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

Puede usar un literal de cadena que contenga nuevas líneas.

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

o

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

Otra posibilidad es agrupar comandos.

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

En la línea de comando, puede hacer esto más directamente con cat. Redireccione su salida al archivo y escriba la entrada línea por línea en catla entrada estándar. Presione Ctrl+ Dal comienzo de la línea para indicar el final de la entrada.

$ cat> foo.txt 
Primera línea. 
Segunda linea. 
Tercera linea.
Ctrl+D

En un script, usaría un documento here para lograr el mismo efecto:

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

Si solo desea crear un archivo vacío, puede usar el touchcomando: crea el archivo si no existe, y solo actualiza su fecha de última modificación si existe.

touch foo.txt

Equivalentemente:

>>foo.txt

es decir, abierto foo.txtpara agregar, pero escribir 0 bytes en él; esto crea el archivo pero no lo modifica. A diferencia touch, esto no actualiza la fecha de última modificación del archivo si ya existía.

Para crear un archivo vacío y eliminar el contenido del archivo si el archivo ya existía, puede usar

>foo.txt
Gilles
fuente
13
touch ~/Desktop/something.txt

Esto creará un txtarchivo vacío .

O

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

Esto creará un txtarchivo que dice "Hola".

nano ~/Desktop/anotherfile.txt

Esto abrirá ~/Desktop/anotherfile.txten nano, o si no existe, se creará y abrirlo en nano.

Lo mismo se puede hacer simplemente reemplazando nanocon emacso vimy usará emacso en vimlugar denano

Nombre para mostrar
fuente
también debería mencionar catcon <<y mencionar >>.
o11c
No reinventemos la rueda. <<y >>se discuten en ¿Cuáles son los operadores de control y redirección de shell?
G-Man
9

Todo lo que se necesita para crear un archivo vacío es:

> my.txt
SAM
fuente
2
En algunos shells (zsh, tcsh, ...) al menos :> my.txtse necesita. :Es un comando vacío.
jofel
{echo 'Primera línea'. echo 'Segunda línea'. echo 'Tercera línea'. }> foo.txt no funcionará
Waterfr Villa
2

Puede usar el programa de edición nano, vi o emacs para crear archivos a nivel de terminal. Si está utilizando el sistema x windows, deberá decirle a su sistema que no use el programa en la GUI; pero de todos modos, usaré emacs como ejemplo.

De la fiesta; tipo:

 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.

tenga en cuenta que todo el sistema VI de UNIX viene con él; emacs no, tendrás que instalar emacs. Nano por otro lado es más popular; en caso de que si eso no responde, significa que cuando "nano filename.ext" y no pasa nada, deberá instalarlo.

una vez que emita vi filename.txt, lo más probable es que termine creando un nuevo archivo. Debería buscar vi, emacs o nano cómo usar en google antes de comenzar. Cómo escribir un archivo, editarlo, usar sus herramientas para buscar y reemplazar texto es diferente en esos programas de edición. Me gustan los emacs de todas las opciones, pero encontrarás desarrolladores que están obsesionados con vi y nano.

unixmiah
fuente
para ninguna opción de editor gráfico en emacs es "emacs filename.txt -nw" donde "-nw" significa que no hay ventana gráfica de usuario, no hay ventana
unixmiah
2

Algo útil cuando está atascado y debe crear un archivo de texto multilínea en la línea de comando es algo como esto:

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

Puede sustituir catpor otro comando, por ejemplo, grepy un patrón , y hacer que grep haga su trabajo en su entrada y esto generará un archivo de la misma manera.


fuente