Linux Command Line Basics
An introduction to the Linux command line interface.
Reddacity may receive an affiliate commission if you enroll in a paid course after using these buttons to visit Udacity. Thank you for using these buttons to support Reddacity.
Reddit Posts and Comments
0 posts • 16 mentions • top 9 shown below
44 points • HeloRising
The advantage of Linux is that most distributions are entirely user-serviceable. With Windows, there's a lot you can't change because Microsoft keeps your hands away from the moving parts of the OS because you're a filthy end user and aren't anointed with the blessings of Microsoft.
With Linux, you can be as close to the moving parts (Arch) or as far away from them (Ubuntu) as you feel comfortable.
Gaming on Linux is as good as its ever been and continually getting better but if you're looking for AAA games or specialized software like emulators, you may have some compatibility issues that may or may not have workarounds.
You would probably be best served by purchasing a Windows OS and using a virtual machine. A VM is basically a computer within a computer so you can run both OS at the same time.
Start off with a Windows machine with a Linux distro in a virtual machine and then at some point switch it to a Linux machine with a Windows virtual machine.
A more advanced version of this would be to dual boot, where you have both OS installed on your machine but you only boot into one at a time. This can solve some compatibility issues and it's less taxing on the hardware (which may or may not be an issue depending on what games you're playing.)
Virtual machines sound scary but with something like VirtualBox it's very easy.
If you run into a problem, google it as best you can and follow the steps. 99 times out of 100 you're not the first person to have whatever problem comes up and often it's a simple fix.
Somewhere like Udacity has free courses to walk you through the basics of the command line and while it isn't vital to Linux that you learn how to use it, your life will be a lot easier if you learn it.
You will probably want to start with a simpler distribution (distro) of Linux. Ubuntu is the basic basic one, it's also the most commonly used distro. Some people like it, some people don't. Mint is another common "first" distro, it was my first and I do like it, it feels familiar having grown up on Windows and there's just enough "rough edges" to require me to get my hands dirty and learn things but not so many that I'm constantly running around patching problems just to get it to run.
elementaryOS is a relatively new addition that a lot of people like. It uses the Pantheon desktop environment (DE) which is very similar to MacOS.
There's also a distro chooser that can guide you in the right direction but I wouldn't take the answer it gives you as gospel.
What I'd do is get Windows, install that as a main OS, download VirtualBox, and then just install and test out different distros to see which one you like. They're free and setting up VM is easy.
9 points • oarabbus
I've found some very short intro linux courses online. Any intermediate ones out there?
Udacity has this intro course: https://www.udacity.com/course/linux-command-line-basics--ud595
and EdX has this one: https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-1
These can be completed in a few days, anyone have suggestions for slightly more advanced (but not at the 'advanced' level) courses afterwards?
2 points • snegtul
<tab><tab> in your shell will be your bestest of buddies. Get in the habit now, it's worth it. Open up your shell and type "g<tab>tab>" you'll see what i mean, works for files and dirs too and if you have the bash-completion package installed, even for some options to commands.
try this Might help you get in the hang of things to get you up on your feets.
1 points • SpewPewPew
1 points • IAMINNOCENT1234
3 points • audscias
> if I were to get a Linux machine what are some struggles I'd face coming from Apple and Windows?
You need to understand that is a different system and it has a different way of doing stuff. Forget what you know about computers if it's in relation to Windows, that will only bring frustration. Some reading examples would be:
Just make sure you understand the very basics. While you don't really need this for the most basic usage (web browsing, document writting, multimedia...) it's certainly a must when you want to do anything a bit more advanced.
1 points • oldGeekBrain
1 points • Nah_Bank
It is a good thing that you are on linux. Since you have a 4-6 month time range and you claim to know git. I recommend doing this,
If you are not so comfortable with the commandline I recommend going through https://lym.readthedocs.io/en/latest/ or simply https://www.udacity.com/course/linux-command-line-basics--ud595
Setup an editor, I recommend VSCode is very popular now and comes with lots of plugins, if you want to join a cult, checkout emacs or vim (you will waste at least 2-4 weeks if go this path)
9-11th week: ToDo with VueJS and MongoDB. Learn express, ignore people who say you dont need to learn backend to get good job. Learn what is REST api. Get familiar with MongoDB, mongoose (library for using MongoDB with NodeJS). At this point you are going to have persistence for the ToDo app in the backend. Create proper HTTP end points for adding, removing, renaming items, setting due date. You should be able to fetch the items from backend and render them. I recommend implementing the frontend with VueJS.
12-14th week: ToDo with React and Redis/Postgres. Implement the same ToDo application with backend using redis or postgres. Both are non trivial. If you are struggling too much skip this and use MongoDB. You will be doing ToDo with React last because that will help you understand why React exists and how does it compare to another popular framework.
15-16th week: Do a small. Come up with an idea that utilizes all these concepts. You can build almost anything with these things.
17th-18th week: Do a project where user can register, login, understand sessions, cookies etc.
You should be able to get a junior level position at this point.
1 points • anseho
I think you should be in a good position! In my case got started by tooking a few Udacity courses and reading a few books. Then I took more courses and read nearly every book I could my hands on. Today I might look into Coursera as well.
You have to choose a language to get started with. I recommend Python since it's easy to pick up. Also Python has powerful data science libraries, so you might find ways to apply it to your own work.
In my case I figured I like web development and natural language processing, so I took courses and read books on those topics. I found a way to use Python for my own research and managed to build a toolset with another colleague. We wrote a couple of articles about that and gave some presentations. This is one publication we made: (https://www.degruyter.com/view/book/9783110376517/10.1515/9783110376517-010.xml)
Some material I can recommend:
- To learn Python, I'd recommend Python Crash Course by Eric Matthes and Automate the Boring Stuff with Python by Al Sweigart.
- For SQL I'd recommend Learning SQL by Alan Beaulieu. There's also a good SQL course in Udacity.
- For Linux I recommend Beginning the Linux Command Line by Sander van Vugt. There's also a good course on this in Udacity
- For Git I recommend this course in Udacity.
I also recommend that you read some book about writing good quality software, such as Clean Code by Bob Martin.
[I can help but recommend by own book as well :D: Developing Microservice APIs with Python]
The previous list is by no means exhaustive, and you may yourself find better material once you start searching.
The journey is tough. There's a lot to take in and to digest, so take it easy, one step at a time. Like everything else, including the PhD, the key is persistence. The key to making it well into IT is having some genuine interest. I know many people who've done it only for the money and they live miserable lives and don't really grow into the field.