What scripting languages come out of the box on Debian 12?
The article discusses pre-installed scripting languages in Debian 12: bash, Python 3, awk, sed, and Perl. Emphasizes convenience for offline work, ease of script transfer, and benefits of learning Python.
Read original articleThe article discusses the scripting languages that come pre-installed on Debian 12. The author mentions bash, Python 3, awk, sed, and Perl as languages available out of the box. The author highlights the convenience of having these languages pre-installed, especially for offline work or on non-internet-connected systems. They emphasize the ease of transferring scripts using these languages as long as they rely on standard libraries. The article also touches on the importance of considering default language installations for future reference and the benefits of learning Python as a first programming language. Overall, the author suggests that having these scripting languages readily available in Debian 12 can simplify tasks and enhance productivity, particularly in certain working environments.
Related
The Prototype's Language
The evolution of programming languages in payments technology sector is discussed, highlighting the shift from COBOL to Java and now to Python for its speed and adaptability. Language choice impacts developers and work quality.
Is 2024 the year of Windows on the Desktop?
In 2024, the author reviews Windows 11, highlighting challenges like limited hardware support, lack of installation control, manual driver search, slow updates, and UI lag. They compare favorably to Linux distributions.
Avoiding Emacs Bankruptcy
Avoid "Emacs bankruptcy" by choosing efficient packages, deleting unnecessary configurations, and focusing on Emacs's core benefits. Prioritize power-to-weight ratio to prevent slowdowns and maintenance issues. Regularly reassess for a streamlined setup.
Ruby: A great language for shell scripts
Ruby is praised for shell scripting due to its features like calling external commands, handling status codes, using types, functional constructs, regex matching, threading, and file operations. It's recommended for complex scripts alongside Bash.
Start all of your commands with a comma (2009)
The article discusses creating a ~/bin/ directory in Unix to store custom commands, avoiding name collisions with system commands by prefixing custom commands with a comma. This technique ensures unique, easily accessible commands.
But it is.
Perl and awk one liners are very common. Bash is used everywhere you have the (controversial) `sudo curl .. | bash -` install method.
Ansible, if I'm not mistaken, requires python3 installed on remote hosts.
If your environments are homogeneous enough, and you don't have a large matrix of operating systems, you should definitely use this advantage.
The troubles start when you have very heterogeneous environment, custom or hardened Linux distros and etc.
It might seem like this is not being utilised as much nowadays, but I suspect it's because the "classical" Linux sysadmin roles are rare and you don't hear about it as much.
The author laments the decline of such knowledge, but the proliferation of containers, combined with the marketing efforts of the large cloud providers has reduced the number of people who work with servers directly.
I should say that this knowledge can be useful in certain niche situations, though. For example, I recently learned that GitHub Actions pulls in a basic set of utilities by using complicated distro detection[1], and Gitlab runners similarly pulls in a Docker image with git just to clone a repository!
Instead, the proper way to address this situation would be to compile static binaries, that, by their very nature, become distribution agnostic. The only reason I assume this wasn't pursued, I assume, would be that the developers working on this weren't even aware this was an option.
It's the reason I've been maintaining a small set of packages[2] that I mount into every CI container for my personal projects. I'm also quite hopeful about the cosmopolitan project[3] that builds fat binaries which can bridge this gap, although as I discovered, some containers even lack tools like gzip (which cosmopolitan depends on), so maybe static binaries it is.
[1] https://www.youtube.com/watch?v=9qljpi5jiMQ
$ apt-cache rdepends --installed sed
sed
Reverse Depends:
xml-core
fuse3
Anyway, sh, awk and sed are there because it is mandatory: https://en.wikipedia.org/wiki/List_of_POSIX_commandsPerl and Python seems to support a lot of OS userland.
If you have GNOME, you probably have the gjs command too. It's a JavaScript interpreter.
I can’t recall if it’s part of Debian base though.
Being sent down into the field, rescuing whatever random server used by a customer, meant being able to use whatever was there, and between ed and vi, better vi.
I remember I used to use Debian instead of Ubuntu b/c a minimal install didn't include Python
If they count sed, they should definitely count vimscript !
The only one I can think of is TypeScript where it builds source maps to help debug the underlying JavaScript without having to see it.
Plan on installing your own so that you can control versions, libraries, and packages.
(Yes, this post is about "in extremis" dev where you may not be able to do this. Still.)
Related
The Prototype's Language
The evolution of programming languages in payments technology sector is discussed, highlighting the shift from COBOL to Java and now to Python for its speed and adaptability. Language choice impacts developers and work quality.
Is 2024 the year of Windows on the Desktop?
In 2024, the author reviews Windows 11, highlighting challenges like limited hardware support, lack of installation control, manual driver search, slow updates, and UI lag. They compare favorably to Linux distributions.
Avoiding Emacs Bankruptcy
Avoid "Emacs bankruptcy" by choosing efficient packages, deleting unnecessary configurations, and focusing on Emacs's core benefits. Prioritize power-to-weight ratio to prevent slowdowns and maintenance issues. Regularly reassess for a streamlined setup.
Ruby: A great language for shell scripts
Ruby is praised for shell scripting due to its features like calling external commands, handling status codes, using types, functional constructs, regex matching, threading, and file operations. It's recommended for complex scripts alongside Bash.
Start all of your commands with a comma (2009)
The article discusses creating a ~/bin/ directory in Unix to store custom commands, avoiding name collisions with system commands by prefixing custom commands with a comma. This technique ensures unique, easily accessible commands.