AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-164309

Enlico's questions

Martin Hope
Enlico
Asked: 2025-02-11 02:14:58 +0800 CST

Como um ouvinte socat sabe que o processo conectado a ele foi MORTO?

  • 9

Até onde eu entendo, uma vez que uma conexão TCP é estabelecida, não há fluxo real de dados, a menos que uma das duas pontas realmente envie uma mensagem, ambas são bloqueadas em uma chamada para receber uma mensagem. Como em, não é como se uma das pontas estivesse enviando mensagens periódicas para a outra dizendo "só para você saber, eu ainda estou vivo".

Se for esse o caso, então eu esperaria que se qualquer uma das extremidades do canal de comunicação fosse desligada abruptamentekill -KILL it (por exemplo , mas também apenas desconectasse o cabo de alimentação de toda a máquina), a outra extremidade não saberia.

Indo para um exemplo concreto, posso estabelecer uma conexão entre dois terminais via socat:

  • ouça de um terminal e anote o PID
    $ socat -d4 TCP-LISTEN:12345 -
    $ # ctrl-z
    $ jobs -l
    [1]+ 958602 Stopped                 socat -d4 TCP-LISTEN:12345 -
    $ fg
    
  • conecte-se do outro terminal e anote esse PID também
    $ socat -d4 TCP-CONNECT:localhost:12345 -
    $ # ctrl-z
    $ jobs -l
    [1]+ 958730 Stopped                 socat -d4 TCP-CONNECT:localhost:12345 -
    $ fg
    

(Ambos socatos comandos produzem uma quantidade considerável de saída por causa das -d4mensagens de depuração.)

Agora, se eu abrir um terceiro terminal, finalizo o problema

$ kill -KILL 958730

Vejo Killedsendo impresso no segundo terminal, sem mais linhas de depuração do socatque aquelas que foram impressas antes, mas no primeiro terminal vejo mais saída:

2025/02/10 18:04:42 socat[958602] D select -> (, 0x0, 0x0, 0x0, NULL/0.000000), 1
2025/02/10 18:04:42 socat[958602] D read(122, 0x61dbb1b48000, 8192)
2025/02/10 18:04:42 socat[958602] D read -> 0
2025/02/10 18:04:42 socat[958602] N socket 1 (fd 122) is at EOF
2025/02/10 18:04:42 socat[958602] D data loop: sock1->eof=3, sock2->eof=0, closing=1, wasaction=1, total_to={0.1000000}
2025/02/10 18:04:42 socat[958602] D select(1, &0x1, &0x0, &0x0, &0.500000)
2025/02/10 18:04:43 socat[958602] D select -> (, 0x0, 0x0, 0x0, &0.000000), 0
2025/02/10 18:04:43 socat[958602] I poll timed out (no data within 0.500000 seconds)
2025/02/10 18:04:43 socat[958602] I shutdown(122, 2)
2025/02/10 18:04:43 socat[958602] D shutdown()  -> 0
2025/02/10 18:04:43 socat[958602] D tcsetattr(0, 0, {00006506,00000005,000000bf,00008a3b, 15,15, 03,1c,7f,15,04,00,01,00,11,13,1a,00,12,0f,17,16,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00})
2025/02/10 18:04:43 socat[958602] D tcsetattr() -> 0
2025/02/10 18:04:43 socat[958602] D tcsetattr(1, 0, {00006506,00000005,000000bf,00008a3b, 15,15, 03,1c,7f,15,04,00,01,00,11,13,1a,00,12,0f,17,16,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00})
2025/02/10 18:04:43 socat[958602] D tcsetattr() -> 0
2025/02/10 18:04:43 socat[958602] N exiting with status 0
2025/02/10 18:04:43 socat[958602] D exit(0)
2025/02/10 18:04:43 socat[958602] D starting xioexit()
2025/02/10 18:04:43 socat[958602] D finished xioexit()

Mas eu não entendo, se SIGKILLnão pode ser capturado/manipulado no código do usuário porque é manipulado diretamente pelo kernel , então 958730não deve haver chance de fazer algo como enviar uma mensagem dizendo "desculpe, estou morrendo" e, portanto, 958602nunca deve saber sobre isso.

Onde está a falha no meu raciocínio?

linux
  • 1 respostas
  • 609 Views
Martin Hope
Enlico
Asked: 2025-02-03 15:28:23 +0800 CST

Por que conectar-se a uma VPN cria um novo login do meu usuário local?

  • 6

Quando trabalho em casa, conecto minha máquina Linux a uma VPN por meio deste comando:

$ sudo openconnect --protocol=anyconnect -u usernameatwork --authgroup=MFA foo.bar.baz.work

o que exigirá que eu

  1. insira a senha do meu usuário local, simplesmente porque estou executando sudo,
  2. inserir a senha do meu usuário na VPN do trabalho,
  3. confirme com outro dispositivo por causa do MFA.

Acabei de perceber que

  • antes do passo 1, whona minha máquina local me diz que sou o único conectado no meu computador:
    myself   tty1         2025-01-14 17:47
    
  • logo após o passo 1, whona minha máquina local me informa que acabei de efetuar login novamente:
    myself   tty1         2025-01-14 17:47
    myself   pts/2        2025-02-03 07:17
    

Qual é o significado da segunda linha da saída?

Quer dizer, eu me conectei a uma VPN. Por que isso significa que eu me loguei novamente no meu próprio sistema?

arch-linux
  • 1 respostas
  • 21 Views
Martin Hope
Enlico
Asked: 2025-02-01 22:27:08 +0800 CST

Estou entendendo corretamente a implicação de saber o ID de usuário de um arquivo na acessibilidade desse arquivo em outros sistemas de arquivos?

  • 5

Em Classic Shell Scripting da O'Reilly , Arnold Robbins e Nelson HF Beebe escrevem o seguinte:

Se um sistema de arquivos com usuário smithanexado ao ID de usuário 100 fosse montado ou importado para um sistema de arquivos com ID de usuário 100 atribuído ao usuário jones, então jonesteria acesso total aos smitharquivos de . Isso seria verdade mesmo se outro usuário chamado smithexistisse no sistema de destino.

e sinceramente não tenho certeza se realmente entendo as implicações disso.

Isso significa que se eu tiver um pendrive, eu mounto tenho e cpnele coloco um arquivo que myselfcriei no meu sistema, então esse pendrive pode ser umountacessado mountem outro sistema com um nome de usuário myself(talvez criado ad-hoc para esse propósito), e então esse usuário terá o mesmo acesso que eu tinha no meu sistema para esse arquivo?


Agora que escrevi isso, começo a pensar que não há nada de estranho nisso, no sentido de que o arquivo não foi criptografado nem nada, e myself cpcolocar um arquivo em um pendrive significa que estou tentando compartilhá-lo, então não há nada de errado/inseguro em ele se tornar legível em outro lugar.

Estou esquecendo de alguma coisa?

linux
  • 3 respostas
  • 38 Views
Martin Hope
Enlico
Asked: 2025-02-01 21:15:57 +0800 CST

Quais são as regras que determinam as permissões de arquivo de b depois que eu executo cp /path/to/a /p/t/b, dependendo das permissões de arquivo de /path/to/a e de todos os diretórios?

  • 8

Em Classic Shell Scripting da O'Reilly , Arnold Robbins e Nelson HF Beebe escrevem o seguinte exemplo:

$ umask
023
$ rm -f foo
$ cp /bin/pwd foo
$ ls -l /bin/pwd foo
-rwxr-xr-x   1 root    root     10428 2001-07-23 10:23 /bin/pwd
-rwxr-xr--   1 jones   devel    10428 2002-09-21 16:37 foo

A sequência de permissões resultante rwxr-xr--reflete a perda de privilégios: o grupo perdeu o acesso de gravação e outros perderam o acesso de gravação e execução.

Agora, a 023saída no início me diz que no shell atual, os arquivos recém-criados teriam wo acesso removido para ge wxremovido para o, então, embora eu entenda que "outro perdeu o acesso de execução", não recebo "grupo perdeu o acesso de gravação" nem "outro perdeu o acesso de gravação", pois nenhum deles tinha isso em primeiro lugar.

Você acha que é apenas uma imprecisão na formulação desse comentário ou estou esquecendo de algo?

Além disso, tentei isso no meu sistema e o resultado me deixou um pouco mais intrigado:

$ umask 
0023
$ cp /bin/pwd ~/foo
$ ls -l /bin/pwd ~/foo 
-rwxr-xr-x 1 root   root   35072 Jan 18 19:17 /bin/pwd*
-rw-r--r-- 1 myself myself 35072 Feb  1 12:54 /home/myself/foo

Agora, a saída de 0023deveria significar a remoção de wfor ge wxfor o(dos quais apenas xfor oestava realmente presente, então é o único removido neste caso), mas, em vez disso, parece que a xpermissão também foi removida para ue g.

Por que é que?

Onde posso encontrar todas as regras que determinam o que acontece, em termos de permissões, quando crio e quando copio um arquivo?

linux
  • 1 respostas
  • 40 Views
Martin Hope
Enlico
Asked: 2025-01-18 21:05:11 +0800 CST

Não é possível configurar o encaminhamento de porta

  • 5

Esta manhã tentei configurar o encaminhamento de porta em uma máquina que tenho em outra rede, para permitir acesso SSH.

A página de configuração relevante exige que estes campos (traduzindo do italiano, aqui está a captura de tela original ) sejam preenchidos:

Name: _________
Protocol: __________
Remote host IP address: ___.___.___.___ ~ ___.___.___.___
Host LAN: ___________
WAN port: ____ ~ ____
LAN host port: ____

Agora, até onde eu entendo,

  • Namenão é importante e posso colocar o que eu quiser nele,
  • Protocoldeveria serTCP
  • Host LANdeve ser o IP que o dispositivo ao qual desejo conectar (uma estação de trabalho conectada ao roteador via Ethernet) foi atribuído
  • WAN porté a porta que desejo expor para o exterior, por exemplo 9022,
  • LAN host porté 22, para SSH
  • Remote host IP addressé o que me deixa um pouco intrigado, inicialmente pensei que poderia fazer 192.168.1.1 ~ 192.168.1.255, o que deveria incluir o roteador.

Com base em https://canyouseeme.org/ , as configurações acima estão erradas, pois o site não consegue me ver em 9022.


Também vi esse tópico em um fórum italiano que sugere que ___.___.___.___ ~ ___.___.___.___deve ser preenchido com o endereço do roteador, o que para mim significa 192.168.1.1 ~ 192.168.1.1. O OP não respondeu perguntando mais, então presumo que as configurações funcionaram para eles.

linux
  • 1 respostas
  • 23 Views
Martin Hope
Enlico
Asked: 2025-01-04 03:53:05 +0800 CST

"Arquivo muito grande" ao copiar arquivo de 8 GB para dispositivo Apple de 30 GB (pen drive USB sem rótulo)

  • 5

Tenho este arquivo no disco:

$ ls -lh /path/to/some.mkv
-rwxr-xr-x 1 enrico enrico 7.4G Dec 17 18:54 /path/to/some.mkv

então é menos de 8 gigabytes, mas quando tento copiá-lo para um pen drive de 30 GiB, recebo este erro:

cp: error writing '/path/to/some.mkv': File too large

Aqui está o caminho:

$ sudo fdisk -l | tail -n 16

Disk /dev/sdc: 29.3 GiB, 31457280000 bytes, 61440000 sectors
Disk model: USB DISK        
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6f20736b

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sdc1        778135908 1919645538 1141509631 544.3G 72 unknown
/dev/sdc2        168689522 2104717761 1936028240 923.2G 65 Novell Netware 386
/dev/sdc3       1869881465 3805909656 1936028192 923.2G 79 unknown
/dev/sdc4       2885681152 2885736650      55499  27.1M  d unknown

Partition table entries are not in disk order.
$ sudo mount /dev/sdc /mnt/foo
$ cd /mnt/foo
$ df . -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc         30G   16K   30G   1% /mnt/foo
filesystems
  • 2 respostas
  • 89 Views
Martin Hope
Enlico
Asked: 2024-04-12 14:25:21 +0800 CST

Como executar um comando em todos os arquivos cujos nomes correspondem a um padrão e cujo conteúdo corresponde a um padrão?

  • 6

Digamos que eu queira executar cmdem todos *.cppos *.hpparquivos que contenham a palavra FOO.

No que diz respeito a encontrar esses arquivos, eu sei que posso fazer,

find /path/to/dir -name '*.[hc]pp' -exec grep -l 'FOO' {} +

mas qual é a maneira correta de estender o processamento para que eu possa executar, digamos, cmdem cada um desses arquivos?

Eu sei que poderia -exec bash -c '...'escrever a lógica "se o conteúdo do arquivo contém FOO, então execute cmdno arquivo" no arquivo ..., mas isso parece um canhão para atirar em uma mosca.

linux
  • 2 respostas
  • 27 Views
Martin Hope
Enlico
Asked: 2024-01-26 03:17:13 +0800 CST

Como funcionam as notificações no Linux?

  • 7

Eu uso o ArchLinux, mas isso deve ser irrelevante, além de ser o motivo pelo qual frequentemente me refiro às suas páginas wiki .

Acho que não tenho uma compreensão muito clara de como as notificações funcionam e quais são os "jogadores" interagindo para que as notificações funcionem:

  • quantos jogadores estão envolvidos?
  • O que é um servidor de notificação e para que serve ?
  • O que é um cliente de notificação e o que ele faz ?
  • O que é isso notify-sendque posso usar para fazer uma notificação aparecer? É o (bem, um ) cliente?
  • O que é um daemon de notificação ?
  • E qual é o papel de libnotify?

Na tentativa de entender isso e configurar notificações em meu sistema, consultei esta página wiki.¹

Eu tentei notification-daemonprimeiro. Isso não funciona apenas após a instalação. Para que uma chamada notify-sendseja bem-sucedida, é necessário iniciá-la (significa executá-la /usr/lib/notification-daemon-1.0/notification-daemon) manualmente, iniciá-la automaticamente de alguma forma ou criar um arquivo /usr/share/dbus-1/services/org.freedesktop.Notifications.servicecom este conteúdo

[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/notification-daemon-1.0/notification-daemon

Aí eu tentei dunst, mas isso, assim que instalado, simplesmente funciona, no sentido de que notify-sendsimplesmente funciona. Acho que isso ocorre fundamentalmente porque ele se inicia na primeira chamada para notify-send(o que significa que inicialmente tive a impressão de que funcionava também depois de desinstalá-lo; isso porque o dunstprocesso estava em execução), mas como faz isso?

E esses dois notification-daemonestão dunstna seção Servidores de notificação > Standalone , mas também são chamados de "daemons de notificação"; isso significa que o daemon de notificação e o servidor de notificação são sinônimos? Se não, onde está a diferença?

E da perspectiva do usuário (eu), a diferença entre os dois é estética? Quero dizer, quando um está em execução e o outro em execução, vejo que a notificação parece diferente. Aliás, aí vem a pergunta “o que eles estão servindo?”, porque me parece que eles estão apenas esperando que alguma outra ferramenta lhes envie notificações, para que possam mostrá-las de uma forma simpática. Ou ambos estão fazendo as duas coisas? Em ambos os casos, de onde vêm originalmente as notificações? Como eles chegam às caixas de notificação?

De qualquer forma, e se eu quiser fazer coisas personalizadas com as notificações? Digamos que eu queira obter todos eles e ter meu próprio script de shell que, digamos, apenas os anexe em um arquivo ~/notifications. Isso significaria que estou escrevendo meu próprio servidor de notificação? Ou cliente? Ou o que?

Estou perguntando é que quero experimentar a ideia de poder mostrar notificações na xmobarbarra de status (que uso com o gerenciador de janelas XMonad), então estou tentando entender todos os detalhes.

Eu também dei uma olhada no statnotque parece muito magro e sem frescuras, mas com referência ao parágrafo anterior, parece que usar statnotainda significaria que eu ainda teria que escrever uma configuração que, por meio da função update_text, chamasse alguma API que xmobar ou xmonad expõe. Dessa forma eu não teria controle sobre, digamos, quantas notificações desejo mostrar por vez.

Estou ficando um pouco perdido :/

Tentar entender as implicações desta minha questão a partir da especificação de notificações da área de trabalho não teve sucesso: D


(¹) Mas eu tinha um "bug" pré-existente no meu arquivo ~/.xinitrc, então tive que resolvê-lo primeiro .

linux
  • 2 respostas
  • 137 Views
Martin Hope
Enlico
Asked: 2023-11-03 14:55:15 +0800 CST

Desfazendo o efeito de adicionar um repositório destinado ao Ubuntu e atualizar no Debian

  • 5

dr.

Como faço para corrigir esse erro no Debian

E: The repository 'https://deb.nodesource.com/node_current.x nodistro Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

se o erro foi executar isso

sudo add-apt-repository ppa:agornostal/ulauncher -y && sudo apt update

que foi planejado para o Ubuntu?

História completa

Eu queria instalar o ulauncher em uma máquina Debian 11, então procurei a instrução Ubuntu (Debian) na página vinculada e executei o comando

sudo add-apt-repository universe -y && sudo add-apt-repository ppa:agornostal/ulauncher -y && sudo apt update && sudo apt install ulauncher

que falhou, porque era para Install via PPA (Ubuntu) , que eu não tinha lido, pois o Ubuntu (Debian) acima me fez pensar que as instruções eram comuns (normalmente sou um usuário do ArchLinux, então não sou que costumava instalar coisas no Ubuntu ou Debian).

O erro foi simplesmente

Error: 'universe' invalid

então tentei executar

sudo add-apt-repository ppa:agornostal/ulauncher -y && sudo apt update && sudo apt install ulauncher

que falhou com

E: The repository 'http://ppa.launchpad.net/agornostal/ulauncher/ubuntu noble Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'https://deb.nodesource.com/node_current.x nodistro Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Foi aí que li as instruções com mais atenção, descobrindo que no Debian eu deveria ter executado esses comandos

sudo apt update && sudo apt install -y gnupg
gpg --keyserver keyserver.ubuntu.com --recv 0xfaf1020699503176
gpg --export 0xfaf1020699503176 | sudo tee /usr/share/keyrings/ulauncher-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/ulauncher-archive-keyring.gpg] \
          http://ppa.launchpad.net/agornostal/ulauncher/ubuntu jammy main" \
          | sudo tee /etc/apt/sources.list.d/ulauncher-jammy.list
sudo apt update && sudo apt install ulauncher

então tentei isso, mas o erro ainda era o mesmo acima, então entendi que precisava de alguma forma desfazer minha primeira tentativa destinada ao Ubuntu. Eu tentei isso:

sudo add-apt-repository -r ppa:agornostal/ulauncher

então o primeiro comando das instruções específicas do Debian

sudo apt update && sudo apt install -y gnupg

ainda erros, mas um pouco menos:

E: The repository 'https://deb.nodesource.com/node_current.x nodistro Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Como faço para corrigir isso?

debian
  • 1 respostas
  • 41 Views
Martin Hope
Enlico
Asked: 2022-09-26 06:45:55 +0800 CST

O ssh dá acesso ao console virtual, a um emulador de terminal ou o quê? [duplicado]

  • 1
Essa pergunta já tem respostas aqui :
Qual é a diferença exata entre um 'terminal', um 'shell', um 'tty' e um 'console'? (10 respostas)
Fechado há 23 dias .

Até onde eu entendi, um emulador de terminal é um programa baseado em GUI que me dá uma janela de visualização semelhante a um terminal e me permite interagir com ele como faria com um terminal, exceto que ele tem todo o suporte de o sistema X, então suspeito que ssh user@ipisso não me dará acesso a um emulador de terminal rodando na máquina remota. Se eu quiser usar isso, preciso me conectar a essa máquina via VNC e abrir uma janela de emulador de terminal nessa área de trabalho.

Mas eu tenho acesso a um console virtual (um que, fisicamente na máquina remota eu obteria via Ctrl++ , por exemplo) Alt? Eu posso , o que me dá acesso à área de transferência, que vem com o X, então parece que também não estou em um console virtual ...F2ssh -X ...


Em relação à duplicata proposta, como minha pergunta é especificamente sobre SSH, as informações que posso coletar são as seguintes:

  • Ssh (que conecta um terminal em uma máquina com programas em outra máquina)

    da resposta aceita ,

  • pseudoterminais usam “dispositivos” PTY para organizar a comunicação entre aplicativos de console e o programa de criação de terminal que é executado no espaço do usuário . Exemplos são emuladores de terminal baseados em X e sshd, que aloca um pseudotty para cada sessão de login.

    de outra resposta ,

  • Pode haver algum aplicativo que "emule" o terminal aceitando pressionamentos de tecla do usuário e enviando-os para algum lugar (xterm e ssh são bons exemplos). Existe uma API no Kernel chamada pseudo terminal para isso. Portanto, seu tty pode realmente estar conectado a algum aplicativo em vez de um terminal real. O Xterm usa o X11 para exibir texto e o ssh usa a conexão de rede para isso.

    de mais uma resposta ;

então a resposta à minha pergunta parece ser "ele dá acesso a um pseudo terminal".

ssh x11
  • 1 respostas
  • 37 Views
Martin Hope
Enlico
Asked: 2022-04-02 00:03:43 +0800 CST

Por que o prompt é mostrado na parte superior do terminal, e não na parte inferior?

  • 1

Por que estou perguntando isso?

Como você pode imaginar, é principalmente por curiosidade. Mas por que a curiosidade surgiu em minha mente?

Bem, houve um momento em que notei que não estava feliz porque depois de correr clearpara limpar a tela do terminal, tive que mover meus olhos da parte inferior da tela, onde o prompt acabou após os comandos sereral e seus saídas, para o topo da tela.

Foi quando eu inseri isso no meu ~/.bashrc:

__prompt_to_bottom_line() {
  tput cup $LINES
}
alias clear='clear && __prompt_to_bottom_line'

Para mim, ter o prompt na parte inferior após a execução clearsignifica que o prompt está sempre na parte inferior, nunca na parte superior. Todo o resto está normal.

E os outros?

Acho que não sou o único a sentir essa necessidade. Veja esta pergunta , por exemplo: o usuário queria que o prompt estivesse sempre no topo e a saída abaixo dele, mas na ordem inversa (mas uma saída de um comando, mesmo que multilinha, não é invertida, claramente).

Se você pensar bem, o que esse usuário espera ver na tela é exatamente o tacque eu espero (exceto que, novamente, as saídas de várias linhas não são invertidas).

Então minha pergunta é

por que o terminal foi projetado com esse comportamento não uniforme? Por não uniforme quero dizer que ele começa em uma situação que nunca será repetida a menos que um clears, e isso mudará comando após comando, com o prompt viajando para baixo na tela, eventualmente com o prompt terminando em uma posição "estável" em na parte inferior da tela, de onde não se moverá mais, a menos que um clears.

A linha sempre na parte superior/inferior com saídas empurradas para baixo/para cima não seria um design mais amigável aos olhos?

shell prompt
  • 1 respostas
  • 168 Views
Martin Hope
Enlico
Asked: 2022-03-12 09:06:45 +0800 CST

Existe uma maneira de alterar rapidamente o diretório para um de onde um dos trabalhos está sendo executado?

  • 2

A saída de jobsse parece com isso

[1]   Stopped                 TERM=xterm-256color vim --servername vim ~/.gitconfig
[2]-  Stopped                 TERM=xterm-256color vim --servername vim ~/.vimrc  (wd: ~)
[3]+  Stopped                 TERM=xterm-256color vim --servername vim i3blocks.conf  (wd: ~/.config/i3/configs)

onde a parte, se presente, mostra o dir de onde o trabalho correspondente foi iniciado.(wd: path)path

Várias vezes eu quero mover para esse diretório para um dos trabalhos.

Existe um utilitário para fazer isso?

bash cd-command
  • 2 respostas
  • 30 Views
Martin Hope
Enlico
Asked: 2022-01-22 05:55:38 +0800 CST

Existe uma maneira de fazer encontrar a opção de shell extglob do shell?

  • 4

Resumindo, eu instintivamente escrevi um comando como este para encontrar os dois arquivos prefix.exte prefix_suffix.extdescer uma hierarquia

find /some/path -type f -name 'prefix?(_suffix).zip'

mas não funciona.

Como man find, under -name patterse refere ao padrão como um "padrão de shell", eu estava vagando se alguém tem controle sobre qual padrão deve ser usado e, especificamente, se a extglobopção pode ser usada.

bash shell
  • 3 respostas
  • 457 Views
Martin Hope
Enlico
Asked: 2018-11-03 06:05:06 +0800 CST

Proteja os arquivos *.desktop editados pelo usuário contra atualizações

  • 0

Eu gosto de editar /usr/share/applications/*.desktoparquivos (felizmente, apenas alguns deles) para atender às minhas necessidades. Quando o aplicativo relativo é atualizado, porém, as edições que fiz se perdem. Como devo enfrentar esse inconveniente?

Uma possibilidade é manter uma versão separada dos *.desktoparquivos, então a questão é onde devo colocar minhas versões editadas para que elas tenham precedência sobre as versões originais em/usr/share/applications/ ?

Como uma pergunta secundária: É claro que devo verificar, de tempos em tempos, se alguma alteração importante foi feita no arquivo original e pegar essas alterações manualmente, se necessário. Qual é uma abordagem possível a este respeito?

upgrade .desktop
  • 1 respostas
  • 50 Views
Martin Hope
Enlico
Asked: 2018-07-18 08:42:47 +0800 CST

Bash como funciona o skip-completed-text?

  • 7

Versão mais concisa

Com "\t": menu-completeem ~/.inputrccriar esses dois arquivos,

$ touch one.two.txt
$ touch one.four.txt

comece a escrever o seguinte,

$ ls one

acerte Tabe você vai conseguir

$ ls one.four.txt

Agora mova o cursor para um pouco antes fourde , delete four, write only te então pressione Tabnovamente. Você terá

$ ls one.two.txt.txt

Existe uma maneira de evitar a duplicação .txtneste fluxo de trabalho?

Pergunta original

Eu uso menu-completea função bash para percorrer a conclusão quando pressiono Tabe estou feliz com isso. Mas o seguinte aconteceu muitas vezes comigo.

Suponha que eu esteja procurando o arquivo longparthardtoremember.with.QQQQQQQ.extensionem um diretório que contém os arquivos

longparthardtoremember.with.AAAAAAA.nice.long.extension
longparthardtoremember.with.BBBBBBB.very.nice.long.extension
...

Se eu Tabcompletar , $ longo primeiro nome de arquivo será inserido. Nesse ponto, gostaria de passar para o meio do nome do arquivo, excluir a AAAAAAAparte, digitar Be Tabconcluir novamente. Se eu fizer isso, toda a parte posterior BBBBBBBtambém será inserida, levando a uma duplicação dela, o que obviamente não quero.

Com vio modo de edição, sou bastante rápido em lidar com isso (eu mudo rapidamente para a parte repetida e a excluo), mas ainda é irritante.

Por puro acaso, encontrei a skip-completed-textopção bash na página man do bash. Não é isso que eu preciso? Eu configurei on, mas não consigo ver nenhuma diferença no comportamento da conclusão no meio do trabalho Tab. Eu entendi mal a página de manual?

bash autocomplete
  • 2 respostas
  • 355 Views
Martin Hope
Enlico
Asked: 2018-07-02 22:14:26 +0800 CST

Aplicativo padrão usado para "abrir pasta" no menu pop-up

  • 3

Quando entro, por exemplo, xdg-mime query filetype Video/movie.mkv, a saída é video/x-matroska; se eu entrar xdg-mime query default video/x-matroska, a saída será mplayer.desktop, e esse é realmente o aplicativo usado quando eu entrar xdg-open Video/movie.mkv. O mesmo vale para outros tipos de arquivo para os quais defini aplicativos padrão específicos.

Por outro lado, nada acontece quando clico em "Abrir pasta do Dropbox" no menu pop-up do ícone da bandeja do Dropbox, ou quando clico com o botão direito do mouse e "Abrir pasta" em um arquivo na lista de arquivos baixados do Transmission; então, eu esperaria que nenhum aplicativo estivesse associado a diretórios.

Com isso em mente, o que tentei até agora é run xdg-mime query filetype Video, que retorna inode/directorye, por sua vez, run xdg-mime query default inode/directory, que retorna ranger.desktop, meu gerenciador de arquivos. Isso soa bem o que eu esperaria se tudo funcionasse, mas esse não é o caso.

Por que nada acontece quando clico em "abrir pasta" e similia nos menus pop-up?

arch-linux directory
  • 1 respostas
  • 1337 Views
Martin Hope
Enlico
Asked: 2018-06-15 10:24:15 +0800 CST

i3 - um punhado odioso de tamanhos de fonte para minha área de trabalho

  • 3

Desde que instalei o i3 no Arch Linux, notei um tamanho de fonte muito grande (no que foi a primeira coisa que vi, o i3bar na parte inferior), então alterei o tamanho da fonte no .config/i3/configarquivo (agora a linha lê font pango:DejaVuSansMono Nerd Font Mono 5.

Logo percebi que o tamanho das barras de menu do aplicativo era muito grande, então editei com Lxappearance (agora a fonte padrão é DejaVuSansMono Nerd Font Bookcom size 4) e a GUI do próprio Lxappearance parece perfeita.

Mas o resto ainda não, como você pode ver na captura de tela: a fonte é muito grande, eu diria enorme, na Openjanela flutuante, enquanto na janela da direita ela é minúscula, se não invisível Audacity; finalmente parece normal na TikZiTjanela da esquerda.

Além disso (não sei como tirar uma foto disso, mas tenho certeza que não acrescentaria nada a esta pergunta), se eu clicar com o botão direito do mouse no ícone do Dropbox, vejo uma fonte enorme no pop branco -up menu (a mesma fonte que vejo ao passar o cursor sobre esse ícone); quando faço o mesmo com o Skype (não na imagem), a fonte que vejo é a minúscula no menu pop-up Arc-dark.

Eu sou novo nesse mundo do tipo faça-você-mesmo do zero no qual o ArchLinux e o i3 vivem. E eu prefiro não desistir depois de uma semana ou duas.

insira a descrição da imagem aqui

EDIÇÃO 1

Aqui outra foto onde Bas fontes estão bem legais (digo bem, já que nem sei de onde elas vêm), enquanto Aas fontes são muito pequenas. Que não são definidos por qt5ct.

insira a descrição da imagem aqui

EDIÇÃO 2

Começo a pensar que talvez não seja um conflito entre GTK e Qt: como você pode ver na captura de tela a seguir, defini temas semelhantes, mas definitivamente não idênticos com qt5ct(esquerda) e lxappearance(direita), mas pavucontrol(centro), que usa GTK , apresentam aquela fonte minúscula ilegível.

insira a descrição da imagem aqui

[![digite a descrição da imagem aqui][4]][4]

gui fonts
  • 1 respostas
  • 2874 Views
Martin Hope
Enlico
Asked: 2018-06-14 07:47:08 +0800 CST

serviço dropbox falha ou é bem sucedido dependendo do tempo gasto na tela de login

  • 0

Acho que tenho feito mais de uma dúzia de reinicializações do sistema nos últimos minutos para verificar esse comportamento estranho. Parece que o serviço de dropbox tem sucesso ou falha na execução na inicialização, dependendo de quanto tempo eu gasto na tela de login onde digito a senha. Eu não fiz nenhuma cronometragem, então não sei quanto tempo é exatamente, mas não é mais do que meia dúzia de segundos.

Quando eu insiro a senha rapidamente, o Dropbox é iniciado, na verdade eu verifico o seguinte,

$ systemctl status dropbox@enrico.service
● dropbox@enrico.service - Dropbox
   Loaded: loaded (/usr/lib/systemd/system/dropbox@.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/dropbox@enrico.service.d
           └─override.conf
   Active: active (running) since Wed 2018-06-13 17:07:04 CEST; 6min ago
 Main PID: 1006 (dropbox)
    Tasks: 84 (limit: 19660)
   Memory: 148.0M
   CGroup: /system.slice/system-dropbox.slice/dropbox@enrico.service
           ├─1006 /usr/bin/dropbox
           ├─1052 dbus-launch --autolaunch 9f3c6fabb4aa40d1b7d5b3a3881af003 --binary-syntax --close-stderr
           ├─1053 /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7 --session
           └─1057 /usr/bin/dunst

Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtWebKitWidgets.so'
Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtWidgets.so'
Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtPrintSupport.so'
Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtDBus.so'
Jun 13 17:07:05 greywarden dbus-daemon[1053]: [session uid=1000 pid=1051] Activating service name='org.freedesktop.Notifications' requested by ':1.0' (uid=1000 pid=1006 comm="/usr/bin/dropbox ")
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: 'allow_markup' is deprecated, please use 'markup' instead.
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: The frame section is deprecated, width has been renamed to frame_width and moved to the global section.
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: The frame section is deprecated, color has been renamed to frame_color and moved to the global section.
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: Unknown keyboard shortcut: mod4+grave
Jun 13 17:07:05 greywarden dbus-daemon[1053]: [session uid=1000 pid=1051] Successfully activated service 'org.freedesktop.Notifications'

Por outro lado, quando estou muito lento para digitar a senha ( por exemplo , digitar, retroceder, redigitar, ...) ou simplesmente não estou olhando para a tela enquanto estou lendo um livro, a saída é

$ systemctl status dropbox@enrico.service
● dropbox@enrico.service - Dropbox
   Loaded: loaded (/usr/lib/systemd/system/dropbox@.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/dropbox@enrico.service.d
           └─override.conf
   Active: failed (Result: exit-code) since Wed 2018-06-13 17:15:03 CEST; 39s ago
  Process: 1031 ExecStart=/usr/bin/dropbox (code=exited, status=250)
 Main PID: 1031 (code=exited, status=250)

e o dropbox realmente não está em execução (sem ícone na bandeja).

Estou executando o i3 no gerenciador de login do ArchLinux e LightDM. Eu segui as seções Prevent automatic updates e Autostart na página wiki , mas não é improvável que eu tenha feito confusão entre Autostart na inicialização com systemd e Autostart no login com systemd e essa pode ser a raiz do problema.

arch-linux systemd
  • 1 respostas
  • 127 Views
Martin Hope
Enlico
Asked: 2018-06-06 12:42:11 +0800 CST

o teclado trava após abrir o programa, o mouse continua funcionando

  • 3

Não sou tão novo no Linux em geral, mas sou novo no Arch. Instalei duas vezes (a primeira vez em um HDD, apenas para tentar enquanto espero que o SSD me seja entregue, a segunda vez, alguns dias depois, no SSD), com i3 e outros programas para ter um ambiente de desktop utilizável. A propósito, minhas escolhas foram baseadas na correspondência entre meu gosto (viciado em Vim) e leituras puras das páginas oficiais da wiki do Arch.

No momento há uma coisa que está me incomodando tremendamente: quando abro o Spotify (instalado a partir do AUR, através de aurman -S) ou Qutebrowser (oficial, através de sudo pacman -S) e, possivelmente, outros aplicativos, seja do terminal urxvtou através do rofi, experimento um completo "congelamento " do teclado que dura até cinquenta segundos (!), enquanto o mouse ainda interage perfeitamente com o ambiente. Por exemplo, eu posso fazer essa coisa engraçada:

  1. Abra o Spotify, então
  2. Continue fazendo qualquer coisa no teclado com a mão esquerda, por exemplo ,
    • continue pressionando 1e 2alternadamente e freneticamente com um dedo enquanto pressiona $mod, que é Altno meu caso, com o polegar,
    • ou pressione aleatoriamente as teclas de letras enquanto estiver em uma caixa de texto no navegador ou no terminal inocente
    • ou, apenas para esclarecer o que tentei, pressionando meu gato bravo no teclado inteiro
  3. Enquanto isso , use a mão direita para mover com sucesso de uma área de trabalho para outra com o mouse (usando os ícones numerados na parte inferior esquerda da tela) e interaja com qualquer coisa interativa com o mouse (próxima música, aumente o volume, alterar a saída de áudio em pavucontrol, ...). Obviamente, se eu mudar para um espaço de trabalho com um programa em tela cheia, ficaria preso nesse espaço de trabalho até que aqueles longos cinquenta (mais ou menos) segundos passassem.
  4. O teclado começa a funcionar novamente e é como eu nunca pressionei essas teclas ( por exemplo , se eu estava pressionando letras enquanto estava no terminal, essas letras "passadas" não aparecem).

O teclado é um Logitech K270 sem fio (com o mouse sem fio M185 da mesma caixa) com um receptor USB, mas sinceramente não sei quais outros detalhes eu poderia fornecer, então me pergunte. (Eu realmente não acho que o sistema de arquivos possa desempenhar algum papel no assunto, mas, se eu estiver errado, é btrfs.)

Minha placa-mãe é uma X399 Aorus Gaming 7, e tem

  • 1 x porta USB 3.1 Gen 1 branca (no manual do usuário, enquanto está rotulado como USB 3.0 BIOS no escudo de E/S, já que é a porta Q-Flash destinada a piscar o BIOS)
  • 5 x portas USB 3.1 Gen 1 azuis (no manual do usuário, enquanto estão rotuladas como USB 3.0 no escudo de E/S)
  • 2 x portas USB 3.1 Gen 1 amarelas (no manual do usuário, enquanto está rotulado como USB 3.0 DAC-UP no escudo de E/S)
  • 1 x porta USB 3.1 Gen 2 tipo A vermelha (no manual do usuário, enquanto está rotulada como USB 3.1 no escudo de E/S)

As 9 portas estão dispostas em pares como em (letras = cores)

YY
WB
BB
BB
 R
arch-linux keyboard
  • 1 respostas
  • 310 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve