DEV Community

Samuel Lubliner
Samuel Lubliner

Posted on

The Shell

Bourne Again SHell prompt

machine-name:current-working-directory$

~ means home
$ means not the root user

We can type in commands at the shell

The shell parses the command

  • splitting it by whitespace,
  • runs the program (first word),
  • supplying each subsequent word as an argument
    • argument that contains spaces or other special characters
    • either quote the argument with ' or "
    • or escape just the relevant characters with \

The shell is a programming environment with variables, conditionals, loops, and functions.

date prints the current date and time.

echo prints out its arguments.

$PATH is an environment variable that lists which directories the shell should search for programs when it is given a command.

which find out which file is executed for a given program name

Bypass $PATH by giving the path to the file we want to execute.

Path

  • delimited list of directories
  • separated by / on Linux and macOS and \ on Windows
  • the path /
    • linux and macOS
    • “root” of the file system
    • absolute path
    • starts with /
    • relative path
    • relative to the current working directory

pwd print working directory
cd change current working directory

. current directory
.. parent directory

ls list files in current directory

~ home directory

- flags with values modify command behavior

-h or --help flag will print some help text

cd - previous directory

mv rename, move a file

  • two arguments
    • renames the first arg as the second (file name) or,
    • moves moves first arg to the second (directory)

cp copy a file or directory
cp [options] source destination
cp file.txt backup/ copy a file from one location to another
cp file1.txt file2.txt backup/ copy multiple files
cp -r mydirectory/ backup/ copy an entire directory and its contents
Be cautious with the -r option, as it can overwrite files and directories.

mkdir make a new directory

man takes as an argument the name of a program, and shows you its manual page
q to exit

ctr l clears terminal

Connecting programs

  • input stream

    • program reads input from input stream
    • default keyboard
  • output stream

    • sends data out of the program
    • default screen

< file rewire the input of this program to be the contents of a file

> file rewire the output of the preceding program into this file

cat prints the context of a file

>> append

|

  • take the output of the program to the left and make it the input to the program on the right.
  • “chain” programs such that the output of one is the input of another

# mean run as root

touch create new file

Top comments (0)