I want update my linux in one shell but by default wget or axel in updater use all the bandwidth.

How can I limit the speed in this shell?

I want other shells to have a fair share, and to limit everything in that shell – something like a proxy!

I use Zsh and Arch Linux.

This question focuses on process-wide or session-wide solutions. See How to limit network bandwidth? for system-wide or container-wide solutions on Linux.

3 Answers 3


Have a look at trickle a userspace bandwidth shaper. Just start your shell with trickle and specify the speed, e.g.:

trickle -d 100 zsh

which tries to limit the download speed to 100KB/s for all programs launched inside this shell.

As trickle uses LD_PRELOAD this won't work with static linked programs but this isn't a problem for most programs.

  • Note that it's limited to SOCK_STREAMS sockets, so won't affect UDP traffic for instance. Nov 15, 2019 at 18:38


It is in Ubuntu / Debian repositories, probably others too. It limits not just a single shell, but the whole machine. Never tried it myself though


The man page for wget provides the following information:


Limit the download speed to amount bytes per second. Amount may be expressed in bytes, kilobytes with the k suffix, or megabytes with the m suffix. For example, --limit-rate=20k will limit the retrieval rate to 20KB/s. This is useful when, for whatever reason, you don't want Wget to consume the entire available bandwidth.

  • update question: i want all application limited, not only wget May 26, 2012 at 11:15
  • @Efazati: Sorry I don't know how to set it in general. I use it only for wget and apt-get. May 26, 2012 at 11:24
  • don't wory man, just wating for answer ;) May 26, 2012 at 11:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.