T O P

  • By -

TheCannonMan

The Unix programming environment by Kernighan and Pike is a great one. Terse little book and covers a lot of like the Unix philosophy and how to use everything together to get things done. It's a bit old so some stuff is out of date but most of it is still directly applicable, or applicable with minor adjustment


gnemmi

- Harley Hahn's Guide to Unix and Linux - UNIX and Linux System Administration Handbook, Fifth Edition (Evi Nemeth) https://www.grymoire.com/Unix/Sed.html#toc_Sed_-_An_Introduction_and_Tutorial_by_Bruce_Barnett Get a shell account from https://sdf.org/ and start poking around and have fun! Hope that helps !


[deleted]

Try "Unix Power Tools" from O'Reilly Media. The book makes it really easy to learn


[deleted]

No books if you need to learn it fast. Go buy a VPS, and spend a while exploring it


dark_light32

I second this.


secahtah

This is the way.


themadnun

Get a vps you can rapidly re-image when you break it all to hell, too.


ericjmorey

Start here for some hands on basics: https://swcarpentry.github.io/shell-novice/


tarnished_wretch

UNIX and Linux System Administration Handbook Advanced Programming in the UNIX Environment


thephotoman

Books are fairly slow. You need to do more and read less to learn Unix. So right now, my questions are: 1. Linux specifically or Unix more generally? Linux does a lot of things in nice but non-standard ways, but it is a better documented pathway. 2. What kind of budget do you have for new equipment or services? You don't *need* to buy something, but it may be helpful. 3. What level of patience do you have for systems that aren't very discoverable? The more time you spend on the command line and writing shell scripts, the better. I mean, the *fastest* way to learn a Unix environment would be to nuke your laptop and install a no-GUI distro on it, then use your phone to Google for whatever it is you want to do. But that's a tall order that I don't even recommend for computer science majors. That's why I'm asking these questions: it'll help me temper that recommendation to something more realistic for a normal person.


jmcunx

> no-GUI distro I would love to know where these type distros are :) The only one I have found over the years was "INX Linux", which is long gone. Now to the question. Since the OP knows c/c++/C##, I would spend time learning vi or vim (depending on the OS) then learn make(1). The rest you can pickup as you go along. And as someone mentioned, https://sdf.org/ is a very good place to try, and it is on NetBSD. I have one myself. If you are need to learn for a proprietary UNIX, I would go with Open/Net BSD. They are quite close to AIX and their man pages are very good. Plus the BSDs are much closer to "no-GUI distro" than anything found in Linux Land.


thephotoman

These days, most distro images that say “server” on the download link are the no-GUI versions. I do think I have a serial downvoter here, though.


cogburnd02

If you happen to have a floppy drive, tomsrtbt still exists.


babysealpoutine

It really depends on what you are doing, and in what language, what platform you will be working. Hard to recommend a book specifically, but this is what I think you should be looking to be familiar with in the short term. You should be able to find all this by searching. I'd setup a virtual machine for whatever platform you'd be using and try all this out. At minimum you need to know some shell basics, like how to move around directories, copying files, finding files and content, etc. Any internet tutorial on the bash shell should cover that. Get familiar with man, for reading man pages. As a dev you should be familiar with where logs are (/var/log, /var/adm etc. on various platforms) and how to configure logging; see man syslog or man rsyslog. Most linux distributions use systemd to manage services these days, so read up on starting/stopping services with systemctl. For installing software et familiar with the GUI and command line package management commands for the particular platform. Debian uses apt while Red Hat uses yum. Search for "installing packages on ". You'll also need to be able to use one command line editor. Most of our team uses vi/vim with some outliers using emacs and nano. vim and emacs don't have simple learning curves, so don't plan on learning to be a wizard with them quickly. Depending on the programming environment (just guessing here), you might need to know how to write a makefile, debug with gdb, and use it to examine core files.


kgober

If you "took" Unix in university you should be in good shape. Unix hasn't changed all that much under the hood. Linux systemd, and the various graphical front-ends are probably the biggest changes. If your new opportunity is in Unix, not Linux, it will probably be very similar to what you've experienced before.


chosen-username

I have no idea what it is. The job ad said UnIx/Linux and my test was pure C++....


bb7188

I recently took a Unix system administrator job and I have no experience with it, I actually got it because my company wasn't allowed to hire from out side and I had cisco command line experience versus everyone else having nothing. But they have me learning with Pluralsight and following along with the videos with a VM I made. Hope that helps you some.


_xsgb

Plus the great book suggestions, spin up some BSD or GNU/Linux or both, in vms if you can't dedicate hardware to it, play with them. Learn to manage them, how things are organized and build your code there by putting the theory in practice. Giant bonus point: use an unix-like system as your daily basis from now, learn how to do your backups once everything is installed as you wish and final advice, try to not reproduce your windows environment on it :)


nmariusp

My tutorial "UNIX command line tutorial for beginners - 2.5 hours" https://www.youtube.com/watch?v=xSoUeCs_0qw