What can I do to become more proficient in Linux?

Oct 27, 2007
17,010
1
0
I'm graduating from my Comp Sci degree at the end of this year so I've been looking through some job listings to get an idea of what's expected. Most of the more interesting ones I've looked at prefer candidates with "Linux experience".

I've used Linux a fair bit - it's the OS of choice at my university and of course we use it extensively in C programming. But I mostly use Windows and don't feel particularly "proficient" in Linux. Are there some exercises and guides I can read that would help me if I come across some Linux questions at interviews, etc? I basically want to know the ins and outs of the OS in a fair amount of detail.

What are the main programs that a Linux guru should be proficient with?

In terms of the kinds of articles and links I'm looking for, I'm a hands-on learner and technical minded.
 

xSauronx

Lifer
Jul 14, 2000
19,586
4
81
Do what I did, build a server and tinker with it.
yes

Play with Gentoo, Linux from Scratch, and Arch Linux in a VM?

i tried LFS a couple of times and it was a pain in the ass, and im not sure that ive heard anything positive about gentoo. arch looked good last time i poked around and read up on it.

id start with a debian or CentOS base install (documentation for both will be pretty good) and go from there, setting up server functions. run it headless to start, boot it up long enough to set up basic ssh....then ssh in (Putty is a great program) and get to work.

share folders, toy with permissions, set up it to serve email, rsync, web pages, , do dns, dhcp, whatever you can think of.

hell, its easy to do all that in a VM so you wont need to dual boot or have another box (id still set up ssh)
 
Oct 27, 2007
17,010
1
0
I usually use Linux in VirtualBox, how can I use a VB instance of the OS as a server? Does VirtualBox somehow get an IP like it's networked to my PC? Sorry for the simplistic question, haven't done this before.
 

Brazen

Diamond Member
Jul 14, 2000
4,259
0
0
If these are server related positions, then build a server (without a gui) and, as said above, tinker with it. Set up a webserver and try pulling up the webpage from your desktop. set up a file server, mysql server, dns server, or dhcp server. I would say these are some of the most common uses of linux servers, and all fairly easy to set up. A couple of the top tools I use on every linux server, that you should probably be comfortable with, are screen and ssh.

Also, you could set up linux on your desktop/laptop and use it, for everything. If you can't do something, figure out how to make it work. Google around, RTFM, and figure it out, rather than giving up and going back to the familiarity of Windows.
 

Jodell88

Diamond Member
Jan 29, 2007
9,491
42
91
@ Brazen,

Have you ever tried using tmux as a replacement for screen? According to the feedback in the Arch forums it is better, but I haven't used either one of them so I cannot say from personal experience.
 
Oct 27, 2007
17,010
1
0
I have set up several web servers (LAMP stack) before, that wasn't difficult. Is this the kind of thing they're talking about when they say "Linux experience"? I'm thinking I need to learn some real Bash scripting and the like. I've seen guys do some crazy stuff with grep and related programs, I would like to learn that kind of stuff.

I know SSH very well, never heard of screen.

Unfortunately I can't use Linux as my primary OS on either of my PCs as I have too much Windows software I need to run (in particular Visual Studio, Office and Photoshop, and OOo and Gimp don't even come close to replacing the latter two).
 

Brazen

Diamond Member
Jul 14, 2000
4,259
0
0
@ Brazen,

Have you ever tried using tmux as a replacement for screen? According to the feedback in the Arch forums it is better, but I haven't used either one of them so I cannot say from personal experience.

No, although that reminds me... screen is being replaced by byobu as the standard in Ubuntu. byobu is pretty awesome and a huge improvement over screen.
 

JD50

Lifer
Sep 4, 2005
11,691
2,150
126
I have set up several web servers (LAMP stack) before, that wasn't difficult. Is this the kind of thing they're talking about when they say "Linux experience"? I'm thinking I need to learn some real Bash scripting and the like. I've seen guys do some crazy stuff with grep and related programs, I would like to learn that kind of stuff.

I know SSH very well, never heard of screen.

Unfortunately I can't use Linux as my primary OS on either of my PCs as I have too much Windows software I need to run (in particular Visual Studio, Office and Photoshop, and OOo and Gimp don't even come close to replacing the latter two).

I had a very hard time trying to learn scripting and the more intricate stuff on my own. Sure, it's easy to set up a basic webserver, dns server, etc... on your own, but you really need a good reason to start scripting stuff and digging deeper into the system. I did the easy stuff at home, which gave me enough experience to start doing more linux stuff at work. That's where I really got into the scripting and other stuff.

CentOS + any kind of virtualization is really the way to go, IMO. One cool thing you could do is build a PXE boot server. That'll involve some DNS, DHCP, and some other stuff. From there you could work on kickstart related stuff, which easily leads to scripting.

Don't even install GNOME or KDE, do everything on the CLI first. The first scripts you write will probably just be some basic commands that you don't feel like doing over and over again, so the more comfortable you are with the command line the easier it'll be to learn some scripting.
 

pradeep1

Golden Member
Jun 4, 2005
1,099
1
81
Also, you could set up linux on your desktop/laptop and use it, for everything. If you can't do something, figure out how to make it work. Google around, RTFM, and figure it out, rather than giving up and going back to the familiarity of Windows.

For those of you who are reading this as someone who is wanting to become proficient in Linux, but who is not facing professional issues, then this is a great suggestion. I'd suggest start with a relatively easy install of Ubuntu (v9.10 at this time), which has a great user base and helpful forum. Work to get yourself 100% productive using Linux-only software and tools. Yeah, it may take you a weekend of fooling around, but I'll tell you one thing, you will really learn the system quickly when you have to work to setup your hardware and software. If you are feeling adventurous, then set up a LAMP (Linux, Apache, MySQL, PHP) server and a phpBB forum on your machine.

If you are an old-time geek back from the DOS and UNIX days, and the command line was your friend before you got all GUI-ed, then you'll really enjoy the power and flexibility of Linux and the great ssh shell available.

It is like being back in 1988 on a UNiX Terminal with you in control of the magic genie and the world at your feet.
 

xSauronx

Lifer
Jul 14, 2000
19,586
4
81
I usually use Linux in VirtualBox, how can I use a VB instance of the OS as a server? Does VirtualBox somehow get an IP like it's networked to my PC? Sorry for the simplistic question, haven't done this before.

yeah, the network interface in the VM needs to be bridged to your physical interface. no idea how this is done in virtualbox as i have very limited experience with it, and usually use VMware.

you can set up a linux VM with or without gui and play around plenty. yes scripting can be important as well as a good use of cli tools. google google google and youll get plenty of information to get you started. if something seems hard to read or understand...search more, odds are decent youll find similar tasks explained better.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
Get a computer and build LFS on it. Then use that computer for at least 3 months doing upgrades on software as needed.

It will suck, but you will learn a good deal about how linux works. Then use a real distro.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
The only way to really learn it is to force yourself to use it. I ran dual-boot for a while but eventually just stopped using Windows and forced myself to get everything that I needed working in Linux.

VS, Office and Photoshop should work decently in a VM without too much effort, as long as you have enough memory to give the VM a decent amount anyway.

No, although that reminds me... screen is being replaced by byobu as the standard in Ubuntu. byobu is pretty awesome and a huge improvement over screen.

Looking at the package description, byobu is a compliment to screen, not a replacement.
 

lxskllr

No Lifer
Nov 30, 2004
57,659
7,893
126
I had a very hard time trying to learn scripting and the more intricate stuff on my own. Sure, it's easy to set up a basic webserver, dns server, etc... on your own, but you really need a good reason to start scripting stuff and digging deeper into the system. I did the easy stuff at home, which gave me enough experience to start doing more linux stuff at work. That's where I really got into the scripting and other stuff.

CentOS + any kind of virtualization is really the way to go, IMO. One cool thing you could do is build a PXE boot server. That'll involve some DNS, DHCP, and some other stuff. From there you could work on kickstart related stuff, which easily leads to scripting.

Don't even install GNOME or KDE, do everything on the CLI first. The first scripts you write will probably just be some basic commands that you don't feel like doing over and over again, so the more comfortable you are with the command line the easier it'll be to learn some scripting.

I used to do a lot of programming on HP calculators. Learning things you don't need to know is boring, and you really won't learn much. Learning scripting on an as-needed basis will do a lot for motivation, as it's very satisfying having something useful to show for your efforts. I used my HP programs for work. They started out being very simple tasks to make life easier, and ended up being commercial quality software by the time I'd learned everything I needed. Setup a server or something, and then think of ways you could make administration easier. Learn what it takes to make that a reality, then build on it.
 

Net

Golden Member
Aug 30, 2003
1,592
2
81
install slackware and restrict yourself to doing things in the terminal. you can still have x-window system running but do most everything you can in xterm.

example: if you need to have something setup at startup then use vi to edit files in /etc/rc.d

manually do everything, such as installing kernels, installing different window managers, shells, etc...

read "learn unix in 24 hours"

http://my.safaribooksonline.com/0672328143
 
Last edited:

Brazen

Diamond Member
Jul 14, 2000
4,259
0
0
manually do everything, such as installing kernels, installing different window managers, shells, etc...
http://my.safaribooksonline.com/0672328143

If you come across a server administrator job that requires these particular skills, I would run. It would be torture working in a server environmet that uses manually compiled kernels, windows managers, and non-standard shells on the servers. Manually installing software may be a usefull skill to have, but anything that goes on a production server should be well-written enough to only require "./configure && make && sudo make install".

Trying out a manual kernel install may be ok just to see what it entails, but I wouldn't fret if you don't get all the way through. Other than having to compile kernels for a college class, in 8 years of server admnistration, I've never come across a situation where manually compiling a kernel for a server was an even remotely-good idea (although I'm sure there is some case where it might be a good idea, but that's rare). You should normally just use what is provided in the software repos.
 
Last edited:

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
install slackware and restrict yourself to doing things in the terminal. you can still have x-window system running but do most everything you can in xterm.

example: if you need to have something setup at startup then use vi to edit files in /etc/rc.d

manually do everything, such as installing kernels, installing different window managers, shells, etc...

read "learn unix in 24 hours"

http://my.safaribooksonline.com/0672328143

I would avoid Slackware. If you're looking for a job then RHEL/CentOS, SuSE or Ubuntu LTS are the top 3. And for desktops I'd probably rate them in the exact opposite order, with Ubuntu first (or Debian) followed by SuSE then CentOS or Fedora.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
If you come across a server administrator job that requires these particular skills, I would run. It would be torture working in a server environmet that uses manually compiled kernels, windows managers, and non-standard shells on the servers. Manually installing software may be a usefull skill to have, but anything that goes on a production server should be well-written enough to only require "./configure && make && sudo make install".

Trying out a manual kernel install may be ok just to see what it entails, but I wouldn't fret if you don't get all the way through. Other than having to compile kernels for a college class, in 8 years of server admnistration, I've never come across a situation where manually compiling a kernel for a server was an even remotely-good idea (although I'm sure there is some case where it might be a good idea, but that's rare). You should normally just use what is provided in the software repos.

It's not that you will need to do it. It's that by knowing how to do it you know more about the operating system and thus will be a better admin. This is why I think everyone should just once do a LFS install and use it for at least 3 months.
 
Last edited:

schenley101

Member
Aug 10, 2009
115
0
0
If these are server related positions, then build a server (without a gui) and, as said above, tinker with it. Set up a webserver and try pulling up the webpage from your desktop. set up a file server, mysql server, dns server, or dhcp server. I would say these are some of the most common uses of linux servers, and all fairly easy to set up. A couple of the top tools I use on every linux server, that you should probably be comfortable with, are screen and ssh.

Also, you could set up linux on your desktop/laptop and use it, for everything. If you can't do something, figure out how to make it work. Google around, RTFM, and figure it out, rather than giving up and going back to the familiarity of Windows.

The best way to learn is through use and exploration and mistakes.
 

xSauronx

Lifer
Jul 14, 2000
19,586
4
81
I would avoid Slackware. If you're looking for a job then RHEL/CentOS, SuSE or Ubuntu LTS are the top 3. And for desktops I'd probably rate them in the exact opposite order, with Ubuntu first (or Debian) followed by SuSE then CentOS or Fedora.

seriously. experience knowing the core system will only help so much when you need to deal with something thats very specific to a distro, such as package management and what not.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
It's not that you will need to do it. It's that by knowing how to do it you know more about the operating system and thus will be a better admin. This is why I think everyone should just once do a LFS install and use it for at least 3 months.

In general I agree, back when I started with Linux I had to fight with compiling things and resolving dependencies via source and RPM a lot and it does teach you how all of the packages are interdependent and such. But if you just blindly follow the LFS, Gentoo, Arch, etc instructions without actually understanding them you're not going to get anything out of it. It has to be something that you really want to learn.
 

Paperlantern

Platinum Member
Apr 26, 2003
2,239
6
81
Forcing yourself to use Linux is what I did. I started heavy into linux about a month and a half ago. it was the end of the RC Win7 I had, so I installed Ubuntu 9.10 onto my Laptop and really enjoyed it. After some time i found Linux Mint 8 Helena, which actually was more compatible with the ATI mobility Radeon that is in my laptop and allowed me to have more eye candy. Since, ive loaded up a Mint 8 machine at my office for personal surfing, virus research, scripting and other things you just cant do in windows. I also Have a VMware Workstation license installed on my Win7 box here at the office with Debian 5.04, CentOS 5.4, Mint 8, and Ubuntu 9.10. I have successfully set up a MUD server on the Cent OS box as well. I am currently working on setting up a Cent OS box at my house to run a mail server using dovecot and postfix. not sure if i will put squirrelmail on it yet or not. It is a lot of fun, and is a great addition to my IT repertoire.

I have also gleaned some information from this thread to help my own experience along on Linux, thanks for the thread and the replies all.
 
Oct 27, 2007
17,010
1
0
Just to clear something up, the jobs I'm looking at are development positions, not server admin. Some really good suggestions so far, thanks guys. Keep 'em coming
 
Last edited:

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
In general I agree, back when I started with Linux I had to fight with compiling things and resolving dependencies via source and RPM a lot and it does teach you how all of the packages are interdependent and such. But if you just blindly follow the LFS, Gentoo, Arch, etc instructions without actually understanding them you're not going to get anything out of it. It has to be something that you really want to learn.

Yea, that's why I say use it for a few months. Because the first time you try to do something LFS doesn't cover, or patch the system you hit a very steep learning cycle.

But if the OP is only going to use this to get into development. I suggest installing ubuntu and writing programs.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |