Best unix shell books according to redditors

We found 36 Reddit comments discussing the best unix shell books. We ranked the 10 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Top Reddit comments about Unix Shell:

u/two-gun · 29 pointsr/linux4noobs

Sorry for getting all dramatic, but for me you're asking a red pill/blue pill question. I applaud your curiosity and can only recommend you follow your gut and take the red pill. The truth is by asking the question you already know what to do next. Just keep going. However I'll give you a few ideas because you got me excited.

  1. Get in touch with your osx terminal
  2. Get linux ASAP
  3. Learn the command line

    OSX Terminal


    Underneath the shiny GUI surface of your mac you have an incredible unix style OS just waiting to be played with and mastered. A few tips to get you going.


    Download iTerm 2. Press cmd-return, cmd-d and command-shift-d.


    Congrats. you now have a hollywood hacker style computer

    Copy and paste this line into your terminal and say yes to xcode.


    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    Awesome you now have homebrew. A linux style package manager.

    May as well get cask too.


    brew install caskroom/cask/brew-cask

    Now you can install programs by typing a couple of words.

    try

    brew cask install virtualbox

    Get Linux ASAP


    Linux is relatively easy to get up and running and awesome fun. try any of these options

  • Download virtual box and install a 'virtual machine' to run linux on your mac (see above).
  • Buy a Raspberry Pi.
  • Create a bootable usb and install refind on your mac.
  • Take a friends old laptop and install linux on it from your live usb distro.

    If any of the above seems slightly daunting don't sweat it. Be confident and you may just surprise yourself at how much you can learn in such a short amount of time.

    Learn the command line


    The command line opens up the wonderfully powerful and creative world of unix. Push on.

  • Get the basics down with codecademy
  • Play with some books (this or this for eg)
  • Watch some youtube videos (this guy's good for webdev)
  • Learn a text editor (Try Vim. You already have it. Type 'vimtutor' in your terminal to get started)

    Play, Play, Play


    Do what gets you excited.

    I got a big kick out of learning ssh and then pranking my friends with commands like

    say hello friend, i am your computer. i think your friend two-gun is very handsome. Is he single?

    or

    open -a "Google Chrome" https://www.youtube.com/watch?v=X0uYvQ_aXKw

    Do what you find fun. Oh and check out Richard Stallman. He's a good egg.

    Enjoy.

    edit-0

    forgot iTerm link

    edit-1

    Wow! Gold! Ha! Thank you. This is so unexpected! I'd like to thank the academy, my agent, my mom...

u/cheeseprocedure · 9 pointsr/sysadmin
  1. Make sure you have backups that do not reside on the VPS. (Look into rsync/rdiff-backup if you're unfamiliar with them.)
  2. Don't run X on your production server ;)
  3. Keep up on security updates. If you're on Ubuntu, for example, you can subscribe to the relevant mailing lists (http://www.ubuntu.com/usn) and set up a cron entry to update your apt repository/email you with available updates (Google "ubuntu server update notification" for umpteen thousand helpful writeups).
  4. Ideally you'd have a testbed (whose OS/software configuration is the same as the VPS) where updates are applied and ensure services keep ticking along afterwards; that may be overkill, but it's good practice :)
  5. Keep your system configuration files in a source control system; etckeeper is a great option: http://evilrouters.net/2011/02/18/using-etckeeper-with-git-on-ubuntu
  6. Use keys for SSH login.
  7. Don't run services as root.
  8. Don't allow root to login via SSH.
  9. There's many tools for automatically parsing/acting upon syslogs; check out logwatch, fail2ban, and OSSEC.
  10. If you're running third-party Web packages (WordPress, PHPbb, etc.), keep them up to date. They're a big, fat, juicy target for script kiddies and botnets.
  11. Pick this up for some light reading: http://www.amazon.com/Power-Tools-Third-Shelley-Powers/dp/0596003307
u/[deleted] · 7 pointsr/learnprogramming

I'm 43 and became specialized in a narrow range of products. on the one hand, if you need someone who knows about this stuff, I'm one of the most knowledgeable you can find.. on the other, I've become so specialized it's starting to hurt me career/ financially.

a friend of mine just got another startup going. he's a backend php developer and they needed more of a systems/ sysadmin person in a part time role to setup all the tools and the production environment. he asked if I'd be into it and I said yes - I was eager to learn new skills and aware I'd be blowing away cobwebs and kick starting brain cells etc. but dived in.

I've learned more in the last few months than I've learned in the last 5 years and it's been awesome. I read and really enjoyed [Code] (http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/ref=sr_1_1?s=books&ie=UTF8&qid=1334526682&sr=1-1), I'm almost finished working through [learning the bash shell] (http://www.amazon.com/Learning-bash-Shell-2nd-Edition/dp/1565923472) and plan on working through [C programming] (http://www.amazon.com/C-Programming-Language-2nd-Edition/dp/0131103628/ref=sr_1_1?s=books&ie=UTF8&qid=1334526363&sr=1-1) after that.

one thing, I used to be a Java programmer a decade ago. I read computer articles out of curiosity and will buy the occasional computer book for fun.

backing up - I've realized in the last few years that for me one very important skill is the skill of learning. getting your brain back into a state where it absorbs new information easily and likes it can be an uphill climb once you start back after a break of a decade or more.. but I'm resigned to always working on new stuff, deepening my technical knowledge, studying music, I want to do woodwork and organic gardening, learn piano, etc. after a while you start seeing deeper connections between areas of specialization - and that's pretty cool :)

u/sanedave · 5 pointsr/unix

The approach I took is to start with commands and languages using regular expressions: find, grep, sed, awk, python or perl, etc. These are very powerful and useful commands.

Two books I highly recommend are [Unix Shells by Example] (http://www.amazon.com/UNIX-Shells-Example-4th-Edition/dp/013147572X/ref=sr_1_1?ie=UTF8&qid=1374157897&sr=8-1&keywords=unix+shells) and [A Practical Guide to Linux] (http://www.amazon.com/Practical-Guide-Commands-Editors-Programming/dp/013308504X/ref=sr_1_1?s=books&ie=UTF8&qid=1374157979&sr=1-1&keywords=practical+guide+to+linux)

Also check out (PDF warning!) [Advanced Bash Guide] (www.tldp.org/LDP/abs/abs-guide.pdf)

These all are excellent, and very useful.

u/construkt · 4 pointsr/IWantToLearn

The best thing you can do is read (at least that is the way I learn the most, the fastest)! That being said, there are tons of free videos on youtube that go over networking and how it works. Figure out ways to apply your knowledge by setting up a network of your own and making it rad.

I think learning unix/linux is the way to go if you are into servers, but that is my bias. I am not a fan of Windows. In reality, you end up doing a lot of the same tasks when adminning, regardless of platform. Servers are just computers that run services (like http, ftp, nntp, email, etc). You basically just have to learn how to install, configure and run those services and learn best practices about installing and configuring the OS to do what you want it to do the best.

I highly recommend going into linux/unix adminning. I am not a huge windows fan. That being said, there are jobs there and if you can tolerate working with windows, it might not be a bad route to go if you want to be an admin for the rest of your life. I think nix admins end up doing more development work in the long run (which is more fun imo). As far as learning nix, I highly recommend unix power tools. I am sure there are tons of tutorials as well, but this book gives you a good idea about how to interact with the command line and gives you a great introduction to many of the tools available to you and when to use them. Setting up servers just means installing some services and getting them running in a smart way. There is usually a lot of documentation available for the service you are downloading and about how to configure it.

Regarding programming, pick a language and start using it for everything you can! When you install a service, pick a program that is made in that language to run on it (i.e., install/configure apache and then run a program written in python on it!). I highly recommend starting out with python, but choose whatever you want. Python has a ton of free documentation and ton of well-written apps available. Its syntax rules will force you into writing better looking code, which will carry over to other languages you will learn in the future. Learn python the hard way, dive into python, MIT OCW, Khan Academy. Pick an open source project and start helping out any way you can! At first, it might just be updating documentation, then you might fix some small/easy bugs and soon you will be fixing things and helping direct the way you want to see the project go (or perhaps start your own project!).

If it gives you any hope - I have worked it helpdesk, sys admin jobs, run IT departments and now work as a programmer, all without (much) formal training. I have taken courses over the years, but I think you can a lot just by reading, watching videos and then finding ways to apply that knowledge!

edit: I don't know where you live, but if you can, find local user groups to participate in and talk to locals. You may be able to find a job in the field and have a real way to apply that knowledge on a daily basis.

If you have any questions or need ideas about projects to start, please feel free to ask.

u/gtranbot · 3 pointsr/learnprogramming

For an intro to general Unix wizardry, I'd recommend Unix Power Tools. It covers all the basic Unix tools, and shows how they can be used together effectively.

To be a real Unix master, you should also learn Perl. If you want to go farther and master Perl you can't go wrong with that.

Once you know the basics of Perl, get the Perl Cookbook, which has many great recipes for doing things like in your list. In fact, if I recall, that very example might be in the book; if not, one very close to it is.

I always had a hard time learning from man pages. They're great for reference once you've already got your bearings, but in my opinion these books will serve you far better.

u/gnemmi · 3 pointsr/BSD

This is a pretty solid book for beginners that has gone under everyone's radar so far: https://www.amazon.com/Beginning-Modern-Unix-Comfortably-Environment/dp/1484235274/ref=mp_s_a_1_2?keywords=beginning+modern+unix&qid=1573610363&sr=8-2

In all honesty ... personally I always found that one of the nicest things about any BSD is that any old UNIX book still applies, at least for the most part.

u/BrotherChe · 3 pointsr/Unexpected

Just because textbooks and reference books can be dry doesn't mean they're not creative.

Here's another and another. O'Reilly published books have a couple clever or "funny" ones.

u/Jeff-J · 3 pointsr/Gentoo

Books that I find very useful:

Beginning Portable Shell Scripting: From Novice to Professional

From Bash to Z Shell: Conquering the Command Line

Unix Power Tools, Third Edition

The UNIX Programming Environment

Running Linux (mine is old, but still useful)

I have bought lots of other useful books from O'Reilly.

Anything written by Michael W Lucas.

u/ucsdrake · 3 pointsr/linuxquestions

I realize this has more than the OP was looking for (ie the other shells). but UNIX Shells By Example is by far my favourite book I've come across in terms of learning scripting, might want to check it out.

u/wyatt8740 · 2 pointsr/linux

Unix Shell Programming (3rd Edition), by Stephen Kochan (old bell labs employee):

http://www.amazon.com/Unix-Shell-Programming-3rd-Edition/dp/0672324903

u/doublenns · 2 pointsr/linuxadmin

Read "The Linux Command Line" from cover to cover (it's free). You'll easily be a beginner shell scripter by then and probably a better Linux user overall. The book is also an easy read.

From there go into "Unix Shell Programming". If you reduce the gap between the 2 books, the 2nd book will also be an easy (yet somewhat dry) read.

Try to build some small projects while going thru the material. If you use it you'll be more apt to retain the info.

That's what I did. Took me 2 months of reading afterhours of my full time job. By the time the 2 months was up I surprisingly knew more shell scripting than most Linux Admins I've met since. (Admittedly, a lot of people in IT really don't know as much as they try to make it seem.) The only thing missing was experience and projects to use as practice.

Edit: You probably would do really well getting a LinuxAcademy subscription for a year and go thru as much as possible.

u/goomba870 · 2 pointsr/linuxmasterrace

> unix power tools book

This?

u/SubGothius · 2 pointsr/linux4noobs

You got your URL and link-text swapped, should go like this:

This is the book I normally point folks to

u/ReddestDream · 2 pointsr/jailbreak

>What exactly do you mean by watching it to see CPU? I'm quite familiar with Top -u, but is there a way to view just that processes CPU? I kind of want to watch it through my computer while browsing and see what happens.

You need to get its PID first. My favorite way to do that is with System Status from the App Store, which lists running processes with PIDs (although you can't kill them or anything).

Then use:

top -pid PID

To see just that process's stats.

>Does that Jetslammed tweak have anything related to this or help this?

Jetslammed can change a launchdaemon's HighWaterMark RAM limit, the limit of sustained RAM usage at which Jetsam automatically kills the daemon.

http://newosxbook.com/articles/MemoryPressure.html

The HWM can also be changed manually, but, in the end, it doesn't really help that much unless a daemon is only dying due to exceeding its HWM.

It can still be killed for other reasons if the system is low on memory.

It doesn't actually keep discoveryd from EVER being killed, so it doesn't really solve the issue of very large hosts (>300 KB) files causing random website disconnects due to discoveryd dying, leading to DNS failure.

It really just fixes it so that you can have Wifried and a small ad blocking hosts file at the same time since Wifried + even a small hosts file (like Light UHB) will cause discoveryd to use about 9-10 MB, exceeding the 8 MB HWM limit for a long period of time, causing discoveryd to be automatically killed, causing Wifried to re-initialize Wifi, causing random Wifi disconnects, which is even more problematic than even a DNS failure.

Wifried with Jetslammed raises the HWM for discoveryd to 12 MB from 8 MB, preventing the HWM killing of discoveryd with Wifried + small ad blocking hosts file. A large hosts file will exceed even this new limit, but, in that case, where discoveryd uses 20 MB or more, it will be killed by the system anyway for other reasons not related to the HWM.

>So do I have the correct Light UHB? Is that the one you use? I guess I might try reinstalling and maybe see. Haven't had an issue since its crash and (haven't checked today) haven't seen it anywhere near the top when running "top".

I use Light Untrusted Hosts. I've watched discovery's PID for about a month now. It's not being jetsam killed anymore even if I load a LOT of tabs and really stress it out. It never goes over 8 MB (the HWM) for any sustained period of time (even 8 MB requires A LOT of DNS activity), and never reaches enough RAM usage that the system would think to kill it to free memory (10-20 MB). Gamed (the GameCenter daemon) uses more memory than discoveryd with Light UHB . . .

>-unrelated- I love learning about all this stuff and your fountain of knowledge so far. Mind if I asked where you learned so much? I've been learning a lot about daemons lately, especially locationd and backboardd. I'm just curious as to where I can learn more about this stuff, learn how to read crash logs as so far it's just from the little experience I have, etc. I just can't find any good resources..

I've used OS X since it was in beta, and iOS is secretly just OS X in disguise with a TouchUI, a few processes missing, and a few processes added.

This book has been helpful to me in understanding jailbreaking, although it is a bit dated:

http://www.amazon.com/iOS-Hackers-Handbook-Charlie-Miller/dp/1118204123

Also a bit dated, but you may like it if you have a Mac:

http://www.amazon.com/Learning-Unix-OS-Going-Terminal/dp/1449332315/ref=sr_1_1?s=books&ie=UTF8&qid=1418694791&sr=1-1&keywords=OS+X+unix

This wiki is also good. Many devs post on it:

https://theiphonewiki.com/wiki/Main_Page

u/Corlam · 1 pointr/linux4noobs

This is the book I normally point folks to. It has, in my opinion, some of the best explanation for regular expressions that I've run across, and hits on basically all the behind the scenes stuff you'd want to know.

Edit: Unfucked my formatting.

u/7amza2 · 1 pointr/linuxadmin

I know I have to know bash but should I really take it serious ? , I mean should I read some books around it or some tutorials is enough before studying python-perl ..etc ?
what is your opinion about this book

http://www.amazon.com/Shell-Scripting-Recipes-Problem-Solution-Approach/product-reviews/1590594711/ref=cm_cr_dp_see_all_btm?ie=UTF8&showViewpoints=1&sortBy=recent

u/rbatra · 1 pointr/learnprogramming

UNIX Shells by Example by Ellie Quigley is a great text to pick up shell scripting.

u/lilgreenwein · 1 pointr/unix

If you're looking for a book I highly recommend Unix Shells by Example:

http://www.amazon.com/UNIX-Shells-Example-4th-Edition/dp/013147572X/ref=la_B001H9RV1E_1_2?ie=UTF8&qid=1346897356&sr=1-2

I like it because it's light on the banter and explanation that's so common with tech books, and heavy on the examples. It's had a permanent spot on my work bookshelf for the last 10 years

u/joedonut · 1 pointr/linuxadmin

UNIX Shells by Example by Ellie Quigley. Reviews here.

u/rez9 · 1 pointr/linux

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

u/mpasteven · 1 pointr/programming

Buy this book: <https://www.amazon.com/Unix-Shell-Programming-Stephen-Kochan/dp/0672324903> and learn how the POSIX shell can make your life easier.

u/liaobaishan · 1 pointr/learnprogramming

I've been a web developer for two years and can tell you what I learned over time that led to me getting an internship at a software company. I didn't major in computer science but I did eventually go to a bootcamp.

I'll note that I'm not a huge fan of that flowchart, because it's backwards. You need to be familiar with what all those tools can accomplish, but I don't think anybody is capable of holding expert-level competence in so many areas at the same time. The key is getting to the point where you know or can figure out what tool will be required for any given task. For example, I don't really know much about Websockets, but I know that I'd probably need them if I wanted to build a chat application.

Anyway, here's my learning track in terms of programming

Pre-2011: Excel formulas

First programming I ever did for a bunch of random things, and at this time I didn't realize I wanted to be in software development yet.

2011-2013: SQL

Started with the DBA where I was working sending me a Word document with some common queries I could run in a SQL client so I could answer other people's questions and same him time. Over time I learned how to change the queries and then write my own. This book helped: https://www.amazon.com/SQL-Queries-Mere-Mortals-Hands/dp/0321444434/ref=sr_1_2?ie=UTF8&qid=1494701750&sr=8-2&keywords=sql+queries+for+mere+mortals

2013-2014: Java, shell scripting, other unix/linux related things

Took a programming class using Java and a shell scripting class in a local university's online program. Used these books:

https://www.amazon.com/Java-Introduction-Problem-Solving-Programming/dp/0132162709/ref=sr_1_14?ie=UTF8&qid=1494701761&sr=8-14&keywords=introduction+to+programming+with+java
https://www.amazon.com/Unix-Shell-Programming-Stephen-Kochan/dp/0672324903/ref=sr_1_6?ie=UTF8&qid=1494701778&sr=8-6&keywords=unix+programming

I think Java is a very good first object oriented language to learn, even though most bootcamps want to do either Ruby or Javascript. Ruby (and Rails) have a little too much syntax sugar and other shortcuts that make it hard for a beginner to understand, and JavaScript is just plain weird (along with its ecosystem, which requires knowing a little history of the language and why it is the way it is).

2015: Ruby, Rails, a little JS. Attended a bootcamp and got my first job.

2016: ReactJS, actually understanding JS

2017: More JS, and now learning Elixir and the Phoenix framework.



As I mentioned before, these languages and frameworks are just tools. The way I've learned has been to do projects, figure out what tools would be necessary to accomplish all the functionality, and then slowly make progress on learning how to use those tools, eg, copy/pasting, modifying code other people have written, and then finally taking the training wheels off.

u/RunninADorito · 1 pointr/cscareerquestions

Here's the one I was thinking of: http://www.amazon.com/Unix-Power-Tools-Third-Edition/dp/0596003307


You don't need the book, but I like learning from practical examples and then using that as a jumping off point. If you like starting with examples for learning - this is the book for you.

u/solid7 · 1 pointr/learnprogramming

It will teach you the semantics of the posix interface and introduce you to some canonical utilities. That information is relevant today (we still use sed, make, etc..). Given the choice, I'd probably opt for a book specific to linux, freebsd, etc.. kernels alongside something like unix power tools.