Programs that you will Always Find on a Linux System
GeneralThis forum is for non-technical general discussion which can include both Linux and non-Linux topics. Have fun!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Programs that you will Always Find on a Linux System
I know that programs on any Operating System can vary greatly. I know that Linux specifications are open to everyone who wants to know in general. So what programs can you always depend on being on the system when you install Linux? I'd like to know about programs in a few categories:
* What are the built in commands? When you get a kernel going, what commands are there to use, if you don't install any programs?
* Assuming the distribution didn't specifically not install them for a purpose, in a minumum installation, what programs are required by the specification for Linux? Is ls, or cd or whatever in there?
* What programs are not part of the official standard, but are typically installed anyway by the distributions, because the distributions made it a standard, and now it's widely used?
* What programs that are more higher level (such as a graphics editing program) are there that are usually used?
* What are the built in commands? When you get a kernel going, what commands are there to use, if you don't install any programs?
If just a kernel is running, you've got nothing any regular human can do anything with. After a kernel, you've usually got a Bourne-compliant shell which runs startup scripts. Then you've got the login program, which handles authentication from the terminal. Then after you log in you have the user shell.
Quote:
Originally Posted by des_a
* Assuming the distribution didn't specifically not install them for a purpose, in a minumum installation, what programs are required by the specification for Linux? Is ls, or cd or whatever in there?
I don't think you mean Linux (the kernel), I think you mean GNU/Linux, or the whole operating system up to a minimal user level, for which there is no specification. Also, cd is implemented as a shell primitive function, because it doesn't actually do anything, it just modifies the execution environment of the shell (and hence also any processes spawned from the shell).
Quote:
Originally Posted by des_a
* What programs are not part of the official standard, but are typically installed anyway by the distributions, because the distributions made it a standard, and now it's widely used?
Well, there's no standard, but typical software includes a bunch of GNU utilities (hence the phrase GNU/Linux, usually things like bash, ls, df, less, and so on), filesystem tools (like fsck and the mkfs variants), an editor (like Vim or nano), networking tools (netstat, ping), sometimes X11 (XFree86 or [more commonly nowadays] X.Org), sometimes compilers (gcc, perl, g++, python). And lots more I haven't mentioned.
Quote:
Originally Posted by des_a
* What programs that are more higher level (such as a graphics editing program) are there that are usually used?
* Finally, what do these programs do?
The Ubuntu package repository for 7.04 on i386 contains over 21,000 separate packages. To describe them all would be extremely tedious.
Thanks for a little bit of an idea. Yes, it seems now that I know more, it is the GNU/Linux tools I'm looking for. Basically I want to know for a few reasons.
One, it makes it easier to use, if I know what is the minimum I can expect to have. Second, I'm considering maybe making things uniform in general between my Windows and Linux if possible. Then I have programs for the same job on either system I use. Third, I was making a word proccessor in C++ (currently only Windows, but it's not bound forever there). I decided to call it CLWP, for Command Line Word Proccessor. It turns out, that it's now one of the most useful programs I've created so far, overall. It's part of the office suite I decided to create. If I know the basic GNU/Linux programs, then I can implement (either by calling the GNU/Linux program, or by creating code from scratch) the same functions that would be relevant.
Fourth, CLWP, was part of my effort to decide on standards for the commands I would have for the Operating System I am trying to build. I'm building the OS, with Linux. I like the way that Linux commands are pretty simple overall. For example, I know about ls, for displaying files, and such. Whereas in DOS/Windows, there seems to be no such standards. In DOS/Windows, you usually have a program for diplaying directories and files, then one for formating the disk, that does a big chunk of stuff, etc.
In my OS, I want to keep jobs of commands simple, overall. However, I want to make the number of commands pretty simple. Instead of having 100 tiny programs, I might either have one program that does it all, or one program that calls little modules, and it's all integrated into one tool.
Built in commands, are probably going to be commands like make_filesystem, and format, things like that. CLWP, will be able to do word proccessor stuff, but it does things at the command line. I might also have CLSP (Command Line Spreadsheet), and etc. Then on top of that, will probably be things such as office. Office would take some parameters, such as office CLWP [CLWP_command], and it's pretty simple overall.
That's pretty interesting. Usually, though, big GUI applications (like word processors) don't call out to smaller utilities like wc, but implement that functionality themselves using libraries. Well, maybe wc is a bad example, but let's just say that OpenOffice doesn't do Find & Replace by running your document's text through sed. Although, for a small number of applications, that is how they work. Emacs, for example, has a lot of features that are basically generate + parse interfaces to external programs (with GDB, SVN, et alia). But is Emacs your typical desktop application? Certainly not.
Anyway, having one utility that does everything is not really the Unix way. The old way of thinking was functional, input to output. The parameters and returns were all the same type: text. This makes composing possible: download a file, send the output through a filter, send the output to the printer. Even if you've got one big program composed of smaller modules, to gain this kind of flexibility the user has to be able to rearrange the modules and call them separately. That would result in what Unix is right now -- your big universal program becomes the shell, and the modules become programs like wget, sed, and lpr. Otherwise, your modules won't be as flexible as the Unix way.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.