dicas_unix_e_etc
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
dicas_unix_e_etc [2008/10/15 12:34] – criando seção "scripts" com script de upload de arquivos em partes cartola | dicas_unix_e_etc [2019/11/04 11:12] (atual) – [Cedilha (cedilla) errado] cartola | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | |||
+ | ====== Boas práticas de programação Shell script ====== | ||
+ | |||
+ | |||
+ | Como este tema tende a se tornar grande pra colocar aqui numa página com outros assuntos, optei por criar [[boas_praticas_de_programacao_shell_script|uma página só dele]]. | ||
+ | |||
+ | |||
+ | ====== Recuperação de discos ====== | ||
+ | |||
+ | |||
+ | Gosto muito de dois programas, o testdisk, capaz de recuperar partições, | ||
+ | |||
====== Expressões Regulares ====== | ====== Expressões Regulares ====== | ||
Linha 33: | Linha 45: | ||
Tanto o sistema origem como destino precisa ser unix-like, embora o php no destino possa ser refeito para evitar essa necessidade no destino. Na origem é um pouco mais complicado fugir do //shell//, mesmo por que, no meu caso pelo menos, o //wget// foi a única ferramenta que conseguiu passar com sucesso pelo proxy. Cheguei a tentar // | Tanto o sistema origem como destino precisa ser unix-like, embora o php no destino possa ser refeito para evitar essa necessidade no destino. Na origem é um pouco mais complicado fugir do //shell//, mesmo por que, no meu caso pelo menos, o //wget// foi a única ferramenta que conseguiu passar com sucesso pelo proxy. Cheguei a tentar // | ||
- | **Scripts na origem** | + | |
+ | ==== Scripts na origem | ||
[[post.sh]] - script principal. Deve ser configurado inicialmente. É quem deve ser executado, passando na própria linha de comando os arquivos que devem ser enviados ao destino. | [[post.sh]] - script principal. Deve ser configurado inicialmente. É quem deve ser executado, passando na própria linha de comando os arquivos que devem ser enviados ao destino. | ||
Linha 39: | Linha 53: | ||
[[post.php]] - script auxiliar que codifica o arquivo original em base64 para envio. É necessário interpretador php de linha de comandos para executá-lo. | [[post.php]] - script auxiliar que codifica o arquivo original em base64 para envio. É necessário interpretador php de linha de comandos para executá-lo. | ||
- | **Script no destino** | + | |
+ | ==== Script no destino | ||
[[recebe.php]] - recebe, decodifica e junta os arquivos enviados. | [[recebe.php]] - recebe, decodifica e junta os arquivos enviados. | ||
+ | |||
+ | ==== Melhorias interessantes ==== | ||
+ | |||
+ | * recuperação de falhas nos casos de erro de transmissão | ||
+ | * interrupção limpa no meio do processo com limpeza local e remota de " | ||
+ | |||
+ | |||
+ | ====== Detectando Código de Tecla no Xorg ====== | ||
+ | |||
+ | Já precisei reconfigurar arquivo de mapeamento de teclado por não encontrar um arquivo que mapeasse corretamente algum teclado. As vezes fica faltando só uma teclinha que não funciona e mesmo depois de testar vários arquivos de mapeamento a maldita tecla nunca funciona. Para estes casos há o comando " | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | Naturalmente fui prático e copiei o texto necessário de outra linha, apenas alterando o código da tecla para 211. Botei na ordem, pois não sei se isso faz diferença. Como os códigos no meu arquivo só iam até 134 esta ficou sendo a última linha dos códigos. Depois delas ainda haviam algumas outras, mas não de códigos e respectivas funções. | ||
+ | |||
+ | Depois do arquivo pronto bastou um comando tipo: | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | e o mapeamento ficou correto, já que o único problema era essa tecla que continha a barra e o interrogação. | ||
+ | |||
+ | Outras alternativas ao xev: | ||
+ | |||
+ | * showkey | ||
+ | * evtest | ||
+ | |||
+ | |||
+ | ====== Colando texto sem acentos no VI/VIM ====== | ||
+ | |||
+ | |||
+ | Um problema que tenho há ANOS é colar texto em um editor vi/vim em um terminal numa janela gráfica. Pode ser que o problema não ocorra em outras combinações de ferramentas, | ||
+ | Exemplo: | ||
+ | **Ao colar o texto**\\ "Um elemento importante" | ||
+ | **aparece**\\ Üm elemento importante" | ||
+ | Pra resolver isso temos que desativar tanto a acentuação no ambiente gráfico (X Windows) quanto no VI: | ||
+ | * Com esse comando a acentuação no X é desativada: | ||
+ | $ setxkbmap -layout us -variant mac | ||
+ | Só cuidado, pois as teclas especiais vão ficar fora do lugar. Pode tentar achar outro modelo de teclado mais parecido, mas não tive grandes problemas com isso, o que precisei consegui encontrar. | ||
+ | * Ao chamar o VIM use a opção -u NONE pra que ele não leia configurações e plugins, evitando acentuação interna que pode estar configurada nele: | ||
+ | $ vi -u NONE seu_arquivo.txt | ||
+ | * Depois que terminar é só voltar o teclado. O meu é esse aqui (teclado brasileiro mais comum hoje em dia, que tem tecla " | ||
+ | $ setxkbmap -model abnt2 -layout br -variant abnt2 | ||
+ | Se não conseguir restaurar pode tentar reconfigurar na interface gráfica mesmo ou, no pior caso, deve voltar ao normal após um reboot, o que não é realmente uma boa opção. O ideal é descobrir o modelo, leiaute e variante do seu teclado. | ||
+ | |||
+ | |||
+ | ====== Apresentações ====== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | ====== Instalações de Aplicativos ====== | ||
+ | |||
+ | |||
+ | * [[instalando_o_panini|Instalando o Panini 0.71.104 no Ubuntu 12.04]] / [[installing_panini|Installing Panini 0.71.104 on Ubuntu 12.04]] | ||
+ | * [[compilando_o_warzone2100_no_free_bsd]] / [[compiling_warzone2100_on_a_free_bsd]] | ||
+ | |||
+ | |||
+ | ====== Acertando acentos, teclas erradas de teclado e cedilha ====== | ||
+ | |||
+ | |||
+ | É importante saber que as configurações de acentuação e teclado são diferentes para o ambiente gráfico e a console do sistema. Aqui vou falar primeiro do ambiente gráfico (X11/Xorg). | ||
+ | |||
+ | |||
+ | ===== Acentos em geral ===== | ||
+ | |||
+ | Primeiro recomendo acertar o teclado em uso e isso pode variar dependendo do gerenciador de janelas usado. O ambiente gráfico no *nix é um pouco diferente do que alguns podem ter visto no Rwindows. Existe uma camada de servidor, o X11, sobre a qual rodam os gerenciadores de janela específicos, | ||
+ | |||
+ | XFCE - tenho usado atualmente o XFCE, que tem um aplicativo para configuração de teclado. Pra usar ele é só ir no menu e digitar teclado (ou keyboard se estiver em inglês) e chamar o aplicativo com este nome. Dentro dele, na aba " | ||
+ | |||
+ | |||
+ | ===== Teclas erradas ===== | ||
+ | |||
+ | Dependendo do teclado que você está usando, pode ser que os acentos estejam todos corretos, mas que alguma tecla não esteja funcionando ou esteja trocada. O mais comum é que isso aconteça com teclas de símbolos como a barra "/", | ||
+ | * xev - use esse comando para descobrir o keycode da(s) tecla(s) que quer que tenha alguma função ou que está errada | ||
+ | * xmodmap -pke - vai mostrar todas as configurações atuais. Pode jogar num arquivo pra analisar | ||
+ | Depois disso você pode criar um arquivo de xmodmap. Basta usar a saída do " | ||
+ | É possível colocar esse arquivo para ser carregado na entrada, mas novamente isso vai depender do gerenciador de janelas usado. | ||
+ | |||
+ | |||
+ | ===== Cedilha (cedilla) errado ===== | ||
+ | |||
+ | Em alguns casos o cedilha ainda fica incorreto: " | ||
+ | |||
+ | **Solução 1**\\ Editar o arquivo / | ||
+ | GTK_IM_MODULE=cedilla | ||
+ | QT_IM_MODULE=cedilla | ||
+ | e reiniciando o computador em seguida. | ||
+ | |||
+ | **Solução 2**\\ Editar o arquivo / | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | |||
+ | **Solução 3**\\ Em sistemas 64 bits edite os arquivos (se existirem - pois não achei isso em versões mais recentes): | ||
+ | / | ||
+ | / | ||
+ | * Em sistemas 32 bits edite o arquivo: | ||
+ | / | ||
+ | * Altere as linhas onde tem cedilla colocando o idioma " | ||
+ | " | ||
+ | |||
+ | |||
+ | ====== Controle de versões com Subversion (svn) ====== | ||
+ | |||
+ | Por enquanto não vou cobrir aqui a instalação, | ||
+ | |||
+ | ===== Criando um repositório ===== | ||
+ | |||
+ | **No servidor**\\ svnadmin create /< | ||
+ | |||
+ | |||
+ | ===== checkout de um repositório ===== | ||
+ | |||
+ | O checkout (co) pode ser usado para iniciar o uso de um repositório ainda vazio ou continuar os trabalhos num repositório. | ||
+ | |||
+ | **No cliente**\\ | ||
+ | * svn co svn+ssh://< | ||
+ | * svn co https://< | ||
+ | Para funcionar com HTTP ou HTTPS o servidor precisa ter sido configurado para tal. No momento dessa configuração é definida a "raiz web dos repos", | ||
+ | |||
+ | |||
+ | ===== commit - enviando arquivos para o repositório ===== | ||
+ | |||
+ | Nesse caso normalmente não é necessário especificar o protocolo (https, svn+ssh, ...) pois a cópia local já guarda em suas configurações o que foi usado. | ||
+ | **No cliente**\\ | ||
+ | * svn ci -m " | ||
+ | Os nomes de arquivos podem ser omitidos e ficará implícito o diretório corrente " | ||
+ | |||
+ | |||
+ | ===== outros comandos ===== | ||
+ | |||
+ | Com o comando | ||
+ | svn help | ||
+ | você obtém a lista dos demais comandos disponíveis. | ||
+ | Com o comando "svn help < | ||
+ | svn help co |
dicas_unix_e_etc.1224074042.txt.gz · Última modificação: 2008/10/15 12:34 por cartola