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
Evert
Asked: 2025-02-16 10:17:10 +0800 CST

VT320 sobre ttyUSB0 trava ao encontrar emoji

  • 20

Para o bem ou para o mal, conectei meu VT320 à minha máquina Linux. Estou tentando executar algum software, mas a conexão serial parece acabar em um estado de travamento sempre que alguns emojis são renderizados.

Imagem do VT320 em estado de queda

Não sei se é importante, mas nesse caso foi o emoji 🎲 (morrer). Em vez disso, recebo um ponto de interrogação espelhado e o terminal não renderiza mais nada.

Eu sei que emojis nunca funcionariam. Eu me contentaria com um caractere incorreto ou nenhum, mas eu gostaria de saber se é possível evitar o congelamento da conexão.

Caso seja relevante, é assim que o agetty é configurado no . Optei pelo VT220, pois é o mais próximo do que tenho./lib/systemd/system/[email protected]

ExecStart=-/sbin/agetty -h -L 19200 %I vt220

Saída de stty -a:

speed 19200 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = <undef>;
rprnt = <undef>; werase = <undef>; lnext = <undef>; discard = <undef>;
min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl echoke -flusho -extproc
terminal
  • 2 respostas
  • 1293 Views
Martin Hope
Tortoise Pirate
Asked: 2024-06-22 06:08:47 +0800 CST

Como o UserA pode substituir programaticamente uma string de texto em um arquivo de sua propriedade localizado em/etc?

  • 20

Um usuário Linux não root possui um arquivo de texto localizado em /etc, onde o usuário Linux não root não tem permissão para criar arquivos. O usuário Linux não root pode editar o arquivo manualmente via vi sem problemas. Tentativas programáticas e manuais de substituir uma string de texto dentro do arquivo usando sed -i, perl -ie outros métodos de arquivo temporário no diretório estão falhando devido a problemas de permissão quando o usuário Linux não-root executa o script de substituição de texto. Encontrei uma solução no Perl Cookbook (anotado mais abaixo), mas ela contém avisos preocupantes, além de parecer um pouco além de mim no momento. Alguém pode sugerir uma opção mais simples?

Informações do servidor:

  • cat /etc/os-release: Servidor Oracle Linux 8.9

  • uname -a: Linux server01.domain.com 5.4.17-2136.322.6.4.el8uek.x86_64

  • perl:(v5.26.3) built for x86_64-linux-thread-multi

  • sed:(GNU sed) 4.5

  • estranho:GNU Awk 4.2.1, API: 2.0 (GNU MPFR 3.1.6-p2, GNU MP 6.1.2)

  • vi:VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Aug 5 2022 07:42:15)

  • Localização do arquivo a ser editado:/etc

  • Permissões em /etc:

    drwxr-xr-x  130 root   root        12288 Jun 21 11:50 etc
    
  • Arquivo de texto para editar:/etc/targetfile

    -rw-rw-r-- 1 justauser group1 1864 Jun 19 10:52 targetfile
    
  • O comprimento do arquivo /etc/targetfilepode chegar a 200 linhas com cerca de 50 caracteres cada.

Exemplo/ /etc/targetfileconteúdo abreviado:

f1112:/dir1/dir2/59.35:N            # Comment
f3332:/dir1/dir2/59.35:N            # Comment
f4442:/dir1/dir2/59.35:N            # Comment
f555:/dir1/dir2/59.35:N             # Comment
f666s2:/dir1/dir2/59.35:N           # Comment
f777s2:/dir1/dir2/59.35:N           # Comment

Objetivo: Alterar programaticamente /dir1/dir2/59.35 para /dir1/dir2/59.77 no arquivo de destino localizado em /etc, onde o usuário não root que executa o script é "justauser" que não tem permissão para criar arquivos em /etc.

Restrições:

  • As permissões em /etc não podem ser alteradas.
  • Os programas/utilitários de servidor existentes não podem ser atualizados.
  • Todos os programas/comandos devem ser chamados de dentro de um script shell bash.
  • O script shell bash deve ser executado como "justauser", não como root.
  • Não usar o sudo é fortemente preferido.

Diversos:

Enquanto estiver logado como usuário Linux "justauser", a edição da linha de comando /etc/targetfileusando vi funciona bem. Comandos como sed -ie perl -ifalham, pois "justauser" não possui permissões de gravação em /etc para criar arquivos temporários.

perl -i -p -e 's/f4442:\/dir1\/dir2\/59.35:N/f4442:\/dir1\/dir2\/59.77:N/g' /etc/targetfile 
--Can't remove /etc/targetfile: Permission denied, skipping file.

sed -i 's/f4442:\/dir1\/dir2\/59.35:N/f4442:\/dir1\/dir2\/59.77:N/' /etc/targetfile
--sed:  sed: couldn't open temporary file /etc/sedO2SLSF: Permission denied
Rough Intended Usage Example (static values replacing variables to come):
#!/bin/bash
...

function _editConfig {
echo "Editing targetfile..."
perl -i -p -e 's/f4442:\/dir1\/dir2\/59.35:N/f4442:\/dir1\/dir2\/59.77:N/g' /etc/targetfile
if [ $? -ne 0 ]
        then
                echo "Error on _editConfig function.\n Terminating program"
                EXITCODE=1
fi
}
...

Opções vistas:

Perl Cookbook 7.10 Modificando um arquivo no local sem um arquivo temporário:

open(F, "+< $infile")       or die "can't read $infile: $!";
$out = '';
while (<F>) {
    s/DATE/localtime/eg;
    $out .= $_;
}
seek(F, 0, 0)               or die "can't seek to start of $infile: $!";
print F $out                or die "can't print to $infile: $!";
truncate(F, tell(F))        or die "can't truncate $infile: $!";
close(F)                    or die "can't close $infile: $!";
...
"This approach is for the truly determined. 
It's harder to write, takes more memory (potentially a lot more),
doesn't keep a backup file, 
and may confuse other processes trying 
to read from the file you're updating. 
For most purposes, therefore, we suggest it's probably not worth it."

Comentários finais:

Existe uma opção de edição local que não usa um arquivo temporário no diretório que seja mais simples que o exemplo do Perl Cookbook?

O exemplo do Perl Cookbook é um pouco difícil de seguir para um novato em Perl e também requer algum tipo de modificação/conversão... eu acho... para trabalhar no corpo do script bash.

linux
  • 5 respostas
  • 1392 Views
Martin Hope
Jacob Valdez
Asked: 2022-11-20 14:17:38 +0800 CST

O Linux suporta a chamada de um programa diretamente por meio de seu número de inode?

  • 20

Estou perguntando porque as comparações de string são lentas, mas a indexação é rápida e muitos scripts que escrevo estão no bash, que, pelo que sei, executa uma pesquisa de string completa para cada chamada executável. Todos esses ls'se grep' seriam um pouco mais rápidos sem executar uma pesquisa de string em cada etapa. Claro, isso agora se aprofunda na otimização do compilador.

De qualquer forma, existe uma maneira de invocar diretamente um programa no Linux usando apenas seu número de inode (supondo que você tenha que procurá-lo apenas uma vez para todas as invocações)?

scripting
  • 4 respostas
  • 4262 Views
Martin Hope
Philipp Ludwig
Asked: 2022-06-14 11:51:50 +0800 CST

Restaurar uma partição LUKS que foi substituída por pvcreate

  • 20

Criei acidentalmente um novo volume físico sobre minha partição LUKS; nada mais aconteceu. A partição LUKS contém uma configuração LVM e a partição root (esta configuração foi inicialmente criada pelo instalador debian).

Posso ver que a partição LUKS está praticamente intacta:

00000200: 4c41 4245 4c4f 4e45 0100 0000 0000 0000  LABELONE........
00000210: 0ccb b873 2000 0000 4c56 4d32 2030 3031  ...s ...LVM2 001
00000220: 4b48 5047 5667 6465 477a 7831 306a 6649  KHPGVgdeGzx10jfI
00000230: 7635 4432 4637 6966 446a 7172 3339 4863  v5D2F7ifDjqr39Hc
00000240: 0000 40a2 e800 0000 0000 1000 0000 0000  ..@.............
....
00005000: 7b22 6b65 7973 6c6f 7473 223a 7b22 3022  {"keyslots":{"0"
00005010: 3a7b 2274 7970 6522 3a22 6c75 6b73 3222  :{"type":"luks2"
00005020: 2c22 6b65 795f 7369 7a65 223a 3634 2c22  ,"key_size":64,"
00005030: 6166 223a 7b22 7479 7065 223a 226c 756b  af":{"type":"luk
00005040: 7331 222c 2273 7472 6970 6573 223a 3430  s1","stripes":40
00005050: 3030 2c22 6861 7368 223a 2273 6861 3235  00,"hash":"sha25
00005060: 3622 7d2c 2261 7265 6122 3a7b 2274 7970  6"},"area":{"typ
00005070: 6522 3a22 7261 7722 2c22 6f66 6673 6574  e":"raw","offset
00005080: 223a 2233 3237 3638 222c 2273 697a 6522  ":"32768","size"
00005090: 3a22 3235 3830 3438 222c 2265 6e63 7279  :"258048","encry
000050a0: 7074 696f 6e22 3a22 6165 732d 7874 732d  ption":"aes-xts-
000050b0: 706c 6169 6e36 3422 2c22 6b65 795f 7369  plain64","key_si
000050c0: 7a65 223a 3634 7d2c 226b 6466 223a 7b22  ze":64},"kdf":{"
000050d0: 7479 7065 223a 2261 7267 6f6e 3269 222c  type":"argon2i",

No entanto, a característica "LUKS" está ausente.

Existe alguma maneira de acessar a partição LUKS para recuperar os dados? Eu tentei testdisk, mas sem sucesso.


Atualização, já que não incluí isso originalmente: Aqui está o backup do cabeçalho LUKS @ 0x4000:

00004000: 0000 0000 0000 0002 0000 0000 0000 4000  ..............@.
00004010: 0000 0000 0000 0005 0000 0000 0000 0000  ................
00004020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004040: 0000 0000 0000 0000 7368 6132 3536 0000  ........sha256..
00004050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004060: 0000 0000 0000 0000 735b 6f53 2466 e2bb  ........s[oS$f..
00004070: abcf fb4a d5ea d395 70ab f4e8 1f99 a173  ...J....p......s
00004080: 2303 93a0 7582 eb4a 77fe 28f8 3e01 b246  #...u..Jw.(.>..F
00004090: e9eb cd58 8a7a afd5 4e45 319a c007 906b  ...X.z..NE1....k
000040a0: b22a c393 1918 981c 6636 6333 6461 3534  .*......f6c3da54
000040b0: 2d63 6435 362d 3433 3036 2d38 6330 312d  -cd56-4306-8c01-
000040c0: 3534 3334 3366 6265 6564 3236 0000 0000  54343fbeed26....
000040d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000040e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000040f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004100: 0000 0000 0000 4000 0000 0000 0000 0000  ......@.........
00004110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00004170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
luks lvm
  • 1 respostas
  • 1091 Views
Martin Hope
Kamil Maciorowski
Asked: 2022-06-08 01:26:03 +0800 CST

O que é `/dev/sda0`? É uma coisa padrão?

  • 20

Ao tentar entender essa outra pergunta , encontrei /dev/sda0sendo mencionado.

Tenho alguma experiência em Linux e estou acostumado com esse esquema onde sda, sdb, … são dispositivos e sda1, sda2, … , sdb1, sdb2, … são partições (cada uma dentro do respectivo dispositivo). Neste esquema sda0, sdb0, … não aparecem. Não me lembro de ter visto sda0alguma vez.

Ainda sda0aparece no U&L SE , no Super User e em outros lugares. Onde aparece, quase sempre parece ser a primeira partição, ou seja, a partição que eu esperaria que aparecesse como sda1no esquema que estou acostumado.

Por outro lado, no Debian 10, posso ver major,minornúmeros como 8,1para sda1, 8,2para sda2etc. Assim, se alguém me perguntasse o que sda0poderia ser, eu diria 8,0que já está atribuído a sda. Esse raciocínio tornaria sda0equivalente a sda, todo o dispositivo. Eu acho que esses números são específicos para Linux e eles podem ser diferentes em um sistema operacional não-Linux Unix(-like), então o raciocínio pode não se aplicar lá.

Na Internet encontrei poucas aparições de sda0usado como um dispositivo completo. Os exemplos são bastante obscuros, porém, podem ser devido a erros de digitação ou alguém estar errado.

Enfim, a pergunta é: é/era /dev/sda0uma coisa padrão? Se sim, o que é/foi? (pode/poderia ser um dispositivo inteiro?). Em que circunstâncias é/era uma coisa padrão? (por exemplo, SO específico, algum kernel antigo, driver específico, dentro de uma máquina virtual, alguma configuração obsoleta(?) do udev ou algo assim).

Estou esperando por respostas que me dêem insights suficientes, então, da próxima vez que /dev/sda0eu vir, poderei dizer a mim mesmo: 'Ah, esse cara provavelmente está usando...'; ou talvez: 'Cuidado! Configuração personalizada adiante'.


Nota lateral: também encontrei menções /dev/hda0e um esquema que começa a enumerar de hda1. Eu totalmente não posso dizer se está intimamente relacionado (um paralelo) ao que eu observei /dev/sda*ou apenas uma coincidência.

partition udev
  • 4 respostas
  • 3671 Views
Martin Hope
Savo Vuksan
Asked: 2021-10-24 12:54:32 +0800 CST

A janela do Chrome fica muito grande ao maximizar no linux mint xfce

  • 20

Eu tenho o seguinte problema. Eu sou novo no Linux e fui com o Mint como minha distro. No Windows eu sempre usei o Chrome como meu navegador, porque eu faço muito webdev e gosto de ter o melhor suporte para os recursos do navegador, então também fui para o Google Chrome aqui no Linux. Descobri que quando maximizo a Tela do Chrome que a Janela ultrapassa os limites da tela. Não consegui replicar esse comportamento com nenhum outro aplicativo, portanto, pode ser algum problema com o Chrome.

O Chrome usa GTK2 porque também substitui o estilo do tema instalado?

Eu mudei alguns dotfiles no meu diretório de usuário e mudei o compositor padrão para compton. Lá eu apenas apliquei algumas configurações para obter um efeito de desfoque e janelas transparentes nada muito especial.

Esta é a saída das especificações do meu sistema do neofetch:

  • SO: Linux Mint 20.2 x86_64
  • Anfitrião: 20287 Lenovo IdeaPad Z510
  • Kernel: 5.4.0-89-genérico
  • Tempo de atividade: 10 horas, 50 minutos
  • Pacotes: 2014 (dpkg)
  • Shell: bash 5.0.17
  • Resolução: 1920x1080
  • DE: Xfce
  • WM: Xfwm4
  • Tema WM: Doce-Escuro
  • Tema: Doce-Escuro [GTK2/3]
  • Ícones: ePapirus [GTK2/3]
  • Terminal: xfce4-terminal
  • Fonte do Terminal: Monoespaçado 10
  • CPU: Intel i5-4200M (4) @ 3.100GHz
  • GPU: NVIDIA GeForce GT 740M
  • GPU: Processador Intel Core de 4ª Geração
  • Memória: 1984MiB / 7719MiB

insira a descrição da imagem aqui

Como você pode ver na captura de tela, as decorações da janela e a barra de rolagem estão fora da tela, o que é bastante irritante.

Então, minhas perguntas são se isso pode ser devido a algum bug estranho no lado dos cromos ou talvez devido a alguns erros de configuração do meu lado?

linux-mint xfce
  • 3 respostas
  • 3151 Views
Martin Hope
annahri
Asked: 2020-02-21 02:08:01 +0800 CST

Como é que `... | awk '$1=$1'` remover espaços extras?

  • 20

Do meu entendimento, $1é o primeiro campo. Mas estranhamente, awk '$1=$1'omite espaços extras.

$ echo "$string"
foo    foo bar               bar

$ echo "$string" | awk '$1=$1'
foo foo bar bar

Por que isso está acontecendo?

awk
  • 2 respostas
  • 6532 Views
Martin Hope
9uzman7
Asked: 2020-01-31 08:10:44 +0800 CST

O que significa '$ no bash?

  • 20

Eu quero obter o número ASCII de um caractere, então tenho o seguinte:

VAR="a"
NUM=$(printf "%d" "'$VAR")
echo $NUM

O que '$significa neste contexto? Alguém pode me indicar uma documentação para entender a sintaxe? Eu não entendo se é parte de $(...)ou printfou bash.

bash shell
  • 3 respostas
  • 5002 Views
Martin Hope
dessert
Asked: 2017-12-16 03:00:08 +0800 CST

O `at` executa um comando mais tarde se o computador estiver desligado no horário especificado?

  • 21

Quero agendar trabalhos com at, mas não tenho certeza do que acontecerá se o computador for suspenso no horário especificado: o comando será executado assim que o computador acordar novamente (como com anacron) ou não será executado (como com cron)?

Se você especificar uma tarefa para ser executada em uma hora e data específicas no passado, a tarefa será executada o mais rápido possível.

É o que a página de manual diz sobre isso, porém não condiz muito com o meu caso: não quero especificar um job para rodar no passado, quero rodar no futuro e perguntar como atvou tratar se o computador está dormindo então.

Esta não é uma duplicata de Executar no comando quando o computador está inativo porque esta pergunta pergunta se ato computador será ativado para executar o comando, nem é uma duplicata de Como impedir que o atd execute trabalhos anteriores? porque se trata de como evitar ata execução desses trabalhos “antigos” (com uma resposta muito boa!).

scheduling at
  • 1 respostas
  • 1138 Views
Martin Hope
Arnold Roa
Asked: 2017-12-09 18:00:55 +0800 CST

É possível enviar entrada para uma sessão tmux sem se conectar a ela?

  • 21

Existe algum comando que eu possa usar para enviar entrada ou comandos para uma determinada sessão/painel do tmux sem conectar a ele?

É para acesso autônomo,

Eu tenho um aplicativo de console em execução em uma sessão tmux. Eu quero reiniciá-lo quando uma implantação (usando capistrano) for concluída.

É possível?

Basicamente eu quero enviar:

exit
cd ..
cd app
rails console
tmux input
  • 1 respostas
  • 24933 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