Иногда мы используем в Linux команды с кучей длинных аргументов, а так же используем их многократно друг за другом, но меняя лишь пару параметров.
Пример :
touch /home/user1/test/scenario.txt /etc/my-server/users/user1.cnf /var/log/my-server/user1.log
Что делать если тоже самое надо выполнить для user2?
Для изменения всех вхождений в последней команде можно использовать вот такую конструкцию:
!:gs/old_occurrence/new_occurrence
! вызывает последнюю команду
gs выполняет глобальную замену
Для замены слова можете выполнить вот такую команду:
^old_word^new_word
Примеры:
[www.linux] root:~ # touch test1 scenario1 result1 [www.linux] root:~ # !:gs/1/2 touch test2 scenario2 result2 [www.linux] root:~ # ls -l test* scenario* result* -rw-r--r-- 1 root root 0 Nov 20 16:45 result1 -rw-r--r-- 1 root root 0 Nov 20 16:45 result2 -rw-r--r-- 1 root root 0 Nov 20 16:45 scenario1 -rw-r--r-- 1 root root 0 Nov 20 16:45 scenario2 -rw-r--r-- 1 root root 0 Nov 20 16:45 test1 -rw-r--r-- 1 root root 0 Nov 20 16:45 test2
[www.linux] root:~ # mkdir -p tests/exp/scenario1/tools/
[www.linux] root:~ # ^exp^lab
mkdir -p tests/lab/scenario1/tools/
[www.linux] root:~ # tree tests
tests
├── exp
│ └── scenario1
│ └── tools
└── lab
└── scenario1
└── tools
6 directories, 0 files
Прим.: при использовании команды ^^ на множество вхождений, будет заменено только первое вхождение.
Пример:
[www.linux] root:~ # ls -l test1 scenario1 result1 -rw-r--r-- 1 root root 0 Nov 20 16:45 result1 -rw-r--r-- 1 root root 0 Nov 20 16:45 scenario1 -rw-r--r-- 1 root root 0 Nov 20 16:45 test1 [www.linux] root:~ # ^1^2 ls -l test2 scenario1 result1 -rw-r--r-- 1 root root 0 Nov 20 16:45 result1 -rw-r--r-- 1 root root 0 Nov 20 16:45 scenario1 -rw-r--r-- 1 root root 0 Nov 20 16:45 test2
Замена последнего слова в истории
Например мы запустили команду ls и хотим заменить её на cat для просмотра содержимого. Для этого мы можем использовать для этого быстрые замены bash : !$ или $_
ls -l /etc/passwd cat $_ или cat !$
Восстановить доступ к странице ВКонтакте можно относительно просто. И для этого даже не потребуется помощь…
Реверс инжиниринг электроники и программного обеспечения — увлекательная и важная дисциплина, играющая ключевую роль в…
Рынок смартфонов не стоит на месте и каждый год пополняется новыми моделями. Компания Apple традиционно…
Запуск онлайн-бизнеса может показаться сложной задачей, но на самом деле этот процесс можно существенно упростить,…
Если Вы хотите продвинуть свой сайт в поисковых системах, одним из самых важных аспектов является…
Корейская компания Samsung зарекомендовала себя на потребительском рынке как производитель флагманов, так и бюджетных смартфонов.…