Difference between revisions of "Working with Filenames and Path and Globing"

From docwiki
Jump to: navigation, search
(Programs handling Files and moving around in the Filesystems)
Line 74: Line 74:
 
$ cd # jump to your homedirectory
 
$ cd # jump to your homedirectory
 
$ cd /tmp # go to another directory. Here /tmp
 
$ cd /tmp # go to another directory. Here /tmp
$ mkdir myproject # create a new directory from where you are with the name myproject
+
$ mkdir myproject # create a new directory from where you are: name myproject
 
$ cd .. # move up one directory in the hierarchy
 
$ cd .. # move up one directory in the hierarchy
 
$ cp file1 file2 # copy file1 to another name: file2
 
$ cp file1 file2 # copy file1 to another name: file2
Line 81: Line 81:
 
$ rm file1 # delete file1
 
$ rm file1 # delete file1
 
</pre>
 
</pre>
  +
  +
== Mounting ==
  +
  +
As there are no <q>drive letters</q>, if we want to add additional drives they must be located within the file-system hierarchy. The directory where they are mounted on is the <q>mount point</q>. Usually a Linux System has already many different file systems mounted. (E.g. /proc and /sys and most likely /dev are virtual file systems generated on the fly by the kernel. Most people prefer /tmp and /home and /var in their own file system so that if one runs full the other is still available).

Revision as of 09:20, 22 March 2020

Motivation

Here you will get an rough overview of where to find things in the file system and how to navigate the file system.

File System Hierarchy

In Unix/Linux the Top of the file system is the root directory named /. There are no drive letters as you know them from a certain other operating system. What you find below is a structure that exists since the early days of Unix. Here are the most important directories and what they are used for in Linux.

Filsystem Hierarchy
/ everything starts here.
/etc System-wide configuration files.
/usr Program Files (executable, libraries and files the programs need)
/bin System programs
/var If programs need to store data they should put it here. (/usr is for data that is only read and not written)
/home Every regular user of the system has their home directory below /home. E.g /home/anna
/tmp Temporary files - usually deleted on startup.
/lib Important system libraries
/sbin Important system programs that usually only the root user needs
/usr/lib libraries for user programs
/usr/local Stuff that is not part of your linux distribution, things you installed locally
/opt Optional - used if you do not want to follow the filesystem standard
/mnt A place where you would want to mount extra filesystems
/media Below /media the system automatically mounts your CD drive or your USB thumb drive, ...
/root Only the root user has his/her home directory here.
/dev Here you find device files which are placeholders to directly access almost any hardware on our system. E.g. you could directly read the naked hard-drive.
/proc It looks like there are many files, but those are actually just a simulation that allows you a direct view into some kernel data. E.g. try cat /proc/cpu to see your CPUs.
/sys Similar to proc but better organized


Programs handling Files and moving around in the Filesystems

$ pwd               # print working directory. This way you know where you are
$ ls                # list files and directories
$ cd                # jump to your homedirectory
$ cd /tmp           # go to another directory. Here /tmp
$ mkdir myproject   # create a new directory from where you are: name myproject
$ cd ..             # move up one directory in the hierarchy
$ cp file1 file2    # copy file1 to another name: file2
$ mv file1 file2    # move file1 to another name: file2
$ mv file1 /tmp     # moves file1 to /tmp directory
$ rm file1          # delete file1

Mounting

As there are no drive letters, if we want to add additional drives they must be located within the file-system hierarchy. The directory where they are mounted on is the mount point. Usually a Linux System has already many different file systems mounted. (E.g. /proc and /sys and most likely /dev are virtual file systems generated on the fly by the kernel. Most people prefer /tmp and /home and /var in their own file system so that if one runs full the other is still available).