diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b4a8dc93e1130745870722c1c429c4f966cfeb8d..511d383d5849e8ba63ef0d6a270ad4b55da89a27 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -10,11 +10,7 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="8239070f-6583-4d64-a292-d827a40a35ed" name="Default" comment="">
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/built_in.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/built_in.c" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/commands.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/commands.c" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/main.c" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/signal_handlers.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/signal_handlers.c" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/utils.c" beforeDir="false" afterPath="$PROJECT_DIR$/src/utils.c" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="TRACKING_ENABLED" value="true" />
@@ -24,7 +20,7 @@
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="FileEditorManager">
-    <splitter split-orientation="horizontal" split-proportion="0.5676721">
+    <splitter split-orientation="horizontal" split-proportion="0.20726992">
       <split-first>
         <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
           <file leaf-file-name="built_in.c" pinned="false" current-in-tab="false">
@@ -44,8 +40,8 @@
           <file leaf-file-name="main.c" pinned="false" current-in-tab="true">
             <entry file="file://$PROJECT_DIR$/src/main.c">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="266">
-                  <caret line="14" column="31" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" />
+                <state relative-caret-position="152">
+                  <caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
                 </state>
               </provider>
             </entry>
@@ -63,11 +59,11 @@
       </split-first>
       <split-second>
         <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-          <file leaf-file-name="utils.c" pinned="false" current-in-tab="false">
+          <file leaf-file-name="utils.c" pinned="false" current-in-tab="true">
             <entry file="file://$PROJECT_DIR$/src/utils.c">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="330">
-                  <caret line="41" selection-start-line="41" selection-end-line="41" />
+                <state relative-caret-position="500">
+                  <caret line="57" column="5" selection-start-line="57" selection-start-column="5" selection-end-line="57" selection-end-column="5" />
                 </state>
               </provider>
             </entry>
@@ -75,17 +71,17 @@
           <file leaf-file-name="commands.c" pinned="false" current-in-tab="false">
             <entry file="file://$PROJECT_DIR$/src/commands.c">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="496">
+                <state relative-caret-position="1294">
                   <caret line="91" selection-start-line="91" selection-end-line="91" />
                 </state>
               </provider>
             </entry>
           </file>
-          <file leaf-file-name="signal_handlers.c" pinned="false" current-in-tab="true">
+          <file leaf-file-name="signal_handlers.c" pinned="false" current-in-tab="false">
             <entry file="file://$PROJECT_DIR$/src/signal_handlers.c">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="95">
-                  <caret line="5" column="21" selection-start-line="5" selection-start-column="21" selection-end-line="5" selection-end-column="21" />
+                <state relative-caret-position="228">
+                  <caret line="12" column="21" selection-start-line="12" selection-start-column="21" selection-end-line="12" selection-end-column="21" />
                 </state>
               </provider>
             </entry>
@@ -108,10 +104,10 @@
     <option name="CHANGED_PATHS">
       <list>
         <option value="$PROJECT_DIR$/src/built_in.c" />
-        <option value="$PROJECT_DIR$/src/utils.c" />
         <option value="$PROJECT_DIR$/src/commands.c" />
         <option value="$PROJECT_DIR$/src/main.c" />
         <option value="$PROJECT_DIR$/src/signal_handlers.c" />
+        <option value="$PROJECT_DIR$/src/utils.c" />
       </list>
     </option>
   </component>
@@ -191,12 +187,12 @@
       <option name="presentableId" value="Default" />
       <updated>1525613937527</updated>
       <workItem from="1525613939581" duration="14984000" />
-      <workItem from="1525845591506" duration="9150000" />
+      <workItem from="1525845591506" duration="9784000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="24134000" />
+    <option name="totallyTimeSpent" value="24768000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="56" y="0" width="1502" height="1158" extended-state="0" />
@@ -262,38 +258,38 @@
     <entry file="file://$PROJECT_DIR$/include/built_in.h">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/utils.c">
+    <entry file="file://$PROJECT_DIR$/src/built_in.c">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="330">
-          <caret line="41" selection-start-line="41" selection-end-line="41" />
+        <state relative-caret-position="-459">
+          <caret line="41" column="20" selection-start-line="41" selection-start-column="20" selection-end-line="41" selection-end-column="20" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/built_in.c">
+    <entry file="file://$PROJECT_DIR$/src/main.c">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-459">
-          <caret line="41" column="20" selection-start-line="41" selection-start-column="20" selection-end-line="41" selection-end-column="20" />
+        <state relative-caret-position="152">
+          <caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/commands.c">
+    <entry file="file://$PROJECT_DIR$/src/signal_handlers.c">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="496">
-          <caret line="91" selection-start-line="91" selection-end-line="91" />
+        <state relative-caret-position="228">
+          <caret line="12" column="21" selection-start-line="12" selection-start-column="21" selection-end-line="12" selection-end-column="21" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main.c">
+    <entry file="file://$PROJECT_DIR$/src/commands.c">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="266">
-          <caret line="14" column="31" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" />
+        <state relative-caret-position="1294">
+          <caret line="91" selection-start-line="91" selection-end-line="91" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/signal_handlers.c">
+    <entry file="file://$PROJECT_DIR$/src/utils.c">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="95">
-          <caret line="5" column="21" selection-start-line="5" selection-start-column="21" selection-end-line="5" selection-end-column="21" />
+        <state relative-caret-position="500">
+          <caret line="57" column="5" selection-start-line="57" selection-start-column="5" selection-end-line="57" selection-end-column="5" />
         </state>
       </provider>
     </entry>
diff --git a/src/utils.c b/src/utils.c
index bc5775a442457f1e6fd59c6ad7afcd83598624a2..cebecf4ae570faf0ece3ad4fe97dde6c3f35f0d4 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -43,11 +43,18 @@ void parse_single_command(const char* command,
   int ti = 0;
 
   while (tok != NULL) {
-    (*argv)[ti] = (char*)malloc(strlen(tok) + 1);
-    strcpy((*argv)[ti], tok);
-    ++ti;
+    if(!strcmp(tok, "~")) {
+        (*argv)[ti] = (char*)malloc(strlen(getenv("HOME")));
+        strcpy((*argv)[ti], getenv("HOME"));
+        ++ti;
+        tok = strtok_r(NULL, " \n\t", &saveptr);
+    } else {
+        (*argv)[ti] = (char *) malloc(strlen(tok) + 1);
+        strcpy((*argv)[ti], tok);
+        ++ti;
 
-    tok = strtok_r(NULL, " \n\t", &saveptr);
+        tok = strtok_r(NULL, " \n\t", &saveptr);
+    }
   }
 
   *argc = ti;