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
Ole Tange
Asked: 2024-10-08 05:18:04 +0800 CST

Limitar velocidade de E/S de arquivo

  • 17

Estou procurando um comando semelhante ao ioniceand trickleand pv -Land tc-, mas que coloque limites de E/S em arquivos.

ioniceolha para dispositivos de bloco na máquina local. Quero que isso funcione para E/S de arquivo em geral. Se não funcionar para encfs montados em NFS, é inútil para mim.

tricklemolda a E/S da rede - não a E/S do sistema de arquivos. Então, se meu programa acessa um arquivo no encfs, ele não terá nenhuma pista se ele está montado em cima do NFS ou de um diretório local.

tcé semelhante a trickle: Ele molda a E/S da rede - não a E/S do sistema de arquivos.

pv -Lsó funciona em pipes. Preciso que funcione em todos os arquivos que o programa abre. Pense no Firefox: ele abre arquivos para leitura e escrita em vários threads.

Eu quero isso:

thecommand --read 5M --write 1M firefox

limitar firefoxa leitura de arquivos a 5 MB/s e a gravação a 1 MB/s.

firefoxé apenas um exemplo: quero que funcione para qualquer programa que abra arquivos diferentes para leitura e escrita.

Quero que a limitação funcione não importa se firefoxo acesso é a um arquivo local ou a um arquivo em NFS/tmpfs/encfs/SSHFS/RandomFS.

Não tem problema se ele só funcionar em programas vinculados dinamicamente (ou seja, não tem problema se ele fizer alguma mágica LD_PRELOAD).

Existe uma fera dessas?

nfs
  • 4 respostas
  • 1277 Views
Martin Hope
Thomas.M
Asked: 2024-09-04 00:31:01 +0800 CST

É seguro instalar programas que não sejam do gerenciador de pacotes de uma distribuição?

  • 17

Quando migrei do Windows para o Linux, fui misericordiosamente abençoado com gerenciadores de pacotes. Na maioria das vezes, os repositórios oficiais da minha distro (atualmente Debian 12) terão o pacote que preciso. Mas às vezes não, o que significa que se eu quiser instalar alguns aplicativos, tenho que fazer isso sem passar pelo gerenciador de pacotes; talvez clonando um repositório do GitHub e compilando a partir do código-fonte, ou usando wgetou curlpara obter um instalador feito sob medida dos desenvolvedores.

É seguro fazer isso? Não estou perguntando sobre a confiabilidade desses pacotes. Em vez disso, isso quebrará o sistema de gerenciamento de pacotes se eu fizer isso? Os pacotes instalados dessa forma serão atualizados quando eu usar o gerenciador de pacotes da minha distribuição para executar uma atualização em todo o sistema, por exemplo? Poderei usar o gerenciador de pacotes para desinstalá-los?

Aqui está um exemplo concreto. Digamos que eu queira instalar o Rust. O site oficial do Rust informa aos usuários do Linux para executar o seguinte comando.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Em outras palavras, baixe o rustup.rsarquivo do site e execute-o para instalar o Rust. Este exemplo é duplamente intrigante para mim, já que o Debian está disponível rustupcomo um pacote nos repositórios. Então, devo usar o pacote Debian ou devo seguir as instruções no site?

Aqui está outro exemplo. Digamos que eu queira instalar o Minecraft, que não está disponível nos repositórios do Debian. Devo, portanto, ir ao site do Minecraft, que me permite baixar um minecraft.debarquivo. Se estiver correto, eu usaria aptpara instalá-lo. Nesse caso, o pacote seria rastreado pelo gerenciador de pacotes? Eu conseguiria desinstalá-lo ou atualizá-lo com apt?

Obrigado por sua ajuda para esclarecer essa confusão que estava me incomodando há algum tempo.

software-installation
  • 5 respostas
  • 1093 Views
Martin Hope
Alice M.
Asked: 2024-08-25 22:51:23 +0800 CST

Resultados inconsistentes de “unzip -l … | grep -q …” com pipefail

  • 17

A seguinte função Bash deu resultados inconsistentes:

# $1    Path to ZIP archive.
# Exits with 0 status iff it contains a “.mp3” or “.flac” file.
mp3_or_flac_in_zip() {
    local archive=${1:?No archive given.}
    (
        set -o pipefail
        unzip -l "$archive" | grep -iqE '.\.(flac|mp3)$'
    )
}

Quando executado n vezes seguidas no mesmo ZIP contendo música, ele relatou aleatoriamente que não havia música nele (cerca de 1–5% das vezes, mas variou muito entre os ZIPs).

Mudar para uma variável intermediária em vez de um pipe (com &&instead of set -o pipefailpara ainda ter certeza de unzipque estava funcionando bem) corrigiu as inconsistências:

# $1    Path to ZIP archive.
# Exits with 0 status iff it contains a “.mp3” or “.flac” file.
mp3_or_flac_in_zip() {
    local archive=${1:?No archive given.}
    local listing
    listing=$(unzip -l "$archive") &&
    grep -iqE '.\.(flac|mp3)$' <<< "$listing"
}

Qual poderia ser o problema aí? E há outros contextos em que pipes não são uma ideia tão boa?

bash
  • 3 respostas
  • 827 Views
Martin Hope
RonJohn
Asked: 2024-06-14 15:46:23 +0800 CST

Por que definir uma variável somente leitura no escopo externo impede a definição de uma variável local com o mesmo nome?

  • 17

Não encontrei nada sobre isso em todas as minhas pesquisas.

No código abaixo, Bar1age como eu esperaria que uma variável "normal" agisse (já que help declarediz que -gsó é "vista" em chamadas de função): ela muda de valor dependendo do escopo (externo ou interno).

Bar2, sendo declarado "simplesmente", também age como eu esperava (estando gfhjnfdno escopo externo e blatno escopo interno.

Mas Fooé uma variável globalmente imutável. help declarediz apenas "para tornar NAMEs somente leitura". Onde esse recurso estendido (e indesejado) está documentado?

$ cat test.sh
#!/bin/bash

declare -r Foo=bar
declare -g Bar1=fdhtbn
declare Bar2=gfhjnfd

X()
{
    local Foo=$1
    local Bar1=snorkel
    local Bar2=$2
    echo Foo in X = $Foo
    echo Bar1 in X = $Bar1
    echo Bar2 in X = $Bar2
}

echo Foo, above X, = $Foo
echo Bar1, above X = $Bar1
echo Bar2, above X = $Bar2
echo
X baz blat
echo
echo Foo, below X, = $Foo
echo Bar1, below X = $Bar1
echo Bar2, below X = $Bar2

$ ./test.sh
Foo, above X, = bar
Bar1, above X = fdhtbn
Bar2, above X = gfhjnfd

./test.sh: line 9: local: Foo: readonly variable
Foo in X = bar
Bar1 in X = snorkel
Bar2 in X = blat

Foo, below X, = bar
Bar1, below X = fdhtbn
Bar2, below X = gfhjnfd
bash
  • 3 respostas
  • 1131 Views
Martin Hope
Jay Taylor
Asked: 2024-06-02 01:20:49 +0800 CST

Verifique se o usuário atual pode executar o sudo sem exigir uma senha

  • 17

Quero verificar se o usuário atual que está executando um script de shell BASH tem acesso ao sudo sem senha ou não. Caso contrário, prefiro que o script seja encerrado em vez de solicitar uma senha.

linux
  • 2 respostas
  • 4328 Views
Martin Hope
kojow7
Asked: 2018-01-17 20:37:10 +0800 CST

A listagem de diretórios não está totalmente classificada

  • 18

Eu tenho a seguinte lista de diretórios em um sistema Debian Linux. No entanto, uma coisa estranha é que o arquivo populate.sql parece não estar classificado com o resto.

-rw-r--r-- 1 user1 user1 10004 Jul 28 13:16 populate2.sql
-rw-r--r-- 1 user1 user1 10244 Jul 28 13:16 populate3.sql
-rw-r--r-- 1 user1 user1 10359 Jul 28 13:16 populate4.sql
-rw-r--r-- 1 user1 user1 11618 Jul 28 13:16 populate5.sql
-rw-r--r-- 1 user1 user1 11654 Jul 28 13:17 populate6.sql
-rw-r--r-- 1 user1 user1 12198 Jul 30 16:20 populate7.sql
-rw-r--r-- 1 user1 user1 12286 Aug 10 00:10 populate8.sql
-rw-r--r-- 1 user1 user1 12331 Aug 19 08:48 populate9.sql
-rw-r--r-- 1 user1 user1 12401 Aug 20 14:58 populatea.sql
-rw-r--r-- 1 user1 user1 12460 Aug 22 01:09 populateb.sql
-rw-r--r-- 1 user1 user1 12503 Aug 22 17:13 populatec.sql
-rw-r--r-- 1 user1 user1 13341 Aug 23 23:23 populated.sql
-rw-r--r-- 1 user1 user1 13414 Aug 27 23:01 populatee.sql
-rw-r--r-- 1 user1 user1 16064 Aug 31 00:03 populatef.sql
-rw-r--r-- 1 user1 user1 17529 Sep 16 15:38 populateg.sql
-rw-r--r-- 1 user1 user1 19348 Sep 19 22:50 populateh.sql
-rw-r--r-- 1 user1 user1 21033 Sep 27 20:46 populatei.sql
-rw-r--r-- 1 user1 user1 21024 Sep 28 00:02 populatej.sql
-rw-r--r-- 1 user1 user1 22505 Sep 28 22:55 populatek.sql
-rw-r--r-- 1 user1 user1 23831 Oct  5 21:24 populatel.sql
-rw-r--r-- 1 user1 user1 23665 Nov  2 22:16 populatem.sql
-rw-r--r-- 1 user1 user1 23513 Nov  4 21:53 populaten.sql
-rw-r--r-- 1 user1 user1 27191 Nov 19 14:55 populateo.sql
-rw-r--r-- 1 user1 user1 30142 Nov 28 17:51 populatep.sql
-rw-r--r-- 1 user1 user1 30853 Dec 10 14:49 populateq.sql
-rw-r--r-- 1 user1 user1 33690 Dec 11 23:43 populater.sql
-rw-r--r-- 1 user1 user1  9945 Jul 28 13:16 populate.sql
-rw-r--r-- 1 user1 user1 38696 Jan 16 22:27 populates.sql
-rw-r--r-- 1 user1 user1 38696 Jan 16 22:27 populatet.sql

A princípio pensei que poderia ser por causa de um caractere oculto ou algo assim, mas não consigo pensar em um caractere oculto que ficaria entre r e s. Além disso, se eu digitar vim populate.sqlno prompt de comando, ele abrirá o arquivo correto, o que é mais uma evidência de que não há um caractere estranho lá.

Alguma ideia de por que populate.sqlnão está sendo classificado corretamente?

files filesystems
  • 1 respostas
  • 654 Views
Martin Hope
bunden
Asked: 2018-01-14 05:58:47 +0800 CST

por que excluir o histórico do bash não é suficiente?

  • 18

Eu costumava pensar que deletar meu histórico bash era o suficiente para limpar meu histórico bash, mas ontem meu gato estava mexendo no lado direito do meu teclado e quando voltei ao meu computador vi algo que digitei há um mês, então comecei a pressione todas as teclas como um louco procurando o que poderia ter acionado isso. Acontece que a tecla UPARROW mostra meu histórico bash mesmo depois de deletar .bash_history.

Como posso excluir meu histórico bash de verdade?

linux bash
  • 6 respostas
  • 17633 Views
Martin Hope
TheGrapeBeyond
Asked: 2017-12-31 11:18:15 +0800 CST

Como faço scp via ssh? [duplicado]

  • 18
Esta pergunta já tem respostas aqui :
Use scp para transferir um arquivo do diretório local X para o diretório remoto Y (8 respostas)
Como copiar um arquivo de um servidor remoto para uma máquina local? (6 respostas)
Fechado há 4 anos .

Eu tenho uma máquina LINUX (remoto) e uma máquina MAC (local). Nosso administrador de sistema configurou um método "SSH", pelo qual posso fazer ssh do meu MAC para minha máquina LINUX, por meio deste comando no meu MAC:

ssh [email protected] -p 12345

Quando faço isso, sou solicitado a inserir a senha da minha máquina LINUX e, quando o faço, tenho acesso, o que é ótimo.

O que eu quero fazer agora, porém, é poder scp da minha máquina MAC para a minha máquina LINUX, para que eu possa transferir arquivos. Como faço isso? Eu pesquisei por aí, mas não tenho certeza do que fazer.

obrigada

ssh osx
  • 3 respostas
  • 44065 Views
Martin Hope
user267935
Asked: 2017-12-30 18:11:14 +0800 CST

bash muda seu comportamento dependendo do valor da variável "IFS"

  • 18

Quando defino a IFSvariável para um espaço, bashtrata vários espaços como um espaço ( myprogramé um programa que imprime os argumentos de linha de comando que recebe):

IFS=" "
x="hello   hi   world"
./myprogram $x
argv[1] = hello
argv[2] = hi
argv[3] = world

Mas quando defino a IFSvariável para uma vírgula, bashnão trata várias vírgulas como uma vírgula:

IFS=","
x="hello,,,hi,,,world"
./myprogram $x
argv[1] = hello
argv[2] = 
argv[3] = 
argv[4] = hi
argv[5] = 
argv[6] = 
argv[7] = world

Por que é que?

bash shell
  • 1 respostas
  • 710 Views
Martin Hope
Harry
Asked: 2017-12-28 04:17:51 +0800 CST

Se o bit suid não tem efeito nos diretórios e o bit sticky não tem efeito nos arquivos, por que eles não são combinados em um bit?

  • 18

Isso salvaria um bit por arquivo ou há preenchimento necessário que deve ser usado de qualquer maneira? E mesmo que haja preenchimento, por que não combiná-los e utilizar o bit extra para um novo recurso?

files permissions
  • 1 respostas
  • 1202 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