Поиск…


Вступление

В ответ на приглашение оболочка выполняет программу. Когда вы даете команду, оболочка ищет программу, а затем выполняет ее. Например, когда вы даете команду ls, оболочка ищет утилиту / программу с именем ls, а затем запускает ее в оболочке. Аргументы и параметры, которые вы предоставляете с помощью утилит, могут повлиять на результат, который вы получаете. Оболочка также известна как интерфейс командной строки или интерфейс командной строки.

Изменение оболочки по умолчанию

Большинство современных дистрибутивов будут поставляться с BASH ( B ourne A gain SH ell), предварительно установленным и настроенным как оболочка по умолчанию.

Команда (фактически исполняемый двоичный код, ELF), которая отвечает за изменение оболочек в Linux, - chsh ( ch ange sh ell).

Сначала мы можем проверить, какие оболочки уже установлены и настроены на нашей машине, используя команду chsh -l , которая выведет результат, подобный этому:

[user@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/fish

В некоторых дистрибутивах Linux chsh -l недействителен. В этом случае список всех доступных оболочек можно найти в файле / etc / shells. Вы можете показать содержимое файла с помощью cat :

[user@localhost ~]$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/fish

Теперь мы можем выбрать нашу новую оболочку по умолчанию, например, fish , и настроить ее с помощью chsh -s ,

[user@localhost ~]$ chsh -s /usr/bin/fish
Changing shell for user.
Password: 
Shell changed.

Теперь все, что осталось сделать, это преформировать цикл входа в систему и воспользоваться нашей новой оболочкой по умолчанию.

Если вы хотите изменить оболочку по умолчанию для другого пользователя, и у вас есть права администратора на компьютере, вы сможете это сделать, используя chsh как root . Поэтому, предполагая, что мы хотим изменить user_2 умолчанию для user_2 , мы будем использовать ту же команду, что и раньше, но с добавлением имени пользователя другого пользователя, chsh -s /usr/bin/fish user_2 .

Чтобы проверить, что такое текущая оболочка по умолчанию, мы можем просмотреть переменную окружения $SHELL , которая указывает на путь к нашей оболочке по умолчанию, поэтому после нашего изменения мы ожидаем получить такой же результат,

 ~  echo $SHELL                                 
/usr/bin/fish

chsh :

-s shell

Устанавливает оболочку в качестве оболочки входа.

-l , --list-shells

Распечатайте список оболочек, перечисленных в / etc / shells, и выйдите.

-h , --help

Распечатайте сообщение об использовании и выйдите из него.

-v , --version

Распечатайте информацию о версии и выйдите из нее.

Основные утилиты Shell


Настройка командной строки

Командная строка по умолчанию может быть изменена, чтобы выглядеть по-другому и коротким. Если текущая директория длинная, командная строка становится слишком большой. Использование PS1 становится полезным в этих случаях. Короткая и настраиваемая команда довольно и элегантная. В приведенной ниже таблице PS1 используется с несколькими аргументами для отображения различных форм приглашений оболочки. Командная bruce@gotham ~ $ умолчанию выглядит примерно так: user@host ~ $ в моем случае выглядит так: bruce@gotham ~ $ . Он может изменяться в соответствии с приведенной ниже таблицей:

команда Полезность
PS1 = '\ w $' ~ $ shell как имя каталога. В этом случае корневой каталог - Root.
PS1 = '\ h $' подсказка gotham $ shell как имя хоста
PS1 = '\ u $' bruce $ shell как пользователь
PS1 = '\ t $' 22:37:31 $ shell prompt в формате 24 часа
PS1 = '@ $' 10:37 PM запрос командной строки в 12-часовом формате времени
PS1 = '! $ ' 732 отобразит номер истории команды вместо приглашения оболочки
PS1 = 'чувак' dude $ будет показывать подсказку оболочки так, как вам нравится

Некоторые основные команды оболочки

команда Полезность
Ctrl-k вырезать / убить
Ctrl-y дергать / паста
Ctrl-a будет курсор на начало строки
Ctrl-e будет курсор до конца строки
Ctrl-d удалит символ после / в курсоре
Ctrl-l очистит экран / терминал
Ctrl-u очистит все между подсказкой и курсором
Ctrl-_ отменит последнее, введенное в командной строке
Ctrl-c будет прерывать / останавливать работу / процесс, выполняющийся на переднем плане
Ctrl-r обратный поиск в истории
~/.bash_history хранит последние 500 команд / событий, используемых в оболочке
history покажет историю команд
history | grep <key-word> покажет все команды в истории, имеющие ключевое слово <ключевое слово> (полезно в случаях, когда вы помните часть команды, использованной в прошлом)

Создайте свой собственный псевдоним команды

Если вы устали от использования длинных команд в bash, вы можете создать свой собственный псевдоним команды.

Лучший способ сделать это - изменить (или создать, если он не существует) файл с именем .bash_aliases в вашей домашней папке. Общий синтаксис:

alias command_alias='actual_command'

где actual_command - это команда, которую вы переименовываете, а command_alias - новое имя, которое вы ему дали. Например

alias install='sudo apt-get -y install'

сопоставляет новую команду alias install с фактической командой sudo apt-get -y install . Это означает, что когда вы используете установку в терминале, это интерпретируется bash как sudo apt-get -y install .

Найдите файл в вашей системе

Используя bash, вы можете легко найти файл с помощью команды locate . Например, скажем, что вы ищете файл mykey.pem:

locate mykey.pem

Иногда файлы имеют странные имена, например, у вас может быть файл random7897_mykey_0fidw.pem . Предположим, вы ищете этот файл, но вы помните только части mykey и pem. Вы можете комбинировать команду locate с grep используя такой канал:

locate pem | grep mykey

Который принесет все результаты, которые содержат обе эти части.

Обратите внимание, что не все системы имеют установленную утилиту locate , и многие из них не включили ее. locate выполняется быстро и эффективно, поскольку он периодически сканирует вашу систему и кэширует имена и местоположения для каждого файла на ней, но если этот сбор данных не включен, он ничего не может вам сказать. Вы можете использовать updatedb для ручного запуска сканирования файловой системы, чтобы обновить кэшированную информацию о файлах в вашей файловой системе.

Если вы не имеете рабочий locate , вы можете упасть обратно на find утилиты:

find / -name mykey.pem -print

примерно эквивалентна locate mykey.pem но при каждом запуске файла для проверки locate mykey.pem требуется сканирование вашей файловой системы, а не на использование кэшированных данных. Это, очевидно, медленнее и менее эффективно, но больше в режиме реального времени. Утилита find может делать гораздо больше, чем поиск файлов, но полное описание ее возможностей выходит за рамки этого примера.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow