I sistemi time sharing, furono inventati attorno agli anni '60 per permettere a più utenti di accedere simultaneamente allo stesso mainframe: questo per non sprecare la capacità di calcolo e ammortizzare i costi dei primi sistemi. In questo modo però non rimanevano molte risorse disponibili per l'interfaccia utente che era così line oriented.
Negli anni '60, non esistevano monitor o tastiere: gli unici dispositivi di input erano le schede perforate, gli unici dispositivi di output le stampanti. Nel 1960 J.C.R. Licklider, che giocò un ruolo fondamentale nel primo periodo del time sharing, scrisse "Mancomputer Symbiosis", nel quale si spiegava la necessità di avere sistemi che riflettessero le necessità dell'utente e le sue abilità.
Le interfacce line oriented sono principalmente interfacce unidimensionali, nella quale l'utente può interagire solo con l'ultima riga che serve come command line. Una volta che l'utente preme il tasto di invio comando, l'istruzione non è più modificabile. Ugualmente la risposta del sistema non può essere modificata. Dato che le interfacce line oriented non permettevano all'utente di muoversi sullo schermo, la tecnica di interazione era per lo più limitata a una struttura di domanda e risposta: il dialogo era condotto dal computer.
Queste strutture di domanda e risposta sono tuttora valide per quei sistemi in cui i comandi siano pochi e ben definiti, e dove il ruolo guida del sistema possa aiutare l'utente: sistemi per utilizzo casuale o per utenti nuovi.
Ma due sono i problemi fondamentali con questo tipo di interfaccia:
La maggior parte delle interfacce riga di comando sono costruite sulla base di linguaggi di comando vari e la maggior parte degli sviluppi dell'usabilità per questo tipo di interfacce è destinata alla individuazione dei nomi migliori per i comandi (naming); se è vero che molti linguaggi hanno potenzialità molto grandi grazie all'utilizzo di ampi set di istruzioni, è altrettanto vero che gli stessi linguaggi perdonano raramente gli errori degli utenti, poiché richiedono una sintassi molto precisa.
Per velocizzare l'interazione e ridurre il rischio di errori di scrittura, molti linguaggi prevedono delle abbreviazioni per le loro istruzioni. Molte sono le regole che guidano l'abbreviazione dei nomi: troncare le parole o anche rimuovere le vocali. La regola fondamentale indica che si deve seguire un criterio unico per l'abbreviazione.