Eu executo este comando:
ip link add dev proof_of_concept_virtual_network_interface type veth
e recebo esta mensagem de erro:
Error: Attribute failed policy validation.
O erro não é descritivo nem útil.
Eu executo este comando:
ip link add dev proof_of_concept_virtual_network_interface type veth
e recebo esta mensagem de erro:
Error: Attribute failed policy validation.
O erro não é descritivo nem útil.
Eu tenho linha
* {@jira: PIVOT-9968} Provide a way to pass an `IMemoryCollector` to `IInternalMemoryMonitored#getMemoryStatistics(memoryCollector)` in order to prevent the count of duplicated blocks.
Eu queria escapar apenas do primeiro que contém o número do tíquete(?). Escreva um script para adicionar barra invertida para meu problema anterior
* /{@jira: PIVOT-9968/} Provide a way to pass an `IMemoryCollector` to `IInternalMemoryMonitored#getMemoryStatistics(memoryCollector)` in order to prevent the count of duplicated blocks.
tentei
mawk '/^\* {@jira: PIVOT/ { gsub(/[{} ]/,"\\\\&") } 1' changelog.md > tmp && mv tmp changelog.md
e consegui
*\ \{@jira:\ PIVOT-8019\}\ Pivot:\ Added\ `MaxAppendOnlyFunction`\ and\ \ `MinAppendOnlyFunction`\ aggregation\ functions\ that\ do\ not\ support\ disaggregation\ but\ can\ be\ used\ within\ an\ aggregate\ provider.
o que devo mudar? gsub?
O único arquivo no meu diretório de trabalho atual é chamado test.txt
e seu conteúdo é simplesmente:
This is a little test file.
grep -in * -e 'te.?t file'
não dá nenhuma partida .?
funciona:
grep -in * -e 'te.\?t file'
dá partidaLouco: Com a estrela *
, as coisas são ao contrário!
grep -in * -e 'te.*t file'
dá partida*
não funciona:
grep -in * -e 'te.\*t file'
nenhuma partidaPor que os metacaracteres ?
e são *
tratados de forma diferente em relação ao escape?
Desde a atualização para o Debian 12 (bookworm), o more
comando parece ter sido alterado e agora para quando você chega ao final do arquivo que está visualizando e exibe " (END) ", em vez de apenas retornar à linha de comando (ou solicitar que você passe para o próximo arquivo, se estiver tentando visualizar vários arquivos), como acontecia antes.
Parece que agora preciso pressionar q
para realmente sair more
para retornar à linha de comando - mas isso me impediria de visualizar o(s) próximo(s) arquivo(s) que eu nomeei (no caso de vários arquivos) e, nesse caso, eu precisaria usar explicitamente o atalho de teclado "Ir para o próximo arquivo", que não é tão útil assim.
Como alguém com muitos anos de memória muscular de <space>
ser o atalho universal do Faça a Coisa Certa, essa mudança é realmente muito irritante!
Existe uma maneira de more
reverter o comportamento anterior de forma mais sensata ou talvez agora seja o momento, infelizmente, de tentar usar um programa de paginação de arquivos diferente?
e eu consigo logar com sucesso no sftp, mas depois do logar, a pasta padrão é "/", e não consigo criar pasta em "/". O que eu quero é que quando o usuário logar no sftp, a pasta padrão seja o diretório home do usuário, como "/home/sftp_user" e consiga criar pasta em "/home/sftp_user"
o /etc/ssh/sshd_config é o seguinte:
Subsystem sftp internal-sftp
Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
o direito de acesso no diretório /home é o seguinte:
drwxr-xr-x 4 root root 4096 Nov 19 17:59 .
drwxr-xr-x 20 root root 4096 Oct 30 2023 ..
drwxr-x--- 35 abc abc 4096 Nov 20 18:28 abc
drwxrwxrwx 8 sftp_user sftp 4096 Nov 20 18:32 sftp_user
Se eu alterar ChrootDirectory /home para %h, então quando efetuar login sftp [email protected]
ele retorna "client_loop: send disconnect: Broken pipe". Eu pesquisei no Google e disse que o ChrootDirectory deve ser de propriedade do root e não pode ser escrito por outros. Mas se ele não pode ser escrito por outros, como posso criar um diretório no ChrootDirectory?
no tutorial https://www.cybrosys.com/blog/how-to-setup-sftp-server-on-ubuntu-20-04 ,
o subsistema é
Subsystem sftp /usr/lib/openssh/sftp-server
mas vejo muitos outros tutoriais, o subsistema é
Subsystem sftp internal-sftp
o que devo usar?
A RequiresMountsFor=
opção em um arquivo de unidades systemd requer que a montagem para os caminhos especificados esteja no lugar antes que a unidade seja iniciada.
Até onde eu sei, argumentos podem ser um ponto de montagem, bem como qualquer diretório abaixo desse ponto de montagem. Por exemplo, se os arquivos de zona para BIND estiverem em /etc/bind
e /etc
estiverem em seu próprio sistema de arquivos, RequiresMountsFor=/etc
ou RequiresMountsFor=/etc/bind
atingirão o resultado desejado: BIND não iniciará até que /etc
tenha sido montado e, portanto, /etc/bind
esteja disponível.
Agora estou imaginando o que aconteceria se RequiresMountsFor=
eu especificasse um caminho inexistente. Por exemplo, if fstab
tem entradas para /
and /etc
mas nada abaixo de /etc
, and RequiresMountsFor=/etc/this/path/does/not/exist
refere-se a um caminho que não existe em /etc
.
Isso faria com que a unidade esperasse para /etc
ser montada (já que é o último ponto de montagem no caminho)? Se sim, a unidade iniciaria assim que /etc
fosse montada ou falharia porque /etc/this/path/does/not/exist
não foi encontrada?
Isso pode se tornar relevante onde as unidades aceitam parâmetros, como [email protected]
, que tem RequiresMountsFor=/etc/postgresql/%I /var/lib/postgresql/%I
. Se os arquivos de dados de um cluster forem movidos para longe, o segundo caminho não apontará para lugar nenhum se a unidade for invocada naquele cluster.
Se eu tiver um utilitário de linha de comando foo
instalado por algum programa e ele não for adicionado ao $PATH
, e eu quiser ter uma maneira fácil de usá-lo, parece que há três opções:
crie um link simbólico, geralmente em /usr/local/bin
ou talvez $HOME/bin
:
ln -s /path/to/foo /usr/local/bin/foo
em vez de criar um link simbólico, crie um executável:
echo 'path/to/foo' > /usr/local/bin/foo
chmod a+rx /usr/local/bin/foo
ou edite .zshrc
e defina um alias:
alias foo='/path/to/foo'
Minhas perguntas:
O que eu fiz até agora. Ativar o driver relevante e desabilitar o suporte a Braille - o que parece ser frequentemente a raiz do problema. Reiniciar.
sudo modprobe cp210x
sudo apt remove brltty
Confirmando que tudo está no lugar:
sudo lsmod | grep cp210x
cp210x 36864 0
usbserial 49152 1 cp210x
Conectando o dispositivo. Ele é encontrado:
dmesg
[ 130.776659] usbcore: registered new interface driver usbserial_generic
[ 130.776672] usbserial: USB Serial support registered for generic
[ 130.779299] usbcore: registered new interface driver cp210x
[ 130.779324] usbserial: USB Serial support registered for cp210x
[ 153.870560] usb 1-1.2: USB disconnect, device number 6
[ 169.708562] usb 1-1.2: new full-speed USB device number 7 using ehci-pci
[ 169.819779] usb 1-1.2: New USB device found, idVendor=18ef, idProduct=e026, bcdDevice= 1.00
[ 169.819785] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 169.819788] usb 1-1.2: Product: EWD 100
[ 169.819790] usb 1-1.2: Manufacturer: Silicon Labs
[ 169.819792] usb 1-1.2: SerialNumber: N0VNELCPLVW9SQVJ
lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]
Bus 001 Device 004: ID 147e:2020 Upek TouchChip Fingerprint Coprocessor (WBF advanced mode)
Bus 001 Device 007: ID 18ef:e026
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse (M-BT58)
Bus 003 Device 002: ID 1ab1:0c94 Rigol Technologies
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb -d 18ef:e026 -v
Bus 001 Device 005: ID 18ef:e026
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x18ef
idProduct 0xe026
bcdDevice 1.00
iManufacturer 1 Silicon Labs
iProduct 2 EWD 100
iSerial 3 N0VNELCPLVW9SQVJ
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 2 EWD 100
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
Entretanto, nada foi encontrado em ls -al /dev | grep -i ttyUSB
.
Alguma ideia do que mais verificar? Eu agradeceria muito!
Eu já postei adicionar caractere de escape com bash . Preciso de um script para isso para cada linha em um arquivo que começa com {@codeBlock
então
{@codeBlock: TEstBigquerry.buildPicks}
deveria parecer
\{@codeBlock:\ TEstBigquerry.buildPicks\}
Meu roteiro
#!/bin/bash
file=clfields.mdx
while read -r line; do
if [[ "${line::11}" == '{@codeBlock' ]]; then
printf '%q\n' "$line"
else
echo "$line"
fi
done < clfields.mdx
A saída do terminal está ok, mas o arquivo continua o mesmo. Por quê?