LINUX.ORG.RU

Перемещение по директориям в терминале

 , , ,


0

1

Вопрос от новичка.

Рассмотрим ситуацию:

В Windows я могу открыть консоль, ввести, например cd, и при нажатии на Tab в строку консоли поочередно будут подставляться все папки и файлы из текущей директории.

В Linux такой фокус не прокатит - при нажатии на Tab консоль начинает пиликать.

Собственно, вопрос: почему в Linux не прокатывает такой фокус и как можно добиться подобного поведения?

В Linux как раз такой фокус и прокатывает. Это в Windows не всегда.

ри нажатии на Tab в строку консоли поочередно будут подставляться все папки и файлы из текущей директории.

В Linux если нельзя однозначно дополнить введённую часть пути или команды при двойном нажатии на Tab будет выведен список всех доступных директорий или предложены варианты команд.

Но, как сказал другой автор, с командами нужно bash-completion.

Нажми на таб два раза. Ты не указал какая у тебя оболочка, bash, zsh, sh, что-то другое.

В Linux автопополнение - стандартная функция, которая есть автоматом и появилась намного раньше, чем в Windows.

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

Если ты работаешь именно в консоли, то по умолчанию подаётся звуковой сигнал через pc speaker, либо выгрузи модуль спикера, либо разберись как отключить такое поведение, либо набирай пути правильно, чтобы было однозначное сопоставление части пути / команды.

Эх, молодёжьььь. А ещё в Linux в графической оболочке раньше, чем в Windows появились несколько рабочих столов. Это тебе так, для уточнения.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)

Ты сейчас как тот самый жук, в инородном для тебя муравейнике, как непонятный засланец, несущий странные идеи и показывающий как он инороден для мира, не только Linux, но и Windows.

kostik87 ★★★★★
()

В Linux такой фокус не прокатит - при нажатии на Tab консоль начинает пиликать

поставь fzf, тогда при Ctrl+T или после ** оно тебе дополнит все что хочешь, причем рекурсивно и с мультивыбором

Lrrr ★★★★★
()
Последнее исправление: Lrrr (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

bash-completion

Фу! Хочу открыть файл(кириллица) из терминала, как мне поможет твой комплишен для ключей к командам? В нормальном шеле я табом кликну на него и привет, в баш надо раскладку менять, мда…

anonymous
()
Ответ на: комментарий от ya-betmen

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

anonymous
()
Ответ на: комментарий от anonymous

В случае баш мне надо раскладку менять, в моем нажать таб и выбрать нужный файл

Я хз сколько у тебя файлов там, но в лине это 1 клавиша смены языка, 1-2 первые буквы названия и ещё 1 - таб. Итого 3-4 нажатия. Если у тебя там больше 4-х файлов, твой способ - лажа. Не то оптимизируешь.

ya-betmen ★★★★★
()
Ответ на: комментарий от ya-betmen

Итого 3-4 нажатия

Но зачем? Зачем переключать два раза раскладку, я же могу в конвейере что-то делать с файлом, в общем это все лишнее телодвижение. Ну а на счёт количества файлов, тут согласен, если их больше скажем ста, которые не помещаются в терминал… собственно большой проблемы я в этом тоже не вижу, можно просто зажать таб, ведь файлы отсортированы в алфавитном порядке, тем более что можно начать движение с хвоста. В итоге все упрется(наверное) в пропускную способность эмулятора терминала

зы: лучше один раз попробовать, yash есть наверно везде, установи и сам попользуйся, даю 99% что на баш возвращаться не захочется, тем более:

Yash is intended to be the most POSIX-compliant shell in the world while supporting features for daily interactive and scripting use

И в отличии от того же zsh, который из коробки мало чем отличается от баша, ведь его ещё надо настраивать, тут уже все настроено, например прогнозирование команд из истории, просто надо освоить emacs-key и жизнь заиграет новыми красками)

anonymous
()
Ответ на: комментарий от anonymous

Хз что там за яш, имхо кейс какой-то шибко надуманный, никогда с такими сложностями не сталкивался. Но если кому-то так удобнее ок.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от kostik87

Я тут сравнил поведение cmd.exe bash с bash-complition и понял, о чем он.

В bash набираешь cd, потом Tab 2 раза, тебе выводит список вариантов, пишешь начальные символы, Tab ещё раз, дополняет до конца.

В cmd.exe же он не выводит весь список, а просто перебирает по одному с каждым нажатием.

Как по мне, bash удобнее, но он видимо привык сильно к cmd.exe

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от mak8kammerer

Баш удобнее, выключай свои винфакские хотелки и изучай поведение используемого тобой баш.

Прочти мой первый комментарий в теме, там я постарался описать детально, что и почему.

Так что все работает, просто ты не читаешь описание как работает то, что ты используешь.

kostik87 ★★★★★
()
Ответ на: комментарий от anonymous

Говно — это ksh, вот тут реально тугое управление. А bash отличается от cmd.exe, но нельзя сказать, что автодополнение в нем не работает. Ну или можно fish поставить, там даже больше фич.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

ksh плохой? Очень смешно! Слушай, мне всегда было интересно, как добиться в баше поведения ^W как в ksh, ну чтоб не всю строку удалял а до первого разделительного символа, я вот пробовал, и сломал этот едучий readline. У гну есть вообще нормальный софт? Баш это просто пиндец, хуже его только даш.

anonymous
()
Ответ на: комментарий от kostik87

Яхз зачем в 21 веке в качестве интерактивной оболочки пользоваться башем, ну если ты конечно открываешь терминал раз в полгода, тогда наверно норм

anonymous
()
Ответ на: комментарий от Vsevolod-linuxoid

В bash набираешь cd, потом Tab 2 раза, тебе выводит список вариантов, пишешь начальные символы, Tab ещё раз, дополняет до конца.

Это настраивается, можно включить перебор вариантов по Tab или любым другим клавишам. Команда readline — menu-complete.

anonymous
()
Ответ на: комментарий от kostik87

В Linux если нельзя однозначно дополнить введённую часть пути или команды при двойном нажатии на Tab будет выведен список всех доступных директорий или предложены варианты команд.

Не в Linux, а конкретно в bash. В zsh и fish таб переключает без стопоров, если есть неоднозначность.

Но, как сказал другой автор, с командами нужно bash-completion.

Вы походу с «другим автором» слепые, речь шла только о cd и конкретно о дополнении имён файлов, это дефолтный функционал.

fumanchez
()
Ответ на: комментарий от fumanchez

Ты со свидетелями еговы гну разговариваешь, помни об этом, аргументы там не действуют, там деды ещё башем пользовались, совместимость, стабильность, дебиян, будь он не ладен, вот это вот все. Зачем им нормальная оболочка, они терминал открывают два раза в год

anonymous
()
Ответ на: комментарий от fumanchez

Нафиг нужен zsh, fish? Его ставить надо. А bash - есть везде.

Ага и у тебя в директории есть несколько десятков подходящих файлов и ты их будешь по кругу перебирать.

Я лучше в bash нажму два раза tab, увижу это и допишу уточняющую часть.

Вы походу с «другим автором» слепые, речь шла только о cd и конкретно о дополнении имён файлов

Дополнение команд, находящихся по путям, указанным в переменной PATH тоже дефолтный функционал. А bash-completion нужен для подсказок, если набрана команда не совсем верно или дополнения синтаксиса. Но я его не использую, т.к. в Debian при минимальной установке его нет, да и тоже нафиг нужен.

А написал я - как подсказку автору, а то он даже не знает как работает автодополнение и похоже не умеет работать в консоли.

kostik87 ★★★★★
()
Ответ на: комментарий от anonymous

И только у тех, кто не читал man bash.

Ага, вот лежу я вечером на диване и думаю, толи мне жену выиграть в карты, толи кино какое посмотреть, а может пиво попить… Нет, нет, что то не то, пойду ман баша почитают лучше, здоровее буду!

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от kostik87

Вопрос заключался в неинтуитивном и неадекватном поведении гнутого баша, который мало того, что отказывается переходить на следующий пункт, так еще и динамиком орёт.

а то он даже не знает как работает автодополнение и похоже не умеет работать в консоли

Он знает как работает нормальное автодополнение, а ты не умеешь читать и понимать суть написанного.

fumanchez
()
Ответ на: комментарий от anonymous

Ты мне лучше скажи, почему я не могу сделать поведение ^W как в ksh, тогда как в yash это делается одной строкой в конфиге, хотя там изначально поведение как в баш. Alt-Backspace переназначить на ^W? Я пробовал, ага, весь шелл к херам сломался..

anonymous
()
Ответ на: комментарий от fumanchez

Чтобы не орал динамик - выгрузи модуль, либо отключи спикер физически или через sysctl, можешь настроить через bashrc, чтобы не было. Для меня нет проблем нажать два раза tab, увидеть список файлов / директорий, добавить одну / две буковки и ещё раз нажать tab, чтобы сработало автодополнение.

Мне например в Windows раздражает, что вместо того, чтобы вывести сразу список файлов или директорий из который cmd.exe не может выбрать он начинает их перебирать, а если их там 10, а если 20, а если 100?

Поведение bash я считаю более правильным. Нажать два раза tab, набрать уточнение, нажал tab - дописалось.

А в Windows либо перебирай условно несколько десятков файлов, либо ctrl+c, далее dir и заново набирай путь.

Бред.

а ты не умеешь читать и понимать суть написанного.

Ну-да, ну-да, блажен тот, кто верит.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Для меня нет проблем нажать два раза tab, увидеть список файлов / директорий, добавить одну / две буковки и ещё раз нажать tab, чтобы сработало автодополнение.

особенно если файл на кириллице :D, ты еще скажи что у тебя переключалка на капсе, бгг, автодополнение у него сработало, с четвертого нажатия…

anonymous
()
Ответ на: комментарий от anonymous

Это настолько редкая ситуация, с которой я встречался всего пару раз.

ls -1 | enca

Определю кодировку, перекодирую и буду работать как белый человек или перемонтирую файловую систему с нужными параметрами, чтобы не было проблем с именами файлов.

Файлы должны лежать с правильными именами и это нужно исправлять.

А так, цикл, while, find или xargs в помощь, там без разницы что на вход идёт.

Без перекодирования имени файла все равно не понятно что это.

Так что в любом случае приводить в порядок.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)