Come faccio ad aprire un file di testo nel mio terminale?


152

C'è un file chiamato RESULTS.txte voglio aprire questo file nel mio terminale. (Voglio dire, voglio vedere il contenuto del file visualizzato nel terminale e non in un editor di testo)

Come lo faccio ?


17
Vedo 9 voti positivi, ma in realtà questo è fondamentale. Hai mai provato a cercare la risposta online?
Colton,

5
E 'una domanda divertente che mostra le preferenze delle persone, dalle più semplici cata seda nanoavim
alvas

12
@Sparksis Quando cerco "apri un file di testo in un terminale" ottengo risultati dai forum Mac per cose come Pico, ecc. Che non sono in Ubuntu. Questo tipo di domanda è molto gradita qui.
Jorge Castro,

1
Potresti voler dare un'occhiata ad alcuni tutorial della shell di Ubuntu per principianti - Spiegheranno come fare questo e cose correlate.
l0b0

5
@Sparksis Sì, mi ha mandato qui :)
johnc

Risposte:


183

Per file brevi:

cat <path/your_file>

mostra direttamente un file di testo nel terminale.

Per file più lunghi:

less <path/your_file>

consente di scorrere e cercare ( / text to search Enter) nel file; premere qper uscire.

per esempio

cat /home/john/RESULTS.txt
less /home/john/RESULTS.txt

1
inserendo un comando come se cat /home/suhail/RESULT.txtavessi ricevuto questocat: /home/suhail/RESULT.txt: No such file or directory
Suhail Gupta,

Quando fai "ls". Qual è il risultato di?
Thomas15v,

4
Se ti trovi nella stessa cartella del file, non è necessario eseguire il percorso completo. Puoi semplicemente farlocat RESULT.txt
Shauna,

1
@SuhailGupta: potrebbe esserci più di una suhaildirectory. /home/suhailè normalmente la tua home directory. Cosa pwdstampa? Inoltre, il completamento della scheda può essere molto conveniente; se digiti cat R<tab>, e c'è solo un file nella directory corrente il cui nome inizia con R, si espanderà al nome di quel file.
Keith Thompson,

1
A proposito - Su Windows, il comando ètype
mowwwalker

33

Un'altra alternativa è vim.

vim RESULTS.txt

Una volta aperto un file con vim è possibile inserire del testo digitando i, ad esempio. Se vuoi salvare il tuo file usa :w(scrivi) o :q(esci) o :wq(per scrivere ed esci) o :q!(esci e non salvare). A volte è necessario premere il ESCtasto per poter digitare i comandi.

Vim richiede un po 'di apprendimento, ma è ampiamente utilizzato ed è molto versatile.

Controlla la wiki di aiuto della community: https://help.ubuntu.com/community/VimHowto

Vim è un editor di testo avanzato che fornisce alla potenza dell'editor Unix di fatto 'Vi' un set di funzionalità più completo. Vim è spesso chiamato un "editor per programmatori" ed è così utile per la programmazione che molti lo considerano un intero IDE. Tuttavia, non è solo per i programmatori. Vim è perfetto per tutti i tipi di modifica del testo, dalla composizione di e-mail alla modifica dei file di configurazione.


4
Un'alternativa ancora migliore è view, che avvia Vim in modalità di sola lettura su Ubuntu. E poiché l'OP ha chiesto di visualizzare ed esplicitamente non modificare ... -1 ... ovviamente riprenderò il downvote nel caso in cui questo venga modificato.
0xC0000022L

8
@ 0xC0000022L :) Puoi mantenere il downvote. Sentiti libero di aggiungere una risposta viewse vuoi. Vimè perfettamente in grado di mostrare i file e quindi questo risponde alla domanda.
don.joey,

2
Ho votato prima il tuo commento . Bene con me. Ma dal momento che hai menzionato Vim, viewsi adatterebbe letteralmente alla tua risposta anziché a una separata. Lo penso ancora e non in qualche editor di testo è abbastanza chiaro;)
0xC0000022L

view è un stupido alias di quattro lettere per vim -R. Se non si utilizza alcun comando di salvataggio come ZZ, :wo :x, non vi è alcuna differenza. Inoltre è possibile reindirizzare i file per vimusarlo come un lettore: command | vim -. Questo di solito è meglio di less, l'unico lato negativo è che vimringhia l'intero output prima di visualizzare qualcosa.
Kaz,

1
@ 0xC0000022L: per qualcuno abbastanza nuovo nell'uso della riga di comando, "nel terminale e non in un editor di testo" potrebbe facilmente significare "in qualche utilità all'interno del terminale, non in un editor di testo che si apre in una finestra separata". Quando sono arrivato alla riga di comando, ero così abituato a identificare le applicazioni con le loro finestre che certamente pensato di vim, nanoecc come parte del terminale piuttosto che le applicazioni come separate per un bel po '.
PLL,

16

tutti questi sono i modi migliori e c'è un altro modo per farlo e questo è con headcomando.

head -n -1 filename.txt

e

head -n -0 filename.txt

entrambi ti daranno lo stesso input.

Capo comando Spiegazione:

Generalmente comando head utilizzato per stampare le linee di partenza di qualsiasi file di testo. Possiamo visualizzare il file di testo con

head filename.txt

Questo stamperà le prime 10 righe del file di testo sopra.

Se si desidera specificare il numero di righe da visualizzare, è possibile utilizzare head as

head -n 20 filename.txt

Quindi nel file di testo sopra saranno visualizzate le prime 20 righe.

Se vuoi visualizzare tutti i dati del file con head significa che possiamo ottenerli

head -n -0 filename.txt

Spero che la spiegazione sopra ti dia qualche idea sull'uso della testa.


1
puoi spiegare il headcomando? è un headsoftware? cosa significano -n e -0?
don.joey,

1
@Privato amico mio, con piacere.
rɑːdʒɑ

3
Questo è davvero un brutto modo di scrivere cat. Se questo è ciò che dovrebbe essere, allora c'è molto più di questo un altro modo per farlo ...
Ry

1
head -n -0 filename.txtè equivalente acat filename.txt
Keith Thompson, il

2
@Jai: è un altro modo di scrivere inutilmente complicato cat.
Ry,

13

Se il file è piuttosto lungo, potresti voler usare

less RESULTS.txt

in modo da poterlo navigare con i tasti direzionali.


3
Sidenote: lessè il successore di more. E in termini di dimensioni eseguibili lessè maggiore di more.
Joachim Sauer,

@Joachim Sauer: anche in termini di funzionalità, ogni volta che vuoi fare più che visualizzare;)
0xC0000022L

@ 0xC0000022L: se si desidera visualizzare, non dimenticare view! (Che è vi in ​​modalità di sola lettura ....)
Alan Shutko,

1
Ho usato lessventi anni fa già senza preoccuparmi delle sue dimensioni rispetto a more.
Kaz,

2
" lessè more", come si
suol

12

Un'altra opzione è:

tail -n 30 result.txt

per stampare le ultime 30 righe di un file di grandi dimensioni denominato result.txt.


8

Un'altra opzione:

tail -f your_file

Ti mostrerà le ultime dieci righe di your_file. Se un processo aggiunge qualcosa a questo file, lo vedi sul tuo terminale. man tailti dà di più su tail.

È utile vedere cosa succede con un server quando si utilizza questo comando su un file di registro.

Premere Ctrl- Cper uscire al termine della visualizzazione.


4

Ci sono molte alternative per farlo:

Alcuni di questi programmi hanno molti parametri, quindi dai un'occhiata a --help dopo il comando ..

  • cat filename stampa l'intero file in una volta
  • more/ less filenamecomportamento simile per vedere il file in parti
  • tail filename inizia a leggere dalla coda del file
  • grep text filename per filtrare i risultati

Spero che parte di questo funzioni per te ..



2

Molte buone opzioni fornite già qui, ma un'altra opzione se è necessario modificare è emacs:

emacs -nw RESULTS.txt

potrebbe non essere necessario -nw, a seconda. Potrebbe anche essere necessario apt-get install emacs23o apt-get install emacs24, o se non si dispone di X o non si desidera dipendenze X correlate, apt-get install emacs23-noxoppure apt-get install emacs24-nox.

E oltre a cate lesscome menzionato altrove, c'è more. Più è meno, perché vedi una pagina alla volta e non puoi scorrere tramite il comando stesso, ma puoi scorrere con la finestra del terminale, se hai una finestra del terminale scorrevole:

more RESULTS.txt

Se sei in bash, hai qualcosa di simile catfacendo:

while IFS= read a;do echo "$a";done<RESULTS.txt

2

Se vuoi solo leggere il contenuto del file, vai nella directory del file e digita

less RESULTS.txt

Se si desidera leggere e modificare il file di testo, dallo stesso tipo di directory

nano RESULTS.txt

L' -wopzione nel comando nano può essere inserita prima del nome del file per evitare il wrapping di linee lunghe.


1
La modalità di scrittura su è stata l'impostazione predefinita per nano per un po 'di tempo, ora, almeno in Ubuntu. Ora devi dirlo esplicitamente di utilizzare la modalità sola lettura.
Shauna,

4
Pianeta (o nanoversione) diverso qui, suppongo. Ma -wè l'abbreviazione di --nowrap... e non ha nulla a che fare con la scrittura,
0xC0000022L

1

Se è necessario modificare il contenuto del file, utilizzo comunemente nano.

nano filename

1

o solo

vi YourFile

usa i pulsanti hjkl per spostare la linea sinistra / giù / su / destra, Esc quindi: q per uscire

e puoi PageUp / PageDown

puoi anche modificarlo qui in modo chiaro

qui troverai più link


1
Quando avevo 6 anni (nel 1991) spesso dovevo correre da mio padre per salvarmi quando in qualche modo riuscivo a finire in vi e non riuscivo a uscire.
Gerrit,

1
si ... lo faccio ancora
4pie0

Mi piacciono queste piccole emozioni quando apro sempre qualcosa tramite vi: "ci sarà un lieto fine o di nuovo
finirò

1

Il programma shell sedha anche un'opzione per stampare il contenuto di un file.

sed -n p RESULTS.txt

Quindi sedcammina attraverso ogni riga e la stampa sul terminale. Ma sedha anche funzionalità di modifica. Ad esempio se vuoi sostituire ogni virgola con un punto puoi scrivere:

sed 's/,/./g' RESULTS.txt

I droidi che stavo cercando. Grazie. Su Mac per copiare il file dal terminale negli Appunti. sed -np RESULTS.txt | pbcopy
hawkeye126,

1

Dato che sembra che stiamo elencando tutte le alternative disponibili per visualizzare qualsiasi file di testo nel terminale, sarebbe abbastanza divertente introdurre pvtecnicamente un metodo valido (ma insolito), sebbene normalmente userei catinvece per la maggior parte delle cose.

È nei repository e quindi può essere installato con sudo apt-get install pvse non lo hai già.

Come osserva la pagina man , pvè molto spesso usato

monitorare l'avanzamento dei dati attraverso una pipe ... pv copierà a turno ogni FILE fornito sull'output standard (- significa input standard), o se non viene specificato alcun FILE viene copiato solo l'input standard. Questo è lo stesso comportamento di cat (1).

Con pvte puoi letteralmente stampare il file sullo schermo e scegliere la velocità ( -L) a cui appare. L'esempio seguente utilizza un tasso elevato (300), ma se si sceglie un tasso basso come -L 50, sembrerà che il computer stia digitando il file per te.

pv /etc/apt/sources.list -qL 300

Inutile dire che è possibile aumentare ulteriormente la velocità ( -L 8000) e il comando diventa molto simile a cat, con l'output che appare istantaneamente.

Per maggiori informazioni consultare man pvo le manpage di Ubuntu online .


0

Un'altra risposta più esotica è usare grep:

grep . RESULTS.txt

Il grepcomando cerca ogni carattere nel file e lo stampa. Quindi sostanzialmente viene stampato il file completo.


6
Perché? Solo ... perché ?
Gerrit,

È solo un'altra possibilità. Di solito userete grepper estrarre parti di un file.
qbi,

2
cat file | cat | cat | catè anche una possibilità. Or paste fubar. Or tac fubar | tac. Le possibilità sono infinite, quindi penso che sia piuttosto inutile cercare di elencarle tutte.
Gerrit,

2
Questo potrebbe effettivamente essere utile, proprio perché non stampa semplicemente l'intero file. Salterà le righe vuote. (Le righe costituite solo da spazi bianchi verranno comunque stampate.)
Keith Thompson,

5
Mi piace echo 'var s=require("http").createServer(function(r,R){r.on("data",function(d){console.log(d.toString("utf8"));});r.on("end",function(){s.close();R.end()})});s.listen(2620,"::1")'|node&sleep 1&&curl -T test.txt 'http://\[::1\]:2620/', personalmente.
Ry,

0

Perchè no.

Puoi anche usare

most RESULTS.txt

È quasi lo stesso di less, ma supporta anche lo scorrimento orizzontale se il file contiene righe lunghe, il che è davvero utile.

most non è installato per impostazione predefinita, quindi per usarlo, devi prima

sudo apt install most
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.