Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting...

12
Intro to Bash Shell Script and VIM Iacovos G. Kolokasis Department of Computer Science, University of Crete

Transcript of Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting...

Page 1: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

Intro to Bash Shell Script and VIM

Iacovos G. Kolokasis

Department of Computer Science, University of Crete

Page 2: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

What is a Bash Shell Scripting

� Bash: Is a command language interpreter

� Shell: Is a macro processor which allows for interacting or

non-interacting command execution

� Script: Allows for an automatic command execution

CS-255 – Systems Programming Lab 1 of 11 [email protected]

Page 3: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

Basics

� #: comments

� ˜: home directory

� cd dir: Change directory to dir

� mkdir dir: Create a new directory named dir

� rm foo: Delete a file named foo

� ls: Print the files and subdirectories of the current directory

� touch foo: Create a new empty file named foo if one does not

already exist

CS-255 – Systems Programming Lab 2 of 11 [email protected]

Page 4: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

I/O Redirection

� ls > foo.txt: Calls ls and write outputs to foo.txt. foo.txt is trun-

cated (its length becomes 0) before writing.

� cat < foo.txt: Call cat and redirect the contents of foo.txt to its

standard input. This means that any scanf calls in cat’s source code

will be reading from foo.txt in- stead of the keyboard.

� ls >> foo.txt: Call ls and append its output to foo.txt. If foo.txt

does not exist it is created.

� |: pipe, similar to >

CS-255 – Systems Programming Lab 3 of 11 [email protected]

Page 5: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

find: Search for files in a directory hierarchy

� find . -name ”hello.c”: Look for a file named hello.c in the

directory tree that starts from the current directory

� find myexercise1 -name ”hello.c”: Look for a file named hello.c in

the directory tree that starts from the directory named myexercise1

� find . -maxdepth 2 -name ”*.h”: Look for all files ending with .h

in the directory tree that starts from the current directory and up to

directory depth 2

CS-255 – Systems Programming Lab 4 of 11 [email protected]

Page 6: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

grep: Find lines matching a pattern

� grep foo bar.c: Search for matches to pattern foo in the file bar.c

� grep -n foo bar.c: Search for matches to pattern foo in the file

bar.c and print the line numbers

� grep -r foo : Search for foo, recursively, in all the files in the

current directory and its subdirectories

CS-255 – Systems Programming Lab 5 of 11 [email protected]

Page 7: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

VIM: Modes

� Normal - ESC

� Insert - i

� Visual - v

� Command - :

CS-255 – Systems Programming Lab 6 of 11 [email protected]

Page 8: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

Navigation

� h, j, k, l or arrows : Move the cursor left, down, up or right

� < number > gg - Move to the line < number >

� gg - Move to the first line of the file

� G - Move to the last line of the file

CS-255 – Systems Programming Lab 7 of 11 [email protected]

Page 9: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

Save & Quit

Use in command mode:

� w - Save file

� w filename - Save to a file named filename

� q - Close current window

� wq - Save file and close current window

CS-255 – Systems Programming Lab 8 of 11 [email protected]

Page 10: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

Copy & Paste

Use in command mode:

� x - Cut

� y - Copy (use the visual mode)

� p - Paste the text

� D - Kill line

CS-255 – Systems Programming Lab 9 of 11 [email protected]

Page 11: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

Search

Use in command mode:

� /text to seach - highlights all occurrences of ”text to search” in the

file. Use n and N to move to the next or previous occurrence

CS-255 – Systems Programming Lab 10 of 11 [email protected]

Page 12: Intro to Bash Shell Script and VIMhy255/tuts/2021/bash_vim.pdf · What is a Bash Shell Scripting Bash: Is a command language interpreter Shell: Is a macro processor which allows for

Ctags Find struct & Function Definitions

Create a tag file using ctags:

� ctags -R . - Generate a tag file or all files in the current direc- tory

to later use with vim.

Navigate to definitions:

� ctrl + ] . - Jump to definition of function/struct identifier un- der

the cursor

� ctrl + t - Jump back to previous place in file, before using ”ctrl + ]”

CS-255 – Systems Programming Lab 11 of 11 [email protected]