Você está na página 1de 33

Laboratório Linux 03

3.0 Introdução
Um componente chave do shell Bash são as variáveis ​do shell. Essas variáveis ​são críticas
porque armazenam informações vitais do sistema e modificam o comportamento do shell Bash,
além de muitos comandos.

Neste laboratório, você aprenderá como configurar recursos do shell, como: variáveis ​e histórico
de comandos. A compreensão desses recursos do shell facilitará muito o trabalho no ambiente
de linha de comando.
3.1 Etapa 1
Uma variável local está disponível apenas para o shell em que foi criada. Para definir o valor de uma
variável, use a seguinte expressão de atribuição:

nome_da_variável=valor

Crie e exiba uma variável local executando os seguintes comandos:

name="bob"
echo $name

sysadmin @ localhost:~$ name="bob"


sysadmin @ localhost:~$ echo $name
sysadmin @ localhost:~$ bob
3.2 Etapa 2
Uma variável de ambiente está disponível para o shell em que foi criada e é passada para todos os outros
comandos ou programas iniciados pelo shell. Uma variável de ambiente pode ser criada diretamente
usando o export comando:

export variavel=valor

Crie e exiba uma variável de ambiente executando os seguintes comandos:

export AGE=25
echo $AGE

sysadmin @ localhost:~$ export AGE=25


sysadmin @ localhost:~$ echo $AGE
sysadmin @ localhost:~$ 25
3.3 Etapa 3
Para exibir o valor da variável, use um caracter cifrão $ seguido do nome da variável como argumento
para o comando echo. Lembre-se de que o comando echo é usado para exibir a saída no terminal.

Abra outro shell e visualize o conteúdo das duas variáveis ​que foram criadas:

bash
echo $ name
echo $ AGE

sysadmin @ localhost:~$ bash

sysadmin @ localhost:~$ echo $name


sysadmin @ localhost:~$ echo $AGE
sysadmin @ localhost:~$ 25

Observe na saída dos comandos acima que a variável $name não existia no novo shell porque as
variáveis ​locais não são passadas para novos processos. No entanto, a variável $AGE existia no novo
shell, pois as variáveis ​de ambiente são passadas para novos processos.
3.4 Etapa 4
O comando set por si só exibirá todas as variáveis ​(local e ambiente). Para exibir variáveis ​no shell
original, saia do shell atual e use o comando set com um pager, junto com o comando less, em um
pipeline de comandos usando o caracter pipe |

saída conjunto de| less


sysadmin @ localhost:~$ exit
sysadmin @ localhost:~$ set | less

IDADE = 25
BASH = / bin / bash
BASHOPTS = tamanho da verificação: cmdhist: complete_fullquote:
expand_aliases: extglob: extquote
: force_fignore: histappend: comentários_interativos: login_shell: progcomp:
promptvars: s
ourcepath
BASH_ALIASES = ()
BASH_ARGARC (=)
BASH_ARGAR
BASH_CMDS = ()
BASH_COMPLETION_VERSINFO = ([0] = "2" [1] = "8")
BASH_LINENO = ()
BASH_SOURCE = ()
BASH_VERSINFO = ([0] = "4" [1] = "4" [2] = "19" [3] = "1" [4] = "release" [5]
= "x86_64-pc-lin
ux-gnu")
BASH_VERSION = 'Versão 4.4.19 (1)'
COLUMNS = 80
DIRSTACK = ()
EDITOR = vi
eUID = 1001
GRUPOS = ()
HISTCONTROL = ignoreboth
HISTFILE = / home / sysadmin / .bash_history
HISTFILESIZE =
2000:

para sair do comando less e retornar ao prompt, pressione Q.


3.5 Etapa 5
O set comandousado na etapa anterior exibe todas as variáveis, locais e do ambiente. Para exibir
apenas variáveis ​de ambiente, execute o env comando:

env

sysadmin @ localhost:~$ env

LS_COLORS = rs = 0: di = 01; 34: ln = 01; 36: mh = 00: pi = 40; 33: so = 01 ;


35: do = 01; 35: bd = 40; 33; 01: cd = 40; 33; 01: or = 40; 31; 01: mi = 00:
su = 37; 41: sg = 30; 43: ca = 30; 41: tw = 30; 42: ow = 34; 42: st = 37; 44:
ex = 01; 32: *. Tar = 01; 31: *. Tgz = 01; 31: *. Arc = 01 ; 31: *. Arj = 01;
31: *. Taz = 01; 31: *. Lha = 01; 31: *. Lz4 = 01; 31: *. Lzh = 01; 31: *.
Lzma = 01; 31 : *. tlz = 01; 31: *. txz = 01; 31: *. tzo = 01; 31: *. t7z =
01; 31: *. zip = 01; 31: *. z = 01; 31: * .Z = 01; 31: *. Dz = 01; 31: *. Gz
= 01; 31: *. Lrz = 01; 31: *. Lz = 01; 31: *. Lzo = 01; 31: *. Xz = 01; 31:
*. Zst = 01; 31: *. Tzst = 01; 31: *. Bz2 = 01; 31: *. Bz = 01; 31: *. Tbz =
01; 31: *. Tbz2 = 01 ; 31: *. Tz = 01; 31: *. Deb = 01; 31: *. Rpm = 01; 31:
*. Jar = 01; 31: *. War = 01; 31: *. Ear = 01; 31 : *. sar = 01; 31: *. rar =
01; 31: *. alz = 01; 31: *. ace = 01; 31: *. zoo = 01; 31: *. cpio = 01; 31:
* .7z = 01; 31: *. Rz = 01; 31: *. Cab = 01; 31: *. Wim = 01; 31: *. Swm =
01; 31: *. Dwm = 01; 31: *. Esd = 01; 31: *. Jpg = 01; 35: *. Jpeg = 01; 35:
*. Mjpg = 01; 35: *. Mjpeg = 01; 35: *. Gif = 01; 35: *. Bmp = 01 ; 35: *.
Pbm = 01; 35: *. Pgm = 01; 35: *. Ppm = 01; 35: *. Tga = 01; 35: *. Xbm = 01;
35: *. Xpm = 01; 35 : *. tif = 01; 35: *. tiff = 01; 35: *. p ng = 01; 35: *.
svg = 01; 35: *. svgz = 01; 35: *. mng = 01; 35: *. pcx = 01; 35: *. mov =
01; 35: *. mpg = 01; 35: *. Mpeg = 01; 35: *. M2v = 01; 35: *. Mkv = 01; 35:
*. Webm = 01; 35: *. Ogm = 01; 35: *. Mp4 = 01; 35: *. M4v = 01; 35: *. Mp4v
= 01; 35: *. Vob = 01; 35: *. Qt = 01; 35: *. Nuv = 01; 35: *. Wmv = 01; 35:
* .asf = 01; 35: *. rm = 01; 35: *. rmvb = 01; 35: *. flc = 01; 35: *. avi =
01; 35: *. fli = 01; 35: *. flv = 01; 35: *. gl = 01; 35: *. dl = 01; 35: *.
xcf = 01; 35: *. xwd = 01; 35: *. yuv = 01; 35: *. cgm = 01; 35: *. Emf = 01;
35: *. Ogv = 01; 35: *. Ogx = 01; 35: *. Aac = 00; 36: *. Au = 00; 36: *.
Flac = 00; 36: *. M4a = 00; 36: *. Mid = 00; 36: *. Midi = 00; 36: *. Mka =
00; 36: *. Mp3 = 00; 36: *. Mpc = 00; 36: * .ogg = 00; 36: *. ra = 00; 36: *.
wav = 00; 36: *. oga = 00; 36: *. opus = 00; 36: *. spx = 00; 36: *. xspf =
00; 36:

LESSCLOSE = / usr / bin / lesspipe% s% s


IDADE = 25
HUSHLOGIN =FALSO
USUÁRIO= sysadmin
PWD = / home / sysadmin
HOME = / home / sysadmin
MAIL = / var / mail / sysadmin
SHELL = / bin / bash
TERM = xterm
SHLVL = 1
LOGNAME = sysadmin
PATH = / home / sysadmin / bin: / usr / local / sbin: / usr / local / bin: /
usr / sbin: / usr / bin: / sbin: / bin : / usr / games: / usr / local / games
LESSOPEN = | / usr / bin / lesspipe% s
_ = / usr / bin / env
sysadmin @ localhost:~$

Nota

Os comandos a seguir também exibirão apenas variáveis ​de ambiente e fornecerão uma saída
semelhante ao env comando:

declare -x
typeset -x
export - p
3.6 Passo 6
Se ele não é mais necessário para uma variável a ser definida, o unset comandopode ser usado para
excluí-lo:

vARIÁVEL unset

Execute os seguintes comandos para resetar essas variáveis e verifique se eles não são mais definidas:

unset nome
unset AGE
echo $ name
echo $ AGE

sysadmin @ localhost:~$ unset nome


sysadmin @ localhost:~$ unset AGE
sysadmin @ localhost:~$ echo $ name
sysadmin @ localhost:~$ echo $ AGE

Importante

Não desmarque as variáveis ​críticas do sistema, como PATH Variável, pois isso pode levar a um ambiente
com defeito.
3.7 Etapa 7
A PATH variávelcontém uma lista de diretórios usados ​para procurar comandos digitados pelo usuário.
Quando o usuário digita um comando e pressiona a Enter tecla, os PATH diretóriossão pesquisados ​em
busca de um arquivo executável que corresponda ao nome do comando.

Exiba o valor da PATH variávelexecutando o seguinte comando:

echo $ PATH

● sysadmin @ localhost:~$ echo $ PATH

/ home / sysadmin / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin : /
usr / bin: / sbin: / bin: / usr / games: / usr / local / games

A tabela a seguir ilustra o objetivo de alguns dos diretórios exibidos na saída do comando anterior:

etório nteúdo do

home/sysadmin / bin diretório para oatual sysadm


uáriocolocar programas.
rmalmente usado por usuários
e criam seus próprios scripts.

usr / local / sbin rmalmente vazio, mas pode te


mandos administrativos que
am compilados a partir de font
ais.

usr / local / bin rmalmente vazio, mas pode te


mandos que foram compilados
tir de fontes locais.
usr / sbin ntém a maioria dos arquivos d
mando administrativo.

usr / bin ntém a maioria dos comandos


poníveis para execução por
uários regulares.

sbin ntém os comandos


ministrativos essenciais.

bin ntém os comandos mais


damentais que são essenciais
a o sistema operacional
cionar.

Nota

Lembre-se de que, quando você executa um comando sem especificar um nome de caminho completo, o
shell usa o valor da PATH variávelpara determinar onde o comando está armazenado.
t 3.8 Etapa 8

Usando o which comando, você pode determinar onde um comando reside no PATH. Execute o seguinte
para determinar onde ls reside o comando:

qual ls

● sysadmin @ localhost:~$ qual ls

/ bin / ls


3.9 Etapa 9

Se o comando não residir em um diretório especificado na variável PATH, nenhuma saída será exibida:

wich zzz

● sysadmin @ localhost:~$ which zzz


● sysadmin @ localhost:~$

Considere isto

Você também pode usar o comando tipo, que indica mais claramente que o comando não está
localizado no CAMINHO:

type zzz

● sysadmin @ localhost:~$ type zzz


● sysadmin @ localhost:~$ -bash: tipo: zzz: não encontrado
3.10 Etapa 10
Lembre-se de que, quando o usuário digitar um comando e pressionar o botão Enter , os PATH
diretóriossão procurados por um arquivo executável que corresponda ao nome do comando. No entanto,
é possível executar comandos que não estão contidos nos diretórios listados na PATH variávelusando as
seguintes opções:

● O comando pode ser executado digitando o caminho absoluto para o comando.


● O comando pode ser executado com um caminho relativo para o comando.
● A PATH variávelpode ser configurada para incluir o diretório em que o comando está localizado.
● O comando pode ser copiado para um diretório listado na PATH variável.

Existem dois tipos de caminhos comumente usados ​ao chamar um comando ou localizar um arquivo no
sistema de arquivos Linux: caminhos absolutos e caminhos relativos.

Um caminho absoluto especifica a localização de um arquivo ou diretório do diretório de nível superior


através de todos os subdiretórios do arquivo ou diretório. Os caminhos absolutos sempre começam com
o / caractereque representa o diretório raiz. Um caminho relativo especifica a localização de um arquivo
ou diretório em relação ao diretório atual.

Nota

Se um comando ou arquivo parece estar ausente, geralmente o motivo é que ele não está localizado nos
diretórios da PATH variávele o usuário está tentando acessá-lo com um caminho relativo. Embora a
especificação de um caminho absoluto deva remediar o problema, ele pode ser complicado,
especialmente quando um arquivo está localizado em várias camadas em uma estrutura de diretório.

Um caminho relativo é usado para arquivos que estão dentro da estrutura de diretórios em que você está
localizado. Por exemplo, os usuários normalmente efetuam login em seus diretórios pessoais, portanto,
mudar para o Documentos diretório(localizado no diretório pessoal do usuário) usando o caminho
relativo é tão simples quanto digitar o seguinte comando:

cd Documents

● sysadmin @ localhost:~$ cd Documents

sysadmin @ localhost:~ / Documents$


Se, no entanto, você estava no / etc diretórioe deseja mudar para o Documents diretório, basta digitar
o O comando abaixo do / etc diretórioretornará um erro, porque o Documents diretórionão está
localizado no / etc diretório:

● cd / etc

cd Documents

● sysadmin @ localhost:~ / Documents$ cd / etc


● sysadmin @ localhost:/ etc$ cd Documents

-bash: cd: Documents: Esse arquivo ou diretório não existe.

Em vez disso, você precisaria usar o caminho absoluto digitando o seguinte comando:

cd / home / sysadmin / Documents

● sysadmin @ localhost:/ etc$ cd / home / sysadmin / Documents

sysadmin @localhost:~ / DocumentosUS $


3.11 Etapa 11
Nesta etapa, você definirá a variável PATH para incluir um diretório onde um comando seria localizado.
Crie um diretório e adicione-o à variável PATH executando os seguintes comandos:

● mkdir mybin

PATH = $PATH:/home/sysadmin/mybin

● sysadmin@localhost:~/Documents$ cd ~
● sysadmin@localhost:~$ mkdir mybin
● sysadmin@localhost:~$ PATH=$PATH:/home/sysadmin/mybin

Verifique se o caminho agora inclui o diretório /sysadmin/mybin/home usando o comando echo

echo $PATH

● sysadmin@localhost:~$ echo $PATH

/ home / sysadmin / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: /
usr / bin: / sbin: / bin: / usr / jogos: / usr / local / jogos: / home / sysadmin /
mybin

Observe na saída acima que o / home / sysadmin / mybin diretórioé anexado à PATH variável:

/ home / sysadmin / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: /
usr / bin: / sbin: / bin: / usr / games: / usr / local / games:/ home / sysadmin /
mybin
3.12 Etapa 12
Nas etapas a seguir, você copiará um comando (programa executável) para um diretório listado em a
PATH variável. Crie um programa shell Bash simples no diretório atual executando os seguintes
comandos:

● echo "echo hello"> hello.sh

chmod a + x hello.sh

● sysadmin @ localhost:~$ echo "echo hello"> hello.sh

sysadmin @ localhost:~$ chmod a + x hello.sh

Nota

O segundo comando no exemplo acima concede ao hello.sh arquivo de scriptpermissões de


execução, o que permite que um arquivo seja executado como um processo.

As permissões serão abordadas com mais detalhes em um capítulo posterior.


3.13 Etapa 13
Execute o seguinte comando para verificar se o hello.sh programafunciona corretamente:

/home/sysadmin/hello.sh

● sysadmin @ localhost:~$ /home/sysadmin/hello.sh

hello
3.14 Etapa 14
Observe que você não pode basta executar hello.sh, você deve incluir o caminho para o comando.
Execute o seguinte para verificar:

hello.sh

● sysadmin @ localhost:~$ hello.sh

hello.sh: comando não encontrado


3.15 Etapa 15
No entanto, se você colocar esse script no / home / sysadmin / mybin diretório, incluído no
diretório PATH Variável, você pode executar o comando sem especificar o caminho completo. Use o mv
comandopara mover o hello.sh arquivopara o / home / sysadmin / mybin diretório, localizado no
PATH e, em seguida, execute o hello.sh arquivosozinho para verificar:

● mv hello.sh / home / sysadmin / mybin

hello .sh

● sysadmin @ localhost:~$ mv hello.sh / home / sysadmin / mybin


● sysadmin @ localhost:~$ hello.sh

hello

Nota

Você também pode verificar isso executando o seguinte comando:

what hello.sh

● sysadmin @ localhost:~$ which hello.sh

/home/sysadmin/mybin/hello.sh
3.16 Etapa 16
Quando um usuário abre um novo shell, durante o logon ou quando executa um terminal que inicia um
shell, o shell é personalizado por arquivos chamados inicialização (ou configuração ) arquivos. Esses
arquivos de inicialização definem o valor das variáveis, criam aliases e funções e executam outros
comandos que são úteis para iniciar o shell.

Cada shell usa arquivos de inicialização diferentes. Além disso, a maioria dos shells executa diferentes
arquivos de inicialização quando o shell é iniciado através do processo de login (chamado shell de login)
versus quando um shell é iniciado por um terminal (chamado shell sem login ou shell interativo).

Quando o Bash é iniciado como um shell interativo, ele executa o ~ / .bashrc arquivo.

Use o less comandopager para visualizar oda sua conta .bashrc arquivoe ver quais personalizações
são definidas por este arquivo:

less .bashrc

sysadmin @ localhost:~$ less .bashrc

● # ~ / .bashrc: executado por bash (1) para não fazer login cartuchos.
● # consulte / usr / share / doc / bash / examples / arquivos de inicialização
(no pacote bash-doc)
● # para exemplos

● # Se não estiver executando interativamente, não faça nada
● caso $ - in
● * i *) ;;
● *) Retorna;;
● esac

● # não coloque linhas duplicadas ou linhas começando com espaço no histórico.
● # Ver bash (1) para mais opções
● HISTCONTROL = ignoreboth

● # anexa ao arquivo de histórico, não o substitui
● shopt -s histappend

● # Para definir o comprimento da história ver HISTSIZE e HISTFILESIZE em bash
(1)

HISTSIZE = 1000

Para sair do less comandoe retornar ao prompt, pressione Q.


3.17 Etapa 17
A adição de caminhos personalizados à PATH variável de ambientefornece aos usuários um meio de
personalizar seu shell. Por exemplo, se você quisesse criar um script de shell customizado que pudesse
ser executado a partir de um diretório diferente daquele onde estava localizado, você poderia adicionar o
caminho modificando a PATH variável de ambiente. O grep comandopode ser usado para ver
especificamente as alterações feitas à PATH variávelno .bashrc: arquivo

PATH grep .bashrc

● sysadmin @localhost:~$ grep PATH .bashrc

PATH= "$ HOME / bin: $PATH"

Note

o grep O comando fornece a capacidade de filtrar o texto e exibirá apenas as linhas que contêm o
argumento passado para o comando, neste caso, PATH.

O grep comandoserá abordado em mais detalhes posteriormente no curso.


3.18 Etapa 18
Se você deseja adicionar mais à PATH variável, você pode editar o .bashrc arquivodiretamente com um
editor de texto (como vi, nanoou outros abordados em um capítulo posterior) ou executar os seguintes
comandos:

● echo ' PATH = $ PATH: / home / sysadmin / mybin '>> .bashrc

tail .bashrc

● sysadmin @ localhost:~$ echo' PATH = $ PATH: / home / sysadmin / mybin '>>


.bashrc
● sysadmin @ localhost:~$ tail .bashrc
● # adicionar bin do usuário ao caminho
● PATH = "$ HOME / bin: $ PATH"

● # set editor e envs visuais para vim
● EDITOR = vi
● VISUAL = vi

● # mude para dir dir home
● ~

PATH = $ PATH: / home / sysadmin / mybin

No exemplo acima, os >> caracteressão usados ​para redirecionar a saída do echo comandoe anexá-la
na parte inferior do .bashrc arquivo. O tail comandoexibe as últimas dez linhas do .bashrc
arquivopara que você possa verificar se o arquivo foi editado com êxito.

Nota O

redirecionamento e oda cauda comandoserão abordados com mais detalhes posteriormente no curso.
3.19 Etapa 19
O ~ / .bash_history arquivotambém pode ser considerado um arquivo de inicialização, uma vez que
o Bash também lê esse arquivo ao iniciar. Por padrão, esse arquivo contém um histórico dos comandos
que um usuário executou no shell Bash.

O histórico de comandos permitirá que o usuário use a tecla de setacima ↑ parapara visualizar os
comandos anteriores. A cada pressão da seta para cima, o shell exibe mais um comando na lista de
histórico.

Se o usuário voltar muito longe, a tecla de seta ↓ pode ser usada para retornar a um comando mais
recente. Depois que o comando correto é exibido, a Enter teclapode ser pressionada para executá-lo.

As teclas de seta esquerda ← e direita → também podem ser usadas para posicionar o cursor dentro
do comando. As Backspace e Delete teclassão usadas para remover texto e caracteres adicionais
podem ser digitados na linha de comando para modificá-lo antes de pressionar a Enter teclapara
executá-lo. As etapas a seguir demonstrarão como usar o histórico de comandos.

Execute o seguinte comando, o que resultará em uma mensagem de erro:

cp / etc / host.

● sysadmin @ localhost:~$ cp / etc / host.

cp: não é possível stat '/ etc / host': Esse arquivo ou diretório
3.20 Etapa 20
O nome do arquivo deve ser hostsnão existe, não host. Para corrigir isso, pressione a seta para cima
↑ uma vez, use as teclas de seta esquerda ← para ir para o espaço após o host, digite um se
pressione a Enter tecla: tecla de

● seta para cima tecla de


● seta para
● esquerda tecla de seta para esquerda
● s

Enter Chave

sysadmin @ localhost:~$ cp / etc / hosts.


3.21 Etapa 21
Execute o history comandopara visualizar os comandos executados anteriormente:

history

● sysadmin @ localhost:~$ history


● 1 bash
● 2 name = "bob"
● 3 echo $ name
● 4 export AGE = 25
● 5 echo $ AGE
● 6 bash
● 7 set
● 8 bash
● 9 env
● 10 nome não definido
● 11 não definido IDADE
● 12 eco $ nome
● 13 eco $ IDADE
● 14 eco $ PATH
● 15 que ls
● 16 qual zzz
● 17 tipo zzz
● 18 mkdir mybin
● 19 PATH = $ PATH: / home / sysadmin / mybin
● 20 eco "eco olá"> olá .sh
● 21 chmod a + x hello.sh
● 22 /home/sysadmin/hello.sh
● 23 hello.sh
● 24 mv hello.sh / home / sysadmin / mybin
● 25 hello.sh
● 26 que hello.sh
● 27 mais .bashrc
● 28 grep PATH .bashrc
● 29 echo 'PATH = $ PATH: / home / sysadmin / mybin' >> .bashrc
● 30 cauda .bashrc
● 31 cp / etc / host.
● 32 cp / etc / hosts.

33 history
3.22 Etapa 22
O ! ponto de exclamação é um caractere especial para o shell Bash para indicar a execução de um
comando na lista de histórico. Existem muitas maneiras de usar o ! caractere de exclamação para
reexecutar comandos; por exemplo, a execução de dois caracteres de exclamação repetirá o comando
anterior.

Execute o history comandonovamente executando o atalho do histórico de comandos !!:

!!

● sysadmin @ localhost:~$ !!
● 1 bash
● 2 name = "bob"
● 3 echo $ name
● 4 export AGE = 25
● 5 echo $ AGE
● 6 bash
● 7 set
● 8 bash
● 9 env
● 10 nome
● não configurado 11 unset AGE
● 12 eco $ nome
● 13 eco $ AGE
● 14 eco $ PATH
● 15 que ls
● 16 qual zzz
● 17 tipo zzz
● 18 mkdir mybin
● 19 PATH = $ PATH: / home / sysadmin / mybin
● 20 eco "eco olá"> hello.sh
● 21 chmod a + x hello.sh
● 22 /home/sysadmin/hello.sh
● 23 olá .sh
● 24 m hello.sh / home / sysadmin / mybin
● 25 hello.sh
● 26 que hello.sh
● 27 mais .bashrc
● 28 grep PATH .bashrc
● 29 echo 'PATH = $ PATH: / home / sysadmin / mybin' >> .bashrc
● 30 tail .bashrc
● 31 cp / etc / host.
● 32 cp / etc / hosts.

33 history
3.23 Etapa 23
Execute oanterior tail comando, digitando uma exclamação ! caractere seguido pelo número antes do
tail comandona lista de histórico. Por exemplo, dada a saída anterior, você executaria o seguinte:

O número no histórico de comandos em nosso ambiente virtual pode ser diferente do exemplo.

! 15

sysadmin @ localhost:~$ ! 15
which ls
/ bin / ls
3.24 Etapa 24

Execute os seguintes comandos para que o recurso history ignore comandos duplicados:

● HISTCONTROL = ignoredups
● ls
● ls

history |cauda

● sysadmin@localhost:~$ HISTCONTROL = ignoredups


● sysadmin @localhost:~$ ls
● desktop Descarga Pictures Modelos anfitriões
● Documentos Música Pública vídeos mybin
● sysadmin @ localhost:~$ ls
● Desktop Downloads Imagens Modelos hosts
● Documentos Música Vídeos públicos Mybin
● sysadmin @ localhost:~$ history | cauda
● 37 história
● 38 festança
● 39 env
● 40 história
● 41 eco $ IDADE
● 42 história
● 43 que ls
● 44 HISTCONTROL = ignoredups
● 45 ls

46 história | tail

Observe que apenas um dos ls comandosfoi gravado. A história | Atail linha de comandoobtém a
saída do history comandoe exibe apenas as últimas dez linhas dessa saída.
3.25 Etapa 25
Para impedir que o recurso de histórico grave comandos que começam com um caractere de espaço,
execute os seguintes comandos. (Observe que o comando cal usado no exemplo abaixo tem um espaço
à sua frente.):

● HISTCONTROL = ignorespace
● date
● cal

history |cauda

● sysadmin da@ localhost:~$ HISTCONTROL = ignorespace


● sysadmin @ localhost:~$ date
● Ter 9 de abril às 15:26:35 UTC 2019
● sysadmin @ localhost:~$ cal
● abril de 2019
● Su Mo Tu We Th Fr Sa
● 1 2 3 4 5 6
● 7 8 10 11 12 13
● 14 15 16 17 18 19 20
● 21 22 23 24 25 26 27
● 28 29 30

● sysadmin @ localhost:~$ history |cauda
● história da40
● 41 eco $ idade
● 42 história
● 43 que é
● 44 HISTCONTROL = ignororedups
● 45
● história 46 | cauda
● 47 HISTCONTROL = ignorespace
● 48 data
49 história | cauda

3,26 Passo 26
Para apagar a lista de histórico, use a -c opçãocom o história: comando

história -c

● sysadmin @localhost:~$ história -c


● sysadmin @localhost:~$ história

1 história

Você também pode gostar