Як виконати команду Linux, використовуючи команду "менше" або на сторінках "man"?


9

Я взагалі труба команди lsз lessі хотів би, щоб виконати команду , коли вона пейджинговая наприклад , я натрапив на файл , який я хотів би видалити , тому я хотів би, щоб виконати команду , rm {filename}поки ще пейджінга. Я також хотів би сподіватися, що я можу використовувати той самий метод, переглядаючи підручні сторінки. Якщо ні, як це відрізняється?

Відповіді:


8

Ви можете отримати доступ до командного рядка, використовуючи bang ( !) протягом менше.

Наприклад, якщо ви вводите:

touch temp.txt
ls | less
!rm temp.txt

І temp.txt має бути відсутній.

Редагувати: за замовчуванням здається, що людина зараз використовує менше сторінок (чомусь я вважав, що це використовується more, можливо, раніше). Ви можете використовувати той самий трюк, але для його роботи потрібен повний шлях (наприклад, / home / user / ...).

Це тому, що виклик людини змінює поточний робочий каталог. На моїй машині (xubuntu, використовуючи xfce-terminal) вона переходить /usr/share/man. Якщо на вашій консолі відображається CWD, ви можете побачити її зміну, або ви побачите її зсередини man, ввівши:

!pwd

людина насправді змінює CWD, тому вам потрібно буде використовувати повний шлях.
Роб

@Rob - Що ти це маєш на увазі man actually changes CWD?
PeanutsMonkey

У мене налаштовано tmux, щоб показати свій CWD в моєму рядку стану. Якщо я man man(або що-небудь) змінить мою КВД, поки людина відкрита. Моя машина Linux на даний момент недоступна, і я не впевнений у будь-якому іншому способі перевірити CWD, але мені здається, що саме це робиться.
Роб

@Rob - Отже, ви хочете сказати, що лише тому, що ви використовуєте tmux, він змінює поточну робочу директорію, коли ви запускаєте команду man {command}з say /home/{user}на місце розташування команди man?
PeanutsMonkey

Це пояснило б поведінку, яку я бачив. Тепер, чому це змінює CWD, це вже інше питання ...
Еш

4

Загальний спосіб зробити це - призупинення поточної роботи, виконання команди та відновлення старого завдання.

ls | less (прочитати текст, помітити ім'я файлу),
Control-zщоб призупинити діючу активну команду

Ви повинні отримати рядок, подібний до цього: [1]+ Stopped ls | less
([1] - номер завдання.)

rm testfile

fgабо fg %1 (1 - номер роботи)

Ви можете призупинити кілька процесів одночасно. Наприклад
ls | less
Control-z (output: [1]+ Stopped ls | less)
man rm
Control-z (output: [2]+ Stopped man rm)
rm -i testfile*

fg %1відновити роботу 1 (залишити сторінку людини відкритою у фоновому режимі) або
fg %2відновити роботу 2 (man rm)

Якщо у вас є кілька призупинених процесів, ви можете перелічити їх jobs.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.