This post shares some ideas about working with cronjobs, to help make common tasks more easy for both junior and senior sysadmins.
This is choose, a human-friendly and fast alternative to cut and (sometimes) awk
Features
terse field selection syntax similar to Python's list slices
negative indexing from end of line
optional start/end index
zero-indexed
reverse ranges
slightly faster than cut for sufficiently long inputs, much faster than awk
regular expression field separators using Rust's regex syntax
Rationale
The AWK programming language is designed for text processing and is extremely capable in this endeavor. However, the awk command is not ideal for rapid shell use, with its requisite quoting of a line wrapped in curly braces, even for the simplest of programs:
awk '{print $1}'
Likewise, cut is far from ideal for rapid shell use, because of its confusing syntax. Field separators and ranges are just plain difficult to get right on the first try.
It is for these reasons that I present to you choose. It is not meant to be a drop-in or complete replacement for either of the aforementioned tools, but rather a simple and intuitive tool to reach for when the basics of awk or cut will do, but the overhead of getting them to behave should not be necessary.
This is not a fork. This is a repository of scripts to automatically build Microsoft's vscode repository into freely-licensed binaries with a community-driven default configuration.
This tool is a rewrite of ngxtop to make it easier to install and hopefully run faster. For those unfamiliar with the ngxtop, it is a tool that helps you parse NGINX access logs and print various statistics from them regardless of format. It is currently not as feature complete as the original version but it should have enough functionality to be usable.
Whatfiles is a Linux utility that logs what files another program reads/writes/creates/deletes on your system. It traces any new processes and threads that are created by the targeted process as well.
Rationale:
I've long been frustrated at the lack of a simple utility to see which files a process touches from main() to exit. Whether you don't trust a software vendor or are concerned about malware, it's important to be able to know what a program or installer does to your system. lsof only observes a moment in time and strace is large and somewhat complicated.
These are great tools and essential to many system administrators' workflows. However, in recent years, the open source community has developed alternative tools that offer additional benefits. Some are just eye candy, but others greatly improve usability, making them a great choice to use on modern systems. These include the following five alternatives to the standard Linux command-line tools.
vgrep is a pager for grep, git-grep, ripgrep and similar grep implementations, and allows for opening the indexed file locations in a user-specified editor such as vim or emacs. vgrep is inspired by the ancient cgvg scripts but extended to perform further operations such as listing statistics of files and directory trees or showing the context lines before and after the matches. vgrep runs on Linux, Windows and Mac OS.
Bach is a Bash testing framework, can be used to test scripts that contain dangerous commands like rm -rf /. No surprises, no pain.
But [Zonglin Li] has recently wrapped up a project which shows that e-ink has at least one more use case: personal calendars. You can get way with only updating the screen once a day so the refresh rate won’t matter, and the rest of the time it’s going to be static anyway so you might as well enjoy the energy savings of leaving the screen off. With a Raspberry Pi behind the scenes pulling data from the Internet, it can populate the calendar with everything from your personal schedule to when your favorite podcast drops.
Your terminal can display color, but most diff tools don't make good use of it. By highlighting changes, icdiff can show you the differences between similar files without getting in the way. This is especially helpful for identifying and understanding small changes within existing lines.
Instead of trying to be a diff replacement for all circumstances, the goal of icdiff is to be a tool you can reach for to get a better picture of what changed when it's not immediately obvious from diff.
Ohayou(おはよう), HTTP load generator, inspired by rakyll/hey with tui animation
TIL: which in Shellscripts sollte vermieden werden. Es ist inkonsistent, unvollständig, nicht plattform-/shellübergreifend und noch nicht mal in POSIX. Stattdessen bietet sich command an, also z.B. command -v tmux.
https://unix.stackexchange.com/questions/85249/why-not-use-which-what-to-use-then/85250#85250
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
Ever tried comparing MySQL's my.cnf from a Debian and a Gentoo machine with diff(1) without going crazy?
diff(1) is an awesome tool, you use it (or similar implementations like git diff, svn diff etc) every day when dealing with code. But configuration files aren't code. Indentation often does not matter (yeah, there is diff -w and yeah, people use YAML for configs), order of settings does not matter and comments are just beautiful noise.
How?
cfgdiff will try to parse your configuration files, fetching all the relevant keys and values from them and then pretty-printing them in the original format. These results are then diffed and the diff is shown to you.
• With --indicator (or -q or 'set indicator') nano will show a kind
of scrollbar on the righthand side of the screen to indicate where
in the buffer the viewport is located and how much it covers.
• With <Alt+Insert> any line can be "tagged" with an anchor, and
<Alt+PageUp> and <Alt+PageDown> will jump to the nearest anchor.
When using line numbers, an anchor is shown as "+" in the margin.
• The Execute Command prompt is now directly accessible from the
main menu (with ^T, replacing the Spell Checker). The Linter,
Formatter, Spell Checker, Full Justification, Suspension, and
Cut-Till-End functions are available in this menu too.
• On terminals that support at least 256 colors, nine new color
names are available: pink, purple, mauve, lagoon, mint, lime,
peach, orange, and latte. These do not have lighter versions.
• For the color names red, green, blue, yellow, cyan, magenta,
white, and black, the prefix 'light' gives a brighter color.
Prefix 'bright' is deprecated, as it means both bold AND light.
• All color names can be preceded with "bold," and/or "italic,"
(in that order) to get a bold and/or italic typeface.
• With --bookstyle (or -O or 'set bookstyle') nano considers any
line that begins with whitespace as the start of a paragraph.
• Refreshing the screen with ^L now works in every menu.
• In the main menu, ^L also centers the line with the cursor.
• Toggling the help lines with M-X now works in all menus except
in the help viewer and the linter.
• At a filename prompt, the first <Tab> lists the possibilities,
and these are listed near the bottom instead of near the top.
• Bindable function 'curpos' has been renamed to 'location'.
• Long option --tempfile has been renamed to --saveonexit.
• Short option -S is now a synonym of --softwrap.
• The New Buffer toggle (M-F) has become non-persistent. Options
--multibuffer and 'set multibuffer' still make it default to on.
• Backup files will retain their group ownership (when possible).
• Data is synced to disk before "... lines written" is shown.
• The raw escape sequences for F13 to F16 are no longer recognized.
• Distro-specific syntaxes, and syntaxes of less common languages,
have been moved down to subdirectory syntax/extra/. The affected
distros and others may wish to move wanted syntaxes one level up.
• Syntaxes for Markdown, Haskell, and Ada were added.
Rewritten in Rust: Modern Alternatives of Command-Line Tools
https://zaiste.net/posts/shell-commands-rust/
Here's another iteration on the Zero Terminal projects I've been working on for a few years. For those of you who haven't seen them, I've been trying to design the most usable all in one Pi Zero computer out there.
This version departs a little from the previous ones, as it is more focused on modularity, and forgoes a keyboard as standard, though it is possible to add one, as I'll show you in a bit. The goal here was to create something very versatile, allowing for all sorts of use cases to unlock the Zero's potential. Anyways, let's take a look at it.
I have been running a full IBM System/370 Mainframe on a $20 Raspberry Pi Zero for ~5 months. Thousands of lines of COBOL and HLASM running flawless. Tested an entire bank’s mainframe COBOL on it.
Since 2012, the Raspberry Pi nano computer has become an increasingly important part of the DIY and « maker » community. The increase in power of the Raspberry Pi over the years offers very interesting possibilities for radio amateurs. Indeed, it allows not to permanently monopolize a PC in the decoding of frames with software like WSJT-X, FLDIGI, etc…, without forgetting the possibility to control the Raspberry Pi remotely and thus to be able to work outside the radio shack as I can sometimes do on my couch. Moreover, this nano computer is now widely used in any Hotspot (DMR or D-STAR).
Researchers from Intel Labs have developed an open-source 3D printed smart robot that it is possible to build for less than $50.
Once combined with a modern smartphone, the additive bot is able to navigate autonomously, and its real-time sensing capabilities enable it to conduct recon tasks such as following people. The PLA-based Openbot has also been designed to be easy to build too, and its STL files have been made freely available online. By making their design public, the researchers hope that creators will tinker with and improve their robot to continue developing new applications for it in the future.