exporta remoto
filescrn filegroup import /file:G:\allgroups.xml /remote:Targetserver
goto ipv4.addresses
set ipv4.gateway 192.168.1.1
set ipv4.addresses 192.168.1.10/25
set ipv4.dns 192.168.1.100
save
quit
print
$ env | more
Variável | Descrição |
---|---|
IFS | Entender o funcionamento desta variável é muito importante, mas como é um tema extenso, este artigo ficaria muito longo no caso de entrar em muitos detalhes, Mas a grosso modo podemos dizer que diversos comandos (entre eles o read , set , ...) aceitam seus argumentos separados pelos caracteres definidos nesta variável, cujos defaults são espaço, <TAB> e <ENTER> . |
CDPATH | Contém os caminhos que serão pesquisados para tentar localizar um diretório especificado. Apesar desta variável ser pouco conhecida, seu uso deve ser incentivado por poupar muito trabalho, principalmente em instalações com estrutura de diretórios com muitos níveis. |
PIPESTATUS | É uma variável do tipo vetor (array) que contém uma lista de valores de código de retorno do último pipeline executado, isto é, um vetor que abriga cada um dos $? de cada instrução do último pipeline. |
PROMPT_COMMAND | Se esta variável receber uma instrução, toda vez que você der um <ENTER> direto no prompt principal ($PS1 ), este comando será executado. É útil quando se está repetindo muito uma determinada instrução. |
REPLY | Quando fazemos uma leitura com o comando read e não associamos nenhuma variável para receber a entrada, esses dados serão guardados nessa variável. Normalmente a usamos para leituras sem interesse futuro. |
$ read a b c <<< "1 2 3"
$ echo $a - $b - $c
1 - 2 - 3
$IFS
, pudemos ler seu conteúdo para diversas variáveis em um só read
. Vou fazer o mesmo com <ENTER>
que também é default.$ Var=$(echo -e "1\n2\n3") $ echo "$Var" 1 2 3 $ read a b c <<< $Var $ echo $a - $b - $c 1 - 2 - 3
$ IFS=-^ read a b c <<< 1^2-3
$ IFS=-:^ read a b c <<< 1^2-3
$ echo $a - $b - $c
1 - 2 - 3
IFS
:IFS
e o comando read
não existe nada, sequer ponto e vírgula. Isso significa que ele foi alterado somente durante a execução do read
. Só para te mostrar que isso pode ocorrer com outras duplas de comando+variável, veja a dupla date+LANG
:$ echo $LANG # Idioma inicial pt_BR.UTF-8 $ date Dom Ago 18 14:56:52 -03 2019 $ LANG=C date # Alterei o idioma só para o date Sun Aug 18 14:57:29 -03 2019 $ echo $LANG # Idioma final é o mesmo pt_BR.UTF-8
IFS
, ele o transformará num espaço em branco. Veja:$ Var=$(grep root /etc/passwd) $ echo $Var root:x:0:0:root:bla-bla-bla:/root:/bin/bash $ IFS=: $ echo $Var root x 0 root bla-bla-bla /root /bin/bash $ echo "$Var" root:x:0:0:root:bla-bla-bla:/ root:/bin/bash
$Var
da interpretação do Shell, os dois pontos (que era o IFS
da vez) sumiram.$Var
entre aspas para proteger seu conteúdo da interpretação do Shell, os dois pontos voltaram a aparecer.IFS
, é recomendável que você o restitua ao seu valor default após usá-lo para evitar erros difíceis de serem localizados.$PATH
contém os caminhos nos quais o Shell procurará os arquivos, a $CDPATH
possui os caminhos a serem seguidos para se fazer um cd
.$ cd bin bash: cd: bin: Arquivo ou diretório não encontrado $ CDPATH=$CDPATH:/usr/local # Adiciona /usr/local nos caminhos $ echo $CDPATH .:..:~:/usr/local $ pwd /home/jneves/LM $ cd bin $ pwd /usr/local/bin
/usr/local
estava na minha variável $CDPATH
, e não existia o diretório bin em nenhum dos seus antecessores (.
, ..
e ~
), o cd
foi executado para /usr/local/bin
.$?
) de cada uma uma das instruções que compoem um pipeline.$ who jneves pts/0 Apr 11 16:26 (10.2.4.144) jneves pts/1 Apr 12 12:04 (10.2.4.144) $ who | grep ^botelho $ echo ${PIPESTATUS[*]} 0 1
botelho
não estava "logado", em seguida executamos um pipeline que procurava por ele. Usa-se a notação [*]
(ou [@]
) em um vetor para listar todos os seus elementos, e desta forma vimos que a primeira instrução (who
) foi bem sucedida (código de retorno 0) e a seguinte (grep
), não foi (código de retorno 1).<CTRL>+r
para pesquisar no arquivo de histórico de comandos uma instrução muito longa ou alguma que já havia esquecido e não encontrei o que queria porque este arquivo é circular, isto é, depois de um determinado número de registros gravados (essa quantidade é definida pela variável $HISTSIZE
) começa a haver superposição.$HISTSIZE
até o limite, mas, mesmo assim, após meses, pesquisava o histórico e a linha de comando que me interessava não estava mais lá.PROMPT_COMMAND
e veja só o que inseri no ~/.bashrc
:PROMPT_COMMAND='echo "$(history 1)" >> history4ever'
history 1
lista a última linha executada, e como a função de $PROMPT_COMMAND
é executar o seu conteúdo antes de devolver o prompt, todo comando executado é gravado no arquivo history4ever
e, quando preciso de um comando, basta pesquisá-lo usando todas as facilidades que o grep provê.~/.bashrc
a seguinte linha:$ PROMPT_COMMAND="echo -n \[$(date +%d/%m-%H:%M)\] "
$PS1
na minha máquina seja um cifrão ($
), a cada vez que eu der um <ENTER>
, ele me devolverá um prompt com a data e a hora, seguido pelo cifrão ($
). Assim:$ PROMPT_COMMAND="echo -n \[$(date +%d/%m-%H:%M)\]"
[12/09-02:56]$
$PROMPT_COMMAND
em ação é fazendo, por exemplo:$ PROMPT_COMMAND=ls
$ unset PROMPT_COMMAND
$ PROMPT_COMMAND='(( $? )) && {
tput bold
echo instrução errada
tput sgr0
}'
$ ./nãoexiste
bash: ./nãoexiste: Arquivo ou diretório não encontrado
instrução errada
instrução errada
será dada em ênfase e logo após será restaurado o modo normal do terminal (sem negrito).read -n1 -p "Deseja sair? "; [[ ${REPLY^} == S ]] && exit
$REPLY
dentro de uma Expansão de Parâmetros que passa seu conteúdo para caixa alta.Get-NetConnectionProfileSee the network name you want to change its type and run the following command:
Set-NetConnectionProfile -Name “NETWORKNAME” -NetworkCategory PrivateWhere NETWORKNAME is the name of your network and you can change the -NetworkCategory switch value to Public or Private.
telnet <desktop.IP.Address> 445If this connects then the firewall is either disabled or configured to pass the RPC traffic through to your desktop.
root@linux:~# telnet 192.168.0.65 445
Trying 192.168.0.65…
Connected to 192.168.0.65.
Escape character is ’^]’.
Shutdown of remote machine failedTo solve this temporarily you could simply disable the UAC but this is certainly not a great position to leave your desktop. I am satisfied with the workaround provided below but you may think differently.
result was: WERR_CALL_NOT_IMPLEMENTED
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
could not initialise pipe \winreg. Error was NT_STATUS_OBJECT_NAME_NOT_FOUNDTry running services.msc, scroll down to ‘Remote Registry and make sure it is set to automatic and started (running) then try again.
net rpc shutdown -I WIN.IP.ADDR -U USER%PASSWORDAll going well the Windows PC should advise the user they are being signed out and then shutdown.