Os pseudónimos Bash que não consegue viver sem
uma alcunha Bash é um método de completar ou substituir os comandos Bash com os novos. Os pseudônimos Bash tornam mais fácil para os usuários personalizar sua experiência em um terminal POSIX. Eles são muitas vezes definidos em $HOME/.bashrc ou $HOME/bash_aliases (que deve ser carregado por $HOME/.bashrc).
a maioria das distribuições adiciona pelo menos alguns pseudónimos populares por omissão .ficheiro bashrc de qualquer conta de utilizador Nova. Estes são simples para demonstrar a sintaxe de um Bash alias:
alias ls="ls -F"
alias ll="ls -lh"
nem todas as distribuições são enviadas com pseudónimos pré-povoados, no entanto., Se adicionar nomes alternativos manualmente, então terá de Os carregar na sua sessão Bash actual:
$ source ~/.bashrc
caso contrário, poderá fechar o seu terminal e reabri-lo de modo a que volte a carregar o seu ficheiro de configuração.
com esses pseudónimos definidos no seu programa de inicialização da Bash, poderá então escrever ll e obter os resultados do ls-l, e quando escrever ls você obtém, em vez da saída do LS antigo.esses pseudónimos são óptimos de se ter, mas apenas arranham a superfície do que é possível. Aqui estão os nomes falsos top 10 que, uma vez que você experimentá-los, você não será capaz de viver sem.,
configurar primeiro
antes do início, criar um ficheiro chamado ~/.bash_aliases:
$ touch ~/.bash_aliases
então, certifique-se que este código aparece em seu~/.ficheiro bashrc:
if ; then
source $HOME/.bash_aliases
fi
Se quiser tentar algum dos pseudónimos deste artigo por si próprio, introduza-os no seu .bash_ aliases file, e em seguida, carregá-los em sua sessão Bash com o código ~/.comando bashrc.,
Ordenar pelo tamanho do ficheiro
se iniciou a sua vida de computação com gestores de ficheiros GUI como o Nautilus no GNOME, o localizador no MacOS ou o Explorer no Windows, então provavelmente está habituado a ordenar uma lista de Ficheiros pelo seu tamanho. Você pode fazer isso em um terminal também, mas não é exatamente sucinto.
Adicionar este alias para a sua configuração em um sistema GNU:
alias lt="ls --human-readable --size -1 -S --classify"
Este alias substitui lt com um comando ls exibe o tamanho de cada item e, em seguida, classifica-lo por tamanho, em uma única coluna, com uma notação para indicar o tipo de arquivo., Carregar o seu novo alias e, em seguida, tente:
No MacOS ou no BSD, o comando ls não tem as mesmas opções, de modo que este alias de obras:
alias lt="du -sh * | sort -h"
Os resultados desta versão são um pouco diferentes:
$ du -sh * | sort -h
0 compile
0 COPYING
0 install-sh
0 missing
4.0K configure.ac
4.0K dot-gitlab.ci.yml
4.0K flatpak.path.patch
4.0K git-portal.spec
4.0K info.slackermedia.Git-portal.json
4.0K Makefile.am
8.0K README.md
12K config.log
16K bin
24K Makefile
24K Makefile.in
32K config.status
36K LICENSE
44K aclocal.m4
60K share
140K configure
476K autom4te.cache
Na verdade, mesmo no Linux, o comando é útil, porque usando ls lista os diretórios, e links simbólicos como sendo 0 em tamanho, que pode não ser a informação que você realmente quer. A escolha é tua.graças a Brad Alexander por esta ideia.
ver apenas as unidades montadas
o comando de montagem usado para ser tão simples., Com apenas um comando, você poderia obter uma lista de todos os sistemas de arquivos montados em seu computador, e era frequentemente usado para uma visão geral de quais unidades foram anexadas a uma estação de trabalho. Costumava ser impressionante ver mais de três ou quatro entradas porque a maioria dos computadores não têm muitas portas USB mais do que isso, então os resultados foram gerenciáveis.,
os Computadores são um pouco mais complicado agora, e entre LVM, unidades físicas, rede de armazenamento e sistemas de arquivos virtuais, os resultados de montagem pode ser difícil para analisar:
Para resolver esse problema, tente um alias como este:
alias mnt="mount | awk -F" " "{ printf \"%s\t%s\n\",\$1,\$3; }" | column -t | egrep ^/dev/ | sort"
Este alias utiliza o awk para analisar a saída de montar a coluna, reduzir a saída para o que você, provavelmente, olhando para (o que unidades de disco rígido, e não com os sistemas de ficheiros são montados):
No MacOS, o comando mount não fornece terrivelmente saída detalhada, para que um alias pode ser um exagero., No entanto, se você preferir um relatório sucinto, tente o seguinte:
alias mnt="mount | grep -E ^/dev | column -t"
Os resultados:
Encontre um comando grep história
às Vezes você descobrir como fazer alguma coisa no terminal, e prometa a si mesmo que você nunca vai esquecer o que você acabou de aprender. Passa-se uma hora e esqueces-te completamente do que fizeste.
pesquisar através da sua história Bash é algo que toda a gente tem de fazer de vez em quando., Se souber exactamente o que procura, pode usar o Ctrl+R para fazer uma pesquisa inversa ao longo do seu histórico, mas às vezes não consegue lembrar-se do comando exacto que deseja encontrar.
Aqui um alias para tornar essa tarefa um pouco mais fácil:
alias gh="history|grep"
Aqui está um exemplo de como usá-lo:
$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc
Ordenar por hora de modificação
Isso acontece toda segunda-feira: Você começa a trabalhar, você se senta em seu computador, abra um terminal, e se você achar que você esqueceu o que você estava fazendo na última sexta-feira., O que você precisa é de um alias para listar os arquivos modificados mais recentemente.
Você pode usar o comando ls para criar um alias para ajudar você a descobrir onde você parou:
alias left="ls -t -1"
A saída é simples, embora você pode estendê-lo com a opção –opção, se você preferir., Alias, como listado, apresenta desta forma:
$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml
Contagem de arquivos
Se você precisa saber de quantos arquivos você tem em um diretório, a solução é um dos mais clássicos exemplos de comandos UNIX de construção: É a lista de arquivos com o comando ls, o controle de sua produção para ser apenas uma coluna com o-1 opção e, em seguida, pipe de saída para o wc (word count) comando para contar quantas linhas de arquivos existem.
é uma demonstração brilhante de como a filosofia UNIX permite aos usuários construir suas próprias soluções usando pequenos componentes de Sistema., Esta combinação de comandos também é muito para digitar se acontecer de fazê-lo várias vezes por dia, e não funciona exatamente para um diretório de diretórios sem usar a opção-R, que introduz novas linhas para o resultado e torna o exercício inútil.
em vez disso, este nome também facilita o processo:
alias count="find . -type f | wc -l"
este conta ficheiros, ignorando pastas, mas não o conteúdo das pastas. Se você tem uma pasta de projeto contendo dois diretórios, cada um dos quais contém dois arquivos, o alias retorna quatro, porque há quatro arquivos em todo o projeto.,
$ ls
foo bar
$ count
4
crie um ambiente virtual em Python
você code em Python?
Você codifica muito em Python?
Se o fizer, então sabe que criar um ambiente virtual Python requer, no mínimo, 53 teclas.
isso é 49 demais, mas isso é facilmente contornado com dois novos nomes chamados ve e va:
alias ve="python3 -m venv ./venv"
alias va="source ./venv/bin/activate"
Running ve cria um novo diretório, chamado venv, contendo o sistema de arquivos ambiente virtual usual para Python3., O va alias ativa o ambiente em seu shell atual:
$ cd my-project
$ ve
$ va
(venv) $
Adicionar uma barra de progresso cópia
todo mundo zomba de barras de progresso, porque eles são vergonhosamente imprecisas. E no entanto, no fundo, todos nós parecemos querê-los. O comando cp UNIX não tem barra de progresso, mas tem uma opção A-v para verbosity, o que significa que ele ecoa o nome de cada arquivo sendo copiado para o seu terminal. Isso é um hack muito bom, mas não funciona tão bem quando você está copiando um arquivo grande e quer alguma indicação de quanto do arquivo ainda tem que ser transferido.,
o comando pv fornece uma barra de progresso durante a cópia, mas não é comum como uma aplicação padrão. Por outro lado, o comando rsync está incluído na instalação padrão de quase todos os sistemas POSIX disponíveis, e é amplamente reconhecido como uma das maneiras mais inteligentes de copiar arquivos tanto remotamente quanto localmente.
Melhor ainda, tem uma barra de progresso incorporada.,
alias cpv="rsync -ah --info=progress2"
Usando alias é o mesmo que usar o comando cp:
$ cpv bigfile.flac /run/media/seth/audio/
3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)
Um interessante efeito colateral de usar este comando é que o rsync cópias de arquivos e diretórios sem o sinalizador-r que o cp exige.
Proteja-se de acidentes de remoção de ficheiros
não deve usar o comando rm. O manual rm diz Ainda assim:
Aviso: Se você usar ‘rm’ para remover um arquivo, geralmente é possível recuperar o conteúdo desse arquivo., Se você quiser mais garantia de que o conteúdo é realmente irrecuperável, considere usar ‘shred’.
Se quiser remover um ficheiro, deve mover o ficheiro para o seu lixo, tal como faz ao usar um ecrã.
POSIX torna isto fácil, porque o lixo é um local acessível e real no seu sistema de ficheiros. Essa localização pode mudar, dependendo da sua plataforma: em um FreeDesktop, o lixo está localizado em ~/.local / share / Trash, enquanto em MacOS é~/.,Lixo, mas seja como for, é apenas um directório no qual se colocam ficheiros que queremos fora de vista até estarmos prontos para apagá-los para sempre.
esta Alcunha simples oferece uma forma de atirar os ficheiros para o caixote do lixo do seu terminal:
alias tcn="mv --force -t ~/.local/share/Trash "
este nome alternativo usa uma bandeira MV pouco conhecida que lhe permite fornecer o ficheiro que deseja mover como argumento final, ignorando o requisito habitual para que esse ficheiro seja listado em primeiro lugar., Agora você pode usar o seu novo comando para mover arquivos e pastas para o lixo do seu sistema:
$ ls
foo bar
$ tcn foo
$ ls
bar
Agora o arquivo está “desaparecido”, mas apenas até que você perceba em um suor frio que você ainda precisa dele. Nesse ponto, você pode resgatar o arquivo de seu lixo de sistema; certifique-se de dar gorjeta aos desenvolvedores Bash e mv no caminho para fora.Nota: Se precisar de um comando de lixo mais robusto com melhor conformidade com o FreeDesktop, veja o lixo.
Simplifique o seu fluxo de trabalho Git
todo mundo tem um fluxo de trabalho único, mas geralmente há tarefas repetitivas não importa o que., Se você trabalha com Git em uma base regular, então há provavelmente alguma seqüência que você se encontra repetindo com muita frequência. Talvez você se encontre voltando para o ramo mestre e puxando as mudanças mais recentes vezes e vezes sem conta durante o dia, ou talvez você se encontre criando tags e, em seguida, empurrando-os para o controle remoto, ou talvez seja algo completamente diferente.não importa o encantamento Git que esteja cansado de escrever, pode aliviar alguma dor com um pseudónimo Bash., Em grande parte, graças à sua capacidade de passar argumentos para hooks, Git tem um rico conjunto de comandos introspectivos que o impedem de ter que realizar façanhas estranhas em Bash.
Por exemplo, enquanto você pode lutar para localizar, na Bash, um diretório de Nível Superior de um projeto (que, no que diz respeito à Bash, é uma designação inteiramente arbitrária, uma vez que o nível superior absoluto para um computador é o diretório raiz), o Git conhece seu nível superior com uma consulta simples., Se você estudar em git hooks, você vai encontrar-se capaz de descobrir todos os tipos de informações que Bash não sabe nada sobre, mas você pode alavancar essa informação com um pseudônimo Bash.,
Aqui um alias para localizar o nível superior de uma Git do projeto, não importa onde, em que projeto você está trabalhando no momento e, em seguida, altere o diretório para ele, a mudança para o branch master, e realizar um Git pull:
alias startgit="cd `git rev-parse --show-toplevel` && git checkout master && git pull"
Este tipo de alias não é universalmente útil alias, mas demonstra como relativamente simples, alias pode eliminar um monte de trabalhoso de navegação, comandos e aguardar instruções.
um alias mais simples, e provavelmente mais universal, devolve-o ao nível superior do projecto Git., Este pseudónimo é útil porque quando está a trabalhar num projecto, esse projecto torna-se mais ou menos o seu directório “casa temporária”. Deve ser tão simples ir “para casa”como ir para a sua casa real, e aqui está um pseudónimo para o fazer:
alias cg="cd `git rev-parse --show-toplevel`"
Agora o comando cg leva-o para o topo do seu projecto Git, não importa quão fundo tenha descido na sua estrutura de directórios.,
mude de diretórios e veja o conteúdo ao mesmo tempo
foi uma vez (alegadamente) proposto por um cientista líder que poderíamos resolver muitos dos problemas de energia do planeta, aproveitando a energia gasta por geeks digitando cd seguido por ls.
é um padrão comum, porque geralmente quando você muda de diretórios, você tem o impulso ou a necessidade de ver o que está ao redor.
mas “caminhar” a árvore de diretórios do seu computador não tem que ser um processo de iniciar e parar.este está a fazer batota, porque não é um nome falso, mas é uma boa desculpa para explorar as funções Bash., Embora os pseudónimos sejam óptimos para substituições rápidas, a Bash permite-lhe adicionar funções locais no seu .ficheiro bashrc (ou um ficheiro de funções separadas em que carrega .bashrc, assim como você faz seu arquivo de nomes falsos).
para manter as coisas modulares, crie um novo arquivo chamado ~/.bash_functions e depois ter o seu .,bashrc carregá-lo:
if ; then
source $HOME/.bash_functions
fi
as funções de arquivo, adicione este código:
Carregar a função para a Festança de sessão e, em seguida, tente:
$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop Documents Downloads
$ pwd
/home/seth
Funções são muito mais flexíveis do que os aliases, mas com a flexibilidade vem a responsabilidade para você, para garantir que seu código faz sentido e faz o que você espera. Os pseudónimos são para ser simples, por isso mantenham-nos fáceis, mas úteis. Para modificações sérias de como a Bash se comporta, use funções ou scripts de shell personalizados salvos em um local em seu caminho.,
para o registro, existem alguns hacks inteligentes para implementar a sequência de cd e ls como um pseudônimo, então se você é paciente o suficiente, então o céu é o limite mesmo usando pseudônimos humildes.