bashtop README

The project's README from github.com/aristocratos/bashtop. As one markdown file: README.md.

bashtop

Linux OSX FreeBSD Usage Bash Python bashtop_version Build Status Donate Sponsor Coffee

C++ Version

18 September 2021

btop++

The C++ version of bashtop - btop++ is available.

Get it at https://github.com/aristocratos/btop

Index

Documents

CHANGELOG.md

CONTRIBUTING.md

CODE_OF_CONDUCT.md

Description

Resource monitor that shows usage and stats for processor, memory, disks, network and processes.

Features

Themes

Bashtop now has theme support and a function to download missing local themes from repository.

See themes folder for available themes.

The builtin theme downloader places the default themes in $HOME/.config/bashtop/themes. User created themes should be placed in $HOME/.config/bashtop/user_themes to be safe from overwrites.

Let me know if you want to contribute with new themes.

Support and funding

Bug fixes and updates might be slow during normal workdays since I work full time as an industrial worker and don't have much time or energy left during the week. I'm looking into ways of funding this project that would allow me to take off time from my day job to work on this.

Any advice on how to get funding for open source projects is very welcome!

Update

You can now sponsor this project through github, see my sponsors page for options.

Also added donation links for paypal and ko-fi.

Any support is greatly appreciated!

Prerequisites

Mac Os X

Will not display correctly in the standard terminal! Recommended alternative iTerm2

Will also need to be run as superuser to display stats for processes not owned by user.

Linux, Mac Os X and FreeBSD

For correct display, a terminal with support for:

Also needs a UTF8 locale and a font that covers:

Notice

Dropbear seems to not be able to set correct locale. So if accessing bashtop over ssh, OpenSSH is recommended.

Dependencies

Linux, OSX and FreeBSD

bash (v4.4 or later) Script functionality will most probably break with earlier versions. Bash version 5 is highly recommended to make use of $EPOCHREALTIME variable instead of a lot of external date command calls.

GNU coreutils

GNU sed

Linux using /proc for data collection

GNU grep

ps from procps-ng (v3.1.15 or later)

GNU awk

OSX and FreeBSD or Linux using psutil for data collection

Python3 (v3.6 or later)

psutil python module (v5.7.0 or later)

Optionals for additional stats

(Optional OSX) osx-cpu-temp Needed to show CPU temperatures.

(Optional Linux) lm-sensors Needed to show CPU temperatures.

(Optional Linux) iostat (part of sysstat) Needed if you want disk read/write stats and are not using psutil data collection.

(Optional OSX/Linux/FreeBSD) curl (v7.16.2 or later) Needed if you want messages about updates and the ability to download themes.

Screenshots

Main UI showing details for a selected process. Screenshot 1

Main menu. Screenshot 2

Options menu. Screenshot 3

Installation

Dependencies installation OSX

Install homebrew if not already installed

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

If you got python 3.6 or later installed outside of brew:

sudo python3 -m ensurepip
sudo python3 -m pip install psutil

If you haven't got python3 installed:

brew install python3
python3 -m pip install psutil

Install dependencies

brew install bash coreutils gnu-sed git

Install optional dependency osx-cpu-temp

brew install osx-cpu-temp

Dependencies installation FreeBSD

Install with pkg and pip

sudo pkg install coreutils gsed git py37-psutil

Manual installation Linux, OSX and FreeBSD

Clone and install

git clone https://github.com/aristocratos/bashtop.git
cd bashtop
sudo make install

to uninstall it

sudo make uninstall

FreeBSD package

Available in FreeBSD ports

Install pre-built pacakge

sudo pkg install bashtop

Arch based

Available in the AUR as bashtop-git

Available in the Arch Linux repository as bashtop

Debian based

Available in official Debian repository since Debian 11

Available for debian/ubuntu from Azlux's repository

Or use quick installation:

Quick install go to DEB folder and type

 sudo ./build

to uninstall it go to DEB folder and type

 sudo ./build --remove

Guix based

Available in official Guix repository since 6bbd0fd2

Installation

guix install bashtop

Ubuntu based

Available in official Ubuntu repository since Ubuntu 20.10

Available for Ubuntu from PPA repository

Add PPA repository and install bashtop

 sudo add-apt-repository ppa:bashtop-monitor/bashtop
 sudo apt update
 sudo apt install bashtop

Fedora

Available in the Fedora repository.

Installation

sudo dnf install bashtop

CentOS 8

Installation

dnf config-manager --set-enabled PowerTools
dnf install epel-release
dnf install bashtop

RHEL 8

Installation

ARCH=$( /bin/arch )
subscription-manager repos --enable
"codeready-builder-for-rhel-8-${ARCH}-rpms"
dnf install epel-release
dnf install bashtop

Configurability

All options changeable from within UI. Config files stored in "$HOME/.config/bashtop" folder

bashtop.cfg: (auto generated if not found)

#? Config file for bashtop v. 0.9.21

#* Color theme, looks for a .theme file in "$HOME/.config/bashtop/themes" and "$HOME/.config/bashtop/user_themes"
#* Should be prefixed with either "themes/" or "user_themes/" depending on location, "Default" for builtin default theme
color_theme="Default"

#* Update time in milliseconds, increases automatically if set below internal loops processing time, recommended 2000 ms or above for better sample times for graphs
update_ms="2500"

#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu responsive"
#* "cpu lazy" updates sorting over time, "cpu responsive" updates sorting directly
proc_sorting="cpu lazy"

#* Reverse sorting order, "true" or "false"
proc_reversed="false"

#* Show processes as a tree
proc_tree="false"

#* Check cpu temperature, only works if "sensors", "vcgencmd" or "osx-cpu-temp" commands is available
check_temp="true"

#* Draw a clock at top of screen, formatting according to strftime, empty string to disable
draw_clock="%X"

#* Update main ui when menus are showing, set this to false if the menus is flickering too much for comfort
background_update="true"

#* Custom cpu model name, empty string to disable
custom_cpu_name=""

#* Enable error logging to "$HOME/.config/bashtop/error.log", "true" or "false"
error_logging="true"

#* Show color gradient in process list, "true" or "false"
proc_gradient="true"

#* If process cpu usage should be of the core it's running on or usage of the total available cpu power
proc_per_core="false"

#* Optional filter for shown disks, should be names of mountpoints, "root" replaces "/", separate multiple values with space
disks_filter=""

#* Enable check for new version from github.com/aristocratos/bashtop at start
update_check="true"

#* Enable graphs with double the horizontal resolution, increases cpu usage
hires_graphs="false"

#* Enable the use of psutil python3 module for data collection, default on OSX
use_psutil="true"

Command line options: (not yet implemented)

USAGE: bashtop

TODO

Might finish off items out of order since I usually work on multiple at a time.

LICENSE

Apache License 2.0

bashtop (aristocratos/bashtop)

Searching Database…

11.1K ·GitHub
这是做什么的?Bashtop 是一个基于终端的资源监视器,支持 Linux、macOS 和 FreeBSD,可以显示处理器、内存、磁盘、网络和运行中进程的使用情况和统计数据。
它是带窗口的桌面应用,还是在终端里运行的东西?它在终端里运行,是一个全屏文字界面(TUI),带有一套游戏风格的菜单系统——用方向键导航,没有图形界面。
怎么安装?几乎各大平台都有打包:Arch 仓库和 AUR、Debian 11+、Ubuntu 20.10+(另有 PPA)、Fedora、CentOS/RHEL 8、FreeBSD ports、Guix,以及 macOS 上的 Homebrew。 otherwise 也可以克隆仓库后用 make 手动安装。
我的系统上需要有哪些东西才能跑起来?所有平台都需要 bash 4.4+(推荐 5)、GNU coreutils 和 GNU sed。在 Linux 上通过 /proc 采集数据时还会用到 grep、procps-ng ps 3.1.15+ 和 GNU awk;在 macOS/FreeBSD 上则需要 Python 3.6+ 以及 psutil 模块 5.7.0+。
随便什么终端都能用吗,显示上有没有坑?它需要支持真彩色的终端、UTF-8 语言环境,以及带有盲文点字和制表符(Box Drawing)字形的字体。在 macOS 上,系统自带的 Terminal 无法正确显示(推荐用 iTerm2);通过 SSH 使用时,OpenSSH 可以正常设置语言环境,而 Dropbear 不行。另外在 macOS 上,要查看不属于你的进程还需要超级用户权限。
它能管理进程吗,还是只能看数据?你可以筛选进程列表、随时切换排序方式、打开某个进程的详细统计,还能直接在界面里向它发送 SIGTERM、SIGKILL 或 SIGINT 信号。
可以改它的外观吗?可以——bashtop 支持主题,内置一个下载器,会把默认主题放到 $HOME/.config/bashtop/themes;你自己的主题放在 userthemes 文件夹里就不会被覆盖。所有配置文件选项也都可以在界面菜单里修改。
bashtop 就是这个工具的最新版本吗,还是有后继版本?README 宣布有一个叫 btop++ 的 C++ 重写版作为更新的版本,并附上了链接。Bashtop 本身在新版本发布时也会在菜单里显示提示消息。
它还在积极开发吗?开发节奏有限:作者全职做工业工人,他说工作日里修复 bug 可能会比较慢。项目通过 GitHub Sponsors、PayPal 和 Ko-fi 获得资助。
它能显示 GPU 数据或 Docker 容器的占用情况吗?还不能——GPU 温度/使用率以及每个容器的 CPU 和内存统计都还在待办清单上,而且每一项都只标注了'如果可行'。
What are similar projects?bpytop, neofetch, nvitop, bottom, lsoff, btop, node_exporter, nvtop
Size
0.9 MB
Stars
11.1K
Updated
CommitJan 13
Age
6y
Commits · 90 Days