Pages

Thursday 12 December 2013

Linux Commands - pwd | cd | ls | mkdir | rmdir | pushd | popd | clear


Lets talk about basic Linux commands:

pwd  : Print working directory
cd   : Change directory
ls   : List Directory
mkdir: Make Directory
rmdir: Remove Directory
pushd: pushd adds a directory to the stack n changes to new current directory
popd : popd removes a directory from the stack and sets the current directory.
clear: Clear the screen n user irritation




pwd (print working directory): 



print working directory(pwd) will display your current working directory.

Example:

hadoopguru@hadoop2:~$ pwd
/home/hadoop





cd (Change directory):

Change directory (cd) command can be used to change your current working directory.

Example: inside /home/hadoop there is a folder named hadoop-1.2.1

hadoopguru@hadoop2:~$ cd hadoop-1.2.1/
hadoopguru@hadoop2:~/hadoop-1.2.1$ pwd
/home/hadoop/hadoop-1.2.1

1.      cd ~ or cd:

cd command without any target directory will take you to your home directory, same is the effect of cd ~

Example: our current working directory was /home/hadoop/hadoop-

I.                     hadoopguru@hadoop2:~/hadoop-1.2.1$ cd ~
                         hadoopguru@hadoop2:~$ pwd
                         /home/hadoop

II.                    hadoopguru@hadoop2:/$ pwd
                         /
                         hadoopguru@hadoop2:/$ cd
                         hadoopguru@hadoop2:~$ pwd
                         /home/hadoop

2.      cd .. :

cd .. command will take you to the parent working directory. Parent working directory is the one which is just above your current working directory.
The usage of slash after ../.. will take user the directory which parent to the parent directory.

Example:

I.                     hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ pwd
                       /home/hadoop/hadoop-1.2.1/conf
                       hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ cd ..
                       hadoopguru@hadoop2:~/hadoop-1.2.1$ pwd
                       /home/hadoop/hadoop-1.2.1

II.                  hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ pwd
                       /home/hadoop/hadoop-1.2.1/conf
                       hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ cd ../..
                       hadoopguru@hadoop2:~$ pwd
                       /home/hadoop

III.                hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ pwd
                       /home/hadoop/hadoop-1.2.1/conf
                       hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ cd ../../..
                       hadoopguru@hadoop2:/home$ pwd
                       /home

3.       cd - :

If one wishes to go back to the previous directory, cd – will help to do that.

Example:

hadoopguru@hadoop2:~$ cd hadoop-1.2.1/conf
hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ pwd
/home/hadoop/hadoop-1.2.1/conf
hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ cd -
/home/hadoop




Slash (/) usage makes a differen
     Possible scenarios:

1.       If user wants to open a directory present in root directory:

Sol: Starting directory name with slash (/) always direct you to the root of the file tree.

Example:
I.                     hadoopguru@hadoop2:~$ pwd
                        /home/hadoop
                        hadoopguru@hadoop2:~$ cd /home
                        hadoopguru@hadoop2:/home$ pwd
                        /home

II.                  hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ pwd
                       /home/hadoop/hadoop-1.2.1/conf
                       hadoopguru@hadoop2:~/hadoop-1.2.1/conf$ cd /bin
                       hadoopguru@hadoop2:/bin$ pwd
                       /bin

2.      If user wants to open a directory in current working directory:

Sol: Ignore slash (/) prior to directory name.

Example:
hadoopguru@hadoop2:~$ pwd
/home/hadoop
hadoopguru@hadoop2:~$ cd hadoop-1.2.1/
hadoopguru@hadoop2:~/hadoop-1.2.1$ pwd
/home/hadoop/hadoop-1.2.1

3.       If user wants to open a directory present in root directory, and current working directory is root directory.

Sol: one can find solution in above 2 scenarios, in such cases usage of slash (/) makes no difference

Example:

I.                    Without slash(/)

          hadoopguru@hadoop2:/$ pwd
          /
          hadoopguru@hadoop2:/$ cd home
          hadoopguru@hadoop2:/home$ pwd
          /home

II.                  Is same as with slash(/)

         hadoopguru@hadoop2:/$ pwd
         /
         hadoopguru@hadoop2:/$ cd /home
         hadoopguru@hadoop2:/home$ pwd
         /home


    List directory contents:

User can list the contents of directory using ls command.

Example:

hadoopguru@hadoop2:~$ pwd
/home/hadoop
hadoopguru@hadoop2:~$ ls
apache-flume-1.4.0-bin.tar.gz.1       hadoop-1.2.1-bin.tar.gz
aveo                                  hive
data                                  hive-0.11.0-bin.tar.gz
datanode                              mahout-distribution-0.8.tar.gz
derby.log                             metastore_db
flume                                 namenode
hadoop-1.2.1

1.  ls –a:

In order to list all files including hidden files use –a with ls (i.e. ls –a).

Example:

hadoopguru@hadoop2:~$ pwd
/home/hadoop

hadoopguru@hadoop2:~$ ls -a
.                                  flume
..                                 hadoop-1.2.1
apache-flume-1.4.0-bin.tar.gz.1    hadoop-1.2.1-bin.tar.gz
aveo                               hive
.bash_history                      hive-0.11.0-bin.tar.gz
.bash_logout                      .hivehistory
.bash_profile                      mahout-distribution-0.8.tar.gz
.bashrc                            metastore_db
.cache                             namenode
data                              .profile
datanode                          .ssh
derby.log                         .viminfo


2.  ls –l:

For files with details user can use ls –l command

Example:

hadoopguru@hadoop2:~$ pwd
/home/hadoop

hadoopguru@hadoop2:~$ ls -l
total 261824
-rw-rw-r--  1  hadoop hadoop  60965956     Jul  1 09:41 apache-flume-1.4.0-bin.tar.gz.1
drwxrwxr-x  2   hadoop hadoop     4096     Oct 24 01:22 aveo
drwxr-xr-x  6   hadoop hadoop     4096     Oct  6 23:30 data
drwxrwxr-x  2   hadoop hadoop     4096     Oct  6 17:37 datanode
-rw-rw-r--  1   hadoop hadoop      343     Oct  6 17:47 derby.log
drwxrwxr-x  7   hadoop hadoop     4096     Oct  6 17:55 flume
drwxr-xr-x 15   hadoop hadoop     4096     Oct  6 16:32 hadoop-1.2.1
-rw-rw-r--  1   hadoop hadoop  38096663    Oct  6 12:37 hadoop-1.2.1-bin.tar.gz
drwxrwxr-x  8   hadoop hadoop      4096    Oct  6 17:44 hive
-rw-rw-r--  1   hadoop hadoop  59859572    Oct  6 12:08 hive-0.11.0-bin.tar.gz
-rw-rw-r--  1   hadoop hadoop 109137498    Oct  6 12:29 mahout-distribution-0.8.tar.gz
drwxrwxr-x  5   hadoop hadoop      4096    Oct  6 17:47 metastore_db
drwxrwxr-x  5   hadoop hadoop      4096    Oct  6 23:30 namenode


3.  ls –lh or ls –hl or ls –l –h or ls –h -l:

ls –lh shows the size of file in human readable form.

Example:

      A.          ls -lh :

hadoopguru@hadoop2:~$ ls -lh
total 256M
-rw-rw-r--  1  hadoop hadoop  59M    Jul  1 09:41  apache-flume-1.4.0-bin.tar.gz.1
drwxrwxr-x  2  hadoop hadoop   4.0K  Oct 24 01:22  aveo
drwxr-xr-x  6  hadoop hadoop   4.0K  Oct  6 23:30  data
drwxrwxr-x  2  hadoop hadoop   4.0K  Oct  6 17:37  datanode
-rw-rw-r--  1  hadoop hadoop 343     Oct  6 17:47  derby.log
drwxrwxr-x  7  hadoop hadoop   4.0K  Oct  6 17:55  flume
drwxr-xr-x 15  hadoop hadoop   4.0K  Oct  6 16:32  hadoop-1.2.1
-rw-rw-r--  1  hadoop hadoop  37M    Oct  6 12:37  hadoop-1.2.1-bin.tar.gz
drwxrwxr-x  8  hadoop hadoop   4.0K  Oct  6 17:44  hive
-rw-rw-r--  1  hadoop hadoop  58M    Oct  6 12:08  hive-0.11.0-bin.tar.gz
-rw-rw-r--  1  hadoop hadoop 105M    Oct  6 12:29  mahout-distribution-0.8.tar.gz
drwxrwxr-x  5  hadoop hadoop   4.0K  Oct  6 17:47  metastore_db
drwxrwxr-x  5  hadoop hadoop   4.0K  Oct  6 23:30  namenode


      B.          ls -l -h :

hadoopguru@hadoop2:~$ ls -l -h
total 256M
-rw-rw-r--  1  hadoop hadoop   59M    Jul  1 09:41   apache-flume-1.4.0-bin.tar.gz.1
drwxrwxr-x  2  hadoop hadoop    4.0K  Oct 24 01:22   aveo
drwxr-xr-x  6  hadoop hadoop    4.0K  Oct  6 23:30   data
drwxrwxr-x  2  hadoop hadoop    4.0K  Oct  6 17:37   datanode
-rw-rw-r--  1  hadoop hadoop  343     Oct  6 17:47   derby.log
drwxrwxr-x  7  hadoop hadoop    4.0K  Oct  6 17:55   flume
drwxr-xr-x 15  hadoop hadoop    4.0K  Oct  6 16:32   hadoop-1.2.1
-rw-rw-r--  1  hadoop hadoop   37M    Oct  6 12:37   hadoop-1.2.1-bin.tar.gz
drwxrwxr-x  8  hadoop hadoop    4.0K  Oct  6 17:44   hive
-rw-rw-r--  1  hadoop hadoop   58M    Oct  6 12:08   hive-0.11.0-bin.tar.gz
-rw-rw-r--  1  hadoop hadoop  105M    Oct  6 12:29   mahout-distribution-0.8.tar.gz
drwxrwxr-x  5  hadoop hadoop    4.0K  Oct  6 17:47   metastore_db
drwxrwxr-x  5  hadoop hadoop    4.0K  Oct  6 23:30   namenode


      C.          ls -hl :

hadoopguru@hadoop2:~$ ls -hl
total 256M
-rw-rw-r--  1  hadoop hadoop   59M    Jul  1 09:41  apache-flume-1.4.0-bin.tar.gz.1
drwxrwxr-x  2  hadoop hadoop    4.0K  Oct 24 01:22  aveo
drwxr-xr-x  6  hadoop hadoop    4.0K  Oct  6 23:30  data
drwxrwxr-x  2  hadoop hadoop    4.0K  Oct  6 17:37  datanode
-rw-rw-r--  1  hadoop hadoop   343     Oct  6 17:47  derby.log
drwxrwxr-x  7  hadoop hadoop    4.0K  Oct  6 17:55  flume
drwxr-xr-x 15  hadoop hadoop    4.0K  Oct  6 16:32  hadoop-1.2.1
-rw-rw-r--  1  hadoop hadoop   37M    Oct  6 12:37  hadoop-1.2.1-bin.tar.gz
drwxrwxr-x  8  hadoop hadoop    4.0K  Oct  6 17:44  hive
-rw-rw-r--  1  hadoop hadoop   58M    Oct  6 12:08  hive-0.11.0-bin.tar.gz
-rw-rw-r--  1  hadoop hadoop  105M    Oct  6 12:29  mahout-distribution-0.8.tar.gz
drwxrwxr-x  5  hadoop hadoop    4.0K  Oct  6 17:47  metastore_db
drwxrwxr-x  5  hadoop hadoop    4.0K  Oct  6 23:30  namenode


      D.          ls -h -l :

hadoopguru@hadoop2:~$ ls -h -l
total 256M
-rw-rw-r--  1 hadoop hadoop   59M    Jul  1 09:41  apache-flume-1.4.0-bin.tar.gz.1
drwxrwxr-x  2 hadoop hadoop    4.0K  Oct 24 01:22  aveo
drwxr-xr-x  6 hadoop hadoop    4.0K  Oct  6 23:30  data
drwxrwxr-x  2 hadoop hadoop    4.0K  Oct  6 17:37  datanode
-rw-rw-r--  1 hadoop hadoop  343     Oct  6 17:47  derby.log
drwxrwxr-x  7 hadoop hadoop    4.0K  Oct  6 17:55  flume
drwxr-xr-x 15 hadoop hadoop    4.0K  Oct  6 16:32  hadoop-1.2.1
-rw-rw-r--  1 hadoop hadoop   37M    Oct  6 12:37  hadoop-1.2.1-bin.tar.gz
drwxrwxr-x  8 hadoop hadoop    4.0K  Oct  6 17:44  hive
-rw-rw-r--  1 hadoop hadoop   58M    Oct  6 12:08  hive-0.11.0-bin.tar.gz
-rw-rw-r--  1 hadoop hadoop   105M   Oct  6 12:29  mahout-distribution-0.8.tar.gz
drwxrwxr-x  5 hadoop hadoop     4.0K Oct  6 17:47  metastore_db
drwxrwxr-x  5 hadoop hadoop     4.0K Oct  6 23:30  namenode




    Make directory:

User can create their directory using mkdir command.

Example:

hadoopguru@hadoop2:~$ pwd
/home/hadoop
hadoopguru@hadoop2:~$ mkdir aveo_hadoop
hadoopguru@hadoop2:~$ ls -l
total 261828
-rw-rw-r--  1   hadoop hadoop  60965956 Jul  1 09:41 apache-flume-1.4.0-bin.tar.gz.1
drwxrwxr-x  2   hadoop hadoop      4096 Oct 24 01:22 aveo
drwxrwxr-x  2   hadoop hadoop      4096 Oct 27 10:10 aveo_hadoop
drwxr-xr-x  6   hadoop hadoop      4096 Oct  6 23:30 data
drwxrwxr-x  2   hadoop hadoop      4096 Oct  6 17:37 datanode
-rw-rw-r--  1   hadoop hadoop       343 Oct  6 17:47 derby.log
drwxrwxr-x  7   hadoop hadoop      4096 Oct  6 17:55 flume
drwxr-xr-x 15   hadoop hadoop      4096 Oct  6 16:32 hadoop-1.2.1
-rw-rw-r--  1   hadoop hadoop  38096663 Oct  6 12:37 hadoop-1.2.1-bin.tar.gz
drwxrwxr-x  8   hadoop hadoop      4096 Oct  6 17:44 hive
-rw-rw-r--  1   hadoop hadoop  59859572 Oct  6 12:08 hive-0.11.0-bin.tar.gz
-rw-rw-r--  1   hadoop hadoop 109137498 Oct  6 12:29 mahout-distribution-0.8.tar.gz
drwxrwxr-x  5   hadoop hadoop      4096 Oct  6 17:47 metastore_db
drwxrwxr-x  5   hadoop hadoop      4096 Oct  6 23:30 namenode


      1.  mkdir -p:

mkdir –p will help creating parent directory if needed

Example:

hadoopguru@hadoop2:~$ mkdir -p aveo_hadoop/aveo_hadoop1/aveo_hadoop2

hadoopguru@hadoop2:~$ mkdir -p aveo_hadoop/aveo_hadoop1/aveo_hadoop2

hadoopguru@hadoop2:~$ ls
apache-flume-1.4.0-bin.tar.gz.1    hadoop-1.2.1
aveo                               hadoop-1.2.1-bin.tar.gz
aveo_hadoop                     hive
data                               hive-0.11.0-bin.tar.gz
datanode                           mahout-distribution-0.8.tar.gz
derby.log                          metastore_db
flume                              namenode

hadoopguru@hadoop2:~$ cd aveo_hadoop

hadoopguru@hadoop2:~/aveo_hadoop$ ls
aveo_hadoop1

hadoopguru@hadoop2:~/aveo_hadoop$ cd aveo_hadoop1

hadoopguru@hadoop2:~/aveo_hadoop/aveo_hadoop1$ ls
aveo_hadoop2

hadoopguru@hadoop2:~/aveo_hadoop/aveo_hadoop1$ cd aveo_hadoop2

hadoopguru@hadoop2:~/aveo_hadoop/aveo_hadoop1/aveo_hadoop2$ pwd
/home/hadoop/aveo_hadoop/aveo_hadoop1/aveo_hadoop2



    Remove directory:

One can delete the existing directory using rmdir command but iff the directory is empty.

Example:

hadoopguru@hadoop2:~$ ls
apache-flume-1.4.0-bin.tar.gz.1    hadoop-1.2.1-bin.tar.gz
aveo                               hive
aveo_hadoop                        hive-0.11.0-bin.tar.gz
data                               mahout-distribution-0.8.tar.gz
datanode                           metastore_db
derby.log                          mydir
flume                              namenode
hadoop-1.2.1

hadoopguru@hadoop2:~$ rmdir mydir/

hadoopguru@hadoop2:~$ ls
apache-flume-1.4.0-bin.tar.gz.1    hadoop-1.2.1
aveo                               hadoop-1.2.1-bin.tar.gz
aveo_hadoop                        hive
data                               hive-0.11.0-bin.tar.gz
datanode                           mahout-distribution-0.8.tar.gz
derby.log                          metastore_db
flume                              namenode



rmdir –p:


User can remove directory from any specified path using rmdir –p.

Example:

hadoopguru@hadoop2:~$ ls
apache-flume-1.4.0-bin.tar.gz.1    hadoop-1.2.1
aveo                               hadoop-1.2.1-bin.tar.gz
aveo_hadoop                        hive
data                               hive-0.11.0-bin.tar.gz
datanode                           mahout-distribution-0.8.tar.gz
derby.log                          metastore_db
flume                              namenode

hadoopguru@hadoop2:~$ cd aveo_hadoop

hadoopguru@hadoop2:~/aveo_hadoop$ ls
aveo_hadoop1

hadoopguru@hadoop2:~/aveo_hadoop$ cd aveo_hadoop1

hadoopguru@hadoop2:~/aveo_hadoop/aveo_hadoop1$ ls
aveo_hadoop2

hadoopguru@hadoop2:~/aveo_hadoop/aveo_hadoop1$ cd aveo_hadoop2

hadoopguru@hadoop2:~/aveo_hadoop/aveo_hadoop1/aveo_hadoop2$ cd

hadoopguru@hadoop2:~$ rmdir -p aveo_hadoop/aveo_hadoop1/aveo_hadoop2/

hadoopguru@hadoop2:~$ ls
apache-flume-1.4.0-bin.tar.gz.1    hadoop-1.2.1-bin.tar.gz
aveo                               hive
data                               hive-0.11.0-bin.tar.gz
datanode                           mahout-distribution-0.8.tar.gz
derby.log                          metastore_db
flume                              namenode
hadoop-1.2.1





pushd and popd:

Both these commands works on the common stack on previous directories

pushd: pushd adds a directory to the stack n changes to new current directory

popd:   popd removes a directory from the stack and sets the current directory.

Example:

pushd :

hadoopguru@hadoop2:~$ cd hadoop-1.2.1/

hadoopguru@hadoop2:~/hadoop-1.2.1$ pushd /bin
/bin ~/hadoop-1.2.1

hadoopguru@hadoop2:/bin$ pushd /lib
/lib /bin ~/hadoop-1.2.1

hadoopguru@hadoop2:/lib$ pushd /hadoop
/hadoop /lib /bin ~/hadoop-1.2.1

popd :

hadoopguru@hadoop2:/hadoop$ popd
/lib /bin ~/hadoop-1.2.1

hadoopguru@hadoop2:/lib$ popd
/bin ~/hadoop-1.2.1

hadoopguru@hadoop2:/bin$ popd
~/hadoop-1.2.1








MORE LINUX COMMANDS

Linux Commands - mkdir | rmdir | touch | rm | cp | more | less | head | tail | cat