Download - Dev day linux redu
Tarcisio Coutinho16 Nov 2012
Dev-dayLinux - 101
Timeline
● 1965 :: MULTICS :: MTI, Bell Labs (AT&T) e General Eletric
● 1969 :: Ken Thompson :: Unics (Assembly)● 1971 :: Ken Thompson :: Rewrites the system on B
language (to solve portability problems)● 1973 :: Thompson and Denis Richie :: C programming
language● 1974 :: UNIX \o/● 1983 :: AT&T closes the UNIX's source code● 1983 :: Andrew Tanenbaum :: MINIX● 1984 :: Richard Stallman :: GNU (GCC, Emacs)● 1991 :: Linux Torvalds :: GNU/Linux
GNU/Linux Distribution Timeline
http://futurist.se/gldt/
GNU/Linux
GNU/Linux Structure
Shell
What is Shell?
● Provides the command prompt and to interpret commands
● Provides user interface for the OS and Kernel
Shell implementations
● bash (bourne again shell :: GNU implementation)● ash (Almquist Shell :: BSD)● csh (C shell :: BSD)● tcsh (tee-shell)● sh (Stephen Bourne)● ksh (Korn shell)
Shell Variable Basics
● bash maintains a set of shell variables○ PS1 :: Prompt String 1 :: Default interaction ○ PS2 :: Prompt String 1 :: Continuation interactive
prompt○ PATH :: contains a list of all the directories that
hold commands or other programs you are likely to execute
● bash variables are untyped
Export Variables
● When a variable is exported to the environment, it is passed into the environment of all child processes
● let's go to the terminal○ REDU="Redu Tech"
■ conventionally uppercase
○ echo $REDU or echo ${REDU}■ $ prefix to interpret a shell var
○ echo "echo \$REDU" | bash
Fun with PS1 :: Information
● \u - Username● \h - Hostname● \w - Full path of the current woking directory
export PS1="\u@\h \w"
export PS1="\u@\redu: \w "
Fun with PS1 :: Colors
● \e[ :: indicates the beginning of color
● x;ym :: indicates color code
● \e[m :: indicates end of color prompt
White 1;37Green 1;32Cyan 1;36Yellow 1;33
PS1="\e[01;32m\u\e[m@\redu: \w "
PS1="\e[01;32m\u\e[m\e[1;37m@\e[mredu: \w "
PS1="\e[01;32m\u\e[m\e[1;37m@\e[m\e[1;36mredu:\e[m \w "
PS1="\e[01;32m\u\e[m\e[1;37m@\e[m\e[1;36mredu:\e[m\e[1;33m\w\e
[m "
Streams, Pipes and Redirects
Streams
● Everything is a file.○ a program reading from the terminal’s device file
will receive characters typed at the keyboard
● When a program is launched, it is automatically provided with three file descriptors○ Standard input (abbreviated stdin) :: 0○ Standard output (abbreviated stdout) :: 1○ Standard error (abbreviated stderr) :: 2
● The standard input is different than parameters
Pipes and Redirects
● Pipes |○ provides communication inter-process
■ tie the output of one program to the input of another
■ e.g. echo "echo 'Hello Redu'" | bash
● Redirection○ allows you to manage the origin of input streams
and the destination of output streams■ > :: Redirection operator■ >> :: Append operator■ < :: Receive stdin from file
GNU and Unix Commands
Tricks
● cd - :: go to the recent directory○ Works with git branches
■ git checkout -
● !! :: call most recent command○ bang-bang
● $( ) :: Command substitution or sub-shell○ cd $(pwd)/..
GNU and Unix sed & awk
Sed
● Stream based processing text editor
echo "sed tutorial. sed is a powerful text editor" | sed 's/sed/awk/'
echo "sed tutorial. sed is a powerful text editor" | sed 's/sed/awk/g'
echo "sed tutorial. sed is a powerful text editor" | sed 's/sed/awk/2g'
Sed
echo "line without numbers \nline with numbers: 1 2 3 " | sed -r 's/[0-9]+/X/g'
echo "line without numbers \nline with numbers: 1 2 3 " | sed -rn 's/[0-9]+/X/g'
echo "line without numbers \nline with numbers: 1 2 3 " | sed -rn 's/[0-9]+/X/gp'
Sed
● Delete lines○ sed '1,2-3 d' [FILE]○ sed '/[pattern]/d [FILE] ○ sed -i '1 d' [FILE]
● Add lines○ sed '/[pattern]/ i [text]' [FILE]○ sed '/[pattern]/ a [text]' [FILE]
○ sed "1s/^/[text]" [FILE]
Awk
● AWK○ processing text programming language
■ column based
awk -F [pattern] '{ [CMD] }'
$n -> variable from split by pattern match
ls -l | awk -F ' ' '{print $0}'
Quests
Fun with Seds
● Parse rails logs○ Request count development.log
○ Top 10 most slow compound log job
grep awk head wcuniq sort tail sed 'N;'sed cut nl expandtr
Dev-dayLinux - 101