Thursday, February 7, 2013

How long does it take to learn linux?

Q. I know basic commands but how long does it take to learn more aka improve.. any source? thanks
i meant shell script

A. Once you are running a Linux distribution such as Ubuntu, which can be installed in its own partition, embedded within Windows, or simply run entirely from a CD, you have the choice of running applications that use a Graphics User Interface or opening a terminal and running commands from the command line.

GUI applications operate in a manner similar to the way Windows runs GUI applications. However, command line operations on Linux tend to be significantly different from DOS style commands. Not only are the command names different, but the Linux commands often do a lot more than the DOS equivalents. For example, 'dir' in DOS is 'ls' in Linux; and 'type' in DOS is 'cat' in Linux. 'ls' can take a lot of switches that modify how the output appears; and 'cat' can list the contents of multiple files.

For command line (shell script) work, then you need to study the syntax of your chosen shell. Manual pages such as:

man ksh
or
man bash

should tell you the features of the shell itself. How to reference single files and groups of files using wild cards; how to direct input into a command from a file and output from a program to a file or as input to another program. How to run programs in the background.

In Linux, there are far more commands available than are normally found as DOS commands. Finding commands is achieved using the -k switch to the 'man' manual listing command:

man -k reference

where reference is a word that describes what you might want to do. The 'man -k' command will list the commands related to the reference word you have chosen, with a single line description of the command. Then you can look at the specific man page for each command that is relevant.

For example, if you wanted to make a single file that contains the contents of every file in a sub-directory that contains the word Linux. Then the command could be:

cat `grep -l Linux subfolder/*` >output_file

grep searches files for the occurrence of the word Linux. The -l (lower case L) means that grep will just list the file names, not the lines of the files containing Linux. Enclosing the grep command in back quotes causes this command to run with its output supplied as parameters to the cat command. The cat command reproduces the contents of the files it is given as parameters. The > causes the output of the cat command to be redirected into the specified file.

cat `grep -l Linux subfolder/*` | grep Ubuntu >output_file

This command line saves only those lines that contain the word Ubuntu from the files that include the word Linux. Linux and Ubuntu do not have to be in the same line of the file.

The best way of learning all these things is to try them yourself.

I started working with UNIX command lines nearly 30 years ago. Within a week, I was producing working scripts, but I was still learning some new things 25 years later. Progress has slowed for me in the last few years since I retired from work and Linux became just one of a number of hobbies for me. Look at some of the simpler shell scripts in Linux and work out what they are doing and how they work, then try writing some of your own.

I hope this helps.

Generally, what are the most commonly used programming languages?
Q. I know my way around Python and Visual Basic. That's about it. I also know some about the Linux command line, especially in Ubuntu context.

Can anyone help me to determine, what are the next several languages I should concern myself with studying?

A. It really shouldn't matter what languages you learn. What's really important is that you learn the patterns and data structures that span all languages. Once you do this, you'll pick up any language in about a couple weeks with no problem. As far as resume building is concerned, I would feel completely confident in landing a development job anywhere with C/C++ skills and a web job with PHP/SQL skills. Generally, C++ is so versatile because you don't have to rely on the underlying runtime frameworks (JRE for java, and .NET for VB/C#) that many companies try to avoid.

Saying that, Java is also a good one to dabble in if you haven't already, though I would not steer too clear of learning how do deal with memory in C/C++.

It's good you know Python, though you'll definitely need a more powerful language if your going to be serious about a career in software.

Get to know how to build makefiles and construct classes and such in C++ on ubuntu. Get to know how to do everything with a command prompt and vi. Once you understand all of this, you become much more powerful as a developer in general.

What is the best linux distribution for learning to use many?
Q. First, a bit about my background.. I currently work as a Network Engineer, mainly with Cisco routers/switches and VPN devices. I am throughly familiar with Windows, both as a workstation and server, and have one more test to go to complete my MCSE. However, I have no real experience with Linux, and feel like this is both a hole in my personal knowledge and in my resume. :) I can do basic user stuff both from a command line and in Xwindows, but have no real command of it.

That said, I intend to rectify this. I want to start using Linux as my primary operating system on my personal PC, as I feel this is a great first step to really force myself to learn it. I need to know what distribution would be best for me to use. My concern is some of them seem to have alot of propriatary tools that are not found in other linux distros, I want to find one to learn on that will best allow me to be comfortable on any linux distro I run into in the future. Thanks much for your advice!

A. Linux truly is a wonderful operating system! If I'm using a PC, I greatly prefer using it to Windows. It's much more stable, secure, etc. But you already knew that. =]

Personally, I would suggest you start out with OpenSuSE. It's easy to use, yet it is very powerful. Its installer is also pretty easy. I recommend that because a lot of businesses that run Linux on their client systems use SuSE (the only difference between that and OpenSuSE is that SuSE contains closed-source programs; therefore, you have to pay for that distro).

I hope this helps! Good luck!



Nec Projector Review

Plastic Shed Reviews

Ati Graphic Reviews

Nurse Uniforms Reviews

Cabochons Reviews

Inflatable Water Slides Reviews

Barcode Scanner Reviews

No comments:

Post a Comment