the unix shell - software carpentry$$$$ ls -f bin/ data/ mail/ music/ notes.txt papers/ pizza.cfg...

87
Files and Directories The Unix Shell Files and Directories Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See http://software-carpentry.org/license.html for more information.

Upload: others

Post on 16-Feb-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • Files and Directories

    The Unix Shell

    Files and Directories

    Copyright © Software Carpentry 2010

    This work is licensed under the Creative Commons Attribution License

    See http://software-carpentry.org/license.html for more information.

  • Run

    Programs

    Store

    Data

    Files and Directories Introduction

    Communicate

    with each other

    Interact

    with us

  • Run

    Programs

    Store

    Datashell

    Files and Directories Introduction

    Communicate

    with each other

    Interact

    with us

  • Store

    Datashell

    Files and Directories Introduction

  • Store

    Datashell

    Files and Directories Introduction

    file system

  • Store

    Datashell

    Files and Directories Introduction

    file system

    files

  • Store

    Datashell

    Files and Directories Introduction

    file system

    files directories

  • Store

    Datashell

    Use the shell

    Files and Directories Introduction

    file system

    files directories

    Use the shell

    to view and change

    the file system

  • Store

    DatashellUse the shell

    to run commands

    Files and Directories Introduction

    file system

    files directories

    to run commands

    to view what's in

    the file system

  • login:login:login:login:

    Files and Directories Introduction

  • login:login:login:login: computer prompt in bold

    Files and Directories Introduction

  • login:login:login:login: computer prompt in bold

    explanatory text in blueexplanatory text in blue

    Files and Directories Introduction

  • login:login:login:login: vlad user input in green

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ******** password

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ shell prompt

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ shell prompt

    like Python's >>> and …like Python's >>> and …

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami check user ID

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami check user ID

    shell finds the whoami programshell finds the whoami program

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami check user ID

    shell finds the whoami programshell finds the whoami program

    runs it

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    check user ID

    shell finds the whoami programvlad shell finds the whoami program

    runs it

    prints its output

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    check user ID

    shell finds the whoami programvlad

    $$$$

    shell finds the whoami program

    runs it

    prints its output

    displays a new prompt

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladvlad

    $$$$ pwd what is the working directory

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladvlad

    $$$$ pwd what is the working directory

    the directory used when no other

    directory is explicitly specified

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladvlad

    $$$$ pwd

    /users/vlad

    $$$$

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data users

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data users tmp

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data users tmp

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data users tmp

    imhotep larry vlad

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data users tmp

    imhotep larry vlad

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data users tmp

    imhotep larry vlad

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vlad

    /

    root

    vlad

    $$$$ pwd

    /users/vlad

    $$$$

    bin data users tmp

    imhotep larry vlad

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladvlad

    $$$$ pwd

    /users/vlad

    $$$$ ls stands for "listing"

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladvlad

    $$$$ pwd

    /users/vlad

    $$$$ ls stands for "listing"

    sadly more memorable than

    most command names

    Files and Directories Introduction

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladvlad

    $$$$ pwd

    /users/vlad

    $$$$ ls

    bin data mail music

    notes.txt papers pizza.cfg solar

    solar.pdf swc

    Files and Directories Introduction

    solar.pdf swc

    $$$$

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladan argument or flag modifying

    vlad

    $$$$ pwd

    /users/vlad

    $$$$ ls -F

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    an argument or flag modifying

    the command's behavior

    Files and Directories Introduction

    solar.pdf swc/

    $$$$

  • login:login:login:login: vlad

    password:password:password:password: ********

    $$$$ whoami

    vladadds a trailing '/' to

    vlad

    $$$$ pwd

    /users/vlad

    $$$$ ls -F

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    adds a trailing '/' to

    directory names

    Files and Directories Introduction

    solar.pdf swc/

    $$$$

  • $$$$ ls -F

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/solar.pdf swc/

    vlad

    bin musicmail papersdata notes.txt

    Files and Directories Introduction

    solarpizza.cfg solar.pdf swc

  • $$$$ ls -F

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/solar.pdf swc/

    By convention, use filename extension to indicate file type

    Files and Directories Introduction

  • $$$$ ls -F

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/solar.pdf swc/

    By convention, use filename extension to indicate file type

    .txt for text, .pdf for PDF, .cfg for configuration file, etc.

    Files and Directories Introduction

  • $$$$ ls -F

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/solar.pdf swc/

    By convention, use filename extension to indicate file type

    .txt for text, .pdf for PDF, .cfg for configuration file, etc.

    But this is only a convention, not a guarantee

    Files and Directories Introduction

  • $$$$ ls –F data

    Files and Directories Introduction

  • $$$$ ls –F data

    amino_acids.txt elements/ morse.txt

    pdb/ planets.txt sunspot.txt

    $$$$$$$$

    Files and Directories Introduction

  • $$$$ ls –F data

    amino_acids.txt elements/ morse.txt

    pdb/ planets.txt sunspot.txt

    $$$$

    vlad

    data

    a relative path

    $$$$

    Files and Directories Introduction

  • $$$$ ls –F data

    amino_acids.txt elements/ morse.txt

    pdb/ planets.txt sunspot.txt

    $$$$

    vlad

    data

    a relative path

    relative to

    current working directory

    $$$$

    Files and Directories Introduction

  • $$$$ ls –F /data

    access.log backup/ hardware.cfg

    network.cfg

    $$$$$$$$

    Files and Directories Introduction

  • $$$$ ls –F /data

    access.log backup/ hardware.cfg

    network.cfg

    $$$$

    an absolute path

    $$$$

    Files and Directories Introduction

  • $$$$ ls –F /data

    access.log backup/ hardware.cfg

    network.cfg

    $$$$

    an absolute path

    leading '/' means "from root"

    $$$$

    Files and Directories Introduction

  • $$$$ ls –F /data

    access.log backup/ hardware.cfg

    network.cfg

    $$$$

    bin data users tmp

    /

    an absolute path

    leading '/' means "from root"

    so it always refers to

    this directory

    $$$$

    Files and Directories Introduction

    imhotep larry vlad

  • $$$$ pwd

    /users/vlad

    $$$$

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ cd data

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ cd data change directory

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    change directory

    actually doesn't change the directory

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ cd data

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    change directory

    actually doesn't change the directory

    changes the shell's idea of

    which directory we are in

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ cd data

    Files and Directories Introduction

    which directory we are in

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ cd data

    $$$$ pwd

    /users/vlad/data

    $$$$

    Files and Directories Introduction

    $$$$

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ cd data

    $$$$ pwd

    /users/vlad/data

    $$$$ ls

    Files and Directories Introduction

    $$$$ ls

    amino_acids.txt elements/ morse.txt

    pdb/ planets.txt sunspot.txt

    $$$$

  • $$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    because we're now "in"

    this directory

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ cd data

    $$$$ pwd

    /users/vlad/data

    $$$$ ls

    Files and Directories Introduction

    $$$$ ls

    amino_acids.txt elements/ morse.txt

    pdb/ planets.txt sunspot.txt

    $$$$

  • $$$$ pwd

    /users/vlad/data

    $$$$

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd .. the directory above the current one

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd .. the directory above the current one

    its parent directoryits parent directory

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    $$$$ pwd$$$$ pwd

    /users/vlad

    $$$$

    Files and Directories Introduction

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    $$$$ pwd$$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$

    Files and Directories Introduction

    $$$$

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    $$$$ pwd$$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ ls -F -a

    Files and Directories Introduction

    $$$$ ls -F -a

    ./ ../ bin/ data/

    mail/ music/ notes.txt papers/

    pizza.cfg solar/ solar.pdf swc/

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    $$$$ pwd$$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ ls -F -a

    "show all"

    Files and Directories Introduction

    $$$$ ls -F -a

    ./ ../ bin/ data/

    mail/ music/ notes.txt papers/

    pizza.cfg solar/ solar.pdf swc/

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    $$$$ pwd$$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ ls -F -a

    parent directory

    Files and Directories Introduction

    $$$$ ls -F -a

    ./ ../ bin/ data/

    mail/ music/ notes.txt papers/

    pizza.cfg solar/ solar.pdf swc/

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    $$$$ pwd$$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ ls -F -a

    parent directory

    Files and Directories Introduction

    $$$$ ls -F -a

    ./ ../ bin/ data/

    mail/ music/ notes.txt papers/

    pizza.cfg solar/ solar.pdf swc/

    /users

  • $$$$ pwd

    /users/vlad/data

    $$$$ cd ..

    $$$$ pwd$$$$ pwd

    /users/vlad

    $$$$ ls

    bin/ data/ mail/ music/

    notes.txt papers/ pizza.cfg solar/

    solar.pdf swc/

    $$$$ ls -F -a

    this directory

    itself

    Files and Directories Introduction

    $$$$ ls -F -a

    ./ ../ bin/ data/

    mail/ music/ notes.txt papers/

    pizza.cfg solar/ solar.pdf swc/

    itself

  • Things are different on Windows

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Drive letter

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Drive letter

    Each drive is a separate file system

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Backslash \ as separator

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Backslash \ as separator

    Unix uses \ to escape special characters

    in names like my\ files.txt

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Case insensitive

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Case insensitive

    c:\users\vlad C:\USERS\VLAD C:\uSeRs\VlAd

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Cygwin: /cygdrive/c/Users/vlad

    Map drive letters to "directories"

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Cygwin: /cygdrive/c/Users/vlad

    Map drive letters to "directories"

    And use / instead of \

    Files and Directories Introduction

  • Things are different on Windows

    C:\Users\vlad

    Cygwin: /cygdrive/c/Users/vlad

    Map drive letters to "directories"

    And use / instead of \

    Files and Directories Introduction

    But still case insensitive

  • Things are different on Windows

    C:\Users\vlad

    Cygwin: /cygdrive/c/Users/vlad

    Map drive letters to "directories"

    And use / instead of \

    Files and Directories Introduction

    But still case insensitive

    Can't put backup.txt and Backup.txt in a directory

  • pwd print working directory

    cd change working directory

    ls listingls listing

    . current directory

    .. parent directory

    Files and Directories Introduction

  • August 2010

    created by

    Greg Wilson

    August 2010

    Copyright © Software Carpentry 2010

    This work is licensed under the Creative Commons Attribution License

    See http://software-carpentry.org/license.html for more information.