Два отличных ресурса, один для начинающих и один для пользователей среднего уровня, для изучения Unix, ну, в общем, оболочки Linux.
Многие хотели, чтобы основанная на командной строке (каламбур) устарела или была заменена чем-то другим. Тем не менее, он никогда не исчезал и никогда не исчезнет, особенно теперь, когда он проник даже в Windows через WSL.
Я помню то время, когда говорили: "Изучайте Perl, чтобы вам не пришлось изучать оболочку и сотни ее утилит".
Перенесемся на несколько десятилетий вперед, и использование сценариев оболочки до сих пор не искоренено. Напротив, их использование увеличилось из-за появления контейнеров, виртуальных машин, администрирования облака и самого Linux.
Это, конечно, связано с вечной философией Unix: брать простые, высококачественные компоненты и разумно комбинировать их вместе для получения сложного результата. Конечно, cli Linux нелегко освоить, поэтому любая помощь очень приветствуется. По этому поводу в прошлом месяце я представил Dash Dash, новый веб-сайт, целью которого является приукрасить уродливые Справочные страницы, что делает изучение cli гораздо более полезным предложением.
В этом месяце в эту категорию полезных ресурсов добавлены два новых элемента. Давайте начнем с более простого, предназначенного для начинающих, Gameshell, "игры" для обучения оболочке Unix.
GameShell был разработан как инструмент, помогающий студентам Университета Савойи Монблан взаимодействовать с реальной оболочкой таким образом, чтобы она поощряла обучение и в то же время получала удовольствие. Это похоже на старую текстовую приключенческую RPG, где вместо таких команд, как "get", "talk", "fight", у вас есть "cd", "ls" или "pwd"! Конечно, по мере продвижения вы все глубже погружаетесь в команды.
Оксюморон заключается в том, что для его установки Gameshell требует написания команд оболочки. Однако не бойтесь, поскольку это так же просто, как загрузить
его зависимости с помощью :
$ sudo apt install gettext man-db procps psmisc nano tree bsdmainutils x11-apps wget
а затем сама игра
$ wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh
наконец-то запустив его с:
$ bash gameshell.sh
Следующий ресурс - Bash-One liner, "коллекция удобных однострочных программ Bash и терминальных приемов для обработки данных и обслуживания системы Linux". Идея создания такой коллекции возникла, когда автор работала в области биоинформатики, и, в соответствии с аспектом философии Unix, который мы подробно описали в статье Pash, обнаружила, что она была:
поражен этими односложными командами bash, которые намного быстрее, чем мои скучные скрипты, экономят время за счет изучения ярлыков командной строки и сценариев.
так много, что она приложила усилия, чтобы собрать их в одну огромную шпаргалку. Конечно, в итоге все было разделено на разделы:
- Terminal Tricks
- Variable
- Math
- Grep
- Sed
- Awk
- Xargs
- Find
- Condition and Loop
- Time
- Download
- Random
- Xwindow
- System
- Hardware
- Networking
- Data Wrangling
- Others
Там действительно найдется что-то для каждого.
Например, в разделе "Хитрости терминала" мы узнаем, как использовать комбинацию клавиш Ctrl для перемещения по:
Ctrl + n: то же, что и стрелка вниз.
Ctrl + p: то же, что и стрелка вверх.
Ctrl + r: запускает обратный поиск по истории команд. (продолжайте нажимать Ctrl + r для перемещения назад)
Ctrl + s : чтобы остановить вывод на терминал
...
и работать с Историей:
Номер журнала выполнения (например, 53)
!53
Выполните последнюю команду
!!
# выполните предыдущую команду с помощью sudo
sudo !!
В разделе Переменная мы узнаем, как работает подстановка переменных:
# foo=bar
echo $foo
# барное
эхо "$foo"
# бар
# $foo
# одинарные кавычки внутри двойных кавычек не отменят расширение и будут частью выходного
эхо-сигнала "'$foo'".
Конечно, подсказки Grep очень полезны :
Grep только IP-адрес
grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
# или
grep -Po '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
затем следуют Sed, Awk, Xargs и так далее.
Однако эта шпаргалка адресована промежуточным пользователям, которым нужна ссылка с первого взгляда. Если вы новичок, то настоятельно рекомендуется начать с Gameshell. Bash-Oneliner может подождать...