====== UNIX ====== {{indexmenu>unix#2|js#IndexMenu+ajax}} Dicas boas... * Criar pastas: mkdir -p /a/b/c/d Bem melhor que uma por uma... * Criando estruturas de uma só vez: mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a} Rox.. * Dois coelhos numa caixa d'gua: * Executar 2 só se o 1 funcionar! comando1 && comando2 * Executar 2 só se o 1 falhar! comando1 || comando2 ====== Comandos ====== [[http://www.ss64.com/bash/]] Procuris: [IRC antoszka rxKaffe] du -sch /* du -h --max-depth=1 Substituir comando: ^texttosobstitute^sobstitution apt-get updatke ^updatke^update (or simpler: ^tk^t). !$ // ultimo comando ===== Shortcuts ===== * **[CTRL+R]** Procura no History..mucho bom ! * **[CTRL+A]** Começo da frase * **[CTRL+E]** Fim da frase * **[CTRL+U]** Destrói até o começo da frase * **[CTRL+K]** Destrói até o fim da frase ====== Geral ====== === cp === cp -Rp dir1 dir2 // Cópia árvore preservando perm/own/timestamp * -i Confirma ao sobreescrever === unsorted === ln -s arquivo link // links saves the world -symbolic vmstat 3 // segundos time command // Tempo execução echo 'wget url' | at 01:00 // Faz um download da url à 01:00AM df -h // Mostra utilização de filesystems dd if=/dev/sda1 of=/backup/ // Disk duplicate (if/of input/output file) ====== TAR ====== tar cjvf - documentos/ | split -b 695m - arquivo_ tar cvfz $name * === extrair === * -x - extrai arquivos de um arquivo tar; === compactar === * -c - cria um novo arquivo tar; * -C - especifica o diretório dos arquivos a serem armazenados. * -r - acrescenta arquivos a um arquivo tar; * -z - comprime o arquivo tar resultante com o gzip; === outros === * -f - especifica o arquivo tar a ser usado; * -M - cria, lista ou extrai um arquivo multivolume; * -p - mantém as permissões originais do(s) arquivo(s); * -t - exibe o conteúdo de um arquivo tar; * -v - exibe detalhes da operação; * -w - pede confirmação antes de cada ação; === exemplos === tar -c pasta > arq.tar tar -cvf arq.tar arq1 arq2 tar -cvf /dev/fd0 /dir1/* tar -cvMf /dev/fd0 /dir1 /dir2/subdir /dir3 tar -c -v -f arq.tar *.ext tar cwf arq.tar pasta tar -czvf /pasta/arq.tgz * tar czwf arq.tar.gz -C /dir1 arq1 -C /dir2 arq2 arq3 tar -rf arq.tar arq* tar -tf arq.tar tar -xv -f arq.tar tar xvMf /dev/fd0 tar xf arq.tar pasta/arq1 tar xzvf /pasta/subdir/arq.tar.gz tar -xzwf arq.tgz ====== Logs ====== tail -f tail -50 ====== Edição ====== ==== Read ==== less textfile // 'q' sair more textfile ==== Write ==== sed '/ *#/d; /^ *$/d' file // Remove comentários e linhas em branco sed 's/string1/string2/g' file // Substitui string2 por string1 tr -d '\r' < file // converte arquivo texto DOS para unix ====== Navegação ====== cd - // volta para o diretório anterior cd // vai para o diretório home cd dir && command // vai , executa , retorna ====== Searching ====== grep -r String /usr/share/doc/apache/manual/ ls -rt // classificados por timestamp ls -rS // classificados pelo tamanho find ~ -name *.txt find -name '*.[ch]' | xargs grep -E 'search string' Procura em *.c and *.h por "search string" no diretório corrente e abaixo find -type f | xargs grep -E 'search string' Procura em todos os arquivos regulares por "search string" no diretório atual e abaixo find -type f -maxdepth 1 | xargs grep -E 'search string' Procura em todos os arquivos regulares por "search string" no diretório atual ==== Tempo ==== find ~ -mmin -90 Só arquivos: find ~ -type f -mmin -90 ==== + xargs ==== find ~ -type f -mtime +1825 | xargs -r ls -l -r pra nao mostrar tudo caso nao haja resultados. ===== Locate ===== locate 'file*.txt' Pesquisa indexada por arquivos no sistema slocate 'file*.txt' Pesquisa indexada por arquivos no sistema, segurança / performance whereis command Localiza binários, fonte, e arquivos de man page do comando which command Mostra o caminho completo do comando ===== Modificados ===== $ls -FlAt | head ou $ls -lart $find / -mtime 1 ou pra meia-noite $find / -daystart -mtime 0 ====== Funções ====== .bashrc function ls { command ls -F "$@" } function duff { diff -ur "$@" } export -f duff * "$@" insere argumentos * Não definir rm com -i * Só funfa no seu bash ====== Vários ====== ==== Pegando configs ==== fusiont:~# cat /etc/squid/squid.conf | sed '/ *#/d; /^ *$/d' $ egrep -v "^#|^$" [arquivo.conf_original] > [arquivo.conf_descomentado] Pega soh oq nao tem # .. ==== Terminal melhor MRXVT ==== sudo apt-get mrxvt ~/.Xdefaults mrxvt.font: 9x15 mrxvt.geometry: 100x30 mrxvt.reverseVideo: True mrxvt.loginShell: True mrxvt.scrollbarRight: True mrxvt.scrollbarStyle: rxvt mrxvt.bottomTabbar: True mrxvt.saveLines: 1500 mrxvt.visualBell: True Mrxvt.macro.Shift+Left: GotoTab -1 Mrxvt.macro.Shift+Right: GotoTab +1 Some tips: * Change tab with Shift+Right and Shift+Left * Open a new tab with Shift+Ctrl+t * Change the title of a tab by marking some text and middle click the tab’s name * Open multiple tabs at startup with -tnum # in command-line args ====== SSH ====== Moves the world scp file user@host scp user@host:/folder/file . ==== Key Pair ==== ssh-keygen -t dsa (~/.ssh/id_dsa.pub) **blank pass** scp ~/.ssh/id_dsa.pub ceo@macromates.com: mkdir .ssh # if it's not already there cat id_dsa.pub >>.ssh/authorized_keys rm id_dsa.pub # cleanup ==== ~/.ssh/config ==== Host mm HostName macromates.com User ceo ==== SSH Transferir arquivos ==== **Software:** zssh ~/.bashrc alias ssh=zssh When you are on the remote machine just press CTRL-Space to go into interactive mode (very much like FTP). To send a file use this: sz -e The -e option works around non 8-Bit clean terminals. You only need the lrzsz and ssh packages installed on the remote machine. ==== Memory ==== # dmidecode --type memory ====== Fontes ====== http://wiki.splitbrain.org/tutorials http://wiki.splitbrain.org/linuxutils [[http://www.pixelbeat.org/cmdline.html]] [[http://www.ss64.com/bash/]] [[http://www.comptechdoc.org/os/linux/usersguide/linux_ugbasics.html]] http://gentoo-wiki.com/TIP_Recently_Changed_Files http://www.hcidata.info/find.htm [[http://macromates.com/blog/2005/subversion-support-and-ssh-key-pairs/]]