Linux своя bash команда

Выполнение команд через shell-скрипты в Linux

Оболочка — это интерпретатор командной строки, который позволяет пользователю взаимодействовать с системой. Он отвечает за получение входных данных от пользователя и вывод данных.

Сценарии оболочки — это серия команд, записанных в порядке выполнения. Сценарии могут содержать функции, циклы, команды и переменные. Они упрощают сложные серии команд и повторяющиеся задачи.

В этом мануале мы разберем, как создавать и выполнять сценарии оболочки для командной строки в Linux.

Требования

  • Умение пользоваться терминалом.
  • Знание текстового редактора.
  • Знание команд: chmod, mkdir и cd.

Читайте также:

Начало работы

Скрипты оболочки нужно сохранять с расширением .sh.

Файл должен начинаться с шебанга (#!), чтобы система Linux понимала, какой интерпретатор использовать для сценария оболочки.

В этом мануале предполагается, что вы используете среду bash.

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

Создание и запуск базового shell-скрипта

Скрипт оболочки можно создать с помощью редактора vi, команды cat или текстового редактора.

Мы будем создавать с помощью vi:

Команда запустит редактор vi и создаст файл basic_script.sh.

Затем нажмите i на клавиатуре для запуска INSERT MODE. Добавьте следующие строки:

Скрипт запускает команды whoami и date. Команда whoami отображает активное имя пользователя, а date — текущую системную метку времени.

Чтобы сохранить и выйти из редактора vi:

Теперь можно запустить сценарий с помощью команды:

root Fri Jun 19 16:59:48 UTC 2020

Первая строка вывода соответствует команде whoami, а вторая команде date.

Можно запустить скрипт без указания bash:

Запуск файла таким образом может потребовать разрешение пользователя. Запуск с помощью bash не требует этого разрешения.

~bash: ./basic_script.sh: Permission denied

Команда bash filename требует только прав на чтение.

Команда ./filename запускает файл как исполняемый и требует разрешения execute.

Для выполнения сценария нужно обновить привилегии.

Эта команда применит chmod и дает права x (исполнение) текущему пользователю.

Использование переменных в скриптах

Скрипты могут включать пользовательские переменные. По мере увеличения размера сценариев важно иметь четко определенные переменные с информативными именами.

Читайте также:  Linux console in background

Добавьте в скрипт следующие строки:

#!/bin/bash # This is a comment # defining a variable GREETINGS="Hello! How are you" echo $GREETINGS

GREETINGS — это переменная, определенная с помощью символа $ (знак доллара). В строке, в которой переменным присваивается значение, не должно быть пробелов.

На экран выведется присвоенное переменной значение:

Как видите, переменная GREETINGS успешно определена в сценарии и доступна при запуске скрипта.

Чтение ввода из командной строки

Shell-скрипты можно сделать интерактивными с возможностью принимать ввод из командной строки. Сохранить ввод командной строки в переменной можно с помощью команды read.

Добавьте в скрипт следующие строки:

#!/bin/bash # This is a comment # defining a variable echo "What is your name?" # reading input read NAME # defining a variable GREETINGS="Hello! How are you" echo $NAME $GREETINGS

Переменная NAME принимает ввод из командной строки. Этот скрипт ожидает, пока пользователь введет значение NAME. Затем он выводит NAME и GREETINGS.

What is your name? 8host 8host Hello! How are you

В примере пользователь ввел значение 8host.

Определение функций

Пользователи могут определять свои функции в сценариях. Эти функции могут принимать несколько аргументов.

Добавьте в скрипт следующие строки:

#!/bin/bash #This is a comment # defining a variable echo "What is the name of the directory you want to create?" # reading input read NAME echo "Creating $NAME . " mkcd ()   mkdir "$NAME" cd "$NAME" > mkcd echo "You are now in $NAME"

Этот скрипт запрашивает имя каталога. Затем он c помощью mkdir создает требуемый каталог и переходит в него.

What is the name of the directory you want to create? test_dir Creating test_dir . You are now in test_dir

В данном примере мы ввели test_dir. Далее скрипт создаст новый каталог с этим названием. Наконец, скрипт перейдет из текущего рабочего каталога пользователя в test_dir.

Заключение

В этом мануале мы разобрали, как создавать и запускать скрипты оболочки для командной строки в Linux.

Подумайте о повторяющихся или отнимающих много времени задачах, которые вы часто выполняете – возможно, такие команды полезнее заменить скриптами.

Источник

Научитесь создавать собственные команды bash менее чем за 4 минуты

В этой статье я научу вас создавать собственные псевдонимы команд bash, а также как одновременно запускать несколько команд с помощью одной команды bash.

TL;DR В первой части описывается, почему псевдонимы — это так важно, сколько времени они экономят и т.д., но, если вы просто хотите узнать, как создать собственные псевдонимы, то перейдите к шагу 1.

Повышение производительности

Чем старше мы становимся (знаю, время бежит), тем больше на наши плечи ложится ответственности: мы содержим семью, контролируем личный бюджет, проводим время с родными, отводим детей в детский сад и занимаемся прочими взрослыми делами.

Время — это очень важный фактор, который влияет на производительность специалистов, особенно программистов. Обязанностей становится больше, времени на обучение — меньше, а это значит, что работать нужно эффективно.

Каждую неделю я планирую публиковать рекомендации и советы по современным языкам веб-разработки для всех тех, кто хочет открыть свое дело, обучать других или просто усовершенствовать собственные навыки.

Мир программиста

Нам программистам часто приходится в рамках одного проекта много раз запускать одни и те же команды bash, например cd .. , ls -l или pwd . От того, что мы раз в неделю запускаем эти команды производительность не снизится, а вот если запускать их приходится по два раза в день, в конце концов эффективность упадет.

Некоторые команды bash короткие, другие — длинные. Некоторые запомнить сложно, другие — легко. Главное — ускорить рабочий процесс (повысить эффективность), а для этого можно создать декларативные команды (читаемый код), которые легко запомнить и написать.

Не забывайте, что создавать псевдонимы для каждой терминальной команды не нужно, только для тех, которые вы многократно используете. Также учтите, что некоторые псевдонимы могут оказаться зарезервированными словами, так что сначала протестируйте их, иначе можете случайно заменить другую важную команду.

Сделайте команды git короче

Я провел простое испытание, чтобы продемонстрировать, сколько времени уходит на внесение изменений на Github. У среднестатистического программиста как правило уходит около 20–25 секунд на то, чтобы сделать push изменений на github.com.

# Test
git add .
git commit — m «minor changes»
git push -u origin master

Допустим, каждую неделю вы выполняете git push 15 раз, а на пуш в целом уходит 20 секунд.

Как я рассчитал повышение производительности? (для зануд)

# Formula
((old — new) / old) * 100%

= ((20 sec — 5 sec) / 20 sec) * 100%
= 75 % (performance increase)

Перед тем, как приступать к созданию псевдонимов

При создании псевдонимов их обычно размещают в файле ~/.bashrc . Это скрытый файл в домашнем каталоге, доступный отовсюду. Однако, хорошим тоном считается хранить системные файлы отдельно от личных. Для этого создаем новый файл под названием ~/.custom_aliases и добавляем все псевдонимы туда. Также не забывайте после этого выполнять source ~/.custom_aliases , иначе они не будут работать.

Шаг 1 — Создать файл custom_aliases

Все создаваемые псевдонимы следует хранить в этом файле.

# create file
touch ~/.custom_aliases

Шаг 2 — Открыть файл custom_aliases

Откройте файл в текстовом редакторе, либо через gedit или code (Visual Studio Code), либо как считаете нужным.

Visual Studio Code (если установлен)
# opens file
code ~/.custom_aliases
Gedit
# opens file
code ~/.custom_aliases

Шаг 3 — Создать псевдонимы (aliases)

Давайте сделаем простой псевдоним: когда мы вводим «welcome»в bash терминал на экране появится «Welcome John Doe.».

alias welcome=’echo «Welcome $USER.»‘

Шаг 4 — Обновить изменения

Перед запуском недавно созданной команды bash необходимо обновить файл custom_aliases .

# update file
source ~/.custom_aliases

Шаг 5 — Выполнить новую команду bash

Напечатайте следующее в вашей любимой командной оболочке.

# command line
welcome
> Welcome John Doe.

Молодцы! Вы только что создали собственный файл для хранения псевдонимов. А теперь давайте рассмотрим, какие виды команд можно создавать.

Собственные псевдонимы команд bash (персональные)

Ниже перечислено несколько команд bash, которые я использую для ускорения рабочего процесса.

Рекомендация: Для сохранения структуры при добавлении большого количества псевдонимов разделите их на группы — как в примере ниже — при помощи комментариев.

# Version Control
alias gs=»git status»
alias gd=»git add .»
alias gp=»git push -u origin master»

# Directory
alias diskusage=»df -h»
alias folderusage=»du -ch»
alias totalfolderusage=»du -sh»

# Various
alias opencustomaliases=»code ~/.custom_aliases»
alias updatecustomaliases=»source ~/.custom_aliases»
alias updatethenupgrade=»sudo apt-get update && sudo apt-get upgrade»

Учтите, что операционные системы имеют различия, поэтому эти команды нужно сначала запустить в терминале и проверить их работоспособность перед тем, как добавлять их в файл custom_aliases .

Запуск нескольких команд

Можно создать одну команду bash, благодаря которой можно выполнять несколько команд. Есть два способа: можно написать функцию или создать псевдоним.

Пример 1 — Создание функции

function lazyman() git add .
git commit -a -m «$1»
git push -u origin master
>

Пример 2 — Создание псевдонима

alias lazyman=»git add . && git commit -a -m ‘$i’ && git push -u origin master»

Не забудьте обновить файл custom_aliases , для чего нужно запустить source ~/.custom_aliases и ввести lazyman «First commit» .

Рекламная пауза. Хочу представить новый проект LOOKING.HOUSE — на нем собрано более 150 точек looking glass в 40 странах. Можно быстро выполнить команды host, ping, traceroute и mtr.

Источник

Как создать свою команду в Linux?

NullByte

эта команда запишет в файл конфига bash ваш постоянный собственный алиас к необходимой команде (или нескольким через знак «;»). т.е. если будете вбивать «android» от имени своего юзера, то автоматом в данном случае будет осуществлен переход в нужную директорию и запускаться Андроид Студио. я думаю это самый простой способ 🙂

nano /usr/local/bin/android
Вставить туда

#!/bin/bash
cd /opt/android-studio/bin/
./studio.sh

Затем выйти и сохранить. И chmod +x /usr/local/bin/android
Все

Alias это всего лишь один из способов решить вашу задачу. В широком смысле слова оболочка Linux (bash?) ищет ту команду которую вы набрали в консоли последовательно во всех каталогах указанных в переменной $PATH.
Например:

user@hostname:/home/user# echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

Вы можете включить в переменную $PATH путь до вашего shell скрипта и тогда оболчка будет искать любую набранную вами команду в том числе и там. Добавить что-то к переменной проще всего вот так:
export PATH=$PATH:/opt/android-studio/bin/

Чтобы между различными входами в систему переменная сохранялась добавьте вот такие строки в в файл .bahs_profile вашей домашней директории.

PATH=$PATH:/opt/android-studio/bin/ export $PATH

Этот подход лучше чем создание алиаса потому, что если вам потребуется создать ещё одну команду не будет необходимости прописывать новый алиас. Достаточно положить исполняемый файл в нужный каталог.

Источник

Оцените статью
Adblock
detector