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
jrw32982
Asked: 2025-04-24 09:08:15 +0800 CST

Por que cd '' tem sucesso no bash?

  • 19

Talvez eu esteja perdendo, mas não encontro documentação que mostre que isso cd ''deveria funcionar. Como não há um diretório com o nome '', parece óbvio que deveria falhar. Por exemplo,

mydir=
cd -- "$mydir" || exit 1     # succeeds!!
echo wrong

Parece um bug em cerca de um milhão de scripts, só esperando para acontecer. Será que isso é algum tipo de bug de compatibilidade com versões anteriores? Eu realmente preciso fazer uma verificação separada para um nome de variável vazio toda vez que eu cd? Aliás, shellchecktambém não detecta isso.

bash
  • 1 respostas
  • 2517 Views
Martin Hope
dr_
Asked: 2025-01-17 22:49:26 +0800 CST

Existe um sistema de arquivos que suporta permissões do Linux e é legível pelo Windows?

  • 19

Existe um sistema de arquivos que respeita esses dois requisitos?

  1. suporta permissões de arquivo padrão Linux
  2. é reconhecido nativamente pelo Windows

Gostaria de usá-lo para formatar um pendrive externo USB que uso principalmente para coisas do Linux, mas também gostaria de acessar de uma máquina Windows.

Uma solução simples é simplesmente ler o conteúdo do pendrive de uma VM Linux no host Windows, mas fiquei curioso para saber se esse sistema de arquivos existe.

permissions
  • 2 respostas
  • 1338 Views
Martin Hope
aviro
Asked: 2024-01-10 18:43:55 +0800 CST

O comportamento de bash -c "<comando único>" está documentado?

  • 19

É bem sabido que ao executar bash -c "COMMAND"(pelo menos nas versões comuns do Linux) quando há um único comando sem nenhum metacaractere (exceto space , tab ou newline ), o bash -cprocesso não irá bifurcar, mas sim substituir-se executando COMMANDdiretamente com execvea chamada do sistema para otimização, então o resultado será apenas um processo.

$ pid=$$; bash -c "pstree -p $pid"
bash(5285)───pstree(14314)

Se houver algum metacaractere (como redirecionamento) ou mais de um comando (que requer um metacaractere de qualquer maneira), bashserá bifurcado para cada comando executado.

$ pid=$$; bash -c ":; pstree -p $pid"
bash(5285)───bash(28769)───pstree(28770)

$ pid=$$; bash -c "pstree -p $pid 2>/dev/null"
bash(5285)───bash(14403)───pstree(14404)

Este é um recurso de otimização não documentado (o que significa que não é garantido) ou está documentado em algum lugar e garantido?


Nota: Presumo que nem todas as versões bashse comportem assim e que em algumas versões que o fazem, é apenas considerado um detalhe de implementação e não garantido, mas gostaria de saber se talvez existam pelo menos algumas bashversões que suportem explicitamente isso e documentem a condição por esta. Por exemplo, se houver um único ;caractere após o comando, sem nenhum segundo comando, bashainda execvenão haverá bifurcação.

$ pid=$$; bash -c "pstree -p $pid ; "
bash(17516)───pstree(17658)

Antecedentes da minha pergunta

Como mencionei, esse comportamento é bastante conhecido 1 2 por bashusuários experientes e estou familiarizado com ele há muito tempo.

Alguns dias atrás, encontrei o seguinte comentário no shell bash interativo: Defina o diretório de trabalho por meio de opções de linha de comando onde @dave_thompson_085 escreveu:

bashexecuta automaticamente (ou seja, substitui-se por) o último (ou único) comando em -c.

Eu respondi que isso só é verdade se houver um único comando. Mas então me perguntei: existem algumas versões em bashque talvez o último comando seja exec ed e não bifurcado, mesmo que haja outro comando antes dele? E em geral, há casos em que esse comportamento é garantido? Certas bashversões expõem (e elaboram) esse recurso fora do código-fonte?

Referências adicionais

  • 1 Por que não há clone ou fork aparente no comando bash simples e como isso é feito?
  • 2 Por que o bash não gera um subshell para comandos simples?
bash
  • 1 respostas
  • 1112 Views
Martin Hope
Guss
Asked: 2023-07-18 16:22:16 +0800 CST

Executando a tela GNU através do SSH, o shell não é um shell de login?

  • 19

Estou usando a tela (o gerenciador de sessão de terminal com nome problemático) em um sistema remoto acessado por SSH - para executar processos de longa duração e outros. Eventualmente, comecei a usar um comando para anexar diretamente à sessão da tela, em vez de primeiro fazer login por meio do SSH e depois iniciar a tela:

ssh -t hostname screen -xRR

O uso do -xRRé anexar à sessão de tela existente, se disponível, caso contrário, basta criar uma nova. O problema é que quando uma nova sessão é criada, ela não é criada como um shell de login:

$ shopt -q login_shell; echo $?
1

e, como resultado, a configuração da sessão de login (em execução .profilee amigos) não é concluída e, em seguida, faltam partes da configuração, em comparação com o primeiro uso do SSH para fazer o login e depois a execução screen- nesse caso, o shell que o SSH inicia é um shell de login e está configurado corretamente e acho que a tela herda o ambiente.

Tentei usar o -lsinalizador na tela, que está documentado como "modo de login", mas não ajuda - acho que apenas atualiza o "horário de login" para coisas como who.

Alguma idéia de como obter a tela para executar um shell de login?

shell
  • 1 respostas
  • 747 Views
Martin Hope
Nikhil Menghrajani
Asked: 2023-04-24 15:22:30 +0800 CST

apt-get update falhou ao buscar pacotes debian amd64 ao construir dockerfile do maven:3.5.2-jdk-8

  • 19

Dockerfile:

FROM maven:3.5.2-jdk-8

RUN apt-get update && \
    apt-get install -y python-dev python-pip
RUN pip install awscli --upgrade

Registros de compilação:

Preparing build context archive…
[==================================================>]3380/3380 files
Done

Sending build context to Docker daemon…
[==================================================>] 23.19MB
Done

Step 1/17 : FROM maven:3.5.2-jdk-8
 ---> d07bef19f01a
Step 2/17 : RUN apt-get update &&     apt-get install -y python-dev python-pip
 ---> Running in ebed1b8ce61e
Ign:1 http://security.debian.org stretch/updates InRelease
Ign:2 http://deb.debian.org/debian stretch InRelease
Ign:3 http://security.debian.org stretch/updates Release
Ign:4 http://deb.debian.org/debian stretch-updates InRelease
Ign:5 http://deb.debian.org/debian stretch Release
Ign:6 http://deb.debian.org/debian stretch-updates Release
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Err:7 http://deb.debian.org/debian stretch/main arm64 Packages
  404  Not Found
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Err:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
  404  Not Found
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Err:11 http://security.debian.org stretch/updates/main arm64 Packages
  404  Not Found
Ign:12 http://security.debian.org stretch/updates/main all Packages
Reading package lists...
W: The repository 'http://security.debian.org stretch/updates Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch-updates Release' does not have a Release file.
E: Failed to fetch http://security.debian.org/dists/stretch/updates/main/binary-arm64/Packages  404  Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch/main/binary-arm64/Packages  404  Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/main/binary-arm64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Error response from daemon: The command '/bin/sh -c apt-get update &&     apt-get install -y python-dev python-pip' returned a non-zero code: 100
Failed to deploy '<unknown> Dockerfile: Dockerfile': Can't retrieve image ID from build stream

Este Dockerfile usado para construir bem e só recentemente começou a lançar este erro

debian
  • 3 respostas
  • 7988 Views
Martin Hope
yael
Asked: 2018-01-01 05:28:27 +0800 CST

como mudar o valor da matriz no bash

  • 20

queremos construir 6 pastas de ponto de montagem como exemplo

/data/sdb
/data/sdc
/data/sdd
/data/sde
/data/sdf
/data/sdg

então escrevemos este script bash simples usando array

folder_mount_point_list="sdb sdc sdd sde sdf sdg"

folderArray=( $folder_mount_point_list )

counter=0
for i in disk1 disk2 disk3 disk4 disk4 disk5 disk6
do
folder_name=${folderArray[counter]}
mkdir /data/$folder_name
let counter=$counter+1
done

agora queremos mudar o código sem contador e let=$counter=counter+1

é possível deslocar cada loop da matriz para obter o próximo valor da matriz?

como algo como

${folderArray[++]}
linux bash
  • 5 respostas
  • 19996 Views
Martin Hope
RML
Asked: 2017-12-15 04:23:13 +0800 CST

TSC_DEADLINE desabilitado devido a Errata

  • 20

Enviei meu computador ao fabricante para diagnóstico e ajuda para um problema de saída de vídeo que estava tendo. Eles atualizaram o BIOS. Desde então eu venho recebendo

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)

Eu não tinha nenhum pacote de microcódigo ou ucode instalado antes e não costumava receber esta mensagem.

Entrei em contato com o fabricante e eles responderam "não lembro o número do seu ticket, mas duvido que atualizamos o BIOS", então eles não estão sendo muito úteis.

Ele inicializa e funciona, mas TSC_DEADLINE é importante ou útil?

A única coisa que posso encontrar sobre isso é: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

Mas isso parece se aplicar apenas ao VirtualBox e, de qualquer forma, já estou executando o kernel 4.14, então acho que se esse commit fosse corrigir meu problema, ele já o teria feito.

ryan@pocketwee:~$ uname -a
Linux pocketwee 4.14.0-1-amd64 #1 SMP Debian 4.14.2-1 (2017-11-30) x86_64 GNU/Linux
debian kernel
  • 1 respostas
  • 30845 Views
Martin Hope
rubystallion
Asked: 2017-12-13 22:43:56 +0800 CST

é canalizado ls o mesmo que ls -1?

  • 20

lsretorna a saída em várias colunas, enquanto ls|catretorna a saída de bytes idênticos ls -1aos diretórios que tentei. Ainda vejo ls -1canalizado em respostas, como ls -1|wc -l. Existe alguma razão para preferir ls -1? Por que ...|catalterar a saída de ls?

shell ls
  • 3 respostas
  • 3324 Views
Martin Hope
nath
Asked: 2017-11-23 18:35:52 +0800 CST

Como obter o DPI de um arquivo de imagem (PNG)

  • 20

Se eu exportar uma imagem com, digamos, 300 DPI e ler suas meta-informações com qualquer aplicativo que possa fazer isso (como file, exiftool, etc.) identify, mediainfosempre obtenho um valor mostrando Image-Width e Image-Height.

Nesse caso:2254 x 288

como obtenho o valor de 300 DPI ou o valor correspondente de qualquer outro arquivo de imagem?

Como no meu caso o valor proporcional de Image-Width e Image-Height não importa, quero poder verificar a resolução de qualquer imagem para poder compilar novas imagens com a mesma qualidade independente de sua proporção, pois isso varia de acordo cada arquivo.

Para o meu fluxo de trabalho, estou especialmente interessado em qualquer solução de linha de comando, embora quaisquer outras também sejam muito apreciadas.

images file-metadata
  • 2 respostas
  • 29688 Views
Martin Hope
Philip Kirkbride
Asked: 2017-11-23 13:53:07 +0800 CST

chave de impressão jq e valor para todos no subobjeto

  • 20

Encontrei este Q/A com a solução para imprimir todas as chaves em um objeto:

jq -r 'keys[] as $k | "\($k), \(.[$k] | .ip)"' 

No meu caso, quero executar o acima, mas em um subobjeto:

jq -r '.connections keys[] as $k | "\($k), \(.[$k] | .ip)"'

Qual é a sintaxe adequada para fazer isso?

json jq
  • 2 respostas
  • 58595 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