Introduction to Linux Lei Zhang UCLA Linux Users





























- Slides: 29

Introduction to Linux Lei Zhang UCLA Linux Users Group http: //linux. ucla. edu/~leiz/linuxintro. ppt

What is Linux? • UNIX-like Operating System • Developed by Finnish computer science student Linus Torvalds as an OS project in 1991. • Made available on the net and has been developed ever since

Why Use Linux? • Multi-Tasking / Multi-User • Stability / Reliability • Portable • Comes with a complete development enviroment (C, C++, Fortran, Java, Perl, Python, etc. . . )

Why Use Linux? • It's Free Software – Free as in beer – Free as in speech • It's Open Source – You can see the source code – You can modify the source code

Users in Linux Every User has: • username, group(s), password, home directory • Root User vs Regular User – Root == Administrator == God • Use sparingly, only when necessary • Remember, it's your bed, don't Sh** in it – Regular Users • Limited privileges

Home Dir and Path • Home Directory – Location of user files – Start point when logging in • Path – Used to search for commands – Colon separated – e. g. /usr/bin: /usr/X 11 R 6/bin

The filesystem (fs) • Linux supports many filesystems – Native fs (ext 2, ext 3, reiserfs, etc) • UNIX permissions, links, special devices – Microsoft fs (fat, ntfs) • Read/write support for fat, readonly for ntfs – Network fs (nfs, smb, afs, etc) • Support for accessing files on other computers

Structure of fs • The fs is conceptualised as a tree • / is the root directory and everything is a subdirectory of it branching downwards • Other drives are attached to the tree – No “C” drive – Attach other filesystem using the mount and umount command • umount is the unmount command, not a typo • Normally only root can (un)mount

Tree Structure – root directory / – essential user programs /bin – kernels and boot loader /boot – device files /dev – configuration files /etc – home directories /home – essential libraries and kernel modules /lib – mount point for other filesystems /mnt – addon (optional) software /opt – system internals /proc – the root user's home directory /root – essential system binaries /sbin – temporary files /tmp – user programs (not as essential) /usr/bin –– |– similar hierachy to root dir /usr/lib /usr/sbin –– – various other files (logs, mail, etc) /var

Types of files • Everything is a file! • Ordinary files - text, data or programs • Directories - contain other files/directories • Links - pointers to other files • Special files – Devices - represent hardware (e. g. /dev/fd 0) – Others - pipes, sockets

The Linux User Interface • Command line interface (CLI) – Command line type commands at a prompt – Can be more flexible / powerful • Graphical user interface (GUI) – Point and click windows interface – Familiar / easy to use

The GUI • X Window System – underlying graphics system • Desktop Environments (the actual GUI) – e. g. KDE, GNOME • Useful Apps – Konsole – runs a shell (the CLI) – Open. Office – wordprocessor/spreadsheet – Mozilla – Web Browser – Gaim – AIM / MSN / Yahoo IM client

The Shell (CLI) • Command Interpreter • Runs programs on the user's behalf • varieties csh, tcsh, bash, zsh, etc – Bash is the most popular • The prompt e. g. – user@computer: /current_dir$

Command Line Cycle Display Prompt User types command enter Shell executes the command

Getting Help (The Manual) • Man command • man sections: • e. g. man 3 printf

ls output • Permissions • links • owners group • size of file/dir • date of last modification • name of file/dir

Permissions • Multi-user OS needs access mechanism for files • Each file/dir has permissions for its owner, its owners group and everyone else on the system (u, g, o) • The permissions are for the ability to read, write and execute a file/dir

RWX • Output of ls -l • if permission is on a letter appears if it is off there will be a minus sign (-) • first one is - for a file or d for dir • next 3 are the users perms • next 3 are the groups perms • last 3 are everyone else's perms

Examples of permissions -rw-r--r-dr-xr-xr-x -rwxr-xr-lrwxrwxrwx foo bar prog. c prog

Changing permissions • Chmod command - has 2 modes – number (convert bits to decimal number) • directly set the permission • read = 4, write = 2, execute = 1 • e. g. 750 is equivalent to rwxr-x--- – add/remove perms: {a, u, g, o} {+, -} {r, w, x} • chmod permission <filename> – e. g. chmod a+x foo – e. g. chmod 644 bar

Navigation • Absolute - full pathnames (‘/’) • Relative - pathnames relative to were you are in the fs (. . . ~) • Shortcuts – ‘. ’ is current directory – ‘. . ’ is the parent of current directory – ‘~’ is your home directory

Wildcards and Filename completion • The wildcard character is * and matches zero or more characters. – *. txt = all files that end in. txt – a* = all files that start with the letter a – d*. c = all files that start with d and have. c at the end • Filename completion - type first few characters of a file/command press tab, the shell will fill in the rest

Basic commands • cd – change directory – e. g. ‘cd /usr/bin’ • cp – copy files – e. g. ‘cp ~/cs 111/source. c /mnt/floppy’ • mv – move files – e. g. ‘mv /tmp/mystuff/*. . /somewhere’ • rm – remove files – e. g. ‘rm ee 115 c/hwk*’ • mkdir, rmdir – make and remove directories

Standard input/output • 3 special file handles for input/output of programs – standard input (stdin) – file handle 0 – standard output (stdout) - file handle 1 – standard error (stderr) - file handle 2 • By default for programs: – stdout and stderr are the screen – stdin is the keyboard

Pipes • The pipe character is: “ | ” • The output of the command on the left of the pipe becomes the input to the command on the right – ls | wc -l output of ls as input to wc • Can create complex commands to perform difficult tasks

Processes • ps command lists processes on the system – e. g. ‘ps auwx’ shows all processes running on the system at the time • Processes can be killed – Using the ‘kill’ command • You must be owner of process, or root • e. g. ‘kill 500’ will kill process #500 • Can also be used to send processes signals

Compiling Programs • gcc – GNU C Compiler • Simple compiler usage – gcc –o hello. c • Compile only – gcc –c hello. c – gcc –c functions. c • Link files together – gcc –o newhello. o functions. o • Run the program –. /hello

Network Utils • ping - tells if a machine is on the network – e. g. ‘ping www. ucla. edu’ will keep sending packets until CTRL + C • traceroute - shows all points between machine and machine you are looking for – e. g. ‘traceroute www. yahoo. com’ shows all the hops to yahoo • netstat - show network connections

The End (For Now)