Я подумываю перейти от bash к zsh, так как я часто сталкиваюсь с постами, восхваляющими zsh. Я опытный пользователь командной строки, и я предполагаю, что основы в основном одинаковы, поэтому я ищу совет, чтобы получить выгоду от переезда и любые хитрости, которые нужно знать.
Пожалуйста, дайте один совет за ответ. Я ищу куски размером с укус, где я могу вернуться и интегрировать дополнительные биты информации в свое использование оболочки в устойчивом темпе, а не пытаться изучить все это за один раз.
bash
command-line
zsh
Хэмиш Даунер
источник
источник
source /etc/zsh_command_not_found
в свой.zshrc
.Ответы:
Как вы говорите,
zsh
во многом похоже наbash
. Он имеет некоторые функции, которые вы не найдетеbash
, и он может быть расширен мощными способами. Не думайте о движении как о революции, а скорее как о серии эволюционных шагов, которые помогут вам в вашей повседневной работе. Вот несколько подсказок от моего.zshrc
. Хотя вы говорите, что предпочитаете отдельные советы, этот пост - длинный список. Тем не менее, это хорошая идея, чтобы просмотреть пункты по одному. Просто добавьте интересные биты к себе~/.zshrc
и перезагрузитеsource ~/.zshrc
. Окончательный совет: узнать нажатие клавишzsh
По умолчанию ( „Emacs“) сочетания клавиш:^A ^E ^W Alt-F Alt-B Alt-P ^L ^R
. Вы можете заменитьAlt
два отдельных нажатия клавиш:Alt-P
эквивалентноESC
P
.Это дает вам более полное завершение вкладки.
Завершение вкладки с обоих концов.
Завершение табуляции должно быть без учета регистра.
Лучшее завершение для killall.
Изменяет определение слова, например, с помощью ^ W.
Цвета для ls.
Ярлыки для ls.
Одна история для всех открытых оболочек; хранить 10000 записей. Это делает это полезным помощником в памяти, чтобы найти команды, которые вы использовали в прошлый раз
./configure
и т. Д. Используйте Alt-P (команда поиска, которая начинается так) и ^ R (поиск в истории).Включает всевозможные расширенные возможности глобирования, такие как ls ** / *. Txt (найти все текстовые файлы),
ls -d *(D)
(показать все файлы, включая те, которые начинаются с "."). Чтобы узнать больше, перейдите вman zshexpn
раздел «Генерация файлов».Это полезно для запоминания команд в вашей истории без их выполнения.
Введите «..» вместо «cd ..», «/ usr / include» вместо «cd / usr / include».
Хорошая подсказка.
Отображение статистики использования процессора для команд, занимающих более 10 секунд
Некоторые команды вы широко используете в Ubuntu.
Перечисляет пакеты, отсортированные по размеру. Это полезно при определении того, какие пакеты занимают ваше дисковое пространство.
источник
Я бы порекомендовал книгу От Баш до Z Shell . В нем есть все советы, необходимые для переключения вашей оболочки. Это объясняет различия между обоими оболочками и облегчает новый zsher.
источник
Вот мой .zshrc, и это самая важная вещь! У zsh есть много опций, которые вы можете использовать, поэтому посмотрите некоторые примеры из сети или прочитайте документацию на домашней странице Zsh .
Мой .zshrc не содержит действительно крутых вещей, кроме метки времени в правой части командной строки.
Кстати, не забудьте попробовать табуляцию каждый раз, когда несколько примеров здесь:
покажет что-то вроде этого:
И если вы используете ssh-ключи без пароля или ssh-agent, вы можете найти их полезными для полных вкладок удаленных файлов:
После получения списка вы можете нажать Tab несколько раз, чтобы просмотреть различные возможности.
Но будьте осторожны, эта оболочка сделает вас ленивым и заставит вас чувствовать, что стандартная оболочка глупа и раздражает!
источник
Пара особенно полезных расширенных шаров:
1-
rmdir *(/^F)
- удалить все непустые каталоги в текущем каталоге2
grep traceback /srv/log/**/*(.m-2)
- найдите это регулярное выражение в файлах, измененных за последние два дня3-
chmod g+w **/*(U^I)
- сделать любые файлы, принадлежащие мне и не для групповой записи, доступными для групповой записиДа, конечно, вы можете написать это с,
find
но это легче накатать. Если честно, у него есть два недостатка, оба из которых связаны с тем, что все они развернуты в командной строке: если она соответствует многим тысячам файлов, командная строка будет слишком длинной, и это не удастся, а во-вторых, все файлы найдены. до того, как файл начнет работать.(Вам понадобится,
setopt extendedglob
если он еще не включен)источник
Я не очень разбираюсь в bash, поэтому не могу сравниться. Некоторые фрагменты из моего конфигурационного файла zsh.
Некоторый конфиг
Git в подсказке
Несколько горячих клавиш, вставьте в начале строки текст.
Функции я сохраняю в ~ / .zsh / functions
The git_info_for_prompt
Некоторые варианты GitHub
источник
Я в одной поездке :)
До сих пор я обнаружил, что дело в том, чтобы иметь хороший файл конфигурации (.zshrc).
Возьмите это в качестве примера http://matt.blissett.me.uk/linux/zsh/zshrc , посмотрите комментарии и взломайте свой путь. Stackoverflow и severphault и хорошие места для поиска тоже.
Мне еще предстоит погрузиться в http://dotfiles.org/.zshrc , но у меня не так много времени, чтобы терять :)
источник
Узнайте о расширенных globbing и рекурсивных globs в zsh.
Узнайте немного о zstyle и о том, как различные вещи (особенно дополнения) позволяют настраивать их конфигурацию с помощью zstyle.
Посмотрите на ассоциативные массивы. Также стандартные массивы (остерегайтесь отличий от bash, к лучшему!)
Если вы используете регулярные выражения, посмотрите
=~
(что также имеет bash) и подумайте:setopt rematch_pcre
Избегайте написания сценариев, которые зависят не только от магии zsh, потому что, хотя это фантастично для использования, zsh может стремиться быть только для записи. Если вы используете слишком много больше, подумайте о том, когда переключаться на такой язык, как Python.
Zsh соблазнительный. Это темная сторона. Добро пожаловать.
источник
Большое преимущество - отличное завершение табуляции с помощью предварительно упакованных скриптов завершения для многих команд. Вот пример, показывающий вывод
apt-get<TAB>
:источник
Я дал пару разговоров и перевел несколько человек в Zsh. Здесь я храню репозиторий github моих (каковы преимущества) заметок, а также стартовый файл и копию моей собственной конфигурации zsh в github.
http://github.com/mitechie/zshrc
источник
Еще один замечательный ресурс - страница любителей zsh (взята с сайта grml zsh ).
источник