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

From docwiki
Jump to: navigation, search
Line 78: Line 78:
 
|-
 
|-
 
| ~
 
| ~
| The tilde sign is often a shorthand for your home directory
+
| The tilde sign is often a shorthand for your home directory. This is '''not''' a feature of kernel but expanded by the '''bash''' shell.
 
|}
 
|}
   

Revision as of 09:36, 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

Shortcuts

Shortcuts
. A single dot means the current working directory
.. 2 dots: One level up in the hierarchy
~ The tilde sign is often a shorthand for your home directory. This is not a feature of kernel but expanded by the bash shell.


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).

Here are the most important commands that help you with file systems

$ mount            # show all filesystems 
$ df               # disk free. show filesystem and how much there is space free
$ df -h            # like df but human readable (in GB or MB instead of long numbers)
$ mount /mnt/test  # mounts /mnt/test but only if it is defined in the file /etc/fstab
$ umount /media/dvd # unmount (note the missing n) but only if you have permission to do so

The file /etc/fstab has a table that describes the file systems that need to be mounted at boot time.

Absolute and Relative Path Names

When you say /home/anna/Documents/somefile.txt the this is the absolute path (Starting with /). When you are anna and you are in your home directory (