Test Engineering Notes
3.81K subscribers
177 photos
2 videos
649 links
Україномовний канал про технічні аспекти тестування, розподілені системи, блокчейн.

Консультації з автоматизації, менторинг, тестові співбесіди - @al8xr
Download Telegram
Легке покращення командної стрічки вже сьогодні

#testing #cmd #linux

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

Що хотілося б?
Мати можливість викликати інструменти короткими командами та не паритись, де конкретно ці інструменти лежать.

Рішення
Я скористався старими добрими alias'ами (псевдонімами) в Linux. Це можливість створити нові команди на основі старих, або навіть комбінації декількох команд.
Наприклад, для Git це може бути
git st
замість
git status -sb
. Або ж
some-cli 
замість
 docker exec container-name some-cli

Як зробити?
1. Створити файл ~/.bash_aliases та покласти усі псевдоніми туди. Щось типу:
alias ls='ls --color=auto'
2. Додати інформацію про новий файл до ~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

P.S. Потрібно слідкувати за версіями інструментів та своєчасно оновлювати їх.
P.P.S. Можна робити псевдоніми для Git команд прямо в його конфігурації
git config --global alias.co checkout
👍122
Про історію команд в консолі

#cmd #linux

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

1. Подивитись минулі команди стрілочкою вгору (але то буває надто довго)

2. Подивитись історію за допомогою команди history

history
...
2000 ls
2001 cat contractlog.json
2002 ls
2003 ll
2004 history

// виконати команду знову - !N, де N - номер команди зі списку
!2001

// шукати в історії команди також можливо
history | grep search


Важливо. Кільксть збережених команди в історії обмежена. Конфігурувати цю кількість можна за допомогою змінної HISTSIZE=1000.

3. Виконати пошук команди за допомогою reverse search
- Натисніть Ctrl+R в консолі
- Введіть частину команди
- Оберіть те, що потрібно та натисніть Enter для запуску. Або ж стрілку вправо для того, щоб внести правки в команду
- Якщо ж знайшли не те - повторіть пошук знову з Ctrl+R

 2001  cat contractlog.json 
2002 ls
2003 ll
2004 history
(reverse-i-search)`cont': cat contractlog.json
cat contractlog.json


Можна шукати за допомогою інших інструментів, але про них - наступного разу.
24👍12🔥3🫡1
Про brace expansion в linux

#linux #cmd

Уявімо, що вам потрібно створити декілька файлів чи тек зі схожими назвами.

Можна робити так
mkdir -p test/data/chrome test/data/firefox test/data/safari

А можна застосувати так штуку, як brace expansion
mkdir -p test/data/{chrome,firefox,safari}

що в результаті буде мати той же самий ефект - створить три теки з різними назвами.

Можна мати декілька expansions
> echo test/{1,2,3}/data/{5,6,7}
> test/1/data/5 test/1/data/6 test/1/data/7 test/2/data/5 test/2/data/6 test/2/data/7 test/3/data/5 test/3/data/6 test/3/data/7

Виглядає прикольно, але є ще більше "магії".

Наприклад вам треба створити 10 тестових файлів зі з порядковими номерами в назвах, але щоб ці номери ще й були з інтервалом в 10
touch file-{0..100..10}.txt

ls file*
file-0.txt file-100.txt file-10.txt file-20.txt file-30.txt file-40.txt file-50.txt file-60.txt file-70.txt file-80.txt file-90.txt
36👍14