@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,851 @@
|
|
|
1
|
+
# Installing procps
|
|
2
|
+
|
|
3
|
+
## Dependencies
|
|
4
|
+
|
|
5
|
+
### macOS (Homebrew)
|
|
6
|
+
- **Required:** None
|
|
7
|
+
- **Optional:** None
|
|
8
|
+
- **Auto-installed:** None
|
|
9
|
+
- **Note:** procps is a Linux-specific package that relies on the `/proc` filesystem which does not exist on macOS. macOS provides equivalent functionality through built-in commands (`ps`, `top`, `vm_stat`) and Activity Monitor. See the macOS section below for details on native alternatives.
|
|
10
|
+
|
|
11
|
+
### Ubuntu (APT/Snap)
|
|
12
|
+
- **Required:** None (APT is built into Ubuntu/Debian)
|
|
13
|
+
- **Optional:** None
|
|
14
|
+
- **Auto-installed:** `libncursesw6`, `libproc2-0` (or `libprocps8` on older versions), `libtinfo6` (installed automatically by APT as procps dependencies)
|
|
15
|
+
|
|
16
|
+
### Raspberry Pi OS (APT/Snap)
|
|
17
|
+
- **Required:** None (APT is built into Raspberry Pi OS)
|
|
18
|
+
- **Optional:** None
|
|
19
|
+
- **Auto-installed:** `libncursesw6`, `libproc2-0` (or `libprocps8` on older versions), `libtinfo6` (installed automatically by APT as procps dependencies)
|
|
20
|
+
|
|
21
|
+
### Amazon Linux (DNF/YUM)
|
|
22
|
+
- **Required:** None (DNF/YUM is built into Amazon Linux)
|
|
23
|
+
- **Optional:** None
|
|
24
|
+
- **Auto-installed:** `ncurses-libs` (installed automatically by DNF/YUM as procps-ng dependencies)
|
|
25
|
+
- **Note:** On RHEL-based systems (including Amazon Linux), the package is named `procps-ng` rather than `procps`
|
|
26
|
+
|
|
27
|
+
### Windows (Chocolatey/winget)
|
|
28
|
+
- **Required:** None
|
|
29
|
+
- **Optional:** None
|
|
30
|
+
- **Auto-installed:** None
|
|
31
|
+
- **Note:** procps is a Linux-specific package. Windows provides equivalent functionality through built-in PowerShell cmdlets (`Get-Process`, `Get-Counter`) and Task Manager. For command-line alternatives, see the Windows section below which covers Sysinternals PsTools.
|
|
32
|
+
|
|
33
|
+
### Git Bash (Manual/Portable)
|
|
34
|
+
- **Required:** None
|
|
35
|
+
- **Optional:** None
|
|
36
|
+
- **Auto-installed:** None
|
|
37
|
+
- **Note:** procps is a Linux-specific package. Git Bash on Windows does not support procps. Use Windows native tools or WSL for Linux-compatible process utilities.
|
|
38
|
+
|
|
39
|
+
## Overview
|
|
40
|
+
|
|
41
|
+
procps (or procps-ng, the "next generation" fork) is a collection of command-line utilities for monitoring system processes and resources on Linux systems. These utilities read information from the `/proc` pseudo-filesystem, which the Linux kernel dynamically generates to expose process and system information.
|
|
42
|
+
|
|
43
|
+
The procps package is essential for system administration and includes these core utilities:
|
|
44
|
+
|
|
45
|
+
| Utility | Description |
|
|
46
|
+
|---------|-------------|
|
|
47
|
+
| `ps` | Display a snapshot of current processes |
|
|
48
|
+
| `top` | Interactive real-time process viewer |
|
|
49
|
+
| `free` | Display memory usage (total, used, free, shared, buffers, cache) |
|
|
50
|
+
| `vmstat` | Report virtual memory statistics |
|
|
51
|
+
| `pgrep` | Find processes by name or attributes |
|
|
52
|
+
| `pkill` | Send signals to processes by name or attributes |
|
|
53
|
+
| `pmap` | Display memory map of a process |
|
|
54
|
+
| `pwdx` | Print working directory of a process |
|
|
55
|
+
| `slabtop` | Display kernel slab cache information in real time |
|
|
56
|
+
| `sysctl` | Read and modify kernel parameters at runtime |
|
|
57
|
+
| `tload` | Graphical representation of system load average |
|
|
58
|
+
| `uptime` | Show how long the system has been running |
|
|
59
|
+
| `w` | Show who is logged in and what they are doing |
|
|
60
|
+
| `watch` | Execute a command periodically and display output |
|
|
61
|
+
| `pidof` | Find the process ID of a running program |
|
|
62
|
+
| `kill` | Send signals to processes by PID |
|
|
63
|
+
| `skill` | Send signals to processes by name (obsolete, use `pkill`) |
|
|
64
|
+
| `snice` | Adjust process priority by name (obsolete, use `pkill`) |
|
|
65
|
+
|
|
66
|
+
**Important**: procps is Linux-specific and requires the `/proc` filesystem. It is not available on macOS or Windows. These platforms have their own native process monitoring tools, documented in their respective sections below.
|
|
67
|
+
|
|
68
|
+
## Prerequisites
|
|
69
|
+
|
|
70
|
+
Before installing procps on Linux platforms, ensure:
|
|
71
|
+
|
|
72
|
+
1. **Internet connectivity** - Required to download packages from repositories
|
|
73
|
+
2. **Administrative privileges** - Required for system-wide installation via `sudo`
|
|
74
|
+
3. **Linux operating system** - procps only works on Linux; it will not function on macOS, Windows, or BSD systems
|
|
75
|
+
|
|
76
|
+
**Note**: procps is typically pre-installed on most Linux distributions as it contains essential system utilities. The installation steps below ensure procps is installed or update it to the latest version.
|
|
77
|
+
|
|
78
|
+
## Platform-Specific Installation
|
|
79
|
+
|
|
80
|
+
### macOS (Homebrew)
|
|
81
|
+
|
|
82
|
+
#### Platform Compatibility Notice
|
|
83
|
+
|
|
84
|
+
procps is **not available on macOS**. The procps utilities are designed specifically for Linux and rely on the `/proc` filesystem, which does not exist on macOS. macOS uses a different kernel architecture (XNU/Darwin) that exposes process information through different mechanisms.
|
|
85
|
+
|
|
86
|
+
#### Native Alternatives
|
|
87
|
+
|
|
88
|
+
macOS provides equivalent functionality through built-in commands. No installation is required:
|
|
89
|
+
|
|
90
|
+
| procps Utility | macOS Equivalent | Description |
|
|
91
|
+
|----------------|------------------|-------------|
|
|
92
|
+
| `ps` | `ps` | Process status (BSD variant, slightly different options) |
|
|
93
|
+
| `top` | `top` | Interactive process viewer (press `q` to quit) |
|
|
94
|
+
| `free` | `vm_stat` | Virtual memory statistics (different output format) |
|
|
95
|
+
| `vmstat` | `vm_stat` | Virtual memory statistics |
|
|
96
|
+
| `pgrep` | `pgrep` | Find processes by name |
|
|
97
|
+
| `pkill` | `pkill` | Kill processes by name |
|
|
98
|
+
| `uptime` | `uptime` | System uptime |
|
|
99
|
+
| `w` | `w` | Who is logged in |
|
|
100
|
+
| `watch` | Install via `brew install --quiet watch` | Periodic command execution |
|
|
101
|
+
| `kill` | `kill` | Send signals to processes |
|
|
102
|
+
|
|
103
|
+
#### Installation Steps (watch utility only)
|
|
104
|
+
|
|
105
|
+
The only procps utility not natively available on macOS is `watch`. Install it via Homebrew:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
brew install --quiet watch
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
The `--quiet` flag suppresses non-essential output for automation compatibility.
|
|
112
|
+
|
|
113
|
+
#### Verification
|
|
114
|
+
|
|
115
|
+
Verify native macOS utilities are available:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
ps --version 2>&1 | head -1 || ps aux | head -1
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Check the `watch` utility if installed:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
watch --version
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Expected output (version numbers may vary):
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
watch from procps-ng 4.0.4
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### Alternative: Activity Monitor
|
|
134
|
+
|
|
135
|
+
For graphical process monitoring, use Activity Monitor:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
open -a "Activity Monitor"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### Ubuntu/Debian (APT)
|
|
144
|
+
|
|
145
|
+
#### Prerequisites
|
|
146
|
+
|
|
147
|
+
- Ubuntu 18.04 LTS or later, or Debian 10 (Buster) or later
|
|
148
|
+
- sudo privileges
|
|
149
|
+
- Internet connectivity
|
|
150
|
+
|
|
151
|
+
procps is typically pre-installed on Ubuntu and Debian systems. The steps below ensure it is installed or update it to the latest version.
|
|
152
|
+
|
|
153
|
+
#### Installation Steps
|
|
154
|
+
|
|
155
|
+
Run the following command to install procps:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y procps
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully automated installation without prompts.
|
|
162
|
+
|
|
163
|
+
#### Verification
|
|
164
|
+
|
|
165
|
+
Confirm the installation succeeded by checking multiple utilities:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
ps --version
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Expected output (version numbers may vary):
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
ps from procps-ng 4.0.4
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Verify other key utilities:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
free --version
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Expected output:
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
free from procps-ng 4.0.4
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Test the utilities work correctly:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Show process list
|
|
193
|
+
ps aux | head -5
|
|
194
|
+
|
|
195
|
+
# Show memory usage
|
|
196
|
+
free -h
|
|
197
|
+
|
|
198
|
+
# Show system uptime
|
|
199
|
+
uptime
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
#### Troubleshooting
|
|
203
|
+
|
|
204
|
+
**Problem**: `E: Unable to locate package procps`
|
|
205
|
+
|
|
206
|
+
**Solution**: Update the package list first:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Problem**: `ps: command not found` after installation
|
|
213
|
+
|
|
214
|
+
**Solution**: The PATH may not include `/usr/bin`. Verify the installation location:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
which ps
|
|
218
|
+
dpkg -L procps | grep bin
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Problem**: Old version of procps
|
|
222
|
+
|
|
223
|
+
**Solution**: Ubuntu and Debian repositories maintain stable versions. The installed version depends on your distribution release. To check your version:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
apt-cache policy procps
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
### Raspberry Pi OS (APT)
|
|
232
|
+
|
|
233
|
+
#### Prerequisites
|
|
234
|
+
|
|
235
|
+
- Raspberry Pi OS (32-bit or 64-bit) - Bookworm or Bullseye
|
|
236
|
+
- Raspberry Pi 2 or later
|
|
237
|
+
- sudo privileges
|
|
238
|
+
- Internet connectivity
|
|
239
|
+
|
|
240
|
+
Raspberry Pi OS is based on Debian, so procps installation follows the same process as Ubuntu/Debian. procps is typically pre-installed on Raspberry Pi OS.
|
|
241
|
+
|
|
242
|
+
#### Installation Steps
|
|
243
|
+
|
|
244
|
+
Run the following command to install procps:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y procps
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully automated installation without prompts.
|
|
251
|
+
|
|
252
|
+
#### Verification
|
|
253
|
+
|
|
254
|
+
Confirm the installation succeeded:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
ps --version
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Expected output for ARM (version numbers may vary):
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
ps from procps-ng 4.0.4
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Verify your architecture:
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
uname -m
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Expected output: `aarch64` (64-bit) or `armv7l` (32-bit).
|
|
273
|
+
|
|
274
|
+
Test key utilities work correctly:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
# Show memory usage (useful for monitoring Pi resources)
|
|
278
|
+
free -h
|
|
279
|
+
|
|
280
|
+
# Show top processes by CPU
|
|
281
|
+
top -bn1 | head -15
|
|
282
|
+
|
|
283
|
+
# Show system load
|
|
284
|
+
uptime
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### Troubleshooting
|
|
288
|
+
|
|
289
|
+
**Problem**: `top` shows incorrect CPU count on multi-core Pi
|
|
290
|
+
|
|
291
|
+
**Solution**: This is expected behavior. Verify CPU count with:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
nproc
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Problem**: `free` shows very little available memory
|
|
298
|
+
|
|
299
|
+
**Solution**: On Raspberry Pi with limited RAM, this is normal. The kernel uses available memory for caching. Check the "available" column for actual usable memory:
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
free -h
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Problem**: Installation fails with disk space errors
|
|
306
|
+
|
|
307
|
+
**Solution**: Check available disk space and clean up if needed:
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
df -h
|
|
311
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove -y
|
|
312
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get clean
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
### Amazon Linux (DNF/YUM)
|
|
318
|
+
|
|
319
|
+
#### Prerequisites
|
|
320
|
+
|
|
321
|
+
- Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
|
|
322
|
+
- sudo privileges
|
|
323
|
+
- Internet connectivity
|
|
324
|
+
|
|
325
|
+
**Important**: On RHEL-based systems including Amazon Linux, the package is named `procps-ng` (next generation) rather than `procps`. Amazon Linux 2023 uses `dnf` as the package manager, while Amazon Linux 2 uses `yum`. AWS creates a symlink so `yum` commands also work on AL2023.
|
|
326
|
+
|
|
327
|
+
procps-ng is typically pre-installed on Amazon Linux.
|
|
328
|
+
|
|
329
|
+
#### Installation Steps
|
|
330
|
+
|
|
331
|
+
**For Amazon Linux 2023:**
|
|
332
|
+
|
|
333
|
+
Run the following command to install procps-ng:
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
sudo dnf install -y procps-ng
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**For Amazon Linux 2:**
|
|
340
|
+
|
|
341
|
+
Run the following command to install procps-ng:
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
sudo yum install -y procps-ng
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
The `-y` flag automatically confirms installation prompts, enabling non-interactive execution.
|
|
348
|
+
|
|
349
|
+
#### Verification
|
|
350
|
+
|
|
351
|
+
Confirm the installation succeeded:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
ps --version
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Expected output (version numbers may vary):
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
ps from procps-ng 3.3.17
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
Verify other utilities:
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
free --version
|
|
367
|
+
vmstat --version
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
Check which package provides the utilities:
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
rpm -qf /usr/bin/ps
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
Expected output: `procps-ng-<version>`
|
|
377
|
+
|
|
378
|
+
Test the utilities work correctly:
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
# Show memory in human-readable format
|
|
382
|
+
free -h
|
|
383
|
+
|
|
384
|
+
# Show virtual memory statistics
|
|
385
|
+
vmstat 1 3
|
|
386
|
+
|
|
387
|
+
# Show system uptime and load average
|
|
388
|
+
uptime
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
#### Troubleshooting
|
|
392
|
+
|
|
393
|
+
**Problem**: `No match for argument: procps`
|
|
394
|
+
|
|
395
|
+
**Solution**: On Amazon Linux, the package is named `procps-ng`, not `procps`:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
sudo dnf install -y procps-ng
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
**Problem**: `dnf: command not found` on Amazon Linux 2
|
|
402
|
+
|
|
403
|
+
**Solution**: Use `yum` instead of `dnf` on Amazon Linux 2:
|
|
404
|
+
|
|
405
|
+
```bash
|
|
406
|
+
sudo yum install -y procps-ng
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
**Problem**: Utilities are available but `--version` flag not recognized
|
|
410
|
+
|
|
411
|
+
**Solution**: Some older versions may not support `--version`. Test functionality directly:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
ps aux | head -5
|
|
415
|
+
free -m
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
### Windows (Chocolatey/winget)
|
|
421
|
+
|
|
422
|
+
#### Platform Compatibility Notice
|
|
423
|
+
|
|
424
|
+
procps is **not available on Windows**. The procps utilities are designed specifically for Linux and require the `/proc` filesystem, which does not exist on Windows. Windows uses a completely different process and memory management architecture.
|
|
425
|
+
|
|
426
|
+
#### Native Alternatives
|
|
427
|
+
|
|
428
|
+
Windows provides equivalent functionality through built-in tools and Microsoft Sysinternals utilities:
|
|
429
|
+
|
|
430
|
+
| procps Utility | Windows Equivalent | Description |
|
|
431
|
+
|----------------|-------------------|-------------|
|
|
432
|
+
| `ps` | `Get-Process` (PowerShell) or `tasklist` (CMD) | List running processes |
|
|
433
|
+
| `top` | Task Manager or `Get-Process \| Sort-Object CPU -Descending` | Interactive process viewer |
|
|
434
|
+
| `free` | `systeminfo` or `Get-CimInstance Win32_OperatingSystem` | Memory information |
|
|
435
|
+
| `vmstat` | `typeperf` or Performance Monitor | System statistics |
|
|
436
|
+
| `pgrep` | `Get-Process -Name <name>` | Find processes by name |
|
|
437
|
+
| `pkill` | `Stop-Process -Name <name>` | Kill processes by name |
|
|
438
|
+
| `uptime` | `systeminfo \| findstr "Boot Time"` or `(Get-CimInstance Win32_OperatingSystem).LastBootUpTime` | System uptime |
|
|
439
|
+
| `kill` | `taskkill /PID <pid>` or `Stop-Process -Id <pid>` | Kill process by PID |
|
|
440
|
+
|
|
441
|
+
#### Installation Steps (Sysinternals PsTools)
|
|
442
|
+
|
|
443
|
+
For command-line utilities similar to procps, install Microsoft Sysinternals PsTools:
|
|
444
|
+
|
|
445
|
+
```powershell
|
|
446
|
+
choco install pstools -y
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
The `-y` flag automatically confirms all prompts for non-interactive installation.
|
|
450
|
+
|
|
451
|
+
PsTools includes:
|
|
452
|
+
|
|
453
|
+
| Utility | Description |
|
|
454
|
+
|---------|-------------|
|
|
455
|
+
| `PsList` | List detailed process information (similar to `ps`) |
|
|
456
|
+
| `PsKill` | Kill processes by name or PID |
|
|
457
|
+
| `PsInfo` | List system information |
|
|
458
|
+
| `PsService` | View and control services |
|
|
459
|
+
| `PsExec` | Execute processes remotely |
|
|
460
|
+
|
|
461
|
+
#### Verification
|
|
462
|
+
|
|
463
|
+
Verify PsTools installation:
|
|
464
|
+
|
|
465
|
+
```powershell
|
|
466
|
+
pslist -?
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
Test native Windows process commands in PowerShell:
|
|
470
|
+
|
|
471
|
+
```powershell
|
|
472
|
+
# List all processes (similar to ps aux)
|
|
473
|
+
Get-Process | Select-Object -First 10
|
|
474
|
+
|
|
475
|
+
# Show memory information (similar to free)
|
|
476
|
+
Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory
|
|
477
|
+
|
|
478
|
+
# Show system uptime
|
|
479
|
+
(Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
Test native Windows process commands in Command Prompt:
|
|
483
|
+
|
|
484
|
+
```cmd
|
|
485
|
+
:: List all processes
|
|
486
|
+
tasklist
|
|
487
|
+
|
|
488
|
+
:: Show system information including memory
|
|
489
|
+
systeminfo | findstr /C:"Total Physical Memory" /C:"Available Physical Memory"
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
#### Troubleshooting
|
|
493
|
+
|
|
494
|
+
**Problem**: `choco` command not found
|
|
495
|
+
|
|
496
|
+
**Solution**: Install Chocolatey first. Run in an Administrator PowerShell:
|
|
497
|
+
|
|
498
|
+
```powershell
|
|
499
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
**Problem**: PsTools commands not found after installation
|
|
503
|
+
|
|
504
|
+
**Solution**: Open a new Command Prompt or PowerShell window for PATH updates to take effect.
|
|
505
|
+
|
|
506
|
+
**Problem**: Need full Linux procps compatibility
|
|
507
|
+
|
|
508
|
+
**Solution**: Use WSL (Windows Subsystem for Linux) to run actual procps utilities. See the WSL section below.
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
### WSL (Ubuntu)
|
|
513
|
+
|
|
514
|
+
#### Prerequisites
|
|
515
|
+
|
|
516
|
+
- Windows 10 version 2004 or higher, or Windows 11
|
|
517
|
+
- Windows Subsystem for Linux (WSL) with Ubuntu installed
|
|
518
|
+
- WSL 2 recommended for best performance
|
|
519
|
+
- sudo privileges within WSL
|
|
520
|
+
|
|
521
|
+
WSL provides a full Linux environment where procps works exactly as it does on native Linux, including access to the `/proc` filesystem.
|
|
522
|
+
|
|
523
|
+
#### Installation Steps
|
|
524
|
+
|
|
525
|
+
Open your WSL Ubuntu terminal and run:
|
|
526
|
+
|
|
527
|
+
```bash
|
|
528
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y procps
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully automated installation without prompts.
|
|
532
|
+
|
|
533
|
+
#### Verification
|
|
534
|
+
|
|
535
|
+
Confirm the installation succeeded:
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
ps --version
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
Expected output (version numbers may vary):
|
|
542
|
+
|
|
543
|
+
```
|
|
544
|
+
ps from procps-ng 4.0.4
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
Verify the `/proc` filesystem is available (it should be in WSL 2):
|
|
548
|
+
|
|
549
|
+
```bash
|
|
550
|
+
ls /proc | head -10
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
Test key utilities:
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
# Show memory usage
|
|
557
|
+
free -h
|
|
558
|
+
|
|
559
|
+
# Show process list
|
|
560
|
+
ps aux | head -5
|
|
561
|
+
|
|
562
|
+
# Show virtual memory statistics
|
|
563
|
+
vmstat 1 3
|
|
564
|
+
|
|
565
|
+
# Show system uptime
|
|
566
|
+
uptime
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
#### Troubleshooting
|
|
570
|
+
|
|
571
|
+
**Problem**: `E: Unable to locate package procps`
|
|
572
|
+
|
|
573
|
+
**Solution**: Update the package list first:
|
|
574
|
+
|
|
575
|
+
```bash
|
|
576
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
**Problem**: WSL itself is not installed
|
|
580
|
+
|
|
581
|
+
**Solution**: Install WSL from an Administrator PowerShell on Windows:
|
|
582
|
+
|
|
583
|
+
```powershell
|
|
584
|
+
wsl --install
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
Restart your computer after installation.
|
|
588
|
+
|
|
589
|
+
**Problem**: `/proc` filesystem shows limited information
|
|
590
|
+
|
|
591
|
+
**Solution**: WSL 2 provides better `/proc` compatibility than WSL 1. Check your WSL version:
|
|
592
|
+
|
|
593
|
+
```bash
|
|
594
|
+
# From WSL
|
|
595
|
+
cat /proc/version
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
Upgrade to WSL 2 if needed (from Windows PowerShell):
|
|
599
|
+
|
|
600
|
+
```powershell
|
|
601
|
+
wsl --set-version Ubuntu 2
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
**Problem**: `top` shows incorrect CPU/memory for Windows host
|
|
605
|
+
|
|
606
|
+
**Solution**: In WSL, procps utilities show information about the WSL virtual machine, not the Windows host. This is expected behavior. For Windows host information, use native Windows tools.
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
### Git Bash (Manual/Portable)
|
|
611
|
+
|
|
612
|
+
#### Platform Compatibility Notice
|
|
613
|
+
|
|
614
|
+
procps is **not available for Git Bash**. Git Bash provides a minimal Unix-like environment on Windows but does not include a `/proc` filesystem or Linux process management capabilities. procps utilities cannot function without `/proc`.
|
|
615
|
+
|
|
616
|
+
#### Native Alternatives
|
|
617
|
+
|
|
618
|
+
Git Bash can access Windows native commands. Use these alternatives:
|
|
619
|
+
|
|
620
|
+
| procps Utility | Git Bash Workaround | Notes |
|
|
621
|
+
|----------------|---------------------|-------|
|
|
622
|
+
| `ps` | `ps` (limited) or `tasklist.exe` | Git Bash includes a basic `ps` that shows bash processes |
|
|
623
|
+
| `top` | `tasklist.exe /V` | No interactive equivalent; use Task Manager |
|
|
624
|
+
| `free` | `systeminfo.exe \| grep Memory` | Different output format |
|
|
625
|
+
| `kill` | `kill` or `taskkill.exe` | Git Bash `kill` works for bash processes |
|
|
626
|
+
| `uptime` | No equivalent | Use `systeminfo.exe \| grep "Boot Time"` |
|
|
627
|
+
|
|
628
|
+
#### Installation Steps
|
|
629
|
+
|
|
630
|
+
No installation is possible. For full procps functionality on Windows, use one of these alternatives:
|
|
631
|
+
|
|
632
|
+
**Option 1: Use WSL (Recommended)**
|
|
633
|
+
|
|
634
|
+
WSL provides full Linux compatibility including procps. See the WSL section above.
|
|
635
|
+
|
|
636
|
+
**Option 2: Use Windows native tools**
|
|
637
|
+
|
|
638
|
+
Access Windows commands directly from Git Bash:
|
|
639
|
+
|
|
640
|
+
```bash
|
|
641
|
+
# List processes
|
|
642
|
+
tasklist.exe
|
|
643
|
+
|
|
644
|
+
# Kill a process by name
|
|
645
|
+
taskkill.exe /IM notepad.exe /F
|
|
646
|
+
|
|
647
|
+
# Show system information
|
|
648
|
+
systeminfo.exe
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
**Option 3: Install Sysinternals PsTools on Windows**
|
|
652
|
+
|
|
653
|
+
Install PsTools via Chocolatey (see Windows section), then access from Git Bash:
|
|
654
|
+
|
|
655
|
+
```bash
|
|
656
|
+
pslist.exe
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
#### Verification
|
|
660
|
+
|
|
661
|
+
Verify the limited `ps` available in Git Bash:
|
|
662
|
+
|
|
663
|
+
```bash
|
|
664
|
+
ps
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
This shows only processes running within the Git Bash session.
|
|
668
|
+
|
|
669
|
+
For Windows process information, use:
|
|
670
|
+
|
|
671
|
+
```bash
|
|
672
|
+
tasklist.exe | head -10
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
#### Troubleshooting
|
|
676
|
+
|
|
677
|
+
**Problem**: `ps aux` returns empty or limited output
|
|
678
|
+
|
|
679
|
+
**Solution**: This is expected. Git Bash's `ps` only shows processes in the current bash session. Use `tasklist.exe` for all Windows processes.
|
|
680
|
+
|
|
681
|
+
**Problem**: Need full Linux process utilities
|
|
682
|
+
|
|
683
|
+
**Solution**: Use WSL instead of Git Bash. WSL provides a complete Linux environment with full procps support.
|
|
684
|
+
|
|
685
|
+
---
|
|
686
|
+
|
|
687
|
+
## Post-Installation Configuration
|
|
688
|
+
|
|
689
|
+
procps utilities work out of the box with sensible defaults. The following optional configurations may be useful:
|
|
690
|
+
|
|
691
|
+
### Customize top Display
|
|
692
|
+
|
|
693
|
+
Create a configuration file for `top` to remember your preferred settings:
|
|
694
|
+
|
|
695
|
+
```bash
|
|
696
|
+
# Run top, configure as desired (press 'W' to write config)
|
|
697
|
+
top
|
|
698
|
+
# Press 'z' for color
|
|
699
|
+
# Press 'c' for full command line
|
|
700
|
+
# Press '1' to show individual CPUs
|
|
701
|
+
# Press 'Shift+W' to save configuration
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
The configuration is saved to `~/.config/procps/toprc` or `~/.toprc`.
|
|
705
|
+
|
|
706
|
+
### Create Aliases for Common Commands
|
|
707
|
+
|
|
708
|
+
Add useful aliases to your shell configuration (`~/.bashrc` or `~/.zshrc`):
|
|
709
|
+
|
|
710
|
+
```bash
|
|
711
|
+
# Memory usage in human-readable format
|
|
712
|
+
alias mem='free -h'
|
|
713
|
+
|
|
714
|
+
# Show top 10 processes by CPU usage
|
|
715
|
+
alias topcpu='ps aux --sort=-%cpu | head -11'
|
|
716
|
+
|
|
717
|
+
# Show top 10 processes by memory usage
|
|
718
|
+
alias topmem='ps aux --sort=-%mem | head -11'
|
|
719
|
+
|
|
720
|
+
# Quick system overview
|
|
721
|
+
alias sysinfo='echo "=== Uptime ===" && uptime && echo "=== Memory ===" && free -h && echo "=== Load ===" && vmstat 1 1'
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
Reload your shell configuration:
|
|
725
|
+
|
|
726
|
+
```bash
|
|
727
|
+
source ~/.bashrc
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
### Configure sysctl Parameters (Advanced)
|
|
731
|
+
|
|
732
|
+
The `sysctl` utility (part of procps) can configure kernel parameters. Common configurations:
|
|
733
|
+
|
|
734
|
+
```bash
|
|
735
|
+
# View all current settings
|
|
736
|
+
sysctl -a 2>/dev/null | head -20
|
|
737
|
+
|
|
738
|
+
# View a specific setting
|
|
739
|
+
sysctl vm.swappiness
|
|
740
|
+
|
|
741
|
+
# Temporarily change a setting (until reboot)
|
|
742
|
+
sudo sysctl -w vm.swappiness=10
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
For permanent changes, create a file in `/etc/sysctl.d/`:
|
|
746
|
+
|
|
747
|
+
```bash
|
|
748
|
+
# Example: reduce swappiness
|
|
749
|
+
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-custom.conf
|
|
750
|
+
sudo sysctl --system
|
|
751
|
+
```
|
|
752
|
+
|
|
753
|
+
---
|
|
754
|
+
|
|
755
|
+
## Common Issues
|
|
756
|
+
|
|
757
|
+
### Issue: "ps: command not found"
|
|
758
|
+
|
|
759
|
+
**Symptoms**: Running `ps` returns "command not found" even on Linux.
|
|
760
|
+
|
|
761
|
+
**Solution**: procps may not be installed (rare on standard installations). Install it:
|
|
762
|
+
|
|
763
|
+
```bash
|
|
764
|
+
# Ubuntu/Debian/Raspberry Pi OS/WSL
|
|
765
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y procps
|
|
766
|
+
|
|
767
|
+
# Amazon Linux
|
|
768
|
+
sudo dnf install -y procps-ng
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
### Issue: "free" Shows Different Values Than Expected
|
|
772
|
+
|
|
773
|
+
**Symptoms**: The `free` command shows low "free" memory even with no applications running.
|
|
774
|
+
|
|
775
|
+
**Explanation**: This is normal Linux behavior. Linux uses available memory for disk caching to improve performance. Look at the "available" column (not "free") to see memory actually available for applications:
|
|
776
|
+
|
|
777
|
+
```bash
|
|
778
|
+
free -h
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
The "available" column shows memory that can be allocated to applications (including reclaimable cache).
|
|
782
|
+
|
|
783
|
+
### Issue: "top" Consumes High CPU
|
|
784
|
+
|
|
785
|
+
**Symptoms**: The `top` command itself uses significant CPU.
|
|
786
|
+
|
|
787
|
+
**Solution**: Increase the update interval to reduce CPU usage:
|
|
788
|
+
|
|
789
|
+
```bash
|
|
790
|
+
# Update every 5 seconds instead of default 3
|
|
791
|
+
top -d 5
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
Or set a permanent default in `~/.toprc`.
|
|
795
|
+
|
|
796
|
+
### Issue: "vmstat" Shows Zeros for All Values
|
|
797
|
+
|
|
798
|
+
**Symptoms**: Running `vmstat` shows all zeros.
|
|
799
|
+
|
|
800
|
+
**Solution**: Run `vmstat` with an interval to see live statistics:
|
|
801
|
+
|
|
802
|
+
```bash
|
|
803
|
+
# Show statistics every 1 second, 5 times
|
|
804
|
+
vmstat 1 5
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
The first line shows averages since boot; subsequent lines show current activity.
|
|
808
|
+
|
|
809
|
+
### Issue: "pgrep" or "pkill" Not Matching Processes
|
|
810
|
+
|
|
811
|
+
**Symptoms**: `pgrep processname` returns nothing even though the process is running.
|
|
812
|
+
|
|
813
|
+
**Solution**: pgrep matches against the process name (the executable name), not the full command line. To match against the full command line, use `-f`:
|
|
814
|
+
|
|
815
|
+
```bash
|
|
816
|
+
# Match executable name only
|
|
817
|
+
pgrep nginx
|
|
818
|
+
|
|
819
|
+
# Match full command line
|
|
820
|
+
pgrep -f "nginx -c /etc/nginx/nginx.conf"
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
### Issue: Permission Denied Reading /proc Files
|
|
824
|
+
|
|
825
|
+
**Symptoms**: Some utilities show "Permission denied" or incomplete information.
|
|
826
|
+
|
|
827
|
+
**Solution**: Certain `/proc` entries require root privileges. Run with `sudo`:
|
|
828
|
+
|
|
829
|
+
```bash
|
|
830
|
+
sudo slabtop
|
|
831
|
+
sudo vmstat -m
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
---
|
|
835
|
+
|
|
836
|
+
## References
|
|
837
|
+
|
|
838
|
+
- [procps-ng Official GitLab Repository](https://gitlab.com/procps-ng/procps)
|
|
839
|
+
- [procps-ng Releases](https://gitlab.com/procps-ng/procps/-/releases)
|
|
840
|
+
- [Ubuntu procps Package](https://packages.ubuntu.com/search?keywords=procps)
|
|
841
|
+
- [Debian procps Package](https://packages.debian.org/sid/procps)
|
|
842
|
+
- [Fedora procps-ng Package](https://packages.fedoraproject.org/pkgs/procps-ng/procps-ng/)
|
|
843
|
+
- [Red Hat procps Documentation](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/6.6_technical_notes/procps)
|
|
844
|
+
- [Linux /proc Filesystem Documentation](https://www.kernel.org/doc/html/latest/filesystems/proc.html)
|
|
845
|
+
- [ps(1) Manual Page](https://man7.org/linux/man-pages/man1/ps.1.html)
|
|
846
|
+
- [top(1) Manual Page](https://man7.org/linux/man-pages/man1/top.1.html)
|
|
847
|
+
- [free(1) Manual Page](https://man7.org/linux/man-pages/man1/free.1.html)
|
|
848
|
+
- [vmstat(8) Manual Page](https://man7.org/linux/man-pages/man8/vmstat.8.html)
|
|
849
|
+
- [Microsoft Sysinternals PsTools](https://learn.microsoft.com/en-us/sysinternals/downloads/pstools)
|
|
850
|
+
- [Microsoft Process Explorer](https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer)
|
|
851
|
+
- [Homebrew watch Formula](https://formulae.brew.sh/formula/watch)
|