First, I must say that using CLI is not always faster, not necessarily. There are tasks which can be done faster and easier using some GUI application rather than typing a whole bunch of commands. But, nevertheless, command line is still very powerful and it's more appropriate to use it for certain tasks. I for one use probably 90% GUI tools and applications and only in 10% of the cases CLI. So, you may ask, what's the scope of this? Well, in the first place, this article is about the reasons I believe to be noteworthy for using CLI in several situations, and what advantages it has.
Some prefer GUI, others CLI, and others (including me) prefer both. In the future I'll probably make an article listing 10 reasons to use GUI over CLI, but until then, here are the main reasons I use my share of CLI applications.
1. Complete control over the system. This may vary. What I'm trying to say is that I got used to do some task using some CLI tools instead of a graphical application. Now using that application makes me wonder whether it will pass exactly the arguments I wanted to the command line tool or use some defaults which I don't want. Not once I saw a graphical application based on some CLI tool which only implemented half of its options, so I wasn't able to make it what I actually wanted.
2. Powerful for many tasks. CLI is often more powerful than GUI applications for specific tasks. For example, consider having a directory with hundreds of different file types in it. Moving, copying, eventually renaming them would be very hard in a GUI file browser. Selecting almost each of them with the mouse while pressing CTRL is not easy for such a big number of files and it also takes up more time. While on CLI, you can use one single command in order to perform whatever task and it's done.
3. Ability to use scripts. I have several small scripts in my ~/bin/ directory, which in Debian is detected and included by default in the $PATH. So I can run specific commands over some files in just one command and a parameter. This is very useful if you have some specific need or want a specific behaviour with some tool, which is not implemented in any graphical application.
4. Less memory. For whom it matters, using command line won't make the system load additional libraries which are not already loaded for some GUI application.
5. Ability to use aliases. Aliases are a great feature implemented by shell applications which allow a user to perform one or more commands using one simple, easy to write command, called an alias. The ability to use those often makes work easier.
Please share your advantages (if any) you may think of for using CLI whenever a GUI alternative is available.
Updated: Jul 05, 2008 (Created: Jul 05, 2008)
Showing posts with label article. Show all posts
Showing posts with label article. Show all posts
July 05, 2008
July 04, 2008
Why Is It So Hard for Windows Users to Understand That Linux Is Not Windows
This is just a rant (hopefully it will be regarded as pertinent and non-'laming') on why Windows users try Linux and return frustrated to Windows after several hours or days. I won't praise Linux and the way it works, I won't even compare and say 'here Linux is easier because ...', instead I have a few questions for all of you who blame Linux for not being and behaving like Windows.
The following issues address the problem to the Windows users who had their first computer with Windows pre-installed and were simple beginners not only in the computing world, but in Windows as well.
Installing software. How many of you didn't install an application or game at least once directly into directory C:\, messing the entire directory structure, not being able to find your music or pictures since all the C drive had over 100 folders? I know I did, and that was after around 1 week of playing with Windows.
Partitioning. When did you do your own partitioning on your own? I'm sure you didn't use fdisk or Partition Magic in the first three days of your Windows experience, when even the term 'booting from CD-ROM' was unknown to you.
Drivers. How much did it take until you fixed drivers for a sound card or modem on a Windows Me/Windows 98 installation after something went wrong?
Mounting ISO images. Don't tell me you knew about Daemon Tools the first day you used Windows. I know I didn't, and it took a while only to find out about CD images and that they can be mounted as a virtual drive. Note for Linux: it can be done not only using CLI as root, but with a graphical menu in your file manager of choice, and you don't have to use an entire application for it.
Video and codecs. Was it long before you settled upon a video player and a codec pack of choice, like the Classic Media Player and K-Lite Codec Pack combination? Lately I tried Vista on my mother's laptop, and surprise: you still have to install codecs!
And the list goes on...
Again, it's not my intention to disrespect the Windows users, it's only to point out, once more, that Linux is not Windows. Installing software is different than in Windows, getting drivers is different than in Windows, gaming is different than in Windows, mostly everything which works some way in Windows is done in another, different way on Linux. Which leads to the conclusion that you need to invest time and a learning curve in order to use Linux, just like you did first, when you started with Windows.
As a final advice: don't make the switch with the philosophy that in Linux you'll find a free Windows, and that's the only difference. You'll find a completely new operating system, working in a completely new different way.
Updated: Jul 08, 2008 (Created: Jul 04, 2008)
The following issues address the problem to the Windows users who had their first computer with Windows pre-installed and were simple beginners not only in the computing world, but in Windows as well.
Installing software. How many of you didn't install an application or game at least once directly into directory C:\, messing the entire directory structure, not being able to find your music or pictures since all the C drive had over 100 folders? I know I did, and that was after around 1 week of playing with Windows.
Partitioning. When did you do your own partitioning on your own? I'm sure you didn't use fdisk or Partition Magic in the first three days of your Windows experience, when even the term 'booting from CD-ROM' was unknown to you.
Drivers. How much did it take until you fixed drivers for a sound card or modem on a Windows Me/Windows 98 installation after something went wrong?
Mounting ISO images. Don't tell me you knew about Daemon Tools the first day you used Windows. I know I didn't, and it took a while only to find out about CD images and that they can be mounted as a virtual drive. Note for Linux: it can be done not only using CLI as root, but with a graphical menu in your file manager of choice, and you don't have to use an entire application for it.
Video and codecs. Was it long before you settled upon a video player and a codec pack of choice, like the Classic Media Player and K-Lite Codec Pack combination? Lately I tried Vista on my mother's laptop, and surprise: you still have to install codecs!
And the list goes on...
Again, it's not my intention to disrespect the Windows users, it's only to point out, once more, that Linux is not Windows. Installing software is different than in Windows, getting drivers is different than in Windows, gaming is different than in Windows, mostly everything which works some way in Windows is done in another, different way on Linux. Which leads to the conclusion that you need to invest time and a learning curve in order to use Linux, just like you did first, when you started with Windows.
As a final advice: don't make the switch with the philosophy that in Linux you'll find a free Windows, and that's the only difference. You'll find a completely new operating system, working in a completely new different way.
Updated: Jul 08, 2008 (Created: Jul 04, 2008)
June 22, 2008
What Is the Best Way to Learn Linux?
There are many ways to learn Linux, and I can't think of one as being the 'best'. Of course, something may work for some users while failing miserably for others. There are users who prefer to ask a friend or get their answers fast on a forum, either because they are too lazy or they just don't have enough time to learn something new: they want it to work in their own way. Well, that's not quite an option, since there is no universal program which will fit any user's way of doing things.
I remember that when I started I made some very dumb questions on forums and IRC, but I always liked to read documentation, which is by far the best way of learning Linux in my opinion. There is a saying which goes like 'give a man a fish and he will have food for one day, teach the same man how to fish and he will have food for his entire life.' Well, not exactly like this, but you got the point. I think keeping asking questions rather than reading manuals and tutorials first will get you out of trouble for the moment, but there will always be problems in the future which need to be taken care of.
A thing I recently observed was how most of the IRC channels and forums handle beginners: on IRC there is usually a topic and a helpful bot, and on the forums are the stickies which contain detailed information for newbies. The only problem is that this kind of help reached a level of automation: not once I saw well-intentioned persons on IRC who just give a command and a channel robot will show some help regarding that specific problem. Now, I really don't know how much a newcomer understands from help provided this way, but I can't think of a better way to do it either. Users who are new and ask the same question over and over again are countless: in forums, threads like this are always on the front page, and there is a big percentage of similar threads on the entire forum.
Too few users search, and too few read the helpful stickies. This is a common problem actually: usually (and it's just a natural thing) somebody wants a fast answer to his problem, and prefers to post on a big forum like Gentoo forums or Ubuntu forums to get a fast answer rather than reading ten pages of FAQs and an entire thread specially made for this kind of problems. But what is the gain in this? It's true, a little annoying, but the user gets his answer usually. But is this the right way to learn doing things? If that same user would have read the manual page (painful for a beginner, i know - how many even know how to quit the manual page after reading it?), he would have earned much more than asking in a forum or a mailing list. This process is part of learning how to learn.
Not to mention the satisfaction: at least I know how happy I am when I troubleshoot something on my own, without going to ask more skilled users on how to handle something. And the gain is bigger: a manual read well offers 10 times more general knowledge about a certain issue than an answer to a single, specific question.
If new users understand that it's better for them to first do the reading, then Linux and the Linux community will make one step ahead.
Updated: Jun 22, 2008 (Created: Jun 22, 2008)
I remember that when I started I made some very dumb questions on forums and IRC, but I always liked to read documentation, which is by far the best way of learning Linux in my opinion. There is a saying which goes like 'give a man a fish and he will have food for one day, teach the same man how to fish and he will have food for his entire life.' Well, not exactly like this, but you got the point. I think keeping asking questions rather than reading manuals and tutorials first will get you out of trouble for the moment, but there will always be problems in the future which need to be taken care of.
A thing I recently observed was how most of the IRC channels and forums handle beginners: on IRC there is usually a topic and a helpful bot, and on the forums are the stickies which contain detailed information for newbies. The only problem is that this kind of help reached a level of automation: not once I saw well-intentioned persons on IRC who just give a command and a channel robot will show some help regarding that specific problem. Now, I really don't know how much a newcomer understands from help provided this way, but I can't think of a better way to do it either. Users who are new and ask the same question over and over again are countless: in forums, threads like this are always on the front page, and there is a big percentage of similar threads on the entire forum.
Too few users search, and too few read the helpful stickies. This is a common problem actually: usually (and it's just a natural thing) somebody wants a fast answer to his problem, and prefers to post on a big forum like Gentoo forums or Ubuntu forums to get a fast answer rather than reading ten pages of FAQs and an entire thread specially made for this kind of problems. But what is the gain in this? It's true, a little annoying, but the user gets his answer usually. But is this the right way to learn doing things? If that same user would have read the manual page (painful for a beginner, i know - how many even know how to quit the manual page after reading it?), he would have earned much more than asking in a forum or a mailing list. This process is part of learning how to learn.
Not to mention the satisfaction: at least I know how happy I am when I troubleshoot something on my own, without going to ask more skilled users on how to handle something. And the gain is bigger: a manual read well offers 10 times more general knowledge about a certain issue than an answer to a single, specific question.
If new users understand that it's better for them to first do the reading, then Linux and the Linux community will make one step ahead.
Updated: Jun 22, 2008 (Created: Jun 22, 2008)
June 18, 2008
Why Many Projects Is Better Than Just a Few
I kept reading opinions regarding the big number of Linux distributions out there, most of them saying that we have a huge number of distros, each one with its own package management system, keeping Linux divided. Most of them suggest only a few such projects, and that all developers should unite in order to produce a 'universal' solution to this. A comparison with MS Windows is always brought in as an argument. Of course, every person with its own opinion, but why do I think a big number of projects is the way to go?
Well, in the first place, I think a 'universal' distribution is not quite possible. There will always be persons who will want to have their own project and eventually start it from scratch instead of contributing to an already solid one. Not to mention that Linux itself was born from such a project, and examples of projects which started the same way as the Linux kernel are countless.
Since free-software as promoted by the FSF is all about freedom and free choice, the developers are free to choose their own way of programming and building projects. If someone wants to start a new audio player instead of contributing to Amarok or Audacious, for example, then good for him. This way, we'll have one more audio player available out there, one more to choose from. Most of the big, established projects already have enough developers and contributors. They usually need only feedback from users and bug reports.
Now, regarding the way of installing things. It's true, we have big distributions like Debian (with its popular derivative, Ubuntu), Fedora or Gentoo, each of them with their own package management. So you are tempted to say that we have too many systems of installing software instead of a single one. Well, in the first place, learning to use a new package installing system can only take a few hours (if you really need to switch from a distribution to another). Most of the software one needs is available in the repositories and can be fetched easily using either command line or a GUI interface. Decent applications like Skype or Opera offer their software packaged for each distribution out there, so there will be no problems installing it on any system. Not to mention the graphical tools available. For example: a Fedora user who somehow will need to fix a Debian box (or install some software on it) won't need to know how to use APT, he will only need Synaptic or KPackage to do the job. And I'm sure over 90% of the Linux users get familiar with a new graphical tool in less than 30 minutes or one hour. It's true, if problems like a sources.list file edited the wrong way arrive, he will only need to follow an online guide which will get him out of trouble.
Again, ten projects for one thing is better than a single project. It happened to me to see people who were not satisfied with a very popular application for some reason, even though the majority liked it. So they had the choice to try another one, which probably suited their taste better. What if they didn't have that choice? They would have been forced to use something which they don't like. The same goes with distributions: a single 'universal' solution might be OK for most of the people, but there will always be a number of people who will want an alternative, something which works the other way around. And to have this alternative is imperative. Just think of a Linux world where there would only be Ubuntu, or only SuSE, or only Slackware.
I already said this, a single project for a specific task is not even possible. There is no such thing as 'let's all unite our forces and only do this thing'. 'Every KDE developer, forget KDE and let's develop GNOME, or vice-versa. Every passionate, either professional or amateur programmer, forget your little projects you love and join the big ones'. This won't happen. And it's better not to happen: free choice is all what Linux is about.
Updated: Jun 18, 2008 (Created: Jun 18, 2008)
Well, in the first place, I think a 'universal' distribution is not quite possible. There will always be persons who will want to have their own project and eventually start it from scratch instead of contributing to an already solid one. Not to mention that Linux itself was born from such a project, and examples of projects which started the same way as the Linux kernel are countless.
Since free-software as promoted by the FSF is all about freedom and free choice, the developers are free to choose their own way of programming and building projects. If someone wants to start a new audio player instead of contributing to Amarok or Audacious, for example, then good for him. This way, we'll have one more audio player available out there, one more to choose from. Most of the big, established projects already have enough developers and contributors. They usually need only feedback from users and bug reports.
Now, regarding the way of installing things. It's true, we have big distributions like Debian (with its popular derivative, Ubuntu), Fedora or Gentoo, each of them with their own package management. So you are tempted to say that we have too many systems of installing software instead of a single one. Well, in the first place, learning to use a new package installing system can only take a few hours (if you really need to switch from a distribution to another). Most of the software one needs is available in the repositories and can be fetched easily using either command line or a GUI interface. Decent applications like Skype or Opera offer their software packaged for each distribution out there, so there will be no problems installing it on any system. Not to mention the graphical tools available. For example: a Fedora user who somehow will need to fix a Debian box (or install some software on it) won't need to know how to use APT, he will only need Synaptic or KPackage to do the job. And I'm sure over 90% of the Linux users get familiar with a new graphical tool in less than 30 minutes or one hour. It's true, if problems like a sources.list file edited the wrong way arrive, he will only need to follow an online guide which will get him out of trouble.
Again, ten projects for one thing is better than a single project. It happened to me to see people who were not satisfied with a very popular application for some reason, even though the majority liked it. So they had the choice to try another one, which probably suited their taste better. What if they didn't have that choice? They would have been forced to use something which they don't like. The same goes with distributions: a single 'universal' solution might be OK for most of the people, but there will always be a number of people who will want an alternative, something which works the other way around. And to have this alternative is imperative. Just think of a Linux world where there would only be Ubuntu, or only SuSE, or only Slackware.
I already said this, a single project for a specific task is not even possible. There is no such thing as 'let's all unite our forces and only do this thing'. 'Every KDE developer, forget KDE and let's develop GNOME, or vice-versa. Every passionate, either professional or amateur programmer, forget your little projects you love and join the big ones'. This won't happen. And it's better not to happen: free choice is all what Linux is about.
Updated: Jun 18, 2008 (Created: Jun 18, 2008)
June 12, 2008
Linux Pros - Reasons to Use Linux
Note: I wrote this article a while ago and this is a modified and expanded version.
Linux and most of the Linux applications are open-source
You can legally download, share, modify and use Linux applications because most of them are open-source and licensed under the GPL or another GPL-compatible license. This way, sharing is not prohibited like on Windows where you are not allowed to do it, so instead it's actually encouraged. Linux is all about free choices, from a freedom point of view, not price. You can sell software on Linux as well, and moreover, you can sell any GPL licensed application, even if you didn't create it.
Linux benefits from some wonderful projects like the GIMP, Apache, Amarok, OpenOffice.org, the kernel itself, all the GNU command line tools and other maintenance tools, entire desktop environments like KDE or GNOME, all for use freely and legally.
Hundreds of good distributions from which to choose from
A distribution is an entire operating system, just like Windows or Mac OS X. There are projects which take all the pieces of software out there, and together with the Linux kernel, put up an entire operating system, also called a Linux distribution, or GNU/Linux distribution. Such examples are Debian, Ubuntu, Mandriva, OpenSuSE, Fedora Core, Damn Small Linux, Slackware or Red Hat.
Security
Linux was built with security in mind. Linux is not affected by viruses, spyware or other forms of malware software. Although some claim that there is no malicious software for Linux because it's not that widely spread as Windows, Linux by nature is more secure. It has a firewall integrated in the kernel and the fact that all of its components are open-source it helps developers to find security vulnerabilities fast and patch them. The code is there, opened for everyone to analyse it and eventually report if something is wrong. That is of course not the case with closed-source software, where security holes often remain undetected and opened for the first cracker to exploit them. The only security problem out there is constituted by users themselves, but this applies to any operating system. Never run commands which you don't know what they do and you'll stay safe.
No costs
Although the term free software means the code is available to legally study, modify and share it, you can sell the software at any given time, because the license allows it. Actually there are many people who take distributions, put them on CDs or DVDs and legally sell or mail it for money. But there are many good distributions which don't cost a thing, not even for downloading. Take Ubuntu, Debian or Fedora. And examples are countless.
Projects which are unmaintained can be forked
If a project is no longer maintained by its authors, then someone else can take the code and continue to develop it. Or fork it, to get something new, different. When Beep Media Player ceased to be developed, a new project, Audacious, was started, and it was based on the BMP code.
No patent restrictions
You don't have to worry about the legal aspect when you use open-source media files, like OGG Vorbis (a format similar to MP3) or FLAC (Free Lossless Audio Codec, used more and more over WAV due to smaller compression sizes). There is no fee you'll have to pay when using these formats, either for listening to music or in your software. Artists benefit from the OGG Vorbis codec as well.
Updated: Jul 13, 2008 (Created: Jun 12, 2008)
Linux and most of the Linux applications are open-source
You can legally download, share, modify and use Linux applications because most of them are open-source and licensed under the GPL or another GPL-compatible license. This way, sharing is not prohibited like on Windows where you are not allowed to do it, so instead it's actually encouraged. Linux is all about free choices, from a freedom point of view, not price. You can sell software on Linux as well, and moreover, you can sell any GPL licensed application, even if you didn't create it.
Linux benefits from some wonderful projects like the GIMP, Apache, Amarok, OpenOffice.org, the kernel itself, all the GNU command line tools and other maintenance tools, entire desktop environments like KDE or GNOME, all for use freely and legally.
Hundreds of good distributions from which to choose from
A distribution is an entire operating system, just like Windows or Mac OS X. There are projects which take all the pieces of software out there, and together with the Linux kernel, put up an entire operating system, also called a Linux distribution, or GNU/Linux distribution. Such examples are Debian, Ubuntu, Mandriva, OpenSuSE, Fedora Core, Damn Small Linux, Slackware or Red Hat.
Security
Linux was built with security in mind. Linux is not affected by viruses, spyware or other forms of malware software. Although some claim that there is no malicious software for Linux because it's not that widely spread as Windows, Linux by nature is more secure. It has a firewall integrated in the kernel and the fact that all of its components are open-source it helps developers to find security vulnerabilities fast and patch them. The code is there, opened for everyone to analyse it and eventually report if something is wrong. That is of course not the case with closed-source software, where security holes often remain undetected and opened for the first cracker to exploit them. The only security problem out there is constituted by users themselves, but this applies to any operating system. Never run commands which you don't know what they do and you'll stay safe.
No costs
Although the term free software means the code is available to legally study, modify and share it, you can sell the software at any given time, because the license allows it. Actually there are many people who take distributions, put them on CDs or DVDs and legally sell or mail it for money. But there are many good distributions which don't cost a thing, not even for downloading. Take Ubuntu, Debian or Fedora. And examples are countless.
Projects which are unmaintained can be forked
If a project is no longer maintained by its authors, then someone else can take the code and continue to develop it. Or fork it, to get something new, different. When Beep Media Player ceased to be developed, a new project, Audacious, was started, and it was based on the BMP code.
No patent restrictions
You don't have to worry about the legal aspect when you use open-source media files, like OGG Vorbis (a format similar to MP3) or FLAC (Free Lossless Audio Codec, used more and more over WAV due to smaller compression sizes). There is no fee you'll have to pay when using these formats, either for listening to music or in your software. Artists benefit from the OGG Vorbis codec as well.
Updated: Jul 13, 2008 (Created: Jun 12, 2008)
Subscribe to:
Posts (Atom)