Это было из-за диспетчера дисплея lightdm. Я установил диспетчер отображения gdm, и я оправился от этой проблемы. Я надеюсь, что это также сработает для вас.
lightdm
1. Go to following link and download gdm for Ubuntu 12.04.2 according to your OS
architecture i386 or amd64. (chose ubuntu proposed universe out of three listed there.)
http://pkgs.org/download/gdm
[ f2]Когда система перезагрузится, вы получите экран входа в систему. После входа в систему вы сможете успешно получить доступ к своим окнам. Если вы все равно получаете черный экран, тогда во время входа в систему были выбраны некоторые другие варианты, такие как gnome classic или gdm
Вы использовали -l, что противоположно тому, что вы хотите. Из man grep:
-l, --files-with-matches
Suppress normal output; instead print the name of each input
file from which output would normally have been printed. The
scanning will stop on the first match. (-l is specified by
POSIX.)
Вы хотите -H:
-H, --with-filename
Print the file name for each match. This is the default when
there is more than one file to search.
Но это по умолчанию. Просто выполните:
grep -Er 'apple|banana|watermelon' .
(-E сообщает grep действовать как egrep.)
Вот команда, которую вы ищете:
grep -R "apple\|banana\|watermelon" <search_path>
. -R будет рекурсивно читать все файлы в каждом каталоге в search_path. Имя файла будет отображаться для каждого совпадения.
Ниже вы получите нужный результат (используя bash):
for x in apple banana watermelon ; do grep $x * ; done
На выходе будут представлены все строки, содержащие строку поиска.
Ниже вы увидите только строку поиска:
for x in apple banana watermelon ; do grep -l $x * |xargs -I{} echo {}:$x; done