Ferramentas do usuário

Ferramentas do site


dicas_unix_e_etc

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
dicas_unix_e_etc [2008/10/15 14:45] – incluíndo lista de melhorias cartoladicas_unix_e_etc [2019/11/04 08: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, setor de boot e outras coisas, mas para recuperação de arquivos gostei mais do foremost. Interessante registrar ela aqui, pois é impressionante como eu nunca lembro o nome dele e sempre tenho que pesquisar um tempão até achar.
 +
  
 ====== Expressões Regulares ====== ====== Expressões Regulares ======
Linha 52: Linha 64:
   *  recuperação de falhas nos casos de erro de transmissão   *  recuperação de falhas nos casos de erro de transmissão
   *  interrupção limpa no meio do processo com limpeza local e remota de "resíduos"   *  interrupção limpa no meio do processo com limpeza local e remota de "resíduos"
 +
 +
 +====== 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 "xev", que abre uma pequena janela no xorg e vai mostrando, na janela do shell de onde foi chamado, uma série de informações referentes a cada "Evento do X" (daí o nome X Ev - X Events). No meio das muitas informações aparece lá o "keycode" que precisa ser usado no arquivo a ser usado no xmodmap, por exemplo. Daí é só acertar o arquivo. Hoje, por exemplo, coloquei a linha:
 +
 +<code> keycode 211 = slash question degree questiondown
 +</code>
 +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:
 +
 +<code> $ xmodmap .Xmodmap.abnt2
 +</code>
 +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, então vale mencionar que uso vi (vim) em um xterm num XFCE com teclado brasileiro. O sistema está todo configurado pra acentuar normalmente, afinal redijo textos como este aqui, em português, que precisam de acentos. Quando vou colar códigos ou qualquer outros textos, porém, é comum aparecerem textos entre aspas " ou plics ' e aí, na hora de colar, se vem um plic e um "a", por exemplo, o que sai é uma letra acentuada "á" e ainda some o plic que era necessário pra delimitar o texto.
 +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://www.cartola.org/arquivos/Unix/FreeBSD-20091013.mm|Apresentação realizada no CEFET em outubro de 2009 com foco motivacional]] ([[http://www.cartola.org/arquivos/Unix/FreeBSD-20091013.mm.html|também em formato HTML]])
 +
 +
 +====== 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, como: Gnome, KDE, XFCE e muitos, muitos outros. Cada um tem uma forma diferente de configurar o leiaute de teclado.
 +
 +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 "Disposição", é possível configurar tanto o tipo de teclado que está em uso (105 teclas padrão, por exemplo) como o leiaute de teclas, por exemplo, Inglês EUA internacional com teclas mortas ou Português (Brasil). Em alguns casos depois dessa correta configuração já está tudo resolvido. Se você não sabe exatamente qual é o seu teclado, vale uma pesquisa e alguns testes pra ver se acerta por aí.
 +
 +
 +===== 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 "/", a barra vertical "|" etc. O modo mais prático de acertar esse problema pontual é usar o xmodmap. [[http://xahlee.info/linux/linux_xmodmap_tutorial.html|Esse é um bom tutorial]] que encontrei e de onde peguei as dicas abaixo.
 +  *  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 "xmodmap -pke". Pode usar apenas as linhas que interessam, alterando de acordo com o que precisa. Tendo esse arquivo, digamos, com o nome xmodmap.meu basta carregá-lo com "xmodmap xmodmap.meu"
 +É 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: "ć" e "Ć". Isso acontece normalmente em teclados americanos (que não tem a tecla cedilha) onde acentuamos com ' + c.
 +
 +**Solução 1**\\ Editar o arquivo /etc/environment inserindo as linhas abaixo:
 +  GTK_IM_MODULE=cedilla
 +  QT_IM_MODULE=cedilla
 +e reiniciando o computador em seguida.
 +
 +**Solução 2**\\ Editar o arquivo /usr/share/X11/locale/en_US.UTF-8/Compose e colocar os caracteres corretos (copie da internet, daqui por exemplo) nos lugares onde tem <dead_acute> <c> 
 +  <dead_acute> <C>                        : "Ç"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
 +  <Multi_key> <acute> <C>                 : "Ç"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
 +  <Multi_key> <apostrophe> <C>            : "Ç"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
 +  <Multi_key> <C> <apostrophe>            : "Ç"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
 +  <dead_acute> <c>                        : "ç"   U0107 # LATIN SMALL LETTER C WITH ACUTE
 +  <Multi_key> <acute> <c>                 : "ç"   U0107 # LATIN SMALL LETTER C WITH ACUTE
 +  <Multi_key> <apostrophe> <c>            : "ç"   U0107 # LATIN SMALL LETTER C WITH ACUTE
 +  <Multi_key> <c> <apostrophe>            : "ç"   U0107 # LATIN SMALL LETTER C WITH ACUTE
 +
 +**Solução 3**\\ Em sistemas 64 bits edite os arquivos (se existirem - pois não achei isso em versões mais recentes):
 +/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache
 +/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache
 +  * Em sistemas 32 bits edite o arquivo:
 +/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/immodules.cache
 +  * Altere as linhas onde tem cedilla colocando o idioma "en" no final, junto com os outros, separando com dois pontos ":"
 +  "cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"
 +
 +
 +====== Controle de versões com Subversion (svn) ======
 +
 +Por enquanto não vou cobrir aqui a instalação, apenas o uso.
 +
 +===== Criando um repositório =====
 +
 +**No servidor**\\ svnadmin create /<caminho pra raiz dos repos>/<novo repo>
 +
 +
 +===== 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://<usuario>@<servidor>/<raiz dos repos>/<repo>
 +  *  svn co https://<usuario>@<servidor>/<raiz web dos repos>/<repo>
 +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", que não precisa ser igual ao caminho no disco dessa raiz e normalmente não é.
 +
 +
 +===== 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 "mensagem de commit" [arquivos ...]
 +Os nomes de arquivos podem ser omitidos e ficará implícito o diretório corrente ".", que será percorrido recursivamente para o envio das modificações.
 +
 +
 +===== outros comandos =====
 +
 +Com o comando
 +  svn help
 +você obtém a lista dos demais comandos disponíveis.
 +Com o comando "svn help <comando>" você obtém ajuda sobre um comando específico do svn. Por exemplo:
 + svn help co
dicas_unix_e_etc.1224092720.txt.gz · Última modificação: 2008/10/15 14:45 por cartola