{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Working with Unix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## File and directory navigation\n", "\n", "```\n", "pwd Print working direcoory\n", "ls List files\n", "mkdir Make directory\n", "rmdir Remove directory\n", "cd Change directory\n", "rm Remove file\n", "touch Create empty file\n", "cp Copy file\n", "mv Move file\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Where am I?" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan/work/Duke_HTS2019/cliburn\n" ] } ], "source": [ "pwd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### List files" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34m.\u001b[0m\n", "\u001b[01;34m..\u001b[0m\n", "\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", ".gitignore\n", "\u001b[01;34m.ipynb_checkpoints\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls -a" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 4680\n", "drwxr-xr-x 2 jovyan users 4096 Jun 25 15:34 \u001b[0m\u001b[01;34mdata\u001b[0m\n", "drwxr-xr-x 2 jovyan users 4096 Jun 26 08:52 \u001b[01;34mfigs\u001b[0m\n", "-rw-r--r-- 1 jovyan users 20314 Jun 26 08:42 R00_Review_Basics.ipynb\n", "-rw-r--r-- 1 jovyan users 2889 Jun 25 15:34 R00_Review_Basics_Scratch.ipynb\n", "-rw-r--r-- 1 jovyan users 10478 Jun 25 15:34 R01_Data_Manipulation.ipynb\n", "-rw-r--r-- 1 jovyan users 7169 Jun 25 15:34 R01_Data_Manipulation_Scratch.ipynb\n", "-rw-r--r-- 1 jovyan users 119305 Jun 26 08:43 R01_Data_Manipulation_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 3535 Jun 25 15:34 R01_Manipulating_Data_In_R.ipynb\n", "-rw-r--r-- 1 jovyan users 40260 Jun 25 15:34 R02_Tidying_Data_In_R.ipynb\n", "-rw-r--r-- 1 jovyan users 4912 Jun 25 15:34 R02_Tidying_Data.ipynb\n", "-rw-r--r-- 1 jovyan users 64595 Jun 26 08:45 R02_Tidying_Data_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 23158 Jun 26 08:46 R03_FileIO.ipynb\n", "-rw-r--r-- 1 jovyan users 1207248 Jun 26 08:55 R04_Unsupervised_Learning.ipynb\n", "-rw-r--r-- 1 jovyan users 11822 Jun 25 15:34 R04_Unsupervised_Learning_Scratch.ipynb\n", "-rw-r--r-- 1 jovyan users 1137154 Jun 26 08:55 R05_Unsupervised_Learning_More_Examples.ipynb\n", "-rw-r--r-- 1 jovyan users 157680 Jun 26 08:55 R06_Graphics_Overview.ipynb\n", "-rw-r--r-- 1 jovyan users 214118 Jun 26 08:55 R07_Graphics_Base.ipynb\n", "-rw-r--r-- 1 jovyan users 1394754 Jun 26 08:55 R08_Graphics_ggplot2.ipynb\n", "-rw-r--r-- 1 jovyan users 4931 Jun 26 08:55 R09_Graphics_Exercise.ipynb\n", "-rw-r--r-- 1 jovyan users 104001 Jun 26 08:55 R09_Graphics_Exercise_Solutions.ipynb\n", "drwxr-xr-x 2 jovyan users 4096 Jun 25 15:34 \u001b[01;34mseqs\u001b[0m\n", "-rw-r--r-- 1 jovyan users 10940 Jun 25 15:34 Unix01_File_And_Directory.ipynb\n", "-rw-r--r-- 1 jovyan users 21469 Jun 26 09:14 Unix01_File_And_Directory_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 11715 Jun 25 15:34 Unix02_FileIO.ipynb\n", "-rw-r--r-- 1 jovyan users 12232 Jun 25 15:34 Unix02_FileIO_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 8037 Jun 25 15:34 Unix03_File_Storage.ipynb\n", "-rw-r--r-- 1 jovyan users 8477 Jun 25 15:34 Unix03_File_Storage_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 10875 Jun 25 15:34 Unix04_Text_Manipulation.ipynb\n", "-rw-r--r-- 1 jovyan users 11276 Jun 25 15:34 Unix04_Text_Manipulation_Solutinos.ipynb\n", "-rw-r--r-- 1 jovyan users 15609 Jun 25 15:34 Unix05_Variables.ipynb\n", "-rw-r--r-- 1 jovyan users 15609 Jun 25 15:34 Unix05_Variables_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 36904 Jun 25 15:34 Unix06_Bash_Bioinformatics.ipynb\n", "-rw-r--r-- 1 jovyan users 5387 Jun 25 15:34 Unix07_Capstone_Exercise.ipynb\n", "-rw-r--r-- 1 jovyan users 8226 Jun 25 15:34 Unix07_Capstone_Exercise_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 11089 Jun 25 15:34 Unix_Appendix01_Regular_Expressions.ipynb\n", "-rw-r--r-- 1 jovyan users 6000 Jun 25 15:34 Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls -l" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fields returned by `ls -l`:\n", "\n", "- Permissions\n", "- Number of hardlinks\n", "- File owner\n", "- File group\n", "- File size\n", "- Modification time\n", "- Filename\n", "\n", "Interpreation of permissions\n", "```\n", "-rw-r--r--\n", "\n", "- Regular file\n", "rw- Owner has Read and Write permission\n", "r-- Group has Read permission\n", "r-- Other has Read permission\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Globbing" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls *ipynb" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls U*" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Unix07_Capstone_Exercise.ipynb Unix07_Capstone_Exercise_Solutions.ipynb\n" ] } ], "source": [ "ls *nix*Exercise*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Make directories" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "mkdir a\n", "mkdir a/b\n", "mkdir a/b/c" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34ma\u001b[0m\n", "\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".:\n", "\u001b[0m\u001b[01;34ma\u001b[0m\n", "\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n", "\n", "./a:\n", "\u001b[01;34mb\u001b[0m\n", "\n", "./a/b:\n", "\u001b[01;34mc\u001b[0m\n", "\n", "./a/b/c:\n", "\n", "./data:\n", "gene_counts_raw.txt gene_counts.txt\n", "\n", "./figs:\n", "\u001b[01;35mbox.png\u001b[0m \u001b[01;35mfig1.png\u001b[0m \u001b[01;35mfig2.png\u001b[0m \u001b[01;35mfig3.png\u001b[0m \u001b[01;35mfig4.png\u001b[0m \u001b[01;35mfig5.png\u001b[0m g3.pdf \u001b[01;35mlm.png\u001b[0m\n", "\n", "./seqs:\n", "CM000046.1.fa CM000047.1.fa\n" ] } ], "source": [ "ls -R" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Removing empty directories" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "rmdir a/b/c\n", "rmdir a/b\n", "rmdir a" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Making nested directories in one step" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "mkdir -p a/b/c a/b/d a/b/e" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create empty files" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "touch a/b/c/foo.txt a/b/d/bar.txt a/b/e/baz.txt" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".:\n", "\u001b[0m\u001b[01;34ma\u001b[0m\n", "\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n", "\n", "./a:\n", "\u001b[01;34mb\u001b[0m\n", "\n", "./a/b:\n", "\u001b[01;34mc\u001b[0m \u001b[01;34md\u001b[0m \u001b[01;34me\u001b[0m\n", "\n", "./a/b/c:\n", "foo.txt\n", "\n", "./a/b/d:\n", "bar.txt\n", "\n", "./a/b/e:\n", "baz.txt\n", "\n", "./data:\n", "gene_counts_raw.txt gene_counts.txt\n", "\n", "./figs:\n", "\u001b[01;35mbox.png\u001b[0m \u001b[01;35mfig1.png\u001b[0m \u001b[01;35mfig2.png\u001b[0m \u001b[01;35mfig3.png\u001b[0m \u001b[01;35mfig4.png\u001b[0m \u001b[01;35mfig5.png\u001b[0m g3.pdf \u001b[01;35mlm.png\u001b[0m\n", "\n", "./seqs:\n", "CM000046.1.fa CM000047.1.fa\n" ] } ], "source": [ "ls -R" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Copying files" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "cp a/b/c/foo.txt foo_copy1.txt\n", "cp a/b/c/foo.txt a/foo_copy2.txt\n", "cp a/b/c/foo.txt a/b/foo_copy3.txt" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".:\n", "\u001b[0m\u001b[01;34ma\u001b[0m\n", "\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "foo_copy1.txt\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n", "\n", "./a:\n", "\u001b[01;34mb\u001b[0m foo_copy2.txt\n", "\n", "./a/b:\n", "\u001b[01;34mc\u001b[0m \u001b[01;34md\u001b[0m \u001b[01;34me\u001b[0m foo_copy3.txt\n", "\n", "./a/b/c:\n", "foo.txt\n", "\n", "./a/b/d:\n", "bar.txt\n", "\n", "./a/b/e:\n", "baz.txt\n", "\n", "./data:\n", "gene_counts_raw.txt gene_counts.txt\n", "\n", "./figs:\n", "\u001b[01;35mbox.png\u001b[0m \u001b[01;35mfig1.png\u001b[0m \u001b[01;35mfig2.png\u001b[0m \u001b[01;35mfig3.png\u001b[0m \u001b[01;35mfig4.png\u001b[0m \u001b[01;35mfig5.png\u001b[0m g3.pdf \u001b[01;35mlm.png\u001b[0m\n", "\n", "./seqs:\n", "CM000046.1.fa CM000047.1.fa\n" ] } ], "source": [ "ls -R" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Moving files" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "mv a/b/c/foo.txt a/b/c/oof.txt" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "oof.txt\n" ] } ], "source": [ "ls a/b/c" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "mv a/b/c/oof.txt oof.txt" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "ls a/b/c" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34ma\u001b[0m\n", "\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "foo_copy1.txt\n", "oof.txt\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Navigating between directories" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "cd a/b/" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34mc\u001b[0m \u001b[01;34md\u001b[0m \u001b[01;34me\u001b[0m foo_copy3.txt\n" ] } ], "source": [ "ls" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Deleting a file" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "rm foo_copy3.txt" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34mc\u001b[0m \u001b[01;34md\u001b[0m \u001b[01;34me\u001b[0m\n" ] } ], "source": [ "ls" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Move back" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan/work/Duke_HTS2019/cliburn/a/b\n" ] } ], "source": [ "pwd" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "cd .." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan/work/Duke_HTS2019/cliburn/a\n" ] } ], "source": [ "pwd" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "cd .." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan/work/Duke_HTS2019/cliburn\n" ] } ], "source": [ "pwd" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "cd a/b/c" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan/work/Duke_HTS2019/cliburn/a/b/c\n" ] } ], "source": [ "pwd" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "cd ../../../" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan/work/Duke_HTS2019/cliburn\n" ] } ], "source": [ "pwd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Go home" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "cd ~" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan\n" ] } ], "source": [ "pwd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Go last position" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jovyan/work/Duke_HTS2019/cliburn\n" ] } ], "source": [ "cd -" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Quick and dangerous recursive deletion" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "rm -r a" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "foo_copy1.txt\n", "oof.txt\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls " ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "rm *txt" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0m\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Create the following structure including empty files using `mkdir` and `touch` commands.\n", "\n", "```\n", "crytococcus\n", " data\n", " fake1.fq\n", " fake2.fq\n", " notebooks\n", " my_analysis.R\n", " your_analysis.R\n", " fake3.fq\n", " results\n", " table1.csv\n", " table2.csv\n", " fig1.png\n", " fig2.png\n", "```" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "rm -rf crytococcus" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cryptococcus:\n", "\u001b[0m\u001b[01;34mdata\u001b[0m \u001b[01;34mnoteboooks\u001b[0m \u001b[01;34mresults\u001b[0m\n", "\n", "cryptococcus/data:\n", "fake1.fq fake2.fg\n", "\n", "cryptococcus/noteboooks:\n", "fake3.fq my_analysis.R your_analysis.R\n", "\n", "cryptococcus/results:\n", "\u001b[01;35mfig1.png\u001b[0m \u001b[01;35mfig2.png\u001b[0m table1.csv table2.csv\n" ] } ], "source": [ "mkdir cryptococcus\n", "cd cryptococcus\n", "mkdir data noteboooks results\n", "cd data\n", "touch fake1.fq fake2.fg\n", "cd ../noteboooks\n", "touch my_analysis.R your_analysis.R fake3.fq\n", "cd ../results\n", "touch table1.csv table2.csv fig1.png fig2.png\n", "cd ../..\n", "ls -R cryptococcus" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Navigate into the folder `cryptococcus/results` and find the size of `fig1.png`. Next make a copy of `table2.csv` with name `table3.csv`. Finally, navigate back to the same directory where this notebook is found." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rw-r--r-- 1 jovyan users 0 Jun 26 09:14 \u001b[0m\u001b[01;35mfig1.png\u001b[0m\n", "/home/jovyan/work/Duke_HTS2019/cliburn\n" ] } ], "source": [ "cd cryptococcus/results\n", "ls -lh fig1.png\n", "cd -" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Move th file `fake3.fq` from the `notebooks` to the `data` directory." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "mv cryptococcus/noteboooks/fake3.fq cryptococcus/data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. List all files recursively that have the extension `.R`" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "my_analysis.R\n", "your_analysis.R\n" ] } ], "source": [ "ls -R | grep \"\\.R$\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Find is a useful command that I did not have time to cover in the lecture." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "./cryptococcus/noteboooks/my_analysis.R\n", "./cryptococcus/noteboooks/your_analysis.R\n" ] } ], "source": [ "find . -name \"*.R\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. Delete the results directory and all files in it (non-recursively)." ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "rm cryptococcus/results/*\n", "rmdir cryptococcus/results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "6. Delete the `cryptococcus` directory recursively." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "rm -r cryptococcus" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Bash", "language": "bash", "name": "bash" }, "language_info": { "codemirror_mode": "shell", "file_extension": ".sh", "mimetype": "text/x-sh", "name": "bash" } }, "nbformat": 4, "nbformat_minor": 2 }