manage directories and files in linux. 2 objectives understand the filesystem hierarchy standard...

65
Manage Directories and Files in Linux

Upload: godwin-bishop

Post on 26-Dec-2015

238 views

Category:

Documents


0 download

TRANSCRIPT

Manage Directories and Files in Linux

2

Objectives

• Understand the Filesystem Hierarchy Standard (FHS)

• Identify File Types in the Linux System

• Change Directories and List Directory Contents

• Create and View Files

• Manage Files and Directories

• Find Files

• Search File Content

3

Understand the Filesystem Hierarchy Standard (FHS)

• The file system concept of Linux (and, in general, of all UNIX systems) is considerably different than that of other operating systems

• To understand the concept of the Linux file system, you need to know the following:– The Hierarchical Structure of the File System– FHS (Filesystem Hierarchy Standard)– Root Directory /– Essential Binaries for Use by All Users (/bin/)– Boot Directory (/boot/)

4

Understand the FHS (continued)

• To understand the concept of the Linux file system, you need to know the following (continued):– Device Files (/dev/)– Configuration Files (/etc/)– User Directories (/home/)– Libraries (/lib/)– Mount Points for Removable Media (/media/*)– Application Directory (/opt/)– Home Directory of the Administrator (/root/)– System Binaries (/sbin/)– Data Directories for Services (/srv/)

5

Understand the FHS (continued)

• To understand the concept of the Linux file system, you need to know the following (continued):– Temporary Area (/tmp/)– The Hierarchy below /usr/– Variable Files (/var/)– Process Files (/proc/)– System Information Directory (/sys/)– Mount Point for Temporarily Mounted File Systems

(/mnt/)– Directories for Mounting Other File Systems

6

The Hierarchical Structure of the File System

7

The Hierarchical Structure of the File System (continued)

8

FHS (Filesystem Hierarchy Standard)

• The structure of the file system is described in the Filesystem Hierarchy Standard (FHS)– It specifies which directories must be located on the

first level after the root directory and what they contain

– It does not specify all details• FHS defines a two-layered hierarchy

– The directories in the top layer (immediately below the root directory “/”)

– As a second layer, the directories under /usr/ and /var/

9

Root Directory /

• The root directory refers to the highest layer of the file system tree

• Only directories are located here, not files

• When the system is booted, the partition on which this directory is located is the first one mounted

• All programs that are run on the system start must be available on this partition

• The following directories always have to be on the same partition as the root directory:– /bin/, /dev/, /etc/, /lib/, and /sbin/

10

Essential Binaries for Use by All Users (/bin/)

11

Boot Directory (/boot/)

• /boot/ contains static files of the boot loader– These are files required for the boot process (with

the exception of configuration files)

• The backed-up information for the Master Boot Record (MBR) and the system map files are also stored here– These contain information about where exactly the

kernel is located on the partition

• This directory also contains the kernel– According to FHS, the kernel can also be located

directly in the root directory

12

Device Files (/dev/)

• Each hardware component existing in the system is represented as a file in /dev/

• The hardware components are addressed via these files by writing or reading to or from one of the files.

• Two types of Device Files Exist:– Character special files (or character devices)

• ‘talks’ to device character-by-character (1 byte at a time) • Examples: printer, virtual terminals, serial devices

– Block special files (or block devices)• ‘talks’ to device 1 block at a time (1 block can be 512bytes

to 312KB)• Examples: Hard disk, floppy disk, CD burners.

13

Device Files (/dev/, continued)

14

Device Files (/dev/, continued)

15

Configuration Files (/etc/)

16

User Directories (/home/)

• Every user on a Linux system has his own area in which to create and remove files: its home directory

• Individual configuration files can be found in the user’s home directory

• If there are no special settings, the home directories of all users are located beneath /home/

• The home directory of a user be addressed via “~”

17

Libraries (/lib/)

• Shared libraries are removed from the actual program, stored in the system, and only called up when the program runs

• The directory /lib/ contains the libraries that are used by programs in the directories /bin/ and /sbin/

• The kernel modules (hardware drivers not compiled into the kernel) are located in the directory /lib/modules/

• You can find additional libraries below the directory /usr/

18

Mount Points for Removable Media (/media/*)

• OpenSuse creates directories such as the following in the directory /media/ (depending on your hardware) for mounting removable media:– /media/cdrom/– /media/cdrecorder/– /media/dvd/– /media/floppy/

19

Home Directory of the Administrator (/root/)

• The home directory of the system administrator is not located beneath /home/ like that of a normal user

• Preferably, it should be on the same partition as the root directory,“/”– Only then is it guaranteed that the user root can

always log in without a problem and have her own configured environment available

20

System Binaries (/sbin/)

• Contains important system administration programs

• Programs in /sbin/ can also, as a rule, be run by normal users, but only to display configured values

21

System Binaries (/sbin/, continued)

22

Data Directories for Services (/srv/)

• The directory /srv/ contains subdirectories filled with data of various services

• For example:– The files of the Apache web server are located in the

directory /srv/www/– The FTP server files are located in the directory

/srv/ftp/

23

Temporary Area (/tmp/)• Various programs create temporary files that are

stored in /tmp/ until they are deleted

The Hierarchy below /usr/• According with the FHS, represents a second

hierarchical layer

24

Variable Files (/var/)

• Contains a hierarchy described in the FHS

• This directory and its subdirectories contain files that can be modified while the system is running

25

Variable Files (/var/, continued)

26

System Information Directory (/sys/)

• The directory /sys/ provides information in the form of a tree structure on various hardware buses, hardware devices, active devices, and their drivers

27

Mount Point for Temporarily Mounted File Systems (/mnt/)

• Standard directory for integrating file systems– It should only be used for temporary purposes– da10:~ # mount /dev/hda7 /mnt– da10:~ # umount /mnt

• If you do not include any options with mount, the program tries out several file system formats

• To specify a specific file system, use the option -t– If the file system format is not supported by the

kernel, the command is aborted, and you receive an error message

– In this case, you must compile a new kernel that supports the file system format

28

Directories for Mounting Other File Systems

• A directory must exist at the point where you intend to mount the file system– This directory is referred to as the mount point

• In most cases, only the user root can mount and unmount directories– Use mount and umount

• If you mount a file system to a non-empty directory, existing contents of directory will not be accessible

• Mounted file system does not have to be on a local hard disk

29

Directories for Mounting Other File Systems (continued)

• The directories listed below cannot be imported from other machines

• Some of the directories that can be shared are:

30

Automated Mounting of Removable Media

• In past versions of Linux, it was necessary to mount removable media with some command to access them and to unmount them afterwards

• This has been automated in current kernel versions

31

Identify File Types in the Linux System

• The file types in Linux referred to as normal files and directories are also familiar to other operating systems– Normal Files– Directories

• Additional types of files are UNIX-specific– Device Files– Links– Sockets– FIFOs

32

Normal Files

• Normal files: a set of contiguous data addressed with one name– This includes all the files normally expected under

this term (such as ASCII texts, executable programs, or graphics files)

• You can use any names you want for these files—there is no division into filename and file type– A number of filenames still retain this structure, but

these are requirements of the corresponding applications, such as a word processing program or a compiler

33

Directories

• Directories contain two entries with which the structure of the hierarchical file system is implemented– One of these entries (“.”) points to the directory itself– The other entry (“..”) points to the entry one level

higher in the hierarchy

34

Device Files

• Each piece of hardware (with the exception of network cards) in a Linux system is represented by a device file – These files represent links between the hardware

components or the device drivers in the kernel and the applications

• Every program that wants to access hardware must access it through the corresponding device file– The programs write to or read from a device file– The kernel then ensures that the data finds its way

to the hardware or can be read from the file

35

Links

• Links are references to files located at other points in the file system

• Data maintenance is simplified through the use of such links– Changes only need to be made to the original file– The changes are then automatically valid for all links

36

Sockets

• A socket refers to a special file with which data exchange between two locally running processes can be implemented through the file system

FIFOs

• FIFO (first in first out) or named pipe is a term used for files used to exchange data between processes

• The file can exchange data in one direction only

37

Change Directories and List Directory Contents

• The prompt of a shell terminal contains the current directory (such as tux@da10:~)

• The tilde (~) indicates that you are in the user’s home directory

• Commands:– ls– cd– pwd

38

ls

39

cd

• cd: change directory

40

pwd

• pwd: print working directory

• pwd -P prints the physical directory without any symbolic links

41

Create and View Files

• To create and view files, you need to know how to do the following:– Create a New File with touch– View a File with cat– View a File with less– View a File with head and tail

42

Create a New File with touch

• touch: changes the time stamp of a file or creates a new file with a size of 0 bytes

43

Create a New File with touch (continued)

44

View a File with cat

• You can use cat to view the contents of a file

• Comparable to the command “type” in DOS

• The command must include the filename of the file you want to see

45

View a File with less

• less displays the contents of a file page by page

• Even compressed files (such as .gz and .bz2) can be displayed

46

View a File with head and tail

• Used to view the first or last lines of a file

• By default, they show ten lines

• head -20 displays the first twenty lines

• tail -f displays a continuously updated view of the last lines of a file

47

Manage Files and Directories

• In this objective, you learn how to:– Copy and Move Files and Directories– Create Directories– Delete Files and Directories– Link Files

48

Copy and Move Files and Directories (continued)

• To copy the contents of proposals/ and all its files, including hidden files and subdirectories, to the existing directory proposals_old/:

• To avoid copying the hidden files, do the following:

49

Copy and Move Files and Directories (continued)

50

Create Directories

• You can use the command mkdir (make directory) to create new directories– mkdir proposal

• Use the option -p to create a complete path– mkdir -p proposal/january

51

Delete Files and Directories

• Use rmdir to delete empty directories– rmdir proposal

• Use rm to delete files and directories– rm part*– To delete directories (even if not empty)

• rm –r testdir

– You can use the two options in Table 5-17 with rm

User must have permission to delete file(s)

52

Link Files

• Each file is described by an inode – To see the inode number you can enter ls –I– Each inode has a size of 128 bytes– An inode contains all the information about the file

besides the filename• Link: a reference to a file

– Create a hard link using ln, which points to the inode of an already existing file

• Hard links can only be used when both the file and the link are in the same file system

– Create a symbolic link using ln –s; a symbolic link is assigned its own inode

53

Link Files (continued)

54

Link Files (continued)

• A symbolic link can point to a non-existing object if the object and its corresponding name no longer exist

• For example, if you erase the file old in the preceding example, in OpenSuse new will be shown in a different color in the output of ls, indicating that it points to a non-existent file

• An advantage of symbolic links is that you can create links to directories

55

Find Files

• In this objective you learn how to find files and programs using the following commands:– KFind– find– locate– whereis– which– type command

56

KFind

57

KFind (continued)

• Table 5-18 shows the results of three different search strings

58

KFind (continued)Use to narrow search

59

find

Usage: find path criteria action

60

find (continued)• Examples:

find / -name game

Looks for a file named "game" starting at the root directory (searching all directories including mounted filesystems). The `-name' option makes the search case sensitive. You can use the `-iname' option to find something regardless of case.

find /home -user joe

Find every file under the directory /home owned by the user joe.

find /usr -name *stat

Find every file under the directory /usr ending in "stat".

find /var/spool -mtime +60

Find every file under the directory /var/spool that was modified more than 60 days ago.

61

locate

• locate is an alternative to find –name– The package findutils-locate must be installed– find can be quite slow– locate searches through a database previously

created (/var/lib/locatedb), making it much faster• The database is automatically created and updated

daily by OpenSuse

• Use updatedb to update it manually

• Examples:– locate letter_Miller– locate umount

62

locate

63

whereis

• whereis returns the binaries (option -b), manual pages (option -m), and the source code (option -s) of the specified command– If no option is used, all this information is returned, if

the information is available

• whereis is faster than find, but it is less thorough

• Example:

64

which

• which searches all paths listed in the variable PATH for the specified command and returns the full path of the command– It is especially useful if several versions of a

command exist in different directories and you want to know which version is executed when entered without specifying a path

65

type command

• type command can be used to find out what kind of command is executed when command is entered—a shell built-in command or an external command

• The option -a delivers all instances of a command bearing this name in the file system