1. Виконайте останню команду за допомогою !!
Заголовок говорить все, просто введіть наступне в терміналі ...
!!
... Для повторного виконання останньої введеної команди. Цей фокус дуже корисний, коли ми забуваємо ввести Суду на початку. У цьому випадку вам доведеться ввести:
судо !!
Щоб знайти більш складні способи отримати максимальну користь від цього трюку, я рекомендую прочитати це старий пост.
2. Виконайте останню команду, але виправте помилку друку
Цей фокус дійсно корисний, коли ми вводимо команду за допомогою простої друкарської помилки. Наприклад, якщо ми запускаємо:
луна"desdelinuxz"
Ви можете виправити це, ввівши наступне:
^z
3. Викличте текстовий редактор, щоб ввести довгу команду
Іноді вам потрібно ввести нескінченні команди в терміналі. У цьому випадку може допомогти простий текстовий редактор, такий як nano або emacs.
Щоб відкрити редактор, просто натисніть Ctrl + x + e в терміналі. Текст, який ви ввели до цього часу, буде скопійований у текстовий редактор після його відкриття.
Зі свого боку, використовуваний редактор буде редактором, вказаним у змінній $ EDITOR. Щоб змінити цю конфігурацію, можна виконати ...
експорт РЕДАКТОР = нано
... Заміна nano на бажаний редактор.
4. Виконайте команду, не зберігаючи її в історії
Справжній хакер не може ігнорувати цей фокус. Як ви всі знаєте, bash зберігає історію виконуваних команд, до якої дуже легко отримати доступ за допомогою стрілок клавіатури або Ctrl + R (для виконання a зворотний пошук в історії).
У цьому випадку потрібно ввести пробіл, щоб введена команда не збереглася в історії.
команди
5. Автоматично розміщувати останній параметр команди
Припустимо, що виконана раніше команда була
cp file.txt / var / www / wp-content / uploads / 2009/03 /
Щоб отримати доступ до відповідного каталогу, ви можете ввести команду cd слідує Alt +. o Esc +. :
cd 'ALT +.'
Це лише скорочений спосіб введення:
cd / var / www / wp-content / uploads / 2009/03 /
6. Виконайте команду у визначений час
Так, так, для цього воно існує крон. Однак іноді ми хочемо запустити команду для запуску в певний час, але лише один раз.
Припустимо, ми хочемо виконати команду ls -l опівночі. У цьому випадку ми повинні виконати його наступним чином:
ехо "ls -l" | опівночі
7. Отримайте свій зовнішній IP
Завдяки послузі, яку надає http://ifconfig.me/ Можна дізнатися різні дані вашого Інтернет-з'єднання, безпосередньо з терміналу:
curl ifconfig.me/ip // IP-адреса curl ifconfig.me/host // Віддалений сервер curl ifconfig.me/ua // Агент користувача curl ifconfig.me/port // Порт
8. Дізнайтеся, як використовувати Ctrl + u та Ctrl + y
Скільки разів із вами траплялося, що ви починали вводити команду і згадували, що до цього потрібно було робити щось інше? Що ж, можна зробити такий собі cut-paste, щоб згодом було легше повторно ввести команду, яка залишилася наполовину.
Припустимо, ви почали писати ...
cd / home / user
і ви пам’ятали, що перед тим, як вам потрібно було щось перевірити у поточному каталозі. У такому випадку натисніть Ctrl + u (Це було б щось на зразок "розрізу").
Введіть команду, яку потрібно було виконати першою. Припустимо ...
ls -l
... а потім натисніть Ctrl + y (Це працює як "паста").
9. Легко очистіть термінал
з Ctrl + l термінал можна миттєво очистити.
10. Перейдіть до каталогу, запустіть команду і поверніться до поточного каталогу
Цей фокус викликає захоплення. Щоб виконати серію команд, не виходячи з поточного каталогу, просто згрупуйте їх у дужках. Як майже всім відомо, щоб виконати серію команд, вам потрібно об'єднати їх за допомогою &&. Використовуючи ці концепції, ми можемо виконати щось на зразок наступного:
(cd / tmp && ls)
Результатом цієї команди (зверніть увагу на дужки) буде список файлів і каталогів у папці / Tmp. Все, не виходячи з поточного каталогу. Коштовність!
Япа. Перелічіть найбільш часто використовувані команди
Щоб їх побачити найбільш використовувані команди просто виконайте наступне:
історія | awk '{a [$ 2] ++} END {for (i in a) {print a [i] "" i}}' '| сортувати -rn | керівник
У моєму випадку переможцями стали:
450 yourt 415 sudo 132 git 99 cd 70 leafpad 70 killall 68 ls 52 pacman 50 xrandr 45 top
Для любителів терміналів, таких як цей сервер, я рекомендую відвідати командний рядокfu. Крім того, чому б і ні, не переставайте дивитись на архів з нашого блогу.
Був один, котрий я використовував, який пропускав великі літери у моєму inputrc, бо, чесно кажучи, багато файлів, які починалися так, ковзали в мене.
Я думаю, що однією з найважливіших є команда history, в якій вона повертає нумерований список
команд, які ви використовували, і якщо ви хочете використовувати будь-яку з них, просто використовуйте наступний рядок
! 22
що виконає команду, яка є у вашій історії під номером 22 😀
Шукати команду з автозаповненням є
Ctrl + r
Я також завжди використовую Ctrl + r, щоб повторити останню команду; як тільки з’явиться останній, ви можете прокрутити назад історію, натискаючи кнопку Вгору (стрілка вгору).
Привіт.
Хороша стаття. Дякуємо, що поділилися цими порадами.
Я хочу поділитися одним, який я використовую щодня, який є "fg", що дозволяє відкривати програми, які ви зупинили раніше, за допомогою "Ctrl + z".
А за допомогою 'bg' ви відправляєте їх у фоновий режим 🙂
Подивіться на вас ... хороший фокус! Дякуємо, що поділилися цим.
Обійми! Павло.
Пост чудовий, вони завжди змушують пам’ятати речі, які ви знали і з часом забули, але які дійсно корисні.
Коди терміналів завжди вітаються.
Неймовірно, я не знав, що додавання пробілу до команди пропущено з історії.
Щиро дякую, Вітаю !!
для використання історії автозавершення фільтрів додайте у файл $ HOME / .inputrc
"\ E [5 ~": історія-пошук назад
"\ E [6 ~": історія пошуку вперед
і, наприклад, у якийсь момент ви використовували:
$ cd / one / path / longer / than / the / shit
і тепер ви хочете використовувати його знову, вам потрібно зробити:
$ cd
а потім натисніть клавіші "Сторінка вгору" або "Сторінка вниз", щоб переміщатися між усіма командами в історії, які починалися з "компакт-диска".
АБО…. Не редагуючи нічого, натисніть Ctrl + R, а потім cd (якщо ви хочете щось знайти за допомогою "cd"), і натискаючи Ctrl + R кілька разів, ви побачите всі команди, що містять це, поки не дійдете до потрібної. Очевидно, що якщо це безпосередньо попередній, ви отримаєте його.
Мій Буено!
Насправді ls / tmp має бути достатньо, щоб перерахувати каталог, не залишаючи поточного.
Ви також можете об'єднати команду за допомогою ";" як у прикладі n ° 10 це було б так:
(cd / tmp; ls)
привіт
Він ";" Він працює інакше, ніж "&&" (і), коли ми робимо command-1 && command-2, друга команда виконується лише в тому випадку, якщо вихід першої дорівнює "0", тобто без помилок. У випадку крапки з комою друга команда виконується незалежно від результату роботи першої. Для розширення існує оператор «||» (або), у цьому випадку друга команда виконується, лише якщо перша видає помилку на виході. З повагою.
Щоб кожен рядок, що запам’ятовує історію, містив дату та час, у ~ .bashrc звичайного користувача чи кореня є змінна середовища.
# нано .bashrc
експортувати HISTTIMEFORMAT = »% F% T»
# історія
492 2014-09-02 14:25:57 revdep-rebuild -i -v
493 2014-09-02 14:31:14 eclean-dist -d
494 2014-09-02 14:31:23 локалепург -в
495 2014-09-02 14:31:29 тощо-оновлення
496 2014-09-02 14:31:54 спливаюче - дескліноване - прикидатися
497 2014-09-02 14:39:08 оновленоб
Є більше варіантів, які стосуються кількості збережених рядків, я їх тестую.
Дуже хороший пост. Дійсно дуже корисно. Фокус номер 4, який полягає у виконанні команди без збереження в історії, спрацював для мене лише на Ubuntu, а не на Debian чи Centos.
Це спрацювало для мене на raspbian, а не на arch.
Мервельє !!
Привіт
що поставити пробіл перед виконанням команди, щоб він не був зареєстрований в історії, оскільки він не працює ...
[користувач @ хост /] $ ls -l
Всього 104
dr-xr-xr-x. 2 кореневий корінь 4096 21 серпня 03:55 бен
dr-xr-xr-x. 5 кореневих коренів 3072 20 серпня 17:26 завантаження
drwxr-xr-x. 2 кореневий корінь 4096 9 грудня 2013 р. Cgroup
[user @ host /] $ історія
1024 л
1025 л
1026 історія
1027 лс -л
1028 історія
цікава стаття ..
вітання
Вибачте, що не прочитав усіх дописів,
Тест також проводиться в центсах.
Добре з Ctrl + U та Ctrl + Y.
У моїй системі список найбільш використовуваних команд працював для мене, змінивши змінну на $ 5.
Приклад виходу:
1122 судо
362 лс
279 ясно
214 кд
142 копати
141 роки
130 внстат
122 мв
112 вим
Історія 112
Це тому, що у моєму файлі .bashrc у мене є такий рядок:
# Показати дату команді history
експортувати HISTTIMEFORMAT = '% F% T:'
Я майже впевнений, що багато хто з нас тут одночасно використовував кілька терміналів.
Зараз я не знаю, чи казати вам, що це фокус терміналу, але оскільки я зазвичай маю багато вікон або використовую екран, щоб відкрити кілька терміналів, це дозволяє будь-яку команду, введену в один із цих терміналів, оскільки це буде відображено в всі.
Це йде у файлі .bashrc:
HISTSIZE = 90000
HISTFILESIZE = $ HISTSIZE
HISTCONTROL = ігнорує простір: ігнорує
історія () {
_bash_history_sync
вбудована історія "$ @"
}
_bash_history_sync () {
вбудована історія -a # 1
HISTFILESIZE = $ HISTSIZE # 2
вбудована історія -c # 3
вбудована історія -r # 4
}
PROMPT_COMMAND = _bash_history_sync
Дуже хороший внесок! Дякую за проходження.
Обійми! Павло.
Вітаю зі статтею.
Дуже практично, і я вивчив кілька команд.
Хоча я вже дещо "досвідчений" у цих питаннях, ці трюки завжди цінують, тож ... для основних трюків !!!
чудово, дякую за трюки, вони справді корисні 😀
Шляхи консолі незрозумілі 😉
Фокус натискання control + u та control + y залежить не від оболонки, а від конфігурації, яку мають tty. На сьогоднішній день під Linux це дуже складні сутності, насправді я досліджував їх роботу і можу запевнити, що вони мають набагато більше входів і виходів, ніж здається. У tty є деякі контрольні символи, які змінюють свій статус, наприклад, іноді зі мною траплялося, що я котую двійковий файл, і після того, як на екрані з'являється "сміття", підказка дивна або з іншим кодуванням. Це пов’язано з тим, що у випадковому файлі існує велика ймовірність зустріти символи керування tty.
Наприклад, запустіть це в оболонці:
друк '33c'
Це очистить екран (як якщо б ви працювали чисто).
Інші комбінації, такі як control + L для очищення екрана, надходять із самої оболонки, яка використовується, класичні оболонки / bin / sh зазвичай не приносять цієї функції.
Крім того, сьогодні існує багато складних варіантів обробки файлів і сокетів під Linux. Наприклад, якщо ви відкриваєте tty-пристрій за допомогою open (), в режимі AIO (асинхронний вхід / вихід), процес отримуватиме SIGIO щоразу, коли дані доступні у вхідному буфері.
Якщо, наприклад, bash працює просто читаючи рядки та виконуючи команди (як це робиться під час виконання сценарію), при натисканні control + L, ця послідовність символів буде просто включена як частина команд, але оскільки bash має контроль буфера введення може це виявити.
Наприклад, іноді під час програмування я прийшов використовувати fcntl, щоб отримати неблокуючий вхідний буфер, який я використовував навіть з бібліотеками ncurses (маніпулюю керуючою tty перед запуском ncurses у програмі).
Saludos!
Для тих, хто спочатку не працював з пробілом і, можливо, щоб додати його до примітки, існує змінна під назвою HISTIGNORE, де символ, який додається перед командою, налаштований на ігнорування в історії.
У деяких установках ця змінна не походить
Вітаю та добрий пост! пряме до обраного!
Зауважте, що в коментарях я також побачив кілька цікавих речей .. !!
Все справді дуже корисно. Дякую.