UNIX

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 <file>

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

 
Back to top
unix.txt · Last modified: 2009/07/09 20:05 (external edit)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0