In Linux, Everything is a File

Discussion in 'Beginner Tutorials' started by Rob, Jul 11, 2013.

  1. Rob

    Rob Administrator Staff Member

    Messages:
    573
    Likes Received:
    184
    Trophy Points:
    43
    Everyone knows what a files is... It's that "photo", "document", or "music" that you use. Programs are made of files, in fact, the whole Linux operating system is just a collection of files... But, now for the weird part. Not only is that digital photo that you uploaded to your computer a file, but your monitor is a file too! You see, in Linux, everything is a file! WOW!!! How can that be? Let's try to explain it.


    The /dev directory

    You'll see a lot of yellow outlined in black. These are the devices that your system uses or can use. Everything is considered a file in Linux, so your hard disk is kept track of as a file that sits there. If you're using an IDE hard drive (as opposed to SCSI), your hard drive will be known as /dev/hda. Don't delete that, because your hard disk will spin around, come jumping out of your computer, land on the floor and spill out ooze all over the place. No, not really. You will probably not have to look in /dev very much, so don't worry about that.

    The /boot directory

    Code:
    cd /boot [ENTER]
    Will get you into the /boot directory. You will not find any boots or shoes or footwear of any kind there. That's where the Linux kernel usually is. Power users may change the location of the kernel for reasons of their own (they may prefer /shoe), but it is normally placed there on most systems. You will eventually have to use this directory, because you may need to use two or more different types of kernels in the future. That will be taken up in a more advanced lesson.



    root's directory /root
    If you are not working as 'root' and you type cd /root, you will be taken to the directory /root. However, you won't be able to do anything while you're there. Root's home directory is a restricted area for everybody else. Linux response is sort of like, 'You don't have to know that'. Users' home directories are under certain restrictions for other users as well.


    The /sbin directory

    /sbin is another one of those off-limits directories. You may look, but you can't touch. This directory is like /bin in that it has frequently used programs in it, but they're only meant to be used by root. 'Shutdown' is in there. Only root can shutdown the system. If a user other than root tried to shutdown the system, he or she would get a message saying that only root can do that. Then that person would be followed by the secret police for three months.



    The /tmp directory

    /tmp is a directory that is used to store temporary files, as the name may suggest. You will find later on that when you use a Windows-style system with Linux like KDE, this window manager will create files there for temporary use. When you double click on an icon of a photo, the photo comes up for you to see but a temporary file is created while you're looking at the photo. The temporary file is deleted when you close the KDE image program. It's mainly the programs that work under a windows manager that take advantage of this directory.


    The /var directory

    /var is a directory for certain files that may change their size (i.e. variable size) For example, there are a few excellent databases for Linux. One is called MySQL. Normally, MySQL keeps its data in a subdirectory of /var called /var/mysql/. If I had an e-commerce website, I would have a database to register purchases. That database would obviously grow in size. And if it didn't then I'd be in trouble. It is also the normal place where email servers store their incoming mail. Again, email varies in size as well.


    The /lib directory

    /lib is for library files. That's where the name /lib comes from. Programs may use libraries to carry out their functions. Different programs use the same libraries, so Linux will store them here so that every program knows where to find them. You will probably not have to worry about this directory much unless you start getting messages like 'can't find shared library...'. That will sometimes happen when you've downloaded a program and had to compile it yourself from source. Even then, getting what are known as "dependency" problems are quite rare. Most programs, even when compiled from source, usually have a pre-configuration program that makes sure that they can find what libraries they "depend" on to run. If they don't, they'll tell you that you can't install the program.

    The /home directory (home sweet home!)

    We talked about /home before. This is a directory for storing users' personal files. All of us have certain preferences for using programs. These preferences are usually included in configuration files which are also stored in users' home directories. Most of these files start with a '.' (period/dot).

    If you go to your home directory, '


    Code:
    cd /home/[username]
    ls -a

    You will see these files.

    What's left

    Most installations of Linux will also provide these directories:

    /mnt
    /cdrom
    /floppy

    These shouldn't contain anything. Later on, we'll explain in more detail what these are for. Let's just say that in Linux, if you want to see what's on a floppy disk or a CD, you're not going to be able to just click on an 'a:' icon or a 'd:' icon. You're going to do

    Code:
    cd /floppy or cd /cdrom
    If you try that now you probably won't see anything. As I said, more about these directories later in the course.


    Well, we've looked under Linux's hood, so to speak. In the next lesson, we'll take her for a little spin.
    RTeS, Primit1v3 and Shazia like this.
  2. JDG

    JDG New Member

    Messages:
    17
    Likes Received:
    2
    Trophy Points:
    3
    Great topic. Once I was able to understand this, there were some pretty clever things that could were done with /dev/random, /dev/zero, dd, loop and the ttys :)
  3. ryanvade

    ryanvade Administrator Staff Member Staff Writer

    Messages:
    1,139
    Likes Received:
    385
    Trophy Points:
    83
    Hey Rob, what happened to /usr ? Did it end up in /dev/null ? :p
  4. Espresso

    Espresso New Member

    Messages:
    1
    Likes Received:
    1
    Trophy Points:
    3
    "In the next lesson, we'll take her for a little spin."

    I'm lost. Looking at the Beginner Tutorials page, how could I possible know where to find the next lesson in the series? The links seem to be random. How about a link at the bottom of each lesson to take a student to the next lesson?

    Good info, but I need to move on to a tutorial with some semblance of structure.
    Virneto likes this.
  5. ryanvade

    ryanvade Administrator Staff Member Staff Writer

    Messages:
    1,139
    Likes Received:
    385
    Trophy Points:
    83
    Part two does not seem to be out yet.
  6. flunwyc

    flunwyc Member

    Messages:
    99
    Likes Received:
    60
    Trophy Points:
    18
    And what about /bin and /etc ? ;)
    ryanvade likes this.
  7. Sameer Shah

    Sameer Shah New Member

    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    1
    which OS should I install to learn linux
  8. ryanvade

    ryanvade Administrator Staff Member Staff Writer

    Messages:
    1,139
    Likes Received:
    385
    Trophy Points:
    83
    Please do not hijack threads. Start your own.
    Collinux likes this.
  9. Sameer Shah

    Sameer Shah New Member

    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    1
  10. namikaze

    namikaze New Member

    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    hi all

    can you tell me or can you give me a site or link about the all of how to linux code
    how to create folder, move, delete, and other.

    please support me, i will proud of you
    i am very excited for learning linux.

Share This Page