Как записать, и использовать, текстовый файл пакетной команды

Как я могу записать и использовать после этого, типичный текстовый файл пакетной команды?

Я говорю о файле, который имеет следующие команды:

sudo -i
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get check
exit

Я предполагаю, что могу записать это с Leafpad, но...

  1. Где я должен сохранить его?

  2. Какой формат? Которые называют и расширение?

  3. Как я могу использовать его, после этого, на сессии LXTerminal, только с одним порядком (идеально, если был бы способ использовать его автоматически каждый раз, когда система запускается)?

Большое спасибо в течение Вашего времени!

3
задан 9 November 2015 в 03:14

2 ответа

То, что называют в мире Windows "пакетным" файлом, называют, "сценарий" в *ОТКЛОНЯЮТ мир. По большей части сценарии являются файлом с несколькими командами или командами, расположенными в особенных методах. Вот несколько вещей, которые необходимо знать:

Базовая структура

Обычно Вы будете видеть что-то вроде этого:

#!/bin/sh
# Comments 
printf "Hello world"

Первая строка указывает интерпретатор (обычно рецензируемый к как shebang строка), второй комментарий (что-либо после # не интерпретируется, просто текст), третий является фактической командой

В терминале можно назвать файл без строки хижины. Это заставит сценарий быть прочитанным и интерпретированным Вашей текущей оболочкой (иначе интерпретатор команд). Например, я работаю mksh оболочка. Я указываю #!/bin/sh это будет, работал оболочкой Ubuntu по умолчанию - dash. Каждая оболочка имеет некоторые специфические особенности о синтаксисе it команд, следовательно необходимо адаптировать сценарий соответственно.

Запись сценария

Это должно быть сделано в текстовом редакторе, но Вы могли также записать это в Устройстве записи LibreOffice и затем сохранить его в простом тексте. Лично, я просто использую текстовые редакторы командной строки (nano по большей части или vim ); аналогия здесь была бы edit в версиях перед Windows 7 Windows.

Имена файлов и расширения не имеют значения на *, ОТКЛОНЯЮТ системы, поскольку система читает первые несколько байтов файла для определения его типа. Я вошел в привычку добавить .sh расширение, но действительно - это является ненужным.

Сделайте исполняемый файл сценария

Это сделано с помощью chmod 755 scriptName.sh команда. Это означает read-write-execute полномочия для владельца (Вы) read-execute для пользователей, которые находятся в группе владельца (например, владелец файла мог быть admin, таким образом, если Вы принадлежите admin группа, можно считать и выполнить файл), и read-execute для кого-либо еще. Никогда не давайте полномочия записи другим! Если у Вас есть полномочия суперпользователя, которые могли бы закончиться в некоторый плохой амулет (иначе, Вы могли быть взломаны, и злонамеренный пользователь изменит Ваши сценарии так, чтобы он кадры Ваши персональные данные).

Запущение скриптов

Вы могли всегда запускать скрипт путем навигации к местоположению сценария в терминале и вводе ./scriptName.

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

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/xieerqi/bin

$PATH переменная говорит мне это, если сценарий или исполняемый двоичный файл расположены в /usr/local/sbin или /usr/local/bin или любые другие из тех каталогов, я могу выполнить ту команду только путем ввода его в терминал.

Теперь, для Ваших собственных сценариев, необходимо сделать bin папка и хранилище сценарии там. Если Вы используете bash Ваш .profile конфигурационный файл содержит следующие строки:

# set PATH so it includes user's private bin if it exists
#if [ -d "$HOME/bin" ] ; then
#    PATH="$HOME/bin:$PATH"
#fi

Если Вы не комментируете (удалить # ) перед последними тремя строками (от if кому: fi), Ваше персональное bin папка будет включена в $PATH переменная.

2
ответ дан 1 December 2019 в 13:03

В unix-подобном мире нет «пакетных» файлов. Мы используем сценарии, содержащие «челки». Чтобы создать такой скрипт, откройте текстовый редактор (например, Leafpad) и начните со строки, подобной этой:

#!/path/to/interpreter

Где /path/to/interpreter - это местоположение двоичного файла, который будет использоваться для интерпретации вашего скрипт. В Linux мы обычно используем «bash» (Bourne Again SHell), «эволюцию» старой доброй Bourne Shell. В основном, bash запускает двоичные файлы с аргументами, указанными в сценарии из путей, включенных в переменную среды PATH (обычно это / bin, / sbin, / usr / bin, / usr / sbin и другие).

Но вы также можете использовать другие интерпретаторы, такие как Python, Perl, Ruby, sh, csh, zsh, dash, ksh, помимо множества опций.

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

#!/bin/bash

# the line above sets bash as the interpreter

# note that "sudo" is not required here because we will run the script as super user later.

apt-get update
# updates APT repositories

apt-get upgrade
# check for software upgrades and upgrade them

apt-get autoremove
# remove obsolete packages

apt-get autoclean
# remove stored .deb files

apt-get check
# update package cache and check for broken dependencies

Теперь сохраните ваш файл. Расширение не нужно, но по символическим причинам назовите его расширением .sh. Мы запустим скрипт как суперпользователь, поэтому нет необходимости изменять права доступа к файлу.

Откройте терминал и перейдите на путь, по которому вы сохранили свой скрипт. Допустим, вы сохранили его как script.sh. Выполните следующую команду:

chmod +x script.sh

chmod означает «режим изменения» и используется для изменения того, кто может что-то делать с вашим сценарием. +x добавляет разрешение на выполнение для всех пользователей, что позволяет любому запускать скрипт, как если бы это была любая другая программа. Я не буду вдаваться в полный список того, что означают все эти разрешения, но этот вопрос суммирует их довольно хорошо. После этого вы можете набрать:

sudo ./script.sh

Не забудьте часть ./ и не оставляйте пробелов между., / / ​​И s. Команда sudo запустит ./script.sh с правами суперпользователя, поэтому вам потребуется пароль (конечно, вы должны быть системным администратором).

10
ответ дан 1 December 2019 в 13:03

Другие вопросы по тегам:

Похожие вопросы: