Eu sou um daqueles que usa muito tempo terminal (console, bash, shell, como você quiser chamá-lo), por motivos X ou Y tenho que mudar constantemente de diretório, trabalhando nisso
Na grande maioria dos casos, mudança de diretório (Por exemplo: cd / opt /) e também quero saber o que está nesse diretório, para saber este segundo que uso ls.
Ou seja, seria assim:
kzkggaara @ geass: ~ $ cd / opt /
kzkggaara @ geass: / opt / $
kzkggaara @ geass: / opt / $ ls
nessus
Já o disse muitas vezes ... Sou bastante preguiçoso, gosto de fazer o mínimo de passos no terminal, por isso depois de muita experimentação consegui exactamente o que queria.
Veja a seguir, que nada mais é do que eu entrando / opt / com o comando simples cd / opt /:
Como você pode ver, em uma etapa (cd / opt /) Entro no diretório e TAMBÉM ele lista o conteúdo desse diretório, e... se isso não bastasse, ele me mostra com cores
Aqui o exemplo de eu acessando / Etc / com cd / etc/:
As cores são simples de entender:
Incolor = Arquivos
Cor azul = Pastas
Cor verde = Arquivos com permissões de execução
Mas, vamos passar para o principal ... Como diabos posso usar apenas cd para listar automaticamente o diretório que eu acesso?
Nosso arquivo .bashrc (localizado em nossa casa ou pasta pessoal) nos ajudará a fazer isso, devemos primeiro declarar uma função, que chamaremos CDLS:
função cdls {cd "$ 1"; ls –color;}
Colocamos esta linha em cada lado do nosso .bashrc ... aqui está o comando para fazer isso:
echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc
Você NÃO precisa necessariamente fazer isso com este comando, o objetivo é que o .bashrc contém esta linha, então apenas edite este arquivo com seu editor de texto preferido (mousepad, kate, gedit, nano, vi, etc.) e adicione-o.
Eles salvam o troco, fecham o terminal que abriram e abrem um novo.
Nele vamos escrever o seguinte e pressionar [Entrar]:
cdls $HOME
Isso deve ser suficiente para acessar nossa pasta pessoal naquele terminal, e também listará seu conteúdo (com cores e tudo).
Ou seja que CDLS já faz o que queremos ... agora só podemos conseguir o mesmo, mas com cd
Para isso, adicionamos no arquivo .bashrc a seguinte linha:
alias cd='cdls'
Isso fará quando escrevermos cd ... A ação que definimos será realmente executada por CDLS
Deixo o comando que vai colocar automaticamente esta linha anterior:
echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc
Mas, como eu disse antes, o objetivo é adicionar essa outra linha ao mesmo arquivo, você pode usar o editor de texto de sua escolha para isso.
Feito isso, feche o terminal e abra um novo ... nele escreva o seguinte e pressione [Entrar]:
cd /etc/
E bingo, eles vão entrar / Etc/ e o conteúdo desta pasta também será listado, e com cores (como na foto anterior)
Para que é útil?
Para os curiosos que se perguntam o que significa essa função? ... Deixo-vos a explicação simples:
função cdls = Aqui definimos que estamos criando uma nova função, e ela se chamará cdls
cd "$ 1" = E o que esta função fará (fará toda vez que chamarmos, usarmos ou executarmos) é fazer um cd (entrar) em direção ao primeiro parâmetro, ou seja ... - »« cd / home / », o« $ 1 »significa« o que que escrevemos após cd ", neste exemplo o primeiro parâmetro é" / home / ".
; = Isso significa que aquela ordem termina aí, ou ação a ser executada ... mas uma função pode ter mais ações a fazer, e vamos definir uma segunda agora.
ls –cor; = Significa que além de qualquer ação declarada antes, ela também fará um "ls" onde estamos localizados, e o "ls" fará com color (–color).
Última coisa ... os mais espertos vão perceber que essa lógica (pegar uma função e configurá-la para executar várias ações) tem muito, muito potencial, por exemplo ... se eu quiser entrar em uma pasta, e também excluir outra, ou seja, eu quero Entrar para /casa/ e também deletar / opt / temp / a função para isso seria:
function asdasd { cd "$1"; rm -Rv "$2"; }
E digitando em um terminal asdasd / home / / opt / test / sim, porque vai inserir o primeiro parâmetro (/casa/) e exclua o segundo (/ opt / temp /).
Enfim, isso realmente tem MUITO potencial hehe, cabe a você tirar proveito disso o máximo que puder.
Se você tiver alguma dúvida, dúvida, reclamação ou sugestão, terei prazer em ajudá-lo, não sou nem remotamente um especialista mas pelo menos gosto de ajudar
lembranças
E tudo isso por não usar o Zsh.
Eu realmente não o conhecia 😉
Obrigado pela dica, vou ficar de olho.
Mas o conhecimento não acontece ... quanto mais dicas e conhecimentos a gente consegue adquirir, melhor, não acha? 🙂
Zsh é para queers, homens usam sh !!! >: D
Na realidade
HAHAHA não não não ... Acho que não, e também não falo assim, porque alguns podem ficar ofendidos.
Todos usam o que mais lhes convém, o que mais gostam 😀
😉
Um aplicativo que uso muito para navegar em meu sistema é o Autojump:
https://github.com/joelthelion/autojump/blob/master/README.md
Homens são práticos, mulheres e queers são aqueles que gostam de complicar a vida. Nenhum esclarecimento adicional é necessário.
Por favor, tente não comentar sobre preferências sexuais, sim? (…) Existem situações desconfortáveis para esse tipo de coisa.
Espero que seja compreensível.
Esse esclarecimento deve ser para @msx. As ideias são construídas com afirmações verdadeiras, objetivas e racionais, não com insultos ou grosseria.
No meu comentário acima, eu disse a ele para não dizer essas coisas (perdoe a redundância).
E agora digo sim novamente, mas não dirigido a você apenas especificamente, é válido para todos.
Não me leve a mal, a intenção não era fazer ninguém se sentir desconfortável ou mal, estou apenas tentando evitar mal-entendidos 🙂
Hahaha, acabei de ver esse comentário!
«Esse esclarecimento deve ser para @msx. as ideias são construídas com afirmações verdadeiras, objetivas e racionais, não com insultos ou grosseria. "
Pare de tomar café da manhã com limões cara, você já se parece com Franklin na nota de $ 100: http://www.watchingamerica.com/frankfurterallgemeine000009.shtml
????
É esquisito zsh? Bem, acho que gosto de ser esquisito porque desde que aprendi a usá-lo não parei e não penso em fazer isso. o_____o
Os homens usam sh?, Esse comentário é estranho vindo de alguém que tem um bashrc cheio de coisas, então vou assumir que você é uma mulher. xP
Isso é o que eu não queria chegar. Por favor, vamos deixar a luta aqui, sim? 🙂
Todo mundo usa o que quer ... sh, zsh, ou o que quiser, e também ... todo mundo tem as preferências sexuais que quer ter, já houve brigas aqui por coisas assim 🙁
hahaha xD
Ultimamente o zsh evoluiu muito, assim que eu tiver tempo -ha, que delírio! - vou ler o máximo possível de sua documentação para aproveitá-la e fazer a mudança cambia
Agora falando sério: a única coisa que me incomoda um pouco sobre o zsh é que ele não é 100% compatível com o Bash, então se usarmos o zsh em nossos scripts tirando todo o seu potencial, é muito, muito possível que o referido script falhe em bash, por outro lado Por outro lado, embora usemos zsh, escrevemos nossos scripts de shell em bash, é um desperdício usar zsh ...
Mesmo assim, acho que zsh vale a pena. Por falar em concha, conhece Fish? O projeto surgiu das cinzas, agora se chama peixe-peixe e estão desenvolvendo muito rápido.
Acho que zsh deve ser escrito, pois o terminal diferencia maiúsculas de minúsculas
Embora cd && ls / route também seja válido
Embora seja mais longo para escrever
Saudações 😀
Eu estava errado, meu dedo saiu
Eu coloquei que com isso ele está listado e um diretório é acessado
cd && ls / caminho
mas apenas se prepare
embora apenas para listar seja usado
ls / path
o comando que é o equivalente é
cd / caminho && ls
lembranças
Na verdade, usando && o mesmo é alcançado 😀
A única diferença é que "cd / opt / && ls" tem 6 caracteres a mais do que apenas "cd / opt /", ou seja, eu teria que pressionar mais 6 teclas ^ - ^ U ... Sou um pouco preguiçoso para coisas assim hehe.
É por isso que entrei no cd + ls… rs !!
O que também uso é filtrar os resultados por extensões.
Exemplo
Tenho muitos arquivos em ~ / Downloads mais de 100 e só quero ver o .png para fazer isso.
Downloads de cd && ls * png
O que eu teria que adicionar ou fazer para filtrar os resultados em um código mais simples?
lembranças
Simples 😉
Você cria uma função que é, por exemplo, cdlsf:
function cdlsf { cd "$1"; ls *.$2; }
Para usá-lo seria:
cdlsf / opt / png
E isso irá listar você apenas os arquivos . Png en / opt /
Ou seja, o primeiro parâmetro (no exemplo / opt /) seria o diretório que você deseja acessar e o segundo parâmetro (no exemplo png) seria a extensão que você deseja filtrar ao listar o diretório.
Outro exemplo, se você quiser ir para / home / user / Pictures e ver apenas os arquivos que são .JPG, seria:
cdlsf / home / user / Imagens jpg
????
Era isso que você queria, certo?
PS: Coloquei cdlsf por cd (entrar) ls (list) f (filtro) ... mas obviamente você pode chamar a função como quiser.
zsh não é POSIX, e ainda por cima demora mais para começar, então eu prefiro ser bicha, mas mais eficiente
Primeiro, no zsh você pode ativar o suporte POSIX. Em segundo lugar, leva tempo para iniciar de acordo com quantas funções você carrega na inicialização, então pode ser tão leve quanto você deseja. Terceiro, com zsh é mais prático e eficiente do que com qualquer outro shell. Quarto, use-o antes de criticar.
5 ª. Quando você ativa o suporte POSIX, não faz mais sentido usar o ZSH.
Estou usando há um tempo, não vale a pena, sh é curto e o Bash é perfeito, não há nada que você não possa fazer no Bash com os atalhos e funções adequados.
Gosto muito do assunto. na verdade, eles deveriam criar algum artigo mais extenso sobre os comandos que podem ser usados em geral no terminal e em distros específicas, como o Chakra.
Olhe para esta postagem 😉
https://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/
Achei muito interessante, pois além de ensinar esse truque, você explicou como cada comando funciona.
Tenho seguido você desde que comecei no mundo Linux (não faz muito tempo ...) e fui encorajado a comentar apenas para parabenizá-lo pelo artigo 😉
Obrigado por nos deixar um comentário 😀
Sempre que me atrevo a explicar algo, gosto de deixar o mais claro possível ... bom, sei muito bem o que é ler tutoriais na internet e não entender nada hahaha.
Bem-vindo duas vezes ... bem-vindo ao mundo do Tux haha, e também bem-vindo ao blog 🙂
Se você tiver alguma dúvida, sabe, diga-nos hehe.
Saudações e obrigado pelo comentário ^ ⁻ ^
Acabei de ler sua postagem em outro site e não pude resistir:
Não seria mais fácil, basta criar um alias dentro do .bashrc?
alias cd = 'ls'
Na verdade, o que eu tento alcançar é entrar em um diretório X (/ opt /… / home / user /… qualquer) e também quando eu entro, ele lista automaticamente o conteúdo desse diretório.
Faça tudo com uma única etapa ou comando.
Fazendo um alias conforme vc indica, então listaria o diretório, sim, mas não entraria nele.
Pelo que entendi, o objetivo de fazer tudo isso é que se você quiser, por exemplo, entrar "/ etc" por meio do comando "cd", ao entrar, ele mostrará automaticamente o conteúdo desse diretório, certo ?
Nesse caso, você pode simplificar a função em um "alias", onde dentro do .bashrc você coloca:
alias cd = »ls»
Com isso, quando em um terminal você usa:
cd / etc
Você entrará no diretório «/ etc» e também listará automaticamente todos os arquivos e diretórios que estão lá.
Se eu entendi mal o objetivo, um pedido de desculpas 😛
Na verdade, desejo entrar em um diretório e, uma vez dentro dele, liste o que ele contém.
Eu tentei o que você disse, declarando que cd = ls por aliasing, mas não funcionou para mim.
Eu mesmo configuro e faço:
cd / etc /
Mas ele lista / etc / ... mas não vai para esse diretório.
Deixo uma captura de tela para que você possa ver: http://img204.imageshack.us/img204/5272/cdlserror.png
Engano meu 😀
Era óbvio que não ia funcionar dessa forma, e mesmo quando tentei:
alias cdls = 'cd $ 1; ls'
Por alguma razão estranha, ele não funciona, ele apenas lista o diretório, mas não vai para o D:
Erro de Bash? xD
Um pedido de desculpas pelos comentários inúteis! 😀 E eu assumo a função do meu bashrc 😛
Um alias não é o mesmo que uma função, um alias se você quiser que seja igual a vários comandos, você tem que usar &&… não é como nas funções, que usar; e escrever mais instruções funcionará para você.
HAHA nah para nada amigo, nada para se desculpar 😀
lembranças
PS:… caramba… como fico nostálgico quando vejo o logotipo do Arch…. T_T ...
Eu sei que não é a mesma coisa, mas achei que daria certo (Erro: P)
Só que usar «;» funciona para mim. em vez de "&&" dentro de um alias D: (tenho dois aliases como este, o que não entendo é por que não funciona com o alias que eu queria criar para este caso)
Obrigado e a propósito, acho que vou continuar no blog com o título de "leitor frequente" 😀 Gostei muito do conteúdo do blog 😛
oooh sim eu sei, às vezes me separo do meu querido Arch mas, não sei porque, é sempre impossível eu não voltar para ele xD
Saudações!
Bom ... Tux é misterioso, ele faz coisas e muitas vezes a gente não entende ele, mas ele tem um plano ou propósito para todos ... HAHA 😀
É um prazer ler o que você fala, outro usuário do Arch que entra no blog hahahaha ... um prazer 😀
Tive que parar de usar devido a problemas muito estranhos que o kernel me deu ... mas ainda ocupa um lugar no meu coração 🙁
hahahaha
Não conheci usuário do Arch que não tenha muito carinho pela distribuição, ele tem um "não sei o que, o que eu sei": P, talvez e se os problemas que te dei fossem há muito tempo, você poderia pensar em voltar para Arch 😀
Aliás, eu sabia que em algum outro lugar já tinha lido o seu nome (enfim, apelido, pseudônimo, apelido, sei lá), você faz parte dos escritores de desktop art, certo? 🙂
Eu costumava ler para eles 🙂
Na verdade, para listar o conteúdo de um diretório não é necessário entrar nele, então não acho que o exemplo que você escolheu seja o mais feliz, hehe. Com isso dito, as funções podem ser usadas para muitas coisas úteis.
Por exemplo, eu uso esta função para criar um diretório e inseri-lo imediatamente (validando que apenas um parâmetro é usado):
function mkcd () {
FNERR="Parametros incorrectos.\nUso: mkcd "
if [ $# -eq 1 ] ; then
mkdir -p "$1" && cd "$1"
else
echo -e $FNERR
fi
}
Hmmm ... o blog comeu parte do comando, vou tentar colocar a linha incompleta com tags HTML:
FNERR="Parametros incorrectos.\nUso: mkcd <nombre del directorio a crear>"
O que eu queria alcançar era economizar um passo.
Em outras palavras, suponha que eu queira inserir um diretório (/ etc / squid /) e, em seguida, editar um arquivo nesse diretório, e não me lembro do nome do arquivo.
As etapas normalmente seriam:
cd / etc / squid /
ls
arquivo nano.conf
Mas, com esta dica que proponho, eu converto as 2 primeiras etapas em apenas 1, de forma que simplesmente fazendo:
cd / etc / squid /
Ele listará automaticamente o conteúdo do diretório para mim também.
Trata-se simplesmente de salvar uma etapa 😀
Me entende?
... é que acho difícil explicar haha.
Não, a explicação não teve problema, quis dizer que talvez o exemplo que você escolheu para ilustrar a dica não fosse o ideal, já que pode-se fazer um simples "diretório ls".
Na verdade, assim que vi a função, entendi o propósito. Eu também uso várias funções no meu .bash_aliasesPor exemplo, este é um que eu uso muito para gerenciar a história:
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
}
(Com esta função, se eu apenas colocar h Recebo os últimos 25 comandos, mas se, por exemplo, coloco h monte Recebo os últimos comandos relacionados a assemblies).
Estou assumindo o seu papel hehehe ... isso merece estudar 😀
ótima sua função! obrigado
+1
KZKG ^ Gaara
Muito boa resposta serviu-me muito bem, já não consegui responder a ela acima
Agora vou usar cdlsf para aumentar minha produtividade, nome muito bom para um comando 😀
lembranças
Como você faz para acertar a hora no terminal, eu já tinha feito antes, era um bashrc que baixava mas não lembro como se chamava.
Boa entrada, não conhecia o truque, vou colocar em prática para ver como funciona. xP
Saudações.
Seria bom se meu navegador fosse adicionado. xD
Saudações, novamente. xD
Qual navegador você usa?
Bem, em outro comentário, vi que você usou o Firefox 🙂
Sim, eu uso o Firefox, mas é cada vez menos e não é mais meu navegador principal, estou usando dwb e seria bom se pudesse ser adicionado. xP
Saudações.
E esse alias não causará problemas nos scripts ao tentar apenas fazer o cd e também gerar ls? Eu particularmente prefiro fazer apelidos com nomes que outros executáveis não usam, porque não é a primeira vez que isso me dá problemas ...
Como você obtém as linhas tracejadas e o tempo após cada comando?
Olhe aqui - " https://blog.desdelinux.net/con-el-terminal-mejorando-la-apariencia-de-la-consola-actualizado/
Minha contribuição:
alias ldir = 'ls | grep -v \\. ' ## liste apenas os diretórios (tenha cuidado, não o renomeie para ld, pois existe um comando GNU / Linux com esse 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); imprimir} '\' ''
O interessante sobre esse alias é o awk que analisa a saída de ls, result? Mostra as permissões do arquivo em formato octal ao lado de rwx, para mim infinitamente mais prático e rápido que letras.
-
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); imprimir} '\' '| grep -i'
Variante do alias acima. Eu adicionei um grep no final para que desta forma quando eu faço, por exemplo:
$lg zip
Mostre-me apenas os arquivos que contêm zip em qualquer uma de suas formas (observe o -i no final), além das permissões octais, etc.
-
alias grep = 'grep –color = auto' ## colore a correspondência de grep
-
Eu tenho muito mais para compartilhar, mas este pequeno lugar me deixa apertado xD
@KZKG, Staff: Você acha que abre uma postagem no blog ou no fórum (para a qual fazemos um link sempre que uma dica relacionada ao console é publicada) para reunir todas essas pequenas pérolas?
Saudações!
Por link você quer dizer isso? - » https://blog.desdelinux.net/tag/bash
Não falei nada, nada mais é preciso, está tudo perfeitamente etiquetado!
Que chileno, essa é uma função muito boa!