Терминал Ubuntu по умолчанию отсутствует 13.04

В первую очередь, то, что Вы пытаетесь сделать, l| grep , плохо. Не делайте этого. Вот то, почему.

l команда является действительно псевдонимом к ls -CF

$ type -a l
l is aliased to `ls -CF'

По умолчанию в Ubuntu bash, ls, псевдоним к [1 111]. Как steeldriver указанный в комментариях --color=auto, как предполагается, выключает колоризацию. В Вашем конкретном случае Вы имеете alias ls="ls -alh --color" и alias l="ls -CF", который в основном заканчивает тем, что был ls -alh --color -CF. Эта конкретная комбинация переключателей все еще отправляет цветной вывод по каналу. Например:

$ ls -alh --color -CF ~/TESTDIR | cat -A                                                                                 
^[[0m^[[01;34m.^[[0m/  ^[[01;34m..^[[0m/  1.txt  2.txt  3.txt  out.txt$

Уведомление, как . и .. каталоги имеют те же escape-последовательности.

, Что делает это все среднее

, Это означает, что l произведет цветной список файлов согласно типу файла. Проблема состоит в том, что колоризация происходит с использованием [1 127] escape-последовательности . Это - то, что 1:34m вещи - они - escape-последовательность для определенных цветов.

основная проблема состоит в том, что парсинг ls часто приводит к неправильному выводу и авариям в сценариях, просто потому что ls позволяет escape-последовательности, любят объясненный ранее и другие специальные символы. См. эту статью для большего количества информации: http://mywiki.wooledge.org/ParsingLs

, Что необходимо делать:

команда Use find:

bash-4.3$ ls
1.txt  2.txt  3.txt  out.txt
bash-4.3$ find . -maxdepth 1 -iname "*1*"
./1.txt

Вы могли сделать что-то вроде этого с шариком оболочки и современным тестом [[ команда:

bash-4.3$ for file in * ;do if [[ "$file" =~ "1"  ]] ;then echo "$file" ;fi ; done
1.txt

Или возможно используют Python, который имеет намного лучшие возможности обработки имени файла, чем [1 124] один

bash-4.3$ python -c 'import os;print [f for f in os.listdir(".") if "1" in f ]'
['1.txt']

, Если нет никакой потребности обработать вывод [1 125], простой globbing с [1 126] может сделать работу, также. (Помните, это только для просмотра списка файлов, не для передачи его к другой программе для контакта с синтезируемым текстом)

bash-4.3$ ls *1*
1.txt

5
задан 15.04.2020, 08:17

3 ответа

Используя xterm, напишите эти команды:

sudo apt-get remove gnome-terminal
sudo apt-get install gnome-terminal

Пароль - это пароль вашей учетной записи, и эти команды переустановят gnome-терминал, который должен быть терминалом по умолчанию.
Я надеюсь, что это исправит.

14
ответ дан 15.04.2020, 08:18

Выполните следующие действия, чтобы установить gnome-терминал по умолчанию

  • Выполнить следующую команду в терминале

    exo-preferred-applications
    
  • [1110 ] Предпочтительные приложения Откроется окно, перейдите на вкладку Утилиты .

  • Под Terminal Emulator выбрал Gnome Terminal.

    Если Gnome Terminal нет в списке, установите его с помощью sudo apt-get install gnome-terminal

  • Закрыть окна.

Вот и все ..! Ответьте, если что-то пойдет не так ..:)

1
ответ дан 15.04.2020, 08:17

Если вы удалили Unity, у вас могут отсутствовать другие зависимости рабочего стола или они могут отсутствовать в последних версиях. Чтобы снова установить все, откройте Xterm и выполните следующие команды:

sudo apt-get install ubuntu-desktop

Это переустановит метапакет ubuntu-desktop, который зависит от всех других компонентов рабочего стола (и, вероятно, был удален, если побежал apt-get purge unity).

Если вам все еще не хватает Терминала по умолчанию, выполните эту команду:

sudo apt-get install gnome-terminal
0
ответ дан 15.04.2020, 08:18

Теги

Похожие вопросы