====== 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/]]