Легке покращення командної стрічки вже сьогодні
#testing #cmd #linux
Задача
В повсякденній роботі мені потрібно працювати з багатьма різними інструментами з комадної стрічки. Час від часу нові версії інструментів з'являються та я забуваю, де яка версія лежить. Плюс - багато інструментів потрібно використовувати з зазделегідь прописаними параметрами на вході.
Що хотілося б?
Мати можливість викликати інструменти короткими командами та не паритись, де конкретно ці інструменти лежать.
Рішення
Я скористався старими добрими alias'ами (псевдонімами) в Linux. Це можливість створити нові команди на основі старих, або навіть комбінації декількох команд.
Наприклад, для Git це може бути
1. Створити файл ~/.bash_aliases та покласти усі псевдоніми туди. Щось типу:
P.P.S. Можна робити псевдоніми для Git команд прямо в його конфігурації
#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 ]; thenP.S. Потрібно слідкувати за версіями інструментів та своєчасно оновлювати їх.
. ~/.bash_aliases
fi
P.P.S. Можна робити псевдоніми для Git команд прямо в його конфігурації
git config --global alias.co checkout
GeeksforGeeks
How to Create and Use Alias Command in Linux - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
👍12❤2
Про історію команд в консолі
#cmd #linux
В повсякденній роботі я багато користуюся командною стрічкою. Для того, щоб не робити нескінченний копіпаст одних і тих самих команд, можна застосувати декілька базових хитростей з історією.
1. Подивитись минулі команди стрілочкою вгору (але то буває надто довго)
2. Подивитись історію за допомогою команди history
Важливо. Кільксть збережених команди в історії обмежена. Конфігурувати цю кількість можна за допомогою змінної HISTSIZE=1000.
3. Виконати пошук команди за допомогою reverse search
- Натисніть Ctrl+R в консолі
- Введіть частину команди
- Оберіть те, що потрібно та натисніть Enter для запуску. Або ж стрілку вправо для того, щоб внести правки в команду
- Якщо ж знайшли не те - повторіть пошук знову з Ctrl+R
Можна шукати за допомогою інших інструментів, але про них - наступного разу.
#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
Уявімо, що вам потрібно створити декілька файлів чи тек зі схожими назвами.
Можна робити так
А можна застосувати так штуку, як brace expansion
що в результаті буде мати той же самий ефект - створить три теки з різними назвами.
Можна мати декілька expansions
Виглядає прикольно, але є ще більше "магії".
Наприклад вам треба створити 10 тестових файлів зі з порядковими номерами в назвах, але щоб ці номери ще й були з інтервалом в 10
#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