Sono uno di quelli che impiega molto tempo terminale (console, bash, shell, come vuoi chiamarlo), per ragioni X o Y devo cambiare costantemente directory, lavorandoci 🙂
Nella stragrande maggioranza dei casi, il cambio di directory (Ad esempio: cd / opt /) e voglio anche sapere cosa c'è in quella directory, per sapere questo secondo che uso ls.
Cioè, sarebbe così:
kzkggaara @ geass: ~ $ cd / opt /
kzkggaara @ geass: / opt / $
kzkggaara @ geass: / opt / $ ls
Nessus
L'ho detto molte volte ... sono abbastanza pigro, mi piace fare il minor numero di passaggi nel terminale, ecco perché dopo molti esperimenti ho ottenuto proprio quello che volevo.
Vedi quanto segue, che non è altro che il mio inserimento / optare / con il semplice comando cd / opt /:
Come puoi vedere, in un passaggio (cd / opt /) Entro nella directory e INOLTRE elenca il contenuto di quella directory, e ... come se non bastasse me lo mostra a colori 😀
Ecco l'esempio di me che accedo /eccetera/ con cd / ecc/:
I colori sono semplici da capire:
Incolore = File
Colore blu = Cartelle
Colore verde = File con autorizzazioni di esecuzione
Ma passiamo al principale ... Come diavolo posso usare anche solo cd per elencare automaticamente la directory a cui accedo?
Il nostro archivio .bashrc (che si trova nella nostra cartella home o personale) ci aiuterà a farlo, dobbiamo prima dichiarare una funzione, che chiameremo cdl:
funzione cdls {cd "$ 1"; ls –color;}
Mettiamo questa linea su entrambi i lati del nostro file .bashrc ... ecco il comando per farlo:
echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc
NON devi necessariamente farlo con questo comando, l'obiettivo è che il file .bashrc contiene questa riga, quindi modifica questo file con il tuo editor di testo preferito (tappetino per mouse, kate, gedit, nano, vi, ecc) e aggiungilo.
Salvano la modifica, chiudono il terminale che hanno aperto e ne aprono uno nuovo.
In esso scriveremo quanto segue e premeremo [Accedere]:
cdls $HOME
Questo dovrebbe essere sufficiente per accedere alla nostra cartella personale in quel terminale e ne elencherà anche il contenuto (con i colori e tutto il resto).
Voglio dire, cosa cdl fa già quello che vogliamo ... ora possiamo solo ottenere lo stesso, ma con cd
Per questo, aggiungiamo nel file .bashrc la riga seguente:
alias cd='cdls'
Questo lo farà quando scriviamo cd … L'azione che definiamo verrà effettivamente eseguita per cdl
Vi lascio il comando che inserirà automaticamente questa riga precedente:
echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc
Ma proprio come ho detto prima, l'obiettivo è aggiungere quest'altra riga allo stesso file, puoi usare l'editor di testo di tua scelta per questo.
Fatto ciò, chiudi il terminale e aprine uno nuovo ... in esso scrivi quanto segue e premi [Accedere]:
cd /etc/
E il bingo, entreranno / Etc/ e verrà elencato anche il contenuto di questa cartella, e con i colori 😉 (proprio come in una foto precedente)
A cosa serve? 😀
Per i curiosi che si chiedono cosa significa questa funzione? ... vi lascio la semplice spiegazione:
funzione cdls = Qui definiamo che stiamo creando una nuova funzione e sarà chiamata cdls
cd "$ 1" = E ciò che questa funzione farà (farà ogni volta che la chiamiamo, la usiamo o la eseguiamo) è fare un cd (invio) verso il 1 ° parametro, cioè ... - »« cd / home / », il« $ 1 »significa« quello che scriviamo dopo cd ", in questo esempio il primo parametro è" / home / ".
; = Questo significa che quell'ordine finisce qui, o azione da eseguire ... ma una funzione può avere più azioni da fare, e ora ne definiremo una seconda.
ls –colore; = Significa che oltre a qualsiasi azione dichiarata prima, creerà anche una "ls" dove ci troviamo, e la "ls" lo farà con color (–color).
Ultima cosa ... i più intelligenti, si renderanno conto che questa logica (prendere una funzione e configurarla per eseguire più azioni) ha molto, molto potenziale, per esempio ... se voglio entrare in una cartella, e anche eliminare un altro, cioè, voglio entrare in /casa/ e anche eliminare / opt / temp / la funzione per questo sarebbe:
function asdasd { cd "$1"; rm -Rv "$2"; }
E digitando in un terminale asdasd / home / / opt / test / lo sarebbe, perché entrerà nel 1 ° parametro (/casa/) ed eliminare il secondo (/ opt / temp /).
Ad ogni modo, questo ha davvero un SACCO di potenziale hehe, sta a te approfittarne il più possibile.
Se hai dubbi o domande, reclami o suggerimenti, ti aiuterò volentieri, non sono di gran lunga un esperto ma almeno mi piace aiutare
saluti
E tutto questo per non usare Zsh.
Non lo conoscevo davvero 😉
Grazie per il suggerimento, lo terrò d'occhio.
Tuttavia, la conoscenza non avviene ... più suggerimenti e conoscenze si riesce ad acquisire, meglio è, non credi? 🙂
Zsh è per i queer, gli uomini usano sh !!! >: D
In realtà
HAHAHA no no no ... Non credo, e non dico nemmeno così, perché qualcuno potrebbe essere offeso.
Ognuno usa ciò che gli si addice meglio, ciò che gli piace di più 😀
😉
Un'app che uso molto per navigare nel mio sistema è Autojump:
https://github.com/joelthelion/autojump/blob/master/README.md
Gli uomini sono pratici, le donne e i queer sono quelli a cui piace complicarsi la vita. Non sono necessari ulteriori chiarimenti.
Per favore, cerca di non commentare le preferenze sessuali, sì? ... Ci sono state situazioni scomode per questo genere di cose.
Spero sia comprensibile.
Questo chiarimento dovrebbe essere per @msx. Le idee sono costruite con dichiarazioni veritiere, obiettive e razionali, non insulti o maleducazione.
Nel mio commento sopra gli ho detto di non dire quelle cose (perdona la ridondanza).
E ora dico di nuovo di sì, ma non rivolto a te solo specificamente, è valido per tutti.
Non prenderla nel modo sbagliato, l'intenzione non era quella di far sentire nessuno a disagio o male, sto solo cercando di evitare malintesi 🙂
Hahaha, ho appena visto questo commento!
«Quel chiarimento dovrebbe essere per @msx. Le idee sono costruite con affermazioni veritiere, oggettive e razionali, non con insulti o maleducazione ".
Smettila di fare colazione con i limoni, sembri già Franklin sul conto da $ 100: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml
😀
È queer zsh? Beh penso che mi piace essere un queer allora perché da quando ho imparato a usarlo non mi sono fermato e non penso di farlo. o_____o
Gli uomini usano sh?, Quel commento è strano proveniente da qualcuno che ha una bashrc piena di cose, quindi presumo che tu sia una donna. xP
Questo è quello che non volevo arrivare. Per favore, lasciamo qui la battaglia, sì? 🙂
Tutti usano quello che vogliono ... sh, zsh o quello che vogliono, e anche ... ognuno ha le preferenze sessuali che vogliono avere, ci sono già stati litigi qui per cose del genere 🙁
ahahah xD
Ultimamente zsh si è evoluto molto, non appena avrò tempo -ha, che delusione! - Leggerò il più possibile della sua documentazione per trarne vantaggio e apportare il cambiamento
Ora parlando seriamente: l'unica cosa che mi infastidisce un po 'di zsh è che non è compatibile al 100% con Bash, quindi se usiamo zsh nei nostri script sfruttando tutto il suo potenziale, è molto, molto possibile che detto script fallisca in bash, d'altra parte D'altra parte, anche se usiamo zsh scriviamo i nostri script di shell in bash, è uno spreco usare zsh ...
Anche così, penso che ne valga la pena. A proposito di conchiglie, conosci Fish? Il progetto è nato dalle ceneri, ora si chiama fishfish e lo stanno sviluppando molto velocemente.
Penso che zsh dovrebbe essere scritto poiché il terminale è molto sensibile al maiuscolo / minuscolo
Sebbene sia valido anche cd && ls / route
Anche se è più lungo scrivere
Saluti 😀
Mi sbagliavo, il mio dito è andato via
Ho messo che con questo è elencato e si accede a una directory
cd && ls / percorso
ma preparati
anche se solo per elencarlo viene utilizzato
ls / percorso
il comando che è l'equivalente è
cd / percorso && ls
saluti
In effetti, usando && si ottiene lo stesso 😀
L'unica differenza è che "cd / opt / && ls" ha 6 caratteri in più rispetto a "cd / opt /", cioè dovrei premere altri 6 tasti ^ - ^ U ... sono un po 'pigro per cose del genere hehe.
Ecco perché mi sono iscritto al cd + ls… LOL !!
Quello che uso anche è che filtro i risultati per estensioni.
Ejemplo
Ho molti file in ~ / Download più di 100 e voglio solo vedere il .png per farlo.
cd Download && ls * png
Cosa dovrei aggiungere o fare per filtrare i risultati in un codice più semplice?
saluti
Semplice 😉
Crei una funzione che è ad esempio, cdlf:
function cdlsf { cd "$1"; ls *.$2; }
Per usarlo sarebbe:
cdlsf / opt / png
E questo ti elencherà solo i file .png en / optare /
Cioè, il primo parametro (nell'esempio / optare /) sarebbe la directory a cui si desidera accedere e il secondo parametro (nell'esempio png) sarebbe l'estensione che desideri filtrare quando elenchi la directory.
Un altro esempio, se vuoi andare su / home / user / Pictures e vedere solo i file che sono .JPG, sarebbe:
cdlsf / home / utente / Immagini jpg
😀
Questo era quello che volevi, vero?
PS: metto cdlsf con cd (invio) ls (lista) f (filtro) ... ma ovviamente puoi chiamare la funzione come vuoi.
zsh non è POSIX, e per completare il tutto ci vuole più tempo per iniziare, quindi preferisco essere frocio, ma più efficiente
Innanzitutto, in zsh puoi abilitare il supporto POSIX. Secondo, ci vuole tempo per iniziare in base a quante funzioni si caricano all'inizio, quindi può essere leggero quanto si desidera. Terzo, con zsh uno è più pratico ed efficiente che con qualsiasi altra shell. Quarto, usalo prima di criticare.
5 °. Quando abiliti il supporto POSIX, non ha senso usare ZSH.
Lo uso da un po ', non ne vale la pena, sh è breve e Bash è perfetto, non c'è niente che non si possa fare in Bash con gli alias e le funzioni appropriati.
Mi piace molto il soggetto. infatti, dovrebbero creare qualche articolo più ampio sui comandi che possono essere usati in generale nel terminale, e in distro specifiche, come Chakra.
Guarda questo post 😉
https://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/
L'ho trovato molto interessante poiché oltre a insegnare questo trucco, hai spiegato come funziona ogni comando.
Ti seguo da quando ho iniziato nel mondo Linux (non molto tempo fa ...) e sono stato incoraggiato a commentare solo per congratularmi con te per l'articolo 😉
Grazie per essere passato e averci lasciato il commento 😀
Ogni volta che mi azzardo a spiegare qualcosa, mi piace che sia il più chiaro possibile ... beh, so benissimo cosa vuol dire leggere tutorial su internet e non capire niente ahahah.
Benvenuto due volte ... benvenuto nel mondo di Tux haha, e benvenuto anche nel blog 🙂
Se hai domande, lo sai, faccelo sapere hehe.
Saluti e grazie per il commento ^ ⁻ ^
Ho appena letto il tuo post da un altro sito web e non ho potuto resistere:
Non sarebbe più semplice, basta creare un alias all'interno del .bashrc?
alias cd = 'ls'
In realtà quello che sto cercando di ottenere è entrare in una directory X (/ opt /… / home / user /… qualunque) e anche quando la inserisco, elenca automaticamente il contenuto di quella directory.
Crea tutto con 1 singolo passaggio o comando.
Creando uno pseudonimo come da te indicato, elencherei la directory, sì, ma non la inserirò.
Da quello che ho capito, l'obiettivo di fare tutto questo è che se vuoi, ad esempio, inserire "/ etc" tramite il comando "cd", entrando ti mostrerà automaticamente il contenuto di quella directory, giusto?
In tal caso, puoi semplificare la funzione in un "alias", dove all'interno del .bashrc inserisci:
alias cd = »ls»
Con questo, quando in un terminale usi:
cd / ecc
Entrerai nella directory «/ etc» e inoltre elencherà automaticamente tutti i file e le directory presenti.
Se ho frainteso l'obiettivo, mi scuso 😛
In effetti, voglio entrare in una directory e una volta dentro, elencare cosa contiene.
Ho provato quello che dici, dichiarando che cd = ls mediante alias, ma non ha funzionato per me.
Lo configuro da solo e poi faccio:
cd / etc /
Ma elenca / etc / ... ma non va in quella directory.
Lascio uno screenshot così puoi vedere: http://img204.imageshack.us/img204/5272/cdlserror.png
Errore mio 😀
Era ovvio che non avrebbe funzionato in quel modo, e anche quando ho provato a:
alias cdls = 'cd $ 1; ls'
Per qualche strano motivo non funziona, elenca solo la directory ma non va nella D:
Errore di Bash? xD
Scusa per i commenti inutili! 😀 E prendo la funzione per il mio bashrc 😛
Un alias non è la stessa cosa di una funzione, un alias se vuoi che sia uguale a più comandi, devi usare && ... non è come nelle funzioni, quello che usa; e scrivere più istruzioni funzionerà per te.
HAHA nah per niente amico, niente da scusare 😀
saluti
PS: ... dannazione ... che nostalgia mi viene quando vedo il logo di Arch ... T_T ...
So che non è la stessa cosa ma ho pensato che avrebbe funzionato (Errore: P)
Solo che usando «;» funziona per me. invece di "&&" all'interno di un alias D: (ho due alias come questo, quello che non capisco è perché non funziona con l'alias che volevo creare per questo caso)
Grazie ea proposito, penso che rimarrò sul blog con il titolo di "lettore frequente" 😀 Mi è piaciuto molto il contenuto del blog 😛
oooh si lo so, a volte mi separo dal mio caro Arch ma, non so perché, mi è sempre impossibile non tornare da lui xD
Saluti!
Beh ... Tux è misterioso, fa cose e molte volte non lo capiamo, ma ha un piano o uno scopo per tutti ... HAHA 😀
Un piacere leggere quello che dici, un altro utente di Arch che si unisce al blog hahahaha ... un piacere 😀
Ho dovuto smettere di usarlo a causa di strani problemi che il kernel mi ha dato ... ma occupa ancora un posto nel mio cuore 🙁
LOL
Non ho incontrato un utente di Arch che non prenda un grande affetto per la distribuzione, ha un "non so cosa, cosa so": P, forse e se i problemi che ti ho dato erano molto tempo fa, tu potrebbe pensare di tornare ad Arch 😀
A proposito, sapevo che in qualche altro posto avevo già letto il tuo nome (beh, nick, pseudonimo, soprannome, qualunque cosa), fai parte degli scrittori di desktop art, giusto? 🙂
Leggevo loro 🙂
In realtà per elencare il contenuto di una directory non è necessario inserirlo, quindi non credo che l'esempio che hai scelto sia il più felice, hehe. Detto questo, le funzioni possono essere utilizzate per molte cose utili.
Ad esempio, utilizzo questa funzione per creare una directory e inserirla immediatamente (convalidando che viene utilizzato un solo parametro):
function mkcd () {
FNERR="Parametros incorrectos.\nUso: mkcd "
if [ $# -eq 1 ] ; then
mkdir -p "$1" && cd "$1"
else
echo -e $FNERR
fi
}
Hmmm ... il blog ha mangiato parte del comando, proverò a mettere la riga incompleta con i tag HTML:
FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"
Quello che volevo ottenere era salvare un passaggio.
In altre parole, supponiamo che io voglia entrare in una directory (/ etc / squid /) e quindi modificare un file in quella directory, e non ricordo il nome del file.
I passaggi normalmente sarebbero:
cd / etc / squid /
ls
file nano.conf
Ma, con questo suggerimento che propongo, converto solo i primi 2 passaggi in 1, così che semplicemente facendo:
cd / etc / squid /
Elencherà automaticamente anche il contenuto della directory per me.
Si tratta semplicemente di salvare un passaggio 😀
Tu mi capisci?
... è che trovo difficile spiegare ahah.
No, la spiegazione non ha avuto problemi, volevo dire che forse l'esempio che hai scelto per illustrare il suggerimento non era l'ideale, dato che si può fare una semplice "directory ls".
In realtà non appena ho visto la funzione ho capito lo scopo. Uso anche varie funzioni nel mio file .bash_aliasAd esempio, questo è quello che uso molto per gestire la cronologia:
h () {
if [ $# -eq 0 ] ; then
history | tail -n 25 | less
elif [ $# -eq 1 ] ; then
history | egrep -i "$1" | less
else
echo -e "Parametros incorrectos."
fi
}
(Con questa funzione, se metto solo h Ottengo gli ultimi 25 comandi, ma se ad esempio metto h monte Ottengo gli ultimi comandi relativi agli assembly).
Prendo il tuo ruolo hehehe ... merita di studiarlo 😀
grande la tua funzione! Grazie
+1
KZKG ^ Gaara
Risposta molto buona mi è servita molto bene, non ho potuto rispondere già sopra
Ora userò cdlsf per aumentare la mia produttività, ottimo nome per un comando 😀
saluti
Come si fa per impostare l'ora al terminale, l'avevo già fatto prima, era un bashrc che ho scaricato ma non ricordo come si chiamasse.
Buona entrata, non conoscevo il trucco, lo metterò in pratica per vedere come funziona. xP
Saluti.
Sarebbe bello se il mio browser fosse aggiunto. xD
Ancora saluti. xD
Che browser utilizzate?
Bene, in un altro commento ho visto che hai usato Firefox 🙂
Sì, uso Firefox ma è sempre meno e non è più il mio browser principale, sto usando dwb e sarebbe bello se potesse essere aggiunto. xP
Saluti.
E fare questo alias non causerà problemi negli script quando si cerca di solo cd e anche di produrre ls? In particolare preferisco creare alias con nomi che altri eseguibili non usano, perché non è la prima volta che mi dà problemi ...
Come si ottengono le linee tratteggiate e l'ora dopo ogni comando?
Guarda qui - " https://blog.desdelinux.net/con-el-terminal-mejorando-la-apariencia-de-la-consola-actualizado/
Il mio contributo:
alias ldir = 'ls | grep -v \\. ' ## elenca solo le directory (fai attenzione, non rinominarlo in ld poiché c'è un comando GNU / Linux con quel nome)
-
alias ll = 'ls -lah –color | awk '\ »{k = 0; for (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8-i)); if (k) printf ("% 0o", k); print} '\' ''
La cosa interessante di questo alias è awk che analizza l'output di ls, result? Mostra i permessi dei file in formato ottale accanto a rwx, per me infinitamente più pratico e veloce delle lettere.
-
alias lg = 'ls -lah –color | awk '\' '{k = 0; for (i = 0; i <= 8; i ++) k + = ((substr ($ 1, i + 2,1) ~ / [rwx] /) * 2 ^ (8- i)); if (k) printf ("% 0o", k); print} '\' '| grep -i'
Variante dell'alias sopra. Ho aggiunto un grep alla fine in modo che in questo modo quando lo faccio ad esempio:
$lgzip
Mostrami solo i file che contengono zip in una qualsiasi delle sue forme (nota -i alla fine) oltre ai permessi ottali, ecc.
-
alias grep = 'grep –color = auto' ## colora la corrispondenza grep
-
Ne ho molte altre da condividere ma questo posticino mi rende stretto xD
@KZKG, Staff: Pensi di aprire un post sul blog o sul forum (a cui rimandiamo ogni volta che viene pubblicato un suggerimento relativo alla console) per raccogliere tutte queste piccole perle?
Saluti!
Per link intendi questo? - » https://blog.desdelinux.net/tag/bash
Non ho detto niente, non serve altro, tutto è perfettamente etichettato!
Che cileno, questa è un'ottima funzione!