Как я могу записать и использовать после этого, типичный текстовый файл пакетной команды?
Я говорю о файле, который имеет следующие команды:
sudo -i
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get check
exit
Я предполагаю, что могу записать это с Leafpad, но...
Где я должен сохранить его?
Какой формат? Которые называют и расширение?
Как я могу использовать его, после этого, на сессии LXTerminal, только с одним порядком (идеально, если был бы способ использовать его автоматически каждый раз, когда система запускается)?
Большое спасибо в течение Вашего времени!
То, что называют в мире 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
переменная.
В 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
с правами суперпользователя, поэтому вам потребуется пароль (конечно, вы должны быть системным администратором).