(Part 2) Best linux operating system books according to redditors

Jump to the top 20

We found 497 Reddit comments discussing the best linux operating system books. We ranked the 117 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.

Next page

Subcategories:

Linux applications books
Linux kernel & peripherals books
Linux programming & administration books
Linux programming books
Linux servers books

Top Reddit comments about Linux Operating System:

u/the_omega99 · 18 pointsr/learnprogramming

>I do have a textbook called "C: A modern approach" by King, but like I said before, I think it focuses more on the coding aspect.

Most books that focus on C are going to be about learning the language. If you want to learn low level stuff, you need to find books that focus on them (and they'll usually incidentally use C). The language itself is quite small and minimalistic in what it can do. Most heavy handed things like networking and GUIs require interaction with the OS.

Eg, if you wanted to do networking, you could use the Windows API or the POSIX socket API (POSIX being the standards that *nix systems follow -- and certain versions of Windows). Or you could use a higher level library like curl for cross platform support (and a wealth of nicer features).

>Can somebody please guide me on where to start?

Firstly, as much of a linux fanboy I am, I do want to make sure you know that you don't need to use Linux for any of the other things you wanted to learn (low-level programming, command lines, networking, etc). In fact, my OS class mostly used Linux, but we started out with a project using Windows threads (I guess the prof wanted us to see the difference from POSIX threading).

All that said, I do think Linux is something you'd want to learn and that a lot of low level things just seem more natural in Linux. But I'm biased. Linux fanboy, remember?

I'd start with downloading a Linux OS. Doesn't really matter which. I'd recommend going with Ubuntu. It's the most popular, easiest to find help with, and seems to be what most web servers are running, to boot. You can play around with the GUI for a bit if you want. It won't feel that different. Modern OSes sort of converged into the same high level ideas.

My favourite book for getting into the command line ever so slightly touching the low level aspects of OSes is Mark Sobel's A Practical Guide to Linux Commands, Editors, and Shell Programming. It will include some basic knowledge of Linux, but mostly focuses on the command line. But this is very useful because not only is the command line very practical to learn, but you'll end up learning a lot about Linux in the process (eg, by learning how everything is a file, how pipes work, etc). And arguably the command line a super big part of Linux, anyway. It makes sense as the first step.

Now, for the next step, you need to know C very well. So finish with your class, first. Read ahead if you have to. Yes, you already know if statements and functions and all, but do you understand pointers well? How about function pointers and void pointers? Do you understand how C's arrays work and the usage of pointer arithmetic? How about how arguments are passed to functions and when you'd want to pass a pointer to a function instead? As a rough skill testing question, you should implement a linked list for arbitrary data types with functions such as prepending, appending, concatenating lists, searching, removing, and iterating through the list. Make sure that your list can be allocated and freed correctly (no memory leaks).

Anyway, the next step is to learn OSes. Now, I said OSes and not Linux, because the Linux OS is a bit constrained if you want to learn low level programming (which would include a knowledge of what OSes in general do, and alternatives to OSes like Linux). But never fear, pretty much any OS book will heavily use Linux as an example of how things work and consequently explain a great deal of Linux internals. I can't recommend a class because mine was a regular university class, but Tanenbaum's Modern Operating Systems is a good book on the subject.

In particular, you can expect an OS class to not merely be focused on building an OS yourself (my class worked on aspects of OS101 to implement portions of our own OS), but also on utilizing low level aspects of existing OSes. Eg, as mentioned, my class involved working with Linux threading, as well as processes. We later implemented the syscalls for fork, join, etc ourselves, which was a fascinating exercise. Nothing gets you to understand how Linux creates processes like doing it yourself.

Do note, however, that I had taken a class on computer architecture (I found Computer Organization and Design a good book there, although note that I never did any of the excerises in the book, which seem to be heavily criticized in the reviews). It certainly helps in understand OSes. It's basically as low as you can go with programming (and a bit lower, entering the domain of computer engineering). I cannot say for sure if it's absolutely necessary. I would recommend it first, but it's probably skippable if you're not interested (personally, I found it phenomenally interesting).

For learning networking, Beej's book is well written. You don't need to know OSes before this or anything.

u/alkhatib · 11 pointsr/cscareerquestions

http://www.amazon.com/GNU-Linux-Application-Programming-Series/dp/1584505680

I think this book is great, covers Linux and the eco system of tools and low level APIs useful for programming.


But it is more than just that, I can't do it justice with my description.

It isn't a huge book, it's a quick read and gives you a solid starting point and introduction to the different ideas in each chapter.

u/fosstar · 11 pointsr/SS13

hello. i would like to bring a voice of reason to this thread by pointing out 5 key points.

  1. CM is a MEDIUM RP SERVER, i play a lot on aurora and goon, i would not apply aurora rules to goon, i would get called a nerd and murdered by a antag, likewise i would not apply goon rules to aurora, i would get banned, same goes for cm, people like cm for the new and innovative game play it brings, if it did not have it's rules it would devolve into hippie with aliums.

  2. every ss13 server is a FREE GAME, HOSTED AT NO COST TO YOU, RUN BY VOLUNTEERS WHO HAVE JOBS, AND PAID FOR BY THE HOST, apop in this case.

  3. while the cm staff can sometimes be shit, they are just trying to do their jobs, in a game where within 10 seconds everybody can have 3 shot kill guns, things can become a shit storm quickly, this leads to burnout, which leads to sometimes bad staff, remember, we are all human. this guy hosts tg station and also is a systems admin and programmer

  4. while cm can be a bit of a admin circlejerk, so can other servers, but the shit they have to deal with is HORRIBLE, mass shootings rivaling a 5 star rampage in gta, shitty players who are probably 12, a basic shitfest, so of course the admins will be in a shitty mood, if you had to deal with this you would be moody too.

  5. apop may be shitty, but he owns cm, if you want to start your own cm then hit the books, i have outlined some reading material for you: https://tgstation13.org/wiki/Guide_to_mapping https://tgstation13.org/wiki/Understanding_SS13_code https://tgstation13.org/wiki/SS13_for_experienced_programmers https://tgstation13.org/wiki/Binary_flags https://tgstation13.org/wiki/Coding_Standards https://tgstation13.org/wiki/Downloading_the_source_code https://tgstation13.org/wiki/Guide_to_spriting http://teaching.monster.com/benefits/articles/8761-22-tips-for-teaching-students-with-autism-spectrum-disorders http://www.notredameonline.com/resources/leadership-and-management/what-makes-an-effective-leader/#.V4JCiO2VvBc https://www.amazon.com/Linux-Dummies-9th-Richard-Blum/dp/0470467010 https://archive.org/stream/pdfy-ctmgtzCGP1mwqGTu/tgStation13%20Admin%20Guide%20V1.1_djvu.txt
    https://tgstation13.org/wiki/Starter_guide_to_admin_tools

    i rest my case.
u/s0t1r2d · 8 pointsr/IWantToLearn

Download Virtual Box.
Download a few Linux Distros - Ubuntu, CentOS, etc. Ubuntu is rather user friendly. Get the server version, not desktop. (Or get both, but you want experience with the command line, and the server version will force you to work with the command line.)

O'reilley books are great. Very dry, but reliable sources of info. Go "used" for now, as they can get expensive when you buy too many.

Learning the Unix OS is a good intro.

Also, this book is a large overview of linux sysadmin: Essential System Administration by Frisch

A Bash book would help, as well.

Oh, and the "man" command. On the command line, run "man anycommand" to bring up manual pages on any command. You can run "man man" or "man bash" to get started.

Best of luck!

Edit: typo

u/ccc123ccc · 8 pointsr/programming

For me, "Minimal Perl" finally pulled together a lot of tricks for using Perl in a way that really cut out a lot of its book keeping code so I could get things done in a cleaner way. These are things I probably could have figured out on my own, but like with so many things, maybe being able to do it on my own versus having someone else actually do it makes all the difference in the world.
Link: http://www.amazon.com/Minimal-Perl-UNIX-Linux-People/dp/1932394508

u/AlienBloodMusic · 7 pointsr/linuxquestions

Indeed, I know, and perhaps I'm being overly snarky about it as I am tired & cranky today.

I was hoping there'd be a rough equivalent to Robert Loves Linux Kernel Development - a more accessible entry point than just diving into the official documentation without much of a roadmap

u/d4rch0n · 7 pointsr/rust

Rust is a pretty high level language if you're trying to learn assembly and/or shellcode. You might be better off writing C and compiling with no optimization and looking at what's generated with the -S flag, or just no optimization and using objdump or radare2 to disassemble it.

If you want to learn low level linux stuff I highly recommend this awesome book available as a free PDF, the Linux Programming Interface. It goes into very deep detail and has example C code in it. Over a thousand awesome pages. I read through most of it except for the pseudo-terminal stuff because that is confusing as all hell. Another great book is "Introduction to 64 Bit Intel Assembly Language Programming for Linux" (Amazon.com), and you also might want to pick up a newer Instruction Set Reference for intel processors.

You also might take a look at MSFvenom and look at the encoder modules.

u/IWentOutside · 6 pointsr/linuxadmin

While you did mention you prefer hard copies, if you want him to stay current, you should consider a subscription at safaribooksonline.com as it has just about every O'Reilly book there is and you/he can always order a hard copy if desired. Otherwise High Performance MySQL 3rd Edition is pretty great, especially with explaining replication and backup/restoration procedures, as well as DevOps Troubleshooting, which has a great section on troubleshooting the boot-up process that may be useful.

u/velocibadgery · 4 pointsr/linux4noobs

What distro did you get, just curious.

They best way to learn linux is to use it. Google basic linux terminal commands and practice them. Don't be afraid to fiddle and mess up your computer, backing up data with linux is easy as all your personal files are in the /home directory. So if you need to reinstall no big deal.

You could also look into https://certification.comptia.org/certifications/linux Its not free but taking a class towards that will give you a lot of knowledge.

Another option is getting a book on the subject such as https://www.amazon.com/Linux-Dummies-9th-Richard-Blum/dp/0470467010

But as your using linux if you cannot figure out how to do something, google it. This is how I learned linux and how I still look up stuff I don't know. http://askubuntu.com/ is also a great source of information.

u/almostdvs · 3 pointsr/sysadmin

First, read our Wiki. It is very thorough and answers a lot of these common questions such as

day to day? The Practice of System and Network Administration
And the topical reference books listed below.

Books to help in shaping a sysadmin? The above &:
The Phoenix Project
Time Management for System Administrators


Topical Books I see mentioned often and have been very helpful to me:
Powershell in a month of lunches
Learn Python the hard way
Unix and Linux System Administration Handbook
Windows Server 2016: Inside Out

Group Policy
AbsoluteBSD
FreeBSD mastery:ZFS
CCNA
RHCSA/RHCE
Pro Puppet
SSH Mastery

On my docket:
FreeBSD Mastery: Advanced ZFS

Michael W. Lucas and Thomas Limoncelli are very good sysadmin writers, you can't go wrong with a topic they have chosen to write about.

Most of the *nix stuff assumes a baseline knowledge of how to use a unix-based system. I learned as I went but did pick up an old copy of Unix Visual Quickstart Guide not too long ago at a used books sale, which seems like a good starting place for someone overwhelmed with sitting at a terminal and being productive.
I notice I don't have any Virtualization books, perhaps someone else can fill in good books. Most of my knowledge regarding virtualization and network storage has been a mix of official docs, video training, and poking at it. Seems innate but it isn't.

u/lycoloco · 3 pointsr/linux4noobs

Sure thing! I completely understand the frustration. Setting up config files seems antiquated...but there are a few very nice things about them.

  1. You can reconfigure the files from any computer with ssh or putty available, and don't have to configure VNC or another screen sharing program to do it

  2. Configuration files are simply text files, so if you need to do a reinstall you can simply back up the necessary files, reload the OS, and reload the configuration files. The more convoluted your setup, the more files you'll need to back up, but at least you know when you reload them your configuration is saved. While this is true of the %appdata% folder on Windows as well, it's still a nice perk I feel.

    The more time you spend with Linux, the more familiar the language will become. Remember that you didn't always speak English (or whatever your native tongue is), but now you can typically do it without thinking. Linux is very similar in that once you learn the words and flags you want to use, it will seem simple.

    If you're looking for a good book to get you started, I can't recommend this one enough: A Practical Guide to Linux: Commands, Editors, and Shell Programming. Here's my description of it from another l4n post:

    It's a great book for a beginner who doesn't want to get a Dummies book that is mostly concerned with the GUI and doing all the same things that you would on Windows or Mac OS, but instead wants to learn about what you can do without a GUI. It's a great reference book as well, containing the man pages for many commonly used and built-in commands. If you're not sure what the man(ual) pages are, they're one of your best resources for information about (most) any command on your system. "man man", in addition to being a great band, is a command that you can run to find out more about the man pages. For a good example that shouldn't overwhelm you, run the command "man cp" and see what all the options for the copy command are. A good way I've heard the man pages explained is that it will not tell you how to use a command, but it tells you the things a command can do. How you use it is up to you!

    Also, I (shamefully) have not done this completely, but if you want to learn about how the core of most any Linux system works, install Arch using their fabulously laid out Beginners Guide
u/brianw824 · 3 pointsr/devops

There is a book devops troubleshooting that has alot of the scenarios you are asking for. Link

u/techwritingdan · 3 pointsr/linux4noobs

The book that I first read when trying to understand Linux is Linux in Easy Steps. It gives a good overview into everything, from how the kernel works to basic CLI commands.

The next book I read was How Linux Works, which goes into more advanced detail. Also very good.

From there, I guess it depends what specifics you want to get into because there's so many areas of interest in Linux. But for an overview, I'd recommend the two books above.

u/FRedington · 3 pointsr/olympia

Somebody famous in the software development industry once said:
"The quality of a software product is directly proportional to the process used to develop it."
I think it may have been Gerald Weinberg. ICBW.
In any case, I believe this to be true.

Want to know more?
https://en.wikipedia.org/wiki/Capability_Maturity_Model
The CMM is a very heavyweight model. Big organizations, big projects.

http://producingoss.com/
Fogel, "Producing Open Source Software" is an excellent tutorial for setting up Open Source Software Development. The process scales well for shops of a few to larger projects. When using Agile methods (SCRUM for example) there are methods for "SCRUMs of SCRUMs" that scale into very large projects.
Have a look at the online book and buy Fogel's book it it suits you. Fogel has to eat too.
https://www.amazon.com/Producing-Open-Source-Software-Successful/dp/0596007590

u/phydeauxfromubuntu · 3 pointsr/Ubuntu
u/Zaphod_B · 3 pointsr/sysadmin

There are entire books written on just those two languages/binaries. That is where I started and I just kept going and looked at example code.

u/0x2a · 2 pointsr/learnprogramming

You probably want to get some general detail knowledge from e.g. TCP/IP Illustrated. It's a great series, volume 1 explains a lot of protocols (including L2 despite the name), and volume 2 has code of implementations for you to look at.

Since a lot of this is taking place in Kernel space, skimming something like Understanding the Linux Kernel can't hurt either (link is to the 2.6 edition but I assume you can find something newer by googling a bit).

Other than that, I wouldn't worry too much about learning stuff you might not need in the end. Just find a goal what you want to do and then learn what you need along the way.

u/Linuxllc · 2 pointsr/linux4noobs

If you just want to learn how to use Ubuntu. A few publications should do you.

http://fullcirclemagazine.org/

http://www.omgubuntu.co.uk/

https://www.myfavouritemagazines.co.uk/tech-and-gadgets-guides-and-specials/ubuntu-the-complete-guide-2017/

As books to learn Linux. I really like this book. It help me understand Linux File System.

Linux in easy steps by Mike McGrath

https://www.amazon.com/Linux-Easy-Steps-Mike-McGrath/dp/1840783966

u/saranagati · 2 pointsr/sysadmin

Linux e-book is a very broad subject. Maybe I could make some recommendations if you wanted to narrow it down a bit?

edit: for a good "linux" book i've heard good things about Linux Programming By Example: The Fundamentals.
http://www.amazon.com/Linux-Programming-Example-The-Fundamentals/dp/0131429647/ref=pd_sim_b_7

u/robscomputer · 2 pointsr/linuxadmin

A few of my favorite books I reference and recommend. Just a note, many of these are older and can be purchased used for much less. Also if you can afford it, get a Safari subscription. I use my work Safari subscription but this alone has saved me from my book buying habit. Now I only buy "must have" books. :)

Official Ubuntu Server book - I really like this book as the writing style helped me "get it" with Linux. Kyle Rankin has a very good method of showing you the technology and then a quick run down to get the server working, followed by some admin tips. It's a just scratching the surface type of book but it's enough to get you started. I rarely use Ubuntu now, but this book helped me understand DNS and other topics that were IMHO harder to grasp from other books.

As a bonus, this book also has an entire chapter dedicated to troubleshooting. While this sounds obvious, it's a great read as it talks about dividing the problem, how to approach the facts, etc. Stuff a seasoned admin would know but might be hard to explain to a new admin.

The Linux Command Line: A Complete Introduction - You can read this book for free on the site, but having a paper copy is nice. As mentioned, you should have a very solid understanding of the command line. In my experience, I have seen co-workers struggle with basic shell scripting and even understanding how to make a single line for loop. This book covers the basics, moving to shell scripting and I think it's a good solid reference guide as well.

DevOps Troubleshooting: Linux Server Best Practices - This book is referenced a few times here but I'll throw another comment for it. Another book from Kyle Rankin and has the same straight to the point writing style. It's very quick reference and simple enough that you could give this to a new sysadmin and he or she could get started with some of the basic tools. While the book covers a good selection of basic services and tools, it's easy to get deeper into a chapter and find it's only discussing a handful of troubleshooting steps. The idea with this book is it's a quick reference guide, and if you want to get deeper into troubleshooting or performance, take a look at other books on the market. Either way, this is a great book I keep on my desk or reference through Safari.

UNIX and Linux System Administration Handbook (4th Edition) - Another popular book based on the comments here. This is a pretty big book, thin pages, but it's like a small brick of UNIX/Linux knowledge. While it's starting to get dated, it does give a great reference to many topics in the system administration world. The chapters can dive deep into the subject and offer more than enough information to get started but also understand the technology. The e-mail chapter I thought was great as well as the DNS. I think of this book as a overall guide and if I want to know more, I would read a book just on the subject, that's if I need more information. One thing to point out is this book makes use of different OS's so it's filled with references to Solaris, different UNIX versions, etc. Not a problem but just keep in mind the author may be talking about something outside the scope of vanilla Linux.

Shell Scripting: Expert Recipes for Linux, Bash and more - I found this book to be a good extenstion of the Linux Command Line book, but there are many many other Bash/Shell scripting books out there. The author has many of the topics discussed on his site but the book is a good reference for scripting. I can't stress enough how important shell scripting is. While it's good to know a more formal language like Python/Perl/etc, you are almost certain bash will be on the machine you are working on.

Systems Performance: Enterprise and the Cloud - I can't comment on this book beyond the first chapter, I'm still reading it now but it's reading similar to Brendan Gregg's site, and that's a great thing. If you don't know who this guy is, he's one of the top performance guys in the Solaris and now Linux world. He has some great infographics on his site, which I use for reference.

Use method for Linux

Linux Performance

Example of Linux performance monitoring tools

Hope this helps!

u/gillysuit · 2 pointsr/perl

I highly recommend this book given your specific skill set.
Minimal Perl: For Unix and Linux People

u/DoUHearThePeopleSing · 2 pointsr/ethereum

That's a good way to do it. And I'm sorry for that guy who said about banning - it's an assholly thing to do. As you can see in the other thread, a lot of people (if not the most) argued with him.

Getting whitepaper ready is a good first step. What you can also do is check out some books about software design. The most important ones I'd say are:

https://gettingreal.37signals.com/

http://www.amazon.com/Mythical-Man-Month-Anniversary-Software-Engineering-ebook/dp/B00B8USS14/

http://www.amazon.com/Producing-Open-Source-Software-Successful/dp/0596007590/

There are also essays by Paul Graham (google who he is if you don't know), especially this one:

http://paulgraham.com/start.html

As for publishing the whitepaper - by all means go for it. If you don't want to share it publicly at first, you can send it to selected members of community, or to people who you noticed that are quite sensible within the community.

As for the NDA-s, and non-competes, I guess people explained to you that nobody will do these kinds of things. That is because inexperienced people often have very basic ideas, and nobody wants to then be tied down and exposed to lawsuit because of it.

Imagine that you sign an nda or a non-compete as an architect, and you discover that the guy's brilliant idea is for a building with just round windows. It's really not that novel, and you'd then have to explain to the guy why it isn't that novel. And be exposed to lawsuits for years to come, whenever you make round windows.

Somehow, nobody has these kinds of ideas with architecture, but every other day someone comes to software people with something like this.

Finally, when it comes to holding back your idea... Sometimes (very rarely) it is beneficial, but most of the times it's not. I remember the people working on the first web email system - hotmail.com. These guys were secret as fuck, afraid of someone beating them to the market. But on the other hand, they were already experienced in building systems, and had a team built and a budget.

There's a chance somebody else has an exact same idea, and they are working on it at the same time as you do. And the thing is - the more relaxed they are about sharing the idea, the faster they will go. And also - if anyone ever decides to "steal" your idea once you publish it, you'll be way ahead of them. Because by the time they see your idea, you'll be already way ahead of them in terms of gaining support for your own.

Good luck!

u/robot_one · 2 pointsr/AskNetsec

Learn to read x86 assembly and learn what a stack frame is. These two should make exploitation and shellcode both make sense (or at least way easier to understand a simple buffer overflow).

I used this book when learning assembly. I used it as a programming text though, comparing the differences between 32bit and 64bit x86 as I went. Lena's Reversing Tutorial also hits a lot of the basics.

u/bogartbrown · 2 pointsr/Omaha

I've got about 17 years' worth of experience as a Linux systems admin. A lot of the newer distros are pretty end-user friendly, but if you want to get a good reference to what's under the hood, grab Sobell's book, A Practical Guide to Linux Yes, that book was published in 1997, but its foundation is still rock-solid.

There's no "easy" way to learn Linux. The fun part is being able to fix what's broken. Or break what works... Get your hands dirty and go for it. Try "live CDs" and play around.

u/getouttatown · 2 pointsr/linux

I disagree.. you should definitely learn red hat/fedora/centos in terms of network configuration files, other config files etc etc if you want to have a good knowledge of server level/enterprise level linux. Red-hat based distros are MUCH more widely used for server implementations than debian or slackware.. But that said definitely learn the debian way too. Linux in a Nutshell is a good back, or this book is also quite good: http://www.amazon.com/Practical-Guide-Commands-Editors-Programming/dp/0131478230/ref=sr_1_16?ie=UTF8&s=books&qid=1250956616&sr=8-16 -- Another good one is the Linux Quick-Fix Notebook- excellent excellent book

u/[deleted] · 2 pointsr/linux

I cut my teeth on Debian Slink, on a computer I had cut grass and performed yard work in exchange for. I remember fighting, trying to get X to work on the monitor that I had got with it, which did not have any sort of documentation for it. I think twm was the default window manager at that time (and I didn't know of other window managers), so when I kind of got X running, it was pretty ugly.

I had a pretty crappy dialup connection, so I ordered my CDs from Linux Central along with Sobel's A Practical Guide to Linux. I think I still have the CDs, as a souvenir, if you will.

u/periphrasistic · 2 pointsr/OSUOnlineCS

The Linux Programming Interface has been a recommended text for CS344 in past quarters. It's a pretty comprehensive tutorial and reference for Linux system programming and well worth having if that's a topic that interests you. For the purposes of the class though, it's total overkill. It will however make you look smarter if you put it on your desk at work. ;)

When I took CS361 in the Spring, it recommended the textbook Software Engineering. It honestly isn't very good and is very overpriced. Last I checked, they have a different instructor for 361 this quarter, so he or she may have a different textbook or none at all.

u/chemicalcomfort · 2 pointsr/cscareerquestions

The easiest way to get into open source is find a project you actually use and take a look through the source code. So many projects could use more/better documentation and eventually someone will take notice if you start making additions. Once you're comfortable with the code you can start making commits but be sure to do your best to try to stay true to the current code paradigms and style.

As for doing a personal project the best way is to figure out something you want to learn more about or making a program that somehow improves your life. The important part is to find something you can be passionate about for an indefinite amount of time. If you get bored with it you're not going to want to work on it.

Want to learn more about databases? Make a program that utilizes a sql flavor of some kind. What to learn more about sockets? Make an http server. Etc. etc.

This book was a wealth of knowledge in regards to doing open source http://www.amazon.co.uk/dp/0596007590

u/BS_in_BS · 2 pointsr/programming

Introduction to 64 Bit Intel Assembly Language Programming for Linux: Second Edition by Benjamin Ray Seyfarth It goes over the basics of assembly, is pretty much up to date and the e-book version is only $5

u/dearastronomer · 2 pointsr/redhat

Linux for Dummies :
http://www.amazon.com/Linux-Dummies-9th-Richard-Blum/dp/0470467010/ref=sr_1_4?ie=UTF8&qid=1309646611&sr=8-4

Oreilly's "Running Linux" is a little old (2005) but will cover the basics, most of which haven't changed in over ten years.

http://oreilly.com/catalog/9780596007607/

u/scarthearmada · 1 pointr/programming

That was a very interesting introduction into Assembly. Thank you a thousand times! That being said -- hopefully the latest addition of Introduction To 64-Bit Intel Assembly Language Programming for Linux is just as good, because I am not paying $377.81 for a copy of the edition found on your link.

I'm always extremely impressed when I see people creating substantial programs (Roller Coaster Tycoon!) in Assembly. But I think it would just be a lot of fun to create smaller programs in it, as a way of learning various operating system principles in greater detail.

So, again, thank you so much for taking the time to write up that introduction. I greatly appreciate it!

u/wuts_interweb · 1 pointr/linux4noobs

For cash-in-pocket noobs who like to have a book in hand I'd recommend any of these books by Mark G. Sobell.

A Practical Guide to Linux
Old (1997) but takes you from the basics to intermediate.

A Practical Guide to Linux Commands, Editors, and Shell Programming, 4th. Ed.
Also covers the basics but it's more focused on those subjects included in the title.

A Practical Guide to Ubuntu Linux, 4th. Ed
I have no experience with this book but I'm including it for completeness.

A Practical Guide to Fedora and Red Hat Enterprise Linux, 7th. Ed.
Same. No experience.

u/nonpareilpearl · 1 pointr/DIY

Thank you for all the advice! I'm interested in the books that you suggested - I've been building a queue of books to read to help me learn, but most of those are "textbook-y". The one exception is a book I found called Producing Open Source Software, which I heard is good for people looking to join open source projects. I'm trying to find some other books to look at that are "less academic" as well so that I can learn more about programming aside from the fundamentals that I need.

Thank you for the advice about writing code daily. Right now I'm working as a quasi-intern for a freelance iOS developer in my area who is really good teaching people the mechanics of the language on weekends, but during the week I'm not as industrious (I usually work with him for a total of 6-8 hours on Sat/Sun).

Ultimately I want to work for a company like SpaceX or Scaled Composites, so I definitely need to learn languages such as C++ or similar... however, most of what I do right now (aside from iOS) is just HTML/CSS. Is there a benefit to trying to find an open source project to hop in on that is written in C++ (again, or similar) or is this something where any open source project is better than none?

I suppose it's worth mentioning that I started teaching myself Python, I let some of that fall to the wayside because of coursework and I needed the extra time for that, but now that the semester is over I think I could start that up again. I've actually been trying to write a small command line game with it :)

u/Lone_Sloane · 1 pointr/unix

This is a good book. You should supplement it with something like this because one of the big things about UNIX (and its derivitives) is the underlying philosophies around processes, files, and CLI tools.

I would heartily suggest putting linux on a PC (any old PC from the last decade will do, honestly) and learn by playing around on it. Ubuntu, Fedora, any free version will do. You could also do this in a VM on your windows or mac.

For those pushing OSX -- yeah, it's got UNIX/BSD under the covers but there are also a lot of differences you have to dig under to get to a "plain" UNIX environment with X11 etc. (I've been playing with UNIX on mac since the Mac II, understand this isn't linux prejudice talking). It'll be a lot easier to install a linux variant fresh somewhere.

u/jbod-e · 1 pointr/linuxquestions

Either works. If your trying to land a job working with Linux, read " The Linux Command Line" if you want to understand Linux try "how Linux works"

Also check out "Devops troubleshooting" - https://www.amazon.com/dp/0321832043/ref=cm_sw_r_cp_apa_lhVJzbGBZ02RN

Check out "LPI in a nutshell" - https://www.amazon.com/dp/0596005288/ref=cm_sw_r_cp_apa_NiVJzbQ3C4ZZ1

u/CapnHooke · 1 pointr/asm

This book is a pretty good place to start.

u/101UsesForADeadGovt · 1 pointr/linux4noobs

No, Gnome 2 is dead and buried, Gnome3 is the default desktop in Ubuntu, and it's quite different. Look for something like Ubuntu Unleashed.

u/perfecthashbrowns · 1 pointr/linux4noobs

I recently got into https://www.hackerrank.com/ and it's amazing! There's a Bash section there. It's not gonna teach you Bash, but it will help you with exercises.

For learning Bash: http://www.amazon.com/Shell-Scripting-Expert-Recipes-Linux/dp/1118024486/

u/gored_matador · 1 pointr/linuxquestions

I'd recommend the sed & awk O'Reilly book. It's a great guide to sed, as well as getting really comfortable with regular expressions.

u/K900_ · 1 pointr/linux

Then you probably want this.

u/MR2Rick · 1 pointr/learnprogramming

Understanding Unix/Linux Programming has as one of its projects an implementation of pong using ncurses and interrupts.

u/rez9 · 1 pointr/linux

So basically read the O'Reilly books: Learning the Unix... and Unix Power Tools.

u/HotRodLincoln · 1 pointr/linuxquestions

A good book on the subject of command line programs is Linux Programming By Example.

A good site on sdl and basic graphical programming for linux is: Lazyfoo. Of course, OpenGL is another choice, and programming in OpenGL is basically the same cross platform.

The best book if you plan to start working on the kernel (in my opinion) is actually the Device Driver Book, but people also really like the Understanding the Linux Kernel book.

Obviously the other option is just looking for good tutorials online, for that you need:

  1. A BASH tutorial. At least a basic one.
  2. A gcc tutorial
  3. A C tutorial
  4. A make tutorial
  5. A gdb and ddd tutorial
  6. Linux API tutorial

    Of course there's also Qt which is used by a lot of people.
u/theevilsharpie · 0 pointsr/linux

> I want to learn how linux (and computers) work.

If you want to learn how Linux (and computers) work, take a course on operating system design and development. It's offered at any university that has a respectable computer science program, and you can probably find online courses that teach it for free. If you're more of a self-starter, grab a textbook and work your way through it. A book on the internal workings of Linux in particular might also be helpful, but IMO the development of the Linux kernel is too rapid for a book to provide a useful up-to-date reference.

If you want to learn Linux as a day-to-day user (which is what I suspect you're looking for), pick Ubuntu or one of its derivatives. They are easy to get up and running, while still allowing you to "spread your wings" when you're ready.

u/runaway-thread · 0 pointsr/ProgrammerHumor

All I see here is someone intimidated by something they don't understand yet. Face your fear.

u/JC513 · 0 pointsr/programming

I don't think there really needs to be any specifics here. A book I read that really pushed me along when I first started was a book about web developing with php and MySQL. It wasn't that great of a book and I'll probably never touch it again, but it pushed me further than any article I read at the time. Another was Understanding Unix/Linux Programming. It's extremely expensive so I'd be weary about actually recommending it, but it was required text for a college class (one of the better college recommended books I've had to buy). However, that book mainly just succeeded in making me proficiant with man pages.

There's been books that when I first start reading them it really makes the subject matter click and I never end up finishing them because the documentation is more than what I need at that point. I think that's why you'll read some reviews on programming books that range from it being extremely helpful to worst book ever made.

I think that was the point of the tip. If you're learning something, just pick up a book that deals with the subject. It'll set you in the right direction and help you overcome any anxiety when starting something that at first glance, seems complex. It also forces you to read from start to finish rather than glancing over a blog post that might have the information you need.

Results may vary.

u/ColdWarRussia · -1 pointsr/learnprogramming

Yes, there are actually .exe files, both cd and ls as well as most every other command.

Edit: In fact, just earlier this year, I purchased this book which deals with exactly what you're talking about. The examples in the book go through *nix commands that you study, then re-implement yourself in C. You should take a look at it (there might be copies at that site down by the bay wink wink.)
http://www.amazon.com/gp/product/0130083968/ref=oh_details_o03_s00_i00