Languages of Linux

Like the title says, software languages you use in Linux.

I have been nearly 100% full time on linux mint for about a year now, and I would like to get gud. I have picked up Linux+/LPIC-1 and RHCSA/RHCE books for general os knowledge, but I would like to know what languages(and books) I should plan on learning well to become a linux admin wizard.

I have seen recommendations for a printed copy of gnu coreutils manual, bash, awk, sed, fileutils,

i have also seen ruby, perl, and python recommended but those are pretty removed from linux itself imo.

What say you, Jow Forums?

Attached: scripting languages.png (600x400, 33K)

Other urls found in this thread:

coq.inria.fr/
isabelle.in.tum.de/
en.wikipedia.org/wiki/Inetd
en.wikipedia.org/wiki/VHDL
julialang.org/
nixos.org/nix/manual/
amazon.com/gp/product/111898384X
amazon.com/gp/product/1491904615
amazon.com/gp/product/1939824028
amazon.com/gp/product/1787126951
amazon.com/gp/product/1521822808
amazon.com/gp/product/149197768X
amazon.com/gp/product/1974431479
amazon.com/gp/product/0131103628
amazon.com/gp/product/0321958322
wiki.bash-hackers.org/scripting/tutoriallist
twitter.com/SFWRedditVideos

>languages you use in Linux
nix, C, Haskell, OCaml, bash, awk, C++, Coq, Isabelle/HOL, VHDL, RISC-V asm, x64 asm
>I should plan on learning well to become a linux admin wizard
perl, sh, bash, awk, systemd, python, ansible, docker, selinux, inetd (still used because systemd sockets apparently suck, or something)
>recommendations for a printed copy of man pages
useless

The one true language of unix-like systems is C.
That's not going to make you a "linux admin wizard", though.

tyvm for thorough answer. again, im pretty new, would you mind telling me which would make the most sense to learn first?
>useless
eh, debateable. i actually like having a physical copy of a book or manual rather than staring a screen to read masses of text.

I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux.

>which would make the most sense to learn first?
sh, bash, systemd (if you want to be employable asap), inetd, selinux, python
learning sh includes learning most basic coreutils and basic philosophy of linux (network namespaces, fs, ...)
>debateable
absolutely not
man is without any doubt much more efficient than paper
i'd agree physical books are better for learning and when you can't find a concise source easily, but memorization isn't learning and there's nothing that beats searching for something in man
if you have fetish for paper, get some proper linux book that will actually contain useful stuff that you can't easily find on the computer - linux bible, linux programming interface (useful for sysadmins too, it explains many internals of kernel)

bump for interest. lots of nice info here so far.

anyone feel like giving any shout outs to any books on linux/shell/scripting that they thought were really good(or bad)?

For me: bash, sed, awk, C, and Ruby.

Python is dying as a systems scripting language, its a bad language and has shitty libraries.

Go can actually be used as a scripting language, if you compile with 'go run filename.go' then it deletes the executable when its done. The nice thing about Go is it blurs the line between scripting and creating permanent utilities.

The fish shell should be used instead of bash. bash is really awful, fish fixes most of the problems with bash. There are no books or online courses on how to use bash but the docs are very easy to understand.

Ruby is actually a good systems administration language, there are a lot of books on how to do systems scripting in Ruby, even more that Python.

Julia is a good option. Even though its designed for data science its very adept as systems scripting, a lot of library ideas where taken from Perl.

Attached: tJlGDwAAQBAJ.jpg (244x300, 13K)

What the fuck is DevOps?
For the love of God no buzzwords, please.

its systems administration in the context of a software development company

ty for suggestions

>OCaml
I thought macfags used this?

can anyone confirm im correct below, im unfamiliar with them and unsure if what im finding online is relevant.

Coq = coq.inria.fr/
Isabelle/HOL = isabelle.in.tum.de/
inetd = en.wikipedia.org/wiki/Inetd
VHDL = en.wikipedia.org/wiki/VHDL
Julia= julialang.org/
nix = nixos.org/nix/manual/
sh = ???

DevOps is the new strategy that management employs to make coders do all the SysAdmin work so they can cut back on staff.

If you're lucky your management will also adopt Agile so you can meet 100 times a fucking day and hold hands and sing "He's got the hold world in his hands, he's got the whole wide world in his hands".

Ever since they started letting Pajeets in, it has become a slave environment for everyone. Those Street Shitters will be the end of the IT/CS Industry.

So far some shell script languages/programs suggested for a linux admin: bash, awk, sed, sh, systemd, selinux, inetd, Docker

system/server scripting languages: python, perl, ruby

programming languages: C, C++

everything else listed in the thread seemed pretty specific to a certain job and not a general linux admin skill you can take to any job.

I did search amazon for books on everything listed in the thread though. what do you think of my short list begginer book for each subject?

bash: amazon.com/gp/product/111898384X
awk: amazon.com/gp/product/1491904615
sed: amazon.com/gp/product/1939824028
selinux: amazon.com/gp/product/1787126951
Docker: amazon.com/gp/product/1521822808
Perl: amazon.com/gp/product/149197768X
Python: amazon.com/gp/product/1974431479
C: amazon.com/gp/product/0131103628
C++: amazon.com/gp/product/0321958322

LF help on a ruby book too please.

>Haskell
>OCaml
>VHDL
what is this sourcery?
>we're going to play a game called, who is user, and what does he do?
You sound like you have an interesting life user.

bummp for interest

You don't need to program to be an admin. Maybe just bash or python or something else to write some scripts.
> printed copy of man
Lmao what the fuck

its essentially the automation of IT operations and its integration in the development workflow

>I thought macfags used this?
You thought wrong. French fucks use it in research a lot (corporate and academia).
>Julia
I didn't mention it. Because it sucks.
>sh
Bourne shell
You really do have a hard-on for books.
For C, you'd better get King these days or Jens Gustedt's Modern C (he'll update it for c2x).
For C++, there are no good books, it's all bullshit artistry that tries to tell you that using absolutely every feature of C++ is going to solve all your problems, never listen to Myers. Learn C first and use C++ features that solve your problems. C++ isn't good application language anyway and it sucks as a system language, i've only ever used C++ because it's easier to hire devs for than C.
>what is this sourcery?
Automagic formal verification of custom CPU and ASIC designs.
>what does he do?
Not sysadmin, though i manage all the machines our team uses (we run nixos).

Why does Julia suck? Seems like a nice lang for the CS and theoretical maths nerds to write up their garbage and not take 3 mothns for something that can be done in a week.

Because anything Julia does, something else CS people already know does better.

Is Go a scripting language if when you run a .go file it compiles it, runs it and when it ends running it deletes the binary

>You really do have a hard-on for books.
yes. i much much prefer having a hard copy in my hand. idk why but i find reading a book way easier on my eyes than a screen, i also get more engaged in what im reading when a book is in my hand.
>bourne shell
ty. it was getting laughable trying to use "sh" as a search term and hope i was getting close.

so bash shell seems the most popular. 1 user mentioned fish shell, and another mentions bourne shell now. i have heard of korn shell too. how do i navigate these? should i just learn bash first since its ubiquitous and so i can appreciate the differences of the other shells?

>bash shell seems the most popular
It's most popular interactive shell. But if you want your scripts to be portable, you have to write them without bash extensions.
Learn bourne shell since it's *the* shell, then learn bash extensions.

I have macos, which is technically Linux.


I mostly do HTML and xml.

>Learn bourne shell since it's *the* shell, then learn bash extensions.
oh ok ty ty, i thought bash was *the* shell. curious the only books on amzn for bourne are from the 90s, and bash has plenty from this decade. =/

Most distributions have bash, but relying on it is foolish. Every distribution has a shell that implements at least bourne shell.
You won't find anything on bourne shell from this millenium because it's been stable since Unix 7 and there's really not much to write about.

>so bash shell seems the most popular. 1 user mentioned fish shell, and another mentions bourne shell now. i have heard of korn shell too. how do i navigate these? should i just learn bash first since its ubiquitous and so i can appreciate the differences of the other shells?
Just use a shell that makes you most productive, dont waste your time with (((portability))), the fact that some guy actually expects you to learn bourne shell shows just how far sys admins have to go to make bash work. bourne/bash is very quirky where you spend more of your time trying to deal with edige cases then you do learning syntax. If you dont believe me take a look at the official recommended tutorials of the #bash IRC channel on freenode:
wiki.bash-hackers.org/scripting/tutoriallist

bash is so weird you cant even trust most tutorials on it. So my recommendation is stop wasting your time trying to learn something that is inherently broken and just learn the fish shell. Im going to assume youre going to do all your work on your own computer or some computer you have physical control of so this "portability" bullshit is a total waste of your time

>(((portability)))
Or, how to write the same script 5 times over just because you're too dumb to do it properly the first time.
The absolute state of sysadmins in anno domini MMXVIII.

>because you're too dumb to do it properly the first time.
Ive already posted evidence there is no (((properly))) for bash, you read those tutorials and you see that bash is a treadmill for lemmings, enjoy writing in bourne shell just to get your scripts to work

>there is no (((properly))) for bash
That's why you use bash extension only for one-off machine-specific scripts. For anything that you suspect will ned to run on multiple machines, you use Bourne shell which has very specific notion of properly.

>(((portability)))
why is portabilitiy a jew plot?

>I have been nearly 100% full time on linux mint
babby's first linux

go learn c, faggot

>babby's first linux
I know, but it has helped show me that i can go a year without windows. i should be able to keep going.

>go learn c, faggot
i would like to maybe learn C one day but its pretty low on my priority list.

i want to learn how to be a wizard at using linux, not creating it.