Работа с Bash | Losst
Bash — это самый популярный интерпретатор команд, который используется в большинстве дистрибутивов Linux. Вы сталкиваетесь с Bash каждый раз, когда открываете терминал в своей системе и начинаете выполнять там команды, а также когда пишите различные скрипты для автоматизации выполнения системных задач.
Мы уже много писали о Bash, его возможностях и особенностях, теперь пришло время написать статью, в которой будет описана работа с Bash в целом, как пользоваться Bash, горячие клавиши и другие полезные моменты, которые помогут вам пользоваться Bash более эффективно.
Содержание статьи:
Что такое Bash?
Как я уже говорил, Bash — это интерпретатор команд. По сути, это обычная программа, которая запускается при старте сеанса оболочки. Мы могли бы запускать не Bash, а скажем, интерпретатор python или ruby, и тогда нам пришлось бы выполнять методы этих языков вместо команд Bash для администрирования системы.
Bash принимает команды от пользователя и передает их системному загрузчику, а также обеспечивает взаимодействие между командами, обмен информацией и потоками ввода-вывода. Также оболочка предоставляет пользователю удобный интерфейс для работы с историей команд, поиска и замены, а также исправления ранее выполненных команд, а также автодополнение путей.
Команды Bash
Основу работы в Bash составляют команды. Именно с помощью команд вы будете выполнять большинство действий над системой. Команды можно поделить на два типа. Это встроенные в оболочку, которые существуют только виртуально, мы рассматривали их в статье основные команды Bash, а также внешние команды — обычные утилиты или скрипты, расположенные в файловой системе.
Возвращаясь к встроенным командам, можно привести пример, вы не найдете в файловой системе команду cd. Ее нет, она встроена.
Обычные же команды находятся в файловой системе. Они могут находиться в одной из папок, указанных в переменной PATH.
ls /
Но если команда находится в одной из сторонних папок, то необходимо ввести ее полный адрес:
/usr/local/bin/simplenote
Иначе оболочка не сможет найти исполняемый файл команды.
Объединение команд
Оболочка Bash позволяет не только выполнять команды, но и объединять их в сложные конструкции для получения нужного эффекта. Использование Bash таким способом очень эффективно. Как вы знаете, система Linux создает три потока для каждой программы — поток ввода, поток вывода и поток ошибок. Оболочка позволяет перенаправить поток одной программы прямо в другую с помощью специальных операторов. Читайте более подробно обо всем этом в статье перенаправление ввода вывода в Bash.
Кроме того, Bash позволяет объединять команды по времени выполнения. Существуют такие операторы для объединения команд:
- && — выполнить первую команду, а вторую выполнять только если первая завершится успешно;
- || — выполнить первую команду, а вторую выполнять только если первая завершится неудачей;
- ; — выполняет последовательно каждую следующую команду, как только завершится предыдущая;
- & — запустить команду в фоне и сразу же вернуть управление в командную оболочку для выполнения следующей команды.
Например, сначала выполняем загрузку файла, а затем открываем его в плеере, если загрузка прошла успешно:
wget https://archive.org/download/testmp3testfile/mpthreetest.mp3 && mplayer mpthreetest.mp3
Чтобы продолжить этот пример, мы можем удалить загруженный файл, если произошла ошибка:
wget https://archive.org/download/testmp3testfile/mpthreetest.mp3 || rm mpthreetest.mp3
Чтобы выполнить обновление системы, а затем завершить работу выполните:
sudo apt update ; shutdown -h now
И наконец, вы можете запустить какой-либо сервис или приложение, например, браузер в фоне и свободно продолжить работу в терминале:
firefox &
Управляющие символы Bash
Перенаправление вывода, организация тоннелей и поочередное выполнение команд — это очень хорошо, но у Bash есть еще и другие полезные возможности. Например, с помощью специальных символов вы можете модифицировать команды, искать в истории и многое другое.
Чтобы вставить в положение курсора предыдущую команду напишите !!. Например, чтобы выполнить последнюю команду с sudo достаточно выполнить:
sudo !!
Чтобы выполнить не последнюю команду, а скажем, предпоследнюю или выполненную еще раньше, то после восклицательного знака нужно указать ее номер:
!-1
Если вы укажите один восклицательный знак и несколько символов, то выполнится последняя команда, которая начиналась на эти символы:
!l
Также может понадобиться искать команду не по первому символу, а по вхождению в нее определенного набора символов. Тогда можно использовать такую конструкцию. Ищем последнюю команду, в которой встречалось tmp:
!?tmp?
Если перед командой написать пробел, то она не сохранится в истории:
ls
Символ $? позволяет вывести код завершения последней команды:
echo $?
Символ звездочки возвращает массивом содержимое текущей папки:
echo *
С помощью символа ^ можно заменить несколько букв из предыдущей команды. rm
В результате файл будет удален.
Горячие клавиши Bash
Работа с Bash была бы не такой удобной без горячих клавиш, которые позволяют упростить множество действий. Рассмотрим основные сочетания, некоторые из них вы и так используете каждый день:
- Tab — автодополнение, наберите начало команды или пути и нажмите Tab, если такая команда только одна оболочка ее дополнит. Если доступно несколько вариантов, нажмите два раза Tab чтобы их увидеть;
- Стрелка вверх — предыдущая команда в истории;
- Стрелка вниз — следующая команда в истории;
- Ctrl+R — поиск по истории. Просто нажмите эту кнопку и начните вводить нужную команду;
- Ctrl+G — выйти из режима поиска;
- Alt+. — предыдущее слово последней команды;
- Ctrl+L — очистить вывод терминала;
- Ctrl+A — перейти в начало строки;
- Ctrl+E — в конец строки;
- Ctrl+K — удалить символы начиная от курсора и к концу команды;
- Ctrl+U — удалить символы от курсора до начала команды;
- Ctrl+W — удалить все символы этого слова слева;
- Ctrl+Y — удалить все символы этого слова справа;
- Ctrl+S — остановить вывод на экран;
- Ctrl+Q — возобновить вывод на экран.
Это все основные сочетания клавиш, которые вам понадобятся чтобы пользоваться bash. Конечно, существуют и другие, но эти основные.
Выводы
В этой статье мы рассмотрели как пользоваться Bash. Как применять основные возможности оболочки, как выполнять команды и какие бывают основные горячие клавиши, этой информации должно быть вполне достаточно новичкам для того, чтобы освоить на начальном уровне эту оболочку. Надеюсь, эта информация была полезной для вас.
На завершение видео по теме от Акцент профи:
Получение исходного каталога скрипта Bash изнутри
команда dirname является самой простой, просто разбирая путь до имени файла с переменной $0 (имя скрипта):
dirname ""
, а как Мэтт б указал, возвращаемый путь отличается в зависимости от того, как вызывается скрипт. pwd не выполняет эту работу, потому что это говорит вам только о текущем каталоге, а не о том, в каком каталоге находится скрипт. Кроме того, если выполняется символическая ссылка на скрипт ,вы получите (возможно, относительную) путь к тому, где находится ссылка, а не фактический скрипт.
некоторые другие упомянули более ранних версий команда, но в самом простом виде вы можете использовать:
dirname "$(readlink -f "")"
readlink разрешит путь скрипта к абсолютному пути от корня файловой системы. Таким образом, любые пути, содержащие одиночные или двойные точки, Тильды и/или символические ссылки, будут разрешены до полного пути.
вот сценарий, демонстрирующий каждый из них, whatdir.sh:
#!/bin/bash
echo "pwd: `pwd`"
echo "$0: "
echo "basename: `basename `"
echo "dirname: `dirname `"
echo "dirname/readlink: $(dirname $(readlink -f ))"
запуск этого скрипта в моем домашнем каталоге, используя относительный путь:
>>>$ .
/whatdir.sh
pwd: /Users/phatblat
: ./whatdir.sh
basename: whatdir.sh
dirname: .
dirname/readlink: /Users/phatblat
снова, но используя полный путь к скрипту:
>>>$ /Users/phatblat/whatdir.sh
pwd: /Users/phatblat
: /Users/phatblat/whatdir.sh
basename: whatdir.sh
dirname: /Users/phatblat
dirname/readlink: /Users/phatblat
теперь изменение каталогов:
>>>$ cd /tmp
>>>$ ~/whatdir.sh
pwd: /tmp
: /Users/phatblat/whatdir.sh
basename: whatdir.sh
dirname: /Users/phatblat
dirname/readlink: /Users/phatblat
и, наконец, используя символическую ссылку, чтобы выполнить скрипт:
>>>$ ln -s ~/whatdir.sh whatdirlink.sh
>>>$ ./whatdirlink.sh
pwd: /tmp
: ./whatdirlink.sh
basename: whatdirlink.sh
dirname: .
dirname/readlink: /Users/phatblat
cd Man Page — Linux
Change Directory — изменить текущую рабочую
каталог в определенную папку.
Синтаксис cd [ Опции ] [ Каталог ] Ключ -P Не переходить по символическим ссылкам -L Переходить по символическим ссылкам (по умолчанию)
Если задано каталог , изменяет рабочий каталог оболочки на каталог . Если нет, меняется на HOME (переменная оболочки).
$ cd — вернется к последней просматриваемой папке. Это не складывается, поэтому при многократном выпуске CD будет просто переключаться между двумя каталогами, для дальнейшего возврата используйте pushd / popd. Предыдущий каталог — эквивалент $ OLDPWD
./ или просто. это сокращение для текущего каталога.
CDPATH
Переменная оболочки CDPATH обеспечивает полезную функцию, эта переменная похожа на PATH, но задает список путей, по которым cd будет искать подкаталоги.CDPATH можно задать в командной строке для использования в текущем сеансе или в .bash_profile для постоянного использования, список путей должен быть разделен двоеточием (:)
$ CDPATH = «.
: ~: ~ / Библиотека»
Если dir начинается с косой черты (/), то CDPATH не используется.
Если используется непустое имя каталога из CDPATH или если — является первым аргументом и изменение каталога прошло успешно, в стандартный вывод записывается абсолютный путь к новому рабочему каталогу.
Статус возврата равен нулю, если каталог успешно изменен, иначе ненулевой.
Это встроенная оболочка BASH для отображения вашего локального синтаксиса из приглашения типа bash: help cd
Примеры
Переместите в папку sybase:
$ cd / usr / local / sybase
долл. США
/ usr / local / sybase
Переход в другую папку:
$ cd / var / log
долл. США
/ var / log
Быстро вернуться:
$ cd —
долл. США
/ usr / local / sybase
Перейти на одну папку вверх:
$ cd..
долл. США
/ usr / local /
$ cd (возврат в домашнюю папку)
Перейти в каталог fred внутри текущего каталога:
$ cd . /fred
«Я считаю, что развлечение может быть искусством, и может стать искусством, но если вы решили заниматься искусством, вы идиот »~ Стив Мартин
Связанные команды linux:
popd — восстановить предыдущее значение текущего каталога.
pushd — Сохранить и затем изменить текущий каталог.
pwd — Рабочий каталог печати.
Эквивалентная команда Windows:
CD — Изменить каталог.
Авторские права © 1999-2020 SS64.com
Некоторые права защищены
bash
Интернет-:
| PHP | JavaScript | SQL
| DHTML | Smarty | SVG / VML JavaScript
| баш |
- 1.
-
- 1.
Оболочка?
- 2. Ша-Банг
-
- 2.1.
- 2.2.
- 1.
- 2.
-
- 3.
- 4.. .
-
- 4.1.
- 4.2.
- 4.3. Баш
- 4.4.
- 5.
- 6.
- 7.
-
- 7.1.
- 7.2.
- 7.3.
- 7.4. если / то
- 7.5.
- 8.
-
- 8.1.
- 8,2.
- 3.
-
- 9.
-
- 9.1.
- 9.2.
- 9.3.
- 9,4. : заявить наборный
- 9,5.
- 9,6. $ RANDOM:
- 9,7.
- 10.
-
- 10.1.
- 10.2.
- 10.3.
- 10.4.
- 11.
-
- 11.
1.
- 11.
- 12.,
-
- 12.1.
- 12.2.
- 12,3.
- 12,4.
- 12,5.
- 12.6.
- 12,7.
- 12,8.
- 12.9.
- 13.
- 14.
- 15.
- 16. /
-
- 16,1. исполнительный
- 16.2.
- 16,3.
- 17.
- 4.
-
- 18.
-
- 18.1.
- 18,2. Глобус —
- 19., Оболочки
- 20.
- 21.
- 22.
-
- 22.1.
- 22.2.
- 23.
- 24.
- 25.
- 26.
- 27. / dev / proc
-
- 27,1. / dev
- 27.2. / proc
- 28. / dev / zero / dev / null
- 29.
- 30. ()
- 31.
- 32.
-
- 32,1.
- 33.
-
- 33,1.
- 33.2. —
- 33,3. :
- 33,4.
- 33,5. «»
- 33,6.
- 33,7.
- 33,8.
- 33,9.
- 33.10. Окна
- 34. Баш, 2
- 35.
-
- 35,1.
- 35,2.
- 35,3. ,
-
- 35.3.1.
- 35.
3.2.
- 35,4.
- А.
- Б. Сед Авк
-
- Б.1. Sed
- B.2. AWK
- с.,
- Д. — —
- E.
- F.
- Г. .bashrc
- H. (* .bat) DOS
- I.
-
- I.1.
- I.2.
- J.
- 11-1.
- 30-1. Баш
- 33-1. побег-
- Б-1. sed
- Б-2. sed
- С-1. «»
- Н-1.
// DOS
- Н-2. ДОС UNIX
команд Bash для управления каталогами и файлами | Наука о данных о Земле
- Учебники
- Курсы
- Семинары
- Инструменты
- Блог
- О
Зарегистрируйтесь сейчас! Учить больше.
- Home /
- Courses /
- Введение в науку о данных о Земле /
- Открытая воспроизводимая наука /
- Bash /
- Команды Bash для управления каталогами и файлами
Введение в учебник по науке о данных о Земле
- Единицы
- 1. ВВЕДЕНИЕ В ОТКРЫТЫЕ РАБОЧИЕ ПОТОКИ ВОСПРОИЗВОДИМЫХ НАУК
- Глава 1 Открытые воспроизводимые научные рабочие процессы
- — Об Open Science
- — Инструменты Open Science
- — Лучшие практики управления проектами
- Глава 2 Использование bash для управления файлами
- — Введение в Bash
- — Команды Bash
- Глава 3 Jupyter для python
- — Введение в Jupyter
- — Jupyter Notebook для Python
- — Ячейки кода и разметки
- — Управление каталогами Использование Dashboard
- — Управление Jupyt er Notebooks
- — Ярлыки Jupyter Notebook
- РАЗДЕЛ 2 ФОРМАТЫ ФАЙЛОВ ДЛЯ НАУКИ ДАННЫХ О ЗЕМЛЕ
- Глава 4: Форматы текстовых файлов
- Глава 5: Форматы пространственных данных
- РАЗДЕЛ 941 GIT И GITHUB
- Глава 7: Git / GitHub для управления версиями
- Глава 8: GitHub для совместной работы
- РАЗДЕЛ 4 ОСНОВЫ КОДА PYTHON
- Глава 10: Начало работы с переменными и списками Python
- Глава 11: Использование Python Пакеты
- Глава 12: Файлы, каталоги и пути
- РАЗДЕЛ 6 СТРУКТУРЫ НАУЧНЫХ ДАННЫХ В PYTHON
- Глава 14: Массивы Numpy
- Глава 15: Фреймы данных Pandas
- РАЗДЕЛ 7 НАПИСАТЬ КОД ЭФФЕКТИВНОГО ИСПОЛЬЗОВАНИЯ ОТКРЫТЫЙ ИСТОЧНИК PYTHON
- Глава 16: Написание чистого экспрессивного кода
- Глава 17: Условные выражения в Python
- Глава 18: Циклы в Python
Bash ›Wiki› ubuntuusers.
de
Eine grundlegende Übersicht findet man im Artikel Shell. Im weiteren werden einige Funktionen beschrieben, die Bash-spezifisch sind, sich aber durchaus auch in anderen Shell-Umgebungen wiederfinden können.
История
In der Bash ist es möglich, die zuletzt eingegebenen Befehle mit den Pfeiltasten ( ↑ / ↓) durchzublättern oder zu durchsuchen. Dies vereinfacht die Bedienung in der Praxis huge.
Als Standardwert werden die letzten 500 Befehle gespeichert.Einstellen lässt sich dieser Wert mit einem Editor [1] in der Datei ~ / .bashrc . Mit dem Eintrag HISTSIZE = 2000
wird die История z.B. auf 2000 Befehle erweitert.
Дурчсухен
Die Befehlsliste lässt sich mit der Tastenkombination Strg + R durchsuchen. Durch Eingabe von
lässt sich auch eine Liste der eingegebenen Befehle ausgeben, die man mit Hilfe von egrep filtern kann:
история | egrep веб-сервер
gibt zum Beispiel alle Befehle an, die die Zeichenfolge «webserver» enthalten haben.
Indem man einer Zeichenfolge ein Ausrufezeichen voranstellt, sucht die Bash in der History nach dem letzten Eintrag, der mit den selben Zeichen beginnt und führt diesen Befehl aus.
Gezieltes Blättern aktivieren
Um die History der Bash gezielt zu durchblättern, lohnt es sich, folgende Zeilen in der Datei / etc / inputrc einzufügen [1] :
"\ e [5 ~": history-search-backward "\ e [6 ~": история-поиск-вперед
Möchte man diese Funktion nur für einen bestimmten User aktivieren und nicht systemweit, so kopiert man die Datei / etc / inputrc nach / home / $ USER /.inputrc , und nimmt die Änderung dort vor.
Durch Drücken der Tasten Bild ↑ und Bild ↓ kann man die History der Bash anschließend nach Einträgen durchsuchen, welche mit den Worten beginnen, die vor der aktuellen Cursorposition stehen. Пример:
sudo vi⌷ / etc # ⌷ = Cursor
Drückt man jetzt
Bild ↑ или
Bild ↓, wird die History nach Einträgen durchblättert, welche mit sudo vi beginnen.
Hinweis:
Wird die / home / $ USER /.inputrc verwendet, muss darin in der ersten Zeile
$ включает / etc / inputrc
Stehen, damit die Einstellungen darin ebenfalls beachtet werden.
Bestimmte Befehle ausschließen
Will man nur bestimmte Befehle nicht in der History speichern, so kann man mit der Variablen HISTIGNORE
eine schwarze Liste erstellen. Hierzu trägt man beispielsweise
HISTIGNORE = "truecrypt -P *: sudo *"
in die Datei ~ / .bashrc ein [1] .Dadurch werden alle Befehle, die mit truecrypt -P
oder mit sudo
beginnen, von der History ausgeschlossen.
Zeitstempel hinzufügen
Möchte man den Zeitpunkt der Eingabe von Befehlen in der History speichern, so kann dies mit der Variablen HISTTIMEFORMAT
erfolgen. Hierzu trägt man
HISTTIMEFORMAT = "% F% T"
in die Datei ~ / . bashrc ein [1] . Allerdings sollte beachtet werden, dass Zeitstempel nicht rückwirkend gesetzt werden können, wodurch diese bei bereits in der Historie befindlichen Einträgen nicht zutreffend sind.Beispielausgabe:
400 2013-01-10 08:00:01 ls 401 2013-01-10 08:00:17 наверх 402 10.01.2013, 08:01:04 ps aux
Am häufigsten verwendete Befehle
Wer interessehalber ein Liste der am häufigsten verwendeten Befehle benötigt, benutzt den folgenden Befehl:
История | awk '{CMD [$ 2] ++; count ++;} END {для (a в CMD) print CMD [a] "" CMD [a] / count * 100 "%" a;}' | grep -v "./" | столбец -c3 -s "" -t | sort -nr | nl | голова -n10
Löschen
Mit dem Befehl
löscht man die komplette History der aktiven Shell.Möchte man dazu noch die History vorheriger Sitzungen aus der Datei ~ / .bash_history löschen, kann man diese Datei mit den Befehlen
mit der leeren History der aktiven Shell überschreiben.
Einzelne Zeilen lassen sich löschen mit
NNN
repräsentiert hierbei einen dreistelligen Zahlenwert der entsprechenden Zeile.
Deaktivierung
Es kann unter bestimmten Umständen sinnvoll sein, die History der Bash zumindest für root
zu deaktivieren.Dazu muss man in der Datei ~ / .bashrc folgende Zeile eintragen:
unset HISTFILE
und die Datei ~ / .bash_history löschen.
Sofort speichern
Man kann die History auch sofort nach der Ausführung jeden Befehls speichern lassen. Эта проблема связана с собственной версией Ubuntu 14.04 и другими вариантами, историей ничего не известно, а не более exit
eingibt. Zum anderen kann man dadurch die komplette History direkt in neu geöffnete Terminal-Tabs übernehmen lassen, obwohl die anderen Tabs noch nicht geschlossen sind.Dazu muss man in der Datei ~ / .bashrc folgende Zeile eintragen:
PROMPT_COMMAND = "history -a"
Möchte man erreichen, dass sogar bei parallel geöffneten Tabs bzw. Fenstern die History aus allen Tabs nach jedem Befehl gespeichert und dadurch jedem bereits geöffneten anderen Tab sofort zur Verfügung gestellt wird, ohne dafür einen neuen Табл. c; history -r «
Hinweis:
Dabei wird die temporäre History-Liste erst in die History-Datei angehangen und gespeichert, anschließend die History-Liste gelöscht und anschließend die dann komplette History-aus der History -Liste eingelesen, um sofort die vollständige History aus der Datei in der durchscrollbaren Liste zur Verfügung zu haben.
Diese Lösung klingt Zwar zunächst утра vorteilhaftesten für Viele Zwecke, jedoch IST так умереть Wiederholung де letzten Befehls Aus дем selben Tab Durch умереть Pfeiltasten Dann Nicht Mehr директ möglich, да Сечь Dann Befehle AUS ден Anderen Вкладки vordrängeln können, так Дасс человек умирают Pfeiltaste nach oben dann ggf. mehrfach betätigen muss.
Achtung!
Wenn dies beispielsweise ein Löschbefehl für das aktuelle Verzeichnis war, kann sich dies bei unbedachtem Bestätigen des falschen Befehls sehr ungünstig auswirken.
Dadurch hat man аллергическая реакция на все Befehle, Optionen и Parameter в allen Tabs zur Verfügung, ohne sie in neue Tabs kopieren zu müssen, wenn man sie dort für weitere Vorgänge braucht. Dazu reicht es aus, in dem Tab, wo man die komplette History Aller Tabs sofort benötigt, einmal kurz ⏎ zu betätigen, damit die History von allen Tabs dort neu eingelesen wird.
Historie für all Instanzen der Bash zusammenfassen
Arbeitet man mit mehreren Terminals gleichzeitig, so wird für jedes Terminal separat eine History geführt.Man kann jedoch alle Befehle в einer einzigen History zusammenführen. Dazu ergänzt man am Ende von ~ / .bashrc
folgende Textzeile:
PROMPT_COMMAND = "история -a; история -c; история -r; $ PROMPT_COMMAND"
Mit история -a
wird der momentane Verlauf der Bash и eine gemeinsame History-Datei gehängt. Anschließend wird mit history -c
der Verlauf des Terminalfensters entfernt und mit history -r
wird die ganze, vollständige History wieder eingelesen.
Autovervollständigung
Die Bash bietet die Möglichkeit, Befehle und Dateinamen nach dem Eingeben der ersten Zeichen automatisch zu vervollständigen. Dies erreicht man durch drücken der Tabulatortaste Вкладка ⇆. Beispiel:
ergibt durch das Drücken von Вкладка ⇆:
Allerdings nur, wenn der Ordner / home / blackbird existiert. Sollte es die Ordner blackbird_1 und blackbird_2 geben, macht er das:
Ergibt das Drücken von Вкладка ⇆:
und wartet, bis ein zusätzlicher Buchstabe eingegeben wird.Man kann sich mittels «Doppeltab», а также das erneute Drücken von Tab dann auch die zur Verfügung stehenden Möglichkeiten zur Vervollständigung ausgeben lassen.
Das Geräusch (Piepen), das ertönt, wenn die Autovervollständigung aufgrund von Mehrdeutigkeiten fehlschlägt, lässt sich durch folgenden Eintrag z.B. in der ~ / .bashrc (systemweit: /etc/bash.bashrc ) ausschalten:
set 'bind bell-style none'
В / etc / inputrc lassen sich ebenfalls einige (systemweite) Änderungen vornehmen:
set bell-style none -> Ruhe установить видимость колокольчика -> оконная вспышка
Möchte man diese Funktion nur für einen bestimmten User aktivieren (und nicht systemweit), так что копировать человек умирает Datei / etc / inputrc nach / home / $ USER /. inputrc und nimmt die Änderung dort vor.
Die Bash lässt sich durch den folgenden Eintrag dazu bewegen, die existierenden Möglichkeiten gleich anzuzeigen (ohne den Doppeltab):
set show-all-if-ambiguous on
Groß / Kleinschreibung ignorieren:
установить завершение-игнорирование-регистр на
Normalerweise komplettiert die Bash soweit, wie eindeutige Möglichkeiten vorhanden sind und wartet dann auf eine Eingabe durch den Benutzer. Man kann aber auch durch die vorhandenen Möglichkeiten einfach ‘durchtabben’, indem man in / etc / inputrc folgendes (nach der if mode = emacs Zeile) einträgt:
Control-i: menu-complete
Um doch noch die Variante mit Anzeige der Möglichkeiten zu Verfügung zu haben, muss diese Zeile eingefügt werden:
"\ C-": полный
Jetzt kann man mit Tab durch die Möglichkeiten wechseln, und mit Strg-Leertaste die Möglichkeiten anzeigen lassen.
Programmierbare Vervollständigung der Bash aktivieren
Mit dieser Funktion lässt sich die Autovervollständigung nicht nur für Befehle und Dateinamen, sondern auch zum Beispiel für Optionen verwenden. Programmierbare Vervollständigung der Bash lässt sich aktivieren, in dem man in /etc/bash.bashrc or ~ / .bashrc den folgenden Block wie in diesem Beispiel
# aktivierständigung Bashrc Bashrc если [-f / etc / bash_completion]; тогда ./ и т.д. / bash_completion fi
durch Entfernen der # -Zeichen am Zeilenanfang einkommentiert. Ausprobieren lässt es sich zum Beispiel mal mit
und dem Drücken der Вкладка ⇆ -Вкус.
Sollte die programmierbare Vervollständigung selbst nach erneutem Einloggen nicht funktionieren, muss unter Umständen das Paket bash-completing installiert werden.
Подстановочные знаки
Joker oder Wildcards können für trustbige Zeichen stehen. Zum Beispiel kann man mit
alle Dateien mit der Endung .png anzeigen.
* | Ersetzt Bellebig viele Zeichen |
? | ersetzt genau ein Zeichen |
Es ist auch möglich, Textteile aus Wortgruppen auszuwählen:
{WORT1, WORT2, WORT3} | Wenn eines der genannten Wörter vorkommt | 9889
ls *. {Png, PNG, Png, pNg, pnG, PNg, pNG}
Es gibt auch die Möglichkeit, ein einzelnes Zeichen aus einer Liste an einer Stelle zu erwarten:
[abcd] | wenn einer der Buchstaben vorkommt |
findet .jpg и .png Dateien (würde jedoch auch * .ppg- oder * .jng-Dateien finden, wenn es sie gäbe).Wobei man mit
[j-p] | auch alle Buchstaben von j bis p auswählen kann |
findet nun zum Beispiel auch eine * .log-Datei.
* (MUSTERLISTE) | findet keins oder mehrere aus der Musterliste | |
+ (MUSTERLISTE) | Musterlister 9088 (MUSTERLISTE 9035) Muster aus der Liste aus |
ls! (*.jpg | * .JPG) ## oder *.! (jpg | JPG)
Findet alles außer * .jpg- и * .JPG-Dateien.
Spezielle Aktionen, wenn ein Befehl nicht gefunden wird
Sollte ein eingegebener Befehl nicht gefunden werden, так что wird standardmäßig command-not-found aufgerufen. Das passiert über die Funktion command_not_found_handle
. Diese kann auch umdefiniert werden. Ein Beispiel dafür ist das Abfangen eines Tipp- / Eingabefehlers beim Benutzen der Vervollständigung: Man tippt manchmal zwei Buchstaben, dann
Tab ⇆ und erwischt dann beim Drücken von
⏎ аух умереть
# -Вкус.Abfangen kann man das mit folgender Funktion:
command_not_found_handle () { cmd_ohne_hash = "$ {1 / \ #}" если ["$ 1"! = "$ cmd_ohne_hash"] тогда сдвиг echo "$ cmd_ohne_hash $ @" $ cmd_ohne_hash $ @ вернуть $? фи } |
Dieser Funktion fehlt aber dann die Fähigkeit, command-not-found aufzurufen. Günstiger ists также die bestehende Funktion zu erweitern.
Bash (скрипт) кодирование — Индекс
Пройдите через уловки (Башизмы), используемые в сценарии для установки, настройки и запуска многих программ в macOS и Linux
Обзор
- Вопрос стиля
- Дисковое пространство папки
- Запись в файл
- Sudo и пароль
- GITS_PATH
- Дескрипторы файлов
- Сохранить резервную копию
- Brew Package Path Linkages
- Файлы конфигурации MySQL
- Без варки, без проблем
- Редакторы
- Веб-страница Scape для URL
- Установить с GitHub Релизы
- Запуск / остановка / завершение процесса
- Цветные коды выхода ANSI
- Переменные
- Несколько клемм
- Плагины Eclips IDE
- Тестирование
- инструментов Java через Maven, Ant
- Pkg тихая установка
- Извлечь версию с веб-страницы
- кд / pushd / popd / pwd
- возвращает числа на 255
- Сервер Jenkins
- Файл Plist Mac для Jenkins
- Графический интерфейс Jenkins в браузере
- Автоматизация графического интерфейса пользователя Jenkins
- Отключение Дженкинса (убить)
- Python GUI Automation
- Задержка просмотра
- Снимок экрана, изображение
- Конец сценария
- Отличный
- Scape для шрифтов в GitHub
- «Пользовательские данные» для загрузки экземпляра EC2
- Произнесите текст вслух
- Настроить расположение для создания новых файлов
- Ожидайте управления ручным вводом
- Ссылки
- Rockstars
- Книги, за которые вы платите
- Подробнее о DevOps
Эта страница представляет собой глубокое погружение в технические идеосикратии файлов сценариев оболочки.