introduction to the linux command line - uaf home · introduction to the linux command line...

18
Introduction to the Linux Command Line September 2012 Presented by Oralee Nudson ARSC User Consultant & Student Supervisor [email protected]

Upload: buitu

Post on 15-Sep-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Introduction to the Linux Command Line

September 2012

Presented by Oralee Nudson ARSC User Consultant & Student Supervisor

[email protected]

Presentation Topics   Information Assurance and

Security Awareness

  Linux Overview

  Navigating the File System

  Connecting to Remote Systems

  Working with Files

  Working with Active Processes

  Customize the User Environment

  Feedback and Exercises

Information Assurance and Security Awareness

  Download the ARSC Information Assurance pdf document or take the Information Systems Security Awareness course. Both are available here:

www.arsc.edu/arsc/support/policy/ia

Linux Overview   Unix-like OS developed by Linus Torvalds in 1991

  Open Source Software

  “Runs on more computer hardware platforms than any other OS”

  Run on Supercomputers, embedded systems

  The shell is a command line interface to the OS   Open a “terminal” window   Edit files   Check the status of running processes   Send signals to processes

Navigating the File System   Linux is a collection of

files and directories (think of folders)

  The top directory is called the “root”.

  Some directories contain actual files, others provide access to hardware devices

  Commands:   pwd

  cd   ls

  ls –al   ls $HOME   mkdir

  rmdir

Connecting to Remote Systems

  Login with:   ssh –X –Y [email protected]

  Example: ssh –X –Y [email protected]

  Copy files with:   scp myfiles.tar.gz [email protected]:~/phys693/

  Example: scp myfiles.tar.gz [email protected]:~/phys693

  Use a GUI: filezilla, fetch, winscp

Working with Files   Common Text Editors

  vim or gvim

  emacs   nedit

  Quickly view the contents of a file with:   cat

  less   Exit with “q”

File Input/Output & Redirection

  Three forms of input/output:   “stdin” from keyboard or a file

  “stdout” to screen or a file   “stderr” to screen or a file

  Redirect I/O with   Alligators, “>” or “>>” or “<“

  Pipes, “|”

  Tie stdout and stderr together with “2>&1”   mpirun $WORKDIR/wrf.exe > wrf.mix.out 2>&1 &!

File and Directory Permissions

  Permissions control access to files and directories   Three categories of access:

  user   group (type “groups” to determine which you belong to)   other

  Three categories of permissions:   read   write   execute

  Use “chmod” to modify access permissions   chmod u+r myDir   chmod g+rx myFile   chmod go-rwx myFile

File and Directory Permissions

  Security Awareness:   World write permissions are discouraged.

  ARSC Security policies on dot file permissions: http://www.arsc.edu/arsc/support/policy/secpolicy/index.xml#dot !

Working with Active Processes

  “ps” allows you to view process statuses   Useful variations “ps –elf” and “ps –aux”

  “top” to view what’s eating up all the CPU resources!   Exit with “q”

  Send a signal:   CTRL+c (kill)   CTRL+z (suspend)

  Search with “grep”, then “sort”

Common Linux Commands   “kill” to terminate processes

% ./loop.sh & [1] 3039 % ps PID TTY TIME CMD 2779 pts/1 00:00:00 bash 3039 pts/1 00:00:00 loop.sh 3041 pts/1 00:00:00 sleep 3042 pts/1 00:00:00 ps % kill 3039 % ps PID TTY TIME CMD 2779 pts/1 00:00:00 bash 3055 pts/1 00:00:00 ps

The “&” puts the process in the background.

The process id for loop.sh is 3039.

The sleep process was started by loop.sh and will be killed when loop.sh is killed

The processes are gone

Kill process 3039.

Customizing the User Environment

  Environment Variables store short strings of information

  Important variables: $PATH, $HOME, $CENTER / $SCRATCH

  The shell auto-expands variables

  Set with   bash: export CHUBBY_BUNNIES=funny!  bash: export PATH=${PATH}:/u1/uaf/nudson/bin!  csh/tcsh: setenv CHUBBY_BUNNIES funny!  csh/tcsh: setenv PATH ${PATH}:/u1/uaf/nudson/bin!

  View with echo $CHUBBY_BUNNIES

Customizing the User Environment

  Important info about $PATH   Its how the shell searches for executables, so you

don’t have to enter the command’s full path   Order is important

  “.” is intentionally left out for security purposes   Use “./fun_script” to run local scripts, or list out the

entire path: /u1/uaf/nudson/fun_script

  “env” lists all environment variables currently set

User Environment   Customize your login by modifying your $HOME “.”

files   http://www.arsc.edu/arsc/support/news/hpcnews/

hpcnews361/index.xml#article2   Example for bash users: Add the following to your ~/.profile file:

export PS1=“Good Morning!% ” Then source the file with “. ~/.profile”

Special Shell Characters

  “*” matches anything

  “?” matches a single character

  “&” backgrounds a running process   Bring process back to foreground with “fg”   Try with CTRL+Z

Questions?

[email protected] (907) 450-8602

Evaluation Form:

http://www.arsc.edu/arsc/support/training/trainingevalform/index.xml

Exercises

http://people.arsc.edu/~bahls/classes/exer.tar.gz