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 / unix / 问题

All perguntas(unix)

Martin Hope
user447274
Asked: 2025-04-06 10:25:39 +0800 CST

Como posso escolher itens aleatórios de uma lista, alguns com mais frequência do que outros, em um arquivo de configuração do Bash?

  • -2

No Linux, usando Bash, tenho dois scripts:

  1. script.shé o roteiro principal, e
  2. script_config.shé a configuração para script.sh.

Em script.sh, eu source script_config.shcarrego todas as configurações de lá.

Em script_config.sh, eu faço coisas como:

TEMPDIR=/mnt/sda1/temp

Não sei se essa é a melhor maneira, mas para mim está tudo bem, tenho a configuração em um arquivo separado e posso carregá-la no script principal.

Em uma versão antiga do script.sh, eu costumava shufler um arquivo ( cipher_to_use.txt) para obter uma entrada aleatória sobre qual cifra usar com cryptsetup.

Em cipher_to_use.txt, há apenas 6 cifras diferentes listadas, mas algumas linhas aparecem até 10 vezes, então shufas escolhi com mais frequência, mas ainda aleatoriamente. Isso funciona bem para mim.

Mas agora, com script_config.sh, estou procurando uma maneira de continuar essa abordagem,
mas não quero escrever as 6 cifras mais de uma vez em script_config.sh.

Como posso usar cifras diferentes com shuf, mas fazer com que algumas apareçam com mais frequência do que outras, enquanto listo cada cifra apenas uma vez em script_config.sh?

:editar

Obrigado nbanana pelas suas ideias, mas há alguma maneira de fazer algo um pouco diferente do seu jeito?

se eu escrever aqui script_config.sh:

(chk = cifra tem chave)

chk1_name_="--cipher aes-cbc-essiv:sha256      --hash sha512  --key-size 256"
chk1_weigt="15"

chk2_name_="--cipher serpent-cbc-essiv:sha256  --hash sha512  --key-size 256"
chk2_weigt="1"

chk3_name_="--cipher twofish-cbc-essiv:sha256  --hash sha512  --key-size 256"
chk3_weigt="1"

chk4_name_="--cipher aes-xts-plain64           --hash sha512  --key-size 512"
chk4_weigt="4"

chk5_name_="--cipher serpent-xts-plain64       --hash sha512  --key-size 512"
chk5_weigt="1"

chk6_name_="--cipher twofish-xts-plain64       --hash sha512  --key-size 512"
chk6_weigt="1"

o que devo adicionar script.shpara se tornar um ciphers_has_key_listarquivo -

com 15 vezes no chk1, 1 chk2 e assim por diante...?

e se o chk6 não existir mais?

e se houver um chk7 e um chk8?

linux
  • 2 respostas
  • 84 Views
Martin Hope
user729048
Asked: 2025-04-06 04:28:31 +0800 CST

Não é possível iniciar um serviço systemd no Fedora

  • 5

Estou criando um systemdserviço que fará literalmente algo "estúpido", como exibir uma mensagem na tela ao desligar, dizendo algo como "Obrigado por usar este computador. Foi um prazer poder ajudá-lo hoje. Tenha um bom dia."

Se meu script de desligamento fosse realmente executado, ele colocaria a mensagem acima em um arquivo de texto simples, /root/MyScripts/Shutdown/test.txtmas não funciona, apesar de eu ter tentado muitas variações nas últimas seis semanas, quebrando a cabeça constantemente.

Este é meu script de mensagem de teste que deveria ser invocado systemdimediatamente antes do desligamento, mas não consegue.

#ShutdownMesg.sh
#!/bin/bash

echo -e 'Hello, World! \nHave a good day!' >> test.txt

z=0
for i in {1..3}; do
    sleep 1m
    ((z++))
    echo ""
done

chmod u+x ShutdownMesg.sh

Observe que incluí um loop simples para que o sistema insira uma pausa de 3 minutos para garantir que meu arquivo de teste tenha tempo de ser gravado antes que o desligamento real ocorra.

Código para meu systemdserviço:

[Unit]
Description=Create a simple test message at shutdown but will add more useful shutdown commands later
DefaultDependencies=no
Before=poweroff.target

[Service]
Type=forking
RemainAfterExit=yes
ExecStart=/root/MyScripts/Shutdown/ShutdownMesg.sh

[Install]
WantedBy=poweroff.target

Depois de criar o serviço acima, fiz o seguinte:

Coloquei-o em um arquivo de texto simples /usr/lib/systemd/system/myshutdownmesg.servicee o habilitei com systemctl enable myshutdownmesg.servicee então fiz um systemctl daemon-reload, seguido por um systemctl list-unit-files.

Quando este último comando é executado, obtenho uma longa lista de serviços. Meu serviço específico, juntamente com outros, é listado em uma coluna na extremidade esquerda da tela; a segunda coluna mostra que meu serviço está habilitado, mas a terceira coluna mostra que ele está desabilitado.

Ao executar systemctl start myshutdownmesg.service, recebi as seguintes mensagens de erro:

Job for myshutdownmesg.service failed because the control process exited with error code.
See "systemctl status myshutdownmesg.service" and "journalctl -xeu myshutdownmesg.service" for details.

O que há de errado com meu script? Estou esquecendo de algo? Como este é um script para ser executado no momento do desligamento, preciso passar algum parâmetro especial para o kernel ou recompilá-lo? Aliás, desabilitei o SeLinux, mas vou habilitá-lo mais tarde, depois que meu script for executado.

linux
  • 2 respostas
  • 44 Views
Martin Hope
Kapa Pi
Asked: 2025-04-05 22:12:51 +0800 CST

Permissões de usuário em arquivos compartilhados em sistema de inicialização dupla (Windows, Linux): não é possível editar arquivo compartilhado no Linux

  • 8

Estou executando o Windows 10 e o Fedora Linux 40 KDE Plasma no mesmo sistema. Cada SO está instalado em uma unidade física diferente. Também tenho uma unidade SSD adicional montada no sistema, que é montada automaticamente em ambos os SOs, ambos com acesso de leitura e gravação à dita terceira unidade (doravante "unidade compartilhada").

A ideia de usar o sistema dual-boot é usar principalmente o Linux para quase tudo e pular para o Windows sempre que necessário (para coisas como, mas não se limitando a, executar alguns aplicativos GUI exclusivos do Windows).

A unidade compartilhada é uma btrfsunidade de sistema de arquivos. Sua entrada de ponto de montagem /etc/fstabé a seguinte:

UUID=MY_BTRFS_UUID /MY_MOUNTPOINT btrfs nofail,defaults,compress-force=zstd:3,noatime,lazytime,commit=120,space_cache=v2,nofail 0 0

Notei o seguinte comportamento:

Estou trabalhando no Linux em um arquivo específico salvo no meu drive compartilhado usando um aplicativo GUI (eu estava trabalhando em um arquivo .blend usando o Blender). O arquivo foi criado originalmente no meu sistema Linux (portanto atribuído a uma conta de usuário). Quando eu inicializo no Windows, eu posso editar o arquivo criado no Linux muito bem e salvar as alterações no drive compartilhado. Inicializando novamente no Linux, eu posso abrir (ler, eu acho) através do aplicativo GUI, mas -de lá- eu não posso mais salvar (escrever nele). Na verdade, eu apenas tentei recriar o mesmo comportamento usando um arquivo de texto simples. Eu o criei no Windows e de volta no Linux eu não consigo salvar as alterações usando um editor de texto simples (como o Kate).

A partir de uma simples inspeção e do meu conhecimento básico, parece que o problema decorre do fato de que os arquivos criados/sobrescritos no Windows são atribuídos a "nobody:users" (acredito que seja lido como "user:group"). Seja editável no Linux ou não, usar ls -lh em um determinado diretório informa que todos os arquivos compartilham as mesmas permissões, apenas uma combinação diferente de usuário:grupo. Os arquivos editáveis ​​são atribuídos à forma avaliada de $USER:$USER (não me lembro de especificar explicitamente o mesmo nome de usuário e grupo, mas ei, talvez eu tenha feito isso, eu apenas sigo o fluxo durante a configuração). Uma cópia de um arquivo "nobody" (feito por meio de simples copiar e colar na interface GUI do Dolphin) é reatribuída ao usuário Linux atual, tornando o arquivo editável. A tentativa de salvar o arquivo de texto fictício original (criado no Windows) usando Kate solicita uma senha e, quando fornecida, as alterações são de fato gravadas, mas a propriedade permanece a mesma ("nobody"). Como era de se esperar, tentar editar o mesmo arquivo novamente exigirá privilégios de root mais uma vez.

Outra coisa que vale a pena mencionar é que, enquanto alguns aplicativos GUI fornecem a opção de elevar privilégios (como Kate, como mencionei acima), outros aplicativos GUI (como o Blender, no meu caso) não parecem fornecer nenhuma opção para superar isso. O Blender apenas retorna " (caminho) não é gravável ". Eu poderia ter vivido (embora não feliz) com a necessidade de fornecer uma senha sempre que necessário, mas esse não é o caso e preciso encontrar uma solução alternativa. Obviamente, eu preferiria não ter que reatribuir manualmente as propriedades a cada vez.

Agora, sou uma pessoa simples, quero poder fazer login em cada SO e trabalhar em arquivos/diretórios compartilhados perfeitamente. Qual seria a melhor abordagem para lidar com isso? Não acho que eu deva me importar particularmente com o status de propriedade, a menos que, é claro, isso traga coisas das quais eu (muito possivelmente) não tenha conhecimento.

fedora
  • 2 respostas
  • 180 Views
Martin Hope
user447274
Asked: 2025-04-05 05:38:33 +0800 CST

Listar e contar cifras usadas pelo cryptsetup em dispositivos /dev/mapper

  • 5

No meu computador Linux tenho /dev/mapper/muitos arquivos chamados file1, file2, file3.... .

Agora terei uma visão geral dos arquivos sobre qual cifra é usada com que frequência.

Eu tentei isso

for i in /dev/mapper/file* ; do cryptsetup status $i | grep cipher ; done | sort

e se tornar esta saída

  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-cbc-essiv:sha256
  cipher:  aes-xts-plain64
  cipher:  aes-xts-plain64
  cipher:  aes-xts-plain64
  cipher:  serpent-xts-plain64
  cipher:  serpent-xts-plain64

mas estou procurando uma saída como esta:

13x  cipher:  aes-cbc-essiv:sha256
 3x  cipher:  aes-xts-plain64
 2x  cipher:  serpent-xts-plain64

e adicionalmente uma saída como esta:

file1  use cipher aes-xts-plain64
file2  use cipher serpent-xts-plain64
....
file13 use cipher aes-xts-plain64
linux
  • 2 respostas
  • 75 Views
Martin Hope
Att Righ
Asked: 2025-04-05 02:27:23 +0800 CST

Consultar quais arquivos da área de trabalho podem manipular um tipo MIME: Abrir com a partir do terminal?

  • 5

Então, se eu adicionar uma área de trabalho à entrada ~/.local/share/applications/something.desktop, ela aparecerá no menu "Abrir com..." no KDE imediatamente. Eu gostaria de conseguir obter essas mesmas informações da linha de comando.

Existe uma maneira de consultar isso? Eu dei uma olhada em um xdg-mimeque pode mostrar o aplicativo padrão e definir o aplicativo padrão para essa entrada de desktop recém-criada, mas parece incapaz de listar todos eles. Obviamente eu poderia simplesmente codificar algo para analisar todas as entradas de desktop - mas isso parece fora do ponto.

Há algo sobre mimeinfo.cachee mimeapp.listmas isso parece paralelo a esses arquivos - já que abrir com... lista mostra a nova entrada da área de trabalho, mas ela está faltando em ambos os arquivos.

Como faço para mostrar todos os arquivos da área de trabalho que podem manipular um tipo MIME na linha de comando?

mime-types
  • 1 respostas
  • 24 Views
Martin Hope
Alessandro
Asked: 2025-04-05 00:37:12 +0800 CST

Ubuntu Budgie 24.10 - erro do app center "não foi possível criar sessão gx"

  • 5

Abrir a ferramenta App Center e outros aplicativos, como o Desktop Security e o atualizador de firmware, resulta em uma página em branco com a mensagem de erro: "Não foi possível criar sessão GX" no Ubuntu Budgie 24.10. Suspeito que o problema esteja relacionado à GPU Nvidia 3050, ao driver Nvidia mais recente e ao sistema gráfico X11. Soluções alternativas, como fazer o downgrade dos drivers Nvidia ou reinstalar o software problemático, não funcionam. Pesquisei online e parece ser um bug conhecido. Você encontrou alguma solução? Ou atualizar para o recém-lançado Ubuntu 25 é a única opção?

ubuntu
  • 1 respostas
  • 20 Views
Martin Hope
Josh Brunton
Asked: 2025-04-04 22:29:54 +0800 CST

O que Ctrl+L faz "nos bastidores" se não invoca clear?

  • 5

Notei que usar Ctrl+L para limpar meu terminal tem algumas diferenças em relação ao uso do comando clear (do ncurses 6.5.20240427).

Parece que o comando clear apagará todos os caracteres do terminal, colocará o cursor no canto superior esquerdo e então digitará o prompt.

resultado do comando clear

Ctrl+L pode parecer fazer o mesmo, mas as duas linhas superiores do meu prompt (e a linha em branco acima dela) não aparecem.

resultado de Ctrl+L

Curiosamente, se eu digitasse algo depois do prompt, isso seria mantido - e não apenas a linha em que o prompt estava, mas tudo depois dele.

ctrl+L quando o texto foi digitado

Pesquisei man cleare não encontrei opções para replicar esse comportamento. Então, o que exatamente Ctrl+L faz nos bastidores? Ele está invocando um programa ou é um comportamento incorporado à maioria dos emuladores de terminal, com implementação específica para o terminal?

terminal
  • 1 respostas
  • 35 Views
Martin Hope
BsAxUbx5KoQDEpCAqSffwGy554PSah
Asked: 2025-04-04 22:01:07 +0800 CST

Como habilitar o H264 para o Firefox?

  • 6

Percebi que o AlmaLinux 8.10 não possui os pacotes mozilla-openh264e seus pré-requisitos openh264, e que ambos também estão ausentes dos repositórios oficiais. Pelo que sei, preciso de ambos para poder reproduzir vídeos H264 no Firefox, como em https://udemy.com .

Baixei os pacotes dessas URLs:

  1. https://rhel.pkgs.org/8/raven-multimedia-x86_64/openh264-2.4.1-2.el8.x86_64.rpm.html
  2. https://rhel.pkgs.org/8/raven-multimedia-x86_64/mozilla-openh264-2.4.1-2.el8.x86_64.rpm.html

Em seguida, instalei-os com:

sudo rpm -i <file name>.rpm

Também ativei o plugin H264 no about:addons.

Mas ainda assim, about:supportaponta H264 como não suportado.

O que estou perdendo?

firefox
  • 1 respostas
  • 37 Views
Martin Hope
Persimmonium
Asked: 2025-04-04 19:10:21 +0800 CST

é possível invocar o mc com um caminho tar.gz como parâmetro para abrir o mc diretamente dentro do tar.gz?

  • 5

Estou tentando o óbvio:

mc file.tar.gz

mas o tar.gz não abre

alguma ideia?

shell
  • 1 respostas
  • 13 Views
Martin Hope
metablaster
Asked: 2025-04-04 18:30:40 +0800 CST

Interpretando a saída do comando date

  • 5

Este comando produzirá o seguinte:
date --iso-8601=ns

2025-04-04T12:10:16,045431370+02:00

De acordo com man dateo nsestá documentado da seguinte forma:

-I[FMT], --iso-8601[=FMT]
output  date/time  in  ISO  8601  format.   FMT='date'  for  date  only  (the  default),  'hours',  'minutes',  'seconds',
or  'ns'  for  date and time to the indicated precision.

A parte confusa é 'ns' for date and time to the indicated precision
O que exatamente é "precisão indicada"? O que é ns?

Particularmente, quero saber o significado do número 045431370na saída de2025-04-04T12:10:16,045431370+02:00

Como interpretar 045431370números? E o que é nsopção?

a propósito. Imagino +02:00que signifique deslocamento UTC? ou UTC +2?

command-line
  • 1 respostas
  • 18 Views
Prev
Próximo

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