Detalhes seriam apreciados!
Eu sei que deveria ser um script de shell ou algo parecido, mas seria ótimo se alguém mais experiente na área pudesse me contar mais sobre isso.
echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc
Responder1
"eco" (como o nome indica) ecoará uma sequência de texto para saída padrão (geralmente a tela).
">>" anexará a saída do comando anterior a um caminho de arquivo.
"&&" executará (com base na saída bem-sucedida do comando anterior) o comando sucessivo.
";" executará (independentemente da saída bem-sucedida do comando anterior) o comando sucessivo.
"função"criará uma função que será executada no Bash Shell.
"$HOME"é uma referência (variável Bash) ao diretório inicial do sistema operacional do usuário criado automaticamente pelo Bash.
".bashrc"é um arquivo oculto (no diretório inicial do usuário) que é executado quando o usuário inicia uma sessão interativa. É frequentemente usado para personalizar o shell bash no nível do usuário.
"cd"é uma mudança de diretório, mude o diretório de trabalho.
"eu"lista os arquivos no diretório. Neste caso, "--color" é um argumento que enfatizará certos elementos do diretório com cor, em vez de usar uma única cor.
"US$ 1"é usado para permitir que um usuário passe um argumento para este comando como uma variável.
Então, resumindo, para...
echo "" >> $HOME/.bashrc &&
echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc
A primeira linha anexa uma linha "vazia" a.bashrc- simplesmente para maior clareza, quando alguém consultar o arquivo no futuro. A segunda linha acrescenta uma nova função chamada "cdls" que aceita um argumento (um nome de diretório), altera o diretório de trabalho para esse local e executa imediatamente o "eu" comando neste diretório.
EDIT: Por favor, veja os comentários de Celada e derobert na resposta de Steve.
Responder2
Teste se $HOME/.bashrc é gravável, tentando não acrescentar nada a ele:
echo "" >> $HOME/.bashrc &&
Se o teste for bem-sucedido, o arquivo poderá ser gravado, anexe uma função a ele. Para que a execução cdls foo
exiba uma listagem colorida do diretório "foo".
echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc