muitas pessoas sabem sobre o comando cat que é útil na exibição de conteúdo de arquivo inteiro. Mas em alguns casos temos que imprimir parte do arquivo. No post de hoje vamos estar falando sobre comandos head e tail, que são muito úteis quando você quer ver uma determinada parte no início ou no fim de um arquivo, especialmente quando você tem certeza que você quer ignorar o resto do conteúdo do arquivo.,
vamos começar com o comando tail, e explorar todas as características que este comando handy pode fornecer e ver como usá-lo melhor para atender às suas necessidades. Depois disso vamos mostrar algumas opções que você pode fazer e não pode fazer com o comando chefe.
Linux tail command syntax
tail ... ...
Tail é um comando que imprime o último número de linhas (10 linhas por padrão) de um determinado arquivo, em seguida, termina.exemplo 1: por padrão “tail” imprime as últimas 10 linhas de um arquivo, então sai.,
tail /caminho/para/arquivo
Exemplo :
como você pode ver, esta função imprime as últimas 10 linhas do arquivo /var/log/messages.
Exemplo 2: Agora o que você está interessado em apenas as últimas 3 linhas de um arquivo, ou talvez interessado nas últimas 15 linhas de um arquivo. isto é quando a opção-n vem à mão, para escolher um número específico de linhas em vez do padrão 10.,
tail -n <number_of_lines> /path/to/file
Example :
# tail -n 4 /etc/groupvboxusers:x:491:avahi:x:70:mailnull:x:47:smmsp:x:51:
Example 3: We can even open multiple files using tail command with out need to execute multiple tail commands to view multiple files., Suppose if you want to see first two lines of a
tail -n <number of lines> <file1> <file2> <file3>
Example:
surendra@sanne-taggle:~/code/sh$ tail -n 2 99abc.txt startup_script.sh wifiactivate.sh ==> 99abc.,txt <==
==> startup_script.sh <==sed -i 's/^.*PermitRootLogin.*$/PermitRootLogin yes/g' /etc/ssh/sshd_configservice sshd reload
==> wifiactivate.sh <==modprobe -rv iwlwifimodprobe -v iwlwifi 11n_disable=8
Example 4: Now this might be by far the most useful and commonly used option for tail command., Ao contrário do comportamento padrão que deve terminar após a impressão de um certo número de linhas, a opção-f “que significa seguir” vai manter o fluxo funcionando. Ele vai começar a imprimir linhas extras na consola adicionado ao arquivo após ser aberto. Este comando irá manter o ficheiro aberto para mostrar as alterações actualizadas na consola até que o utilizador quebre o comando.,
tail-f /caminho/para/arquivo
Exemplo :
Como você pode ver nesse exemplo, eu queria começar o serviço crond, em seguida, assistir a /var/log/cron como arquivo de log do serviço é iniciado. I used; which a kind of command chaining in Linux encomender to execute two commands in single line. Não estou interessado em apenas um número de linhas, em seguida, sair, mas além disso, estou interessado em manter a observação de todo o arquivo de registro até o serviço começar, em seguida, quebrá – lo com CTRL+C.,
exemplo 5: o mesmo comando tail-f pode ser replicado usando menos comando bem. Uma vez que você abrir um arquivo com menos
menos /caminho/para/arquivo
Depois de abrir o arquivo, em seguida, pressione shift+f
Exemplo:
No fim de comeout permite-se que a partir do modo de atualização em menos, você tem que pressionar as teclas ctrl+c e, em seguida, pressione q para sair.,c89d637cf1″>Exemplo 6: temos outra opção -s, que deve ser usado sempre com -f” irá determinar o intervalo de suspensão, considerando que tail-f vai continuar assistindo o arquivo, a taxa de atualização é de cada 1 segundo, se você deseja controlar isso, em seguida, você terá que usar a opção-s “sono” e especifique o intervalo de suspensão
tail-f -s <intervalo de espera em segundos> /caminho/para/arquivo
Exemplo :
Exemplo 7: Como vimos no exemplo 3, podemos abrir mais arquivos usando rabo de comando., Mesmo nós podemos ver 2 arquivos ao mesmo tempo crescendo usando-f opção também. Ele também irá imprimir uma visualização de cabeçalho que arquivo está mostrando esta saída. o cabeçalho de uma linha que começa com “==>”
tail /caminho/para/arquivo1 /caminho/para/arquivo2
Exemplo:
Exemplo 8: Se você quiser remover o cabeçalho, use a opção-q para o modo silencioso.,
Exemplo :
Exemplo 9: Agora, o que se eu tenho um enorme /var/log/messages e estou interessado apenas na última determinado número de bytes de dados, a opção-c pode fazer isso facilmente., observe o exemplo abaixo, onde eu precisava para ver apenas os últimos 500 bytes de dados a partir de /var/log/messages
cauda -c <número de bytes> /caminho/para/arquivo
Exemplo :
Agora, pois temos de falar um pouco sobre a cauda, vamos falar sobre a “cabeça” de comando.
Head command will obviously on the contrary to tail, it will print the first 10 lines of the file., Até esta parte do post, o comando head vai fazer praticamente o mesmo que tail em todos os exemplos anteriores, com exceção da opção-f, não há opção-f na cabeça, o que é muito natural, uma vez que os arquivos vão sempre crescer a partir de baixo.
Head command syntax in Linux
head ... ...
exemplo 10: como mencionar as primeiras 10 linhas de impressão.
exemplo 11: imprimir as duas primeiras linhas de um ficheiro.,
# head-n 2 /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin
Exemplo 12: esta opção permite imprimir todas as linhas começando a partir de uma linha de número que você especificar, ao contrário do Exemplo 11, que irá mostrar-lhe o primeiro número de linhas que você forneceu.,
head-n <número de linhas precedido com "-"> /caminho/para/arquivo
Exemplo :
Como pode-se notar que, neste exemplo, ele impresso todas as linhas começando após a linha 27.
Combine o comando head and tail no Linux
exemplo 13: Como os comandos tail e head imprimem diferentes partes dos ficheiros de uma forma eficaz, podemos combinar estes dois para imprimir alguma filtragem avançada do conteúdo dos ficheiros., Para imprimir a 15ª linha para a 20ª linha no ficheiro/etc / passwd use abaixo do exemplo.
head-n 20 /etc/passwd | tail-n 5
Saída:
Exemplo 14: Muitas pessoas não sugerir o método acima para imprimir a partir de uma linha para outra linha. O exemplo acima é mostrar como podemos combinar essas coisas. Se quiser mesmo imprimir uma linha em particular, use o comando sed como mostrado em baixo.
Exemplo:
$ sed -n '5p' /etc/passwdsync:x:4:65534:sync:/bin:/bin/sync