Меню Рубрики

Как в linux написать пакетный файл

71 команда Linux на все случаи жизни. Ну почти

Команды Linux для навигации в терминале

Команды Linux для получения прав суперпользователя

Команды Linux для управления пакетным менеджером

Команды Linux для управления процессами

Команды Linux для управления файлами

Команды Linux для работы с разделами

Команды Linux для управления системой

Команды Linux для управления пользователями

Команды Linux для управления сетью

В терминале Linux можно делать практически что угодно: настраивать систему, устанавливать и удалять приложения, управлять дисками и файлами и даже разговаривать с коровами.

Команды Linux для навигации в терминале

  1. && . Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда . Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias . Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда .
  3. cd . Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки , и терминал будет работать с файлами, которые там находятся.
  4. clear . Очищает окно терминала от всех сообщений.
  5. history . Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда .
  6. man . Отображает руководство по программам и командам Linux. Введите man имя_пакета или man ваша_команда .
  7. whatis . Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета .

Команды Linux для получения прав суперпользователя

Для выполнения множества действий в системе, например для установки и удаления программ, вам понадобятся права администратора, или суперпользователя root, как его называют в Linux.

  1. sudo . Эта команда даст вам права суперпользователя. Введите sudo перед нужной командой (например, sudo apt upgrade ), чтобы выполнить её от имени администратора. Система спросит у вас пароль.
  2. sudo su . После этой команды все введённые вами команды будут исполняться от имени суперпользователя, пока вы не закроете терминал. Используйте её, если вам нужно выполнить много команд с правами администратора.
  3. sudo gksudo . Команда для запуска с правами администратора приложения с графическим интерфейсом. Например, если вы хотите переместить или изменить системные файлы, введите sudo gksudo nautilus (укажите тот файловый менеджер, которым пользуетесь).
  4. sudo !! . Эта команда запустит ранее введённую команду с правами администратора. Полезно, если вы набрали команду без sudo .

Команды Linux для управления пакетным менеджером

Установку и удаление приложений в Linux выполняют пакетные менеджеры. В Ubuntu и Debian пакетный менеджер называется apt, в Fedora — dnf, в Arch и Manjaro — pacman. Они загружают приложения из сетевых репозитариев, источников пакетов. Давать им команды следует с правами суперпользователя.

apt (Debian/Ubuntu/Mint)

  1. sudo apt install имя_пакета . Установить нужный пакет.
  2. sudo apt-add-repository адрес_репозитария . Добавить сторонний репозитарий.
  3. sudo apt update . Обновить сведения о пакетах.
  4. sudo apt upgrade . Обновить все пакеты до самых свежих (выполнять после apt update ).
  5. sudo apt remove имя_пакета . Удалить ненужный пакет.
  6. sudo apt purge имя_пакета . Удалить ненужный пакет со всеми зависимостями, если хотите освободить больше места.
  7. sudo apt autoremove . Удалить все ненужные зависимости, бесхозные пакеты и прочий мусор.

dnf (Red Hat/Fedora/CentOS)

  1. sudo dnf install имя_пакета . Установить нужный пакет.
  2. sudo dnf config-manager —add-repo адрес_репозитария . Добавить сторонний репозитарий.
  3. sudo dnf upgrade . Обновить все пакеты до самых свежих.
  4. sudo dnf remove имя_пакета . Удалить ненужный пакет.
  5. sudo dnf autoremove . Удалить все ненужные зависимости.

pacman (Arch/Manjaro)

  1. sudo pacman -S имя_пакета . Установить нужный пакет.
  2. sudo yaourt -S имя_пакета . Установить пакет из AUR, если его нет в основном репозитарии.
  3. sudo pacman -Sy . Обновить сведения о пакетах.
  4. sudo pacman -Syu . Обновить все пакеты до самых свежих.
  5. sudo pacman -R имя_пакета . Удалить ненужный пакет.
  6. sudo pacman -Rs имя_пакета . Удалить ненужный пакет со всеми зависимостями.

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

sudo apt install firefox clementine vlc

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

Команды Linux для управления процессами

  1. kill . Эта команда служит для принудительного завершения процессов. Нужно ввести kill PID_процесса . PID процесса можно узнать, введя top .
  2. xkill . Ещё одна команда для завершения процессов. Введите её, затем щёлкните по тому окну, которое нужно закрыть.
  3. killall . Убивает процессы c определённым именем. К примеру, killall firefox .
  4. top . Отображает перечень запущенных процессов, сортируя в зависимости от потребления ресурсов CPU. Своего рода терминальный «Системный монитор».

Команды Linux для управления файлами

Просмотр и изменение файлов

  1. cat . Когда команда используется с одним текстовым файлом (вот так: cat путь_к_файлу ), она отображает его содержимое в окне терминала. Если указать два и больше файлов, cat путь_к_файлу_1 путь_к_файлу_2 , она склеит их. Если ввести cat путь_к_файлу_1 > новый_файл , она объединит содержимое указанных файлов в новый файл.
  2. chmod . Позволяет изменять права доступа к файлу. Может пригодиться, если вы хотите внести изменения в системный файл.
  3. chown . Изменяет владельца файла. Следует выполнять с правами суперпользователя.
  4. file . Выводит информацию об указанном файле.
  5. nano . Открывает простой текстовый редактор. Можно создать новый текстовый файл или открыть существующий: nano путь_к_файлу .
  6. rename . Переименовывает файл или несколько файлов. Команду можно использовать и для массового переименования файлов по маске.
  7. touch . Изменяет дату последнего открытия или модификации указанного файла.
  8. wget . Загружает файлы из интернета в терминальную папку.
  9. zip . Распаковывает и сжимает архивы.

Создание и удаление файлов и папок

  1. mkdir . Создаёт новую папку в текущей терминальной папке или в указанной папке: mkdir путь_к_папке .
  2. rmdir . Удаляет указанную папку.
  3. rm . Удаляет файлы. Может удалить как отдельный файл, так и группу, соответствующую определённым признакам.

Копирование и перемещение файлов

  1. cp . Создаёт копию указанного файла в папке терминала: cp путь_к_файлу . Или вы можете указать назначение cp путь_к_файлу путь_для_копии .
  2. mv . Перемещает файл из одной папки в другую. Вы можете указать имя для перемещаемого файла. Забавно, но в Linux эта команда может использоваться и для переименования файлов. Просто укажите ту же папку, где находится файл, и другое имя.

Поиск файлов

  1. find . Поиск файлов по определённым критериям, таким как имя, тип, размер, владелец, дата создания и модификации.
  2. grep . Поиск текстовых файлов, содержащих определённые строки. Критерии очень гибко настраиваются.
  3. locate . Поиск файлов и папок, чьи названия подходят запросу, и отображение их путей в файловой системе.

Команды Linux для работы с разделами

  1. lsblk . Эта команда демонстрирует, какие диски есть в вашей системе и на какие разделы они поделены. Также команда отображает имена ваших разделов и накопителей, в формате sda1, sda2 и так далее.
  2. mount . Монтирует накопители, устройства или файловые системы Linux, чтобы вы могли с ними работать. Обычно устройства подключаются автоматически, как только вы щёлкнете по ним в файловом менеджере. Но иногда может понадобиться примонтировать что-то вручную. Вы можете подключать что угодно: диски, внешние накопители, разделы и даже ISO-образы. Эту команду нужно выполнять с правами суперпользователя. Чтобы примонтировать имеющийся диск или раздел, введите mount sdX .
  3. umount . Демонтирует файловые системы. Команда umount sdX отключит файловую систему внешнего носителя, чтобы вы могли извлечь его.
  4. dd . Эта команда копирует и преобразовывает файлы и разделы. У неё множество различных применений. Например, dd if=/dev/sda of=/dev/sdb сделает точную копию раздела sda на разделе sdb. dd if=/dev/zero of=/dev/sdX затрёт содержимое указанного носителя нулями, чтобы информацию было невозможно восстановить. А dd if=

/Downloads/ubuntu.iso of=/dev/sdX bs=4M сделает загрузочный носитель из скачанного вами образа с дистрибутивом.

Команды Linux для управления системой

  1. df . Отображает объём вашего диска, и сколько на нём осталось свободного места.
  2. free . Отображает объём доступной и занятой оперативной памяти.
  3. uname . Отображает сведения о системе Если ввести uname , терминал сообщит только Linux. Но команда uname -a выводит сведения об имени компьютера и версии ядра.
  4. uptime . Сообщает, как долго запущена ваша система.
  5. whereis . Отображает расположение исполняемого файла нужной программы.
  6. whoami . Называет имя пользователя.

Команды Linux для управления пользователями

  1. useradd . Регистрирует нового пользователя. Введите useradd имя_пользователя , и пользователь будет создан.
  2. userdel . Удаляет учётную запись и файлы пользователя.
  3. usermod . Изменяет учётную запись пользователя. Может переместить домашнюю папку пользователя или назначить дату, когда учётная запись будет заблокирована.
  4. passwd . Изменяет пароли учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.

Команды Linux для управления сетью

  1. ip . Многофункциональная команда для работы с сетью. Команда ip address show выводит сведения о сетевых адресах, ip route управляет маршрутизацией и так далее. Давая команды ip link set ethX up , ip link set ethX down , можно включать и выключать соединения. У команды ip много применений, так что перед её использованием лучше ознакомиться с руководством или ввести ip —help
  2. ping . Показывает, подключены ли вы к сети, и помогает определить качество связи.

И ещё кое-что

Напоследок — главные команды Linux. Они выводят на экран корову, которая может разговаривать с вами (не спрашивайте, что употребляют разработчики).

  1. cowsay что_угодно . Корова произнесёт то, что вы ей скажете.
  2. fortune | cowsay . Корова выдаст умную (или не очень) мысль или цитату.
  3. cowsay -l . Выводит список всех животных, которые могут быть отображены в терминале. Если вы вдруг не любите коров.
  4. fortune | cowsay -f животное_из_списка . Животное на ваш выбор начинает сыпать цитатами, иногда уместными.
  5. sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru . Заставит весь зоопарк говорить по-русски. Без этого животные цитируют Твена и Уайльда в оригинале.

Это далеко не все команды Linux. Если вам нужно узнать в деталях параметры и способы применения команд Linux, вы можете воспользоваться встроенным руководством. Наберите man ваша_команда или ваша_команда —help .

Источник статьи: http://lifehacker.ru/komandy-linux/

sgww

WWW.SGWW.RU

живой журнал SGWW

Командные файлы Linux

В Linux, так же как и в операционных системах семейства Microsoft Windows можно создавать командный файл . которые содержат в себе набор команд интерпретатора shell. Такие файлы имеют свой синтаксис, который позволяет оперировать такими структурами как циклы и условия. Далее основы shell программирования linux на примере командной строки ubuntu 9.04 и интерпретатора bash.

Запишем в файл sample последовательность команд

$ cat sample
pwd
ls
echo The END

А теперь выполним эти команды

$ sh sample
/home/sgww
cpp file.txt mydaemon net_sh perl php sample
The END

Таков принцип .

Командный файл легко сделать исполняемым

$ chmod +x sample
$ /home/sgww/sample
/home/sgww
cpp file.txt mydaemon net_sh perl php sample
The END

$ cat sample
read x #вводим x
read y #вводим y
echo `expr $x ‘*’ $y + 7`

Всё что за знаком # это коментарий и интерпритатором не воспринимается
Не относится к оболочке csh!

$1, $2 . $9 — позволяют задавать аргументы командной строки для выполняемого файла

$ cat sample
echo the first parameter: $1
echo the second parametr: $2
echo the third parameter: $3
ls $1 $2 $3

$ /home/sgww/sample -l -s -r
the first parameter: -l
the second parametr: -s
the third parameter: -rtotal 28
4 -rwxr-xr-x 1 sgww sgww 100 Mar 2 11:19 sample
4 drwxr-xr-x 2 sgww sgww 4096 Dec 15 16:52 php
4 drwxr-xr-x 2 sgww sgww 4096 Feb 1 15:39 perl
4 -rw-r—r— 1 sgww sgww 79 Mar 1 16:16 net_sh
4 drwxr-xr-x 2 sgww sgww 4096 Feb 1 17:15 mydaemon
4 -rw-r—r— 1 sgww sgww 56 Mar 1 17:18 file.txt
drwxr-xr-x 2 sgww sgww 4096 Feb 1 17:15 cpp

$# — задает общее количество параметров с которым вызывается командный файл

$ cat sample
echo total parameters are: $#
$ sample param1 param2 param3
total parameters are: 3

$* — содержит сразу все параметры

$ cat sample
echo total parameters are: $*
$ sample All parameters are in this variable
total parameters are: All parameters are in this variable

Имя переменной может начинаться с буквы или символа подчереркивания
знак равенства(=) это оператор присваиивания

_var=1
_word =slovo
value=»t ak aia dli nna iain epo niat naia str oka»

Тип данных переменных shell это всегда строка символов!

$ cat sample
_string=»Hello from Perm»
echo $_string
$ /home/sgww/sample
Hello from Perm

результат выполения команды в переменную (команда обрамляется обратными апострофами)

$cat sample
_date=`date`
echo $_date
$/home/sgww/sample
Tue Mar 2 11:41:30 YEKT 201

ввод значения переменной в консоли

$ cat sample
echo Enter data:
read data1
read data2
echo Your data: $data1 and $data2
$ /home/sgww/sample
Enter data:
Linux
Windows
Your data: Linux and Windows

Системные переменные

$ cat sample
echo $PATH
echo $HOME
echo $MAIL
echo $SHELL
$ /home/sgww/sample
/usr/local/bin:/usr/bin:/bin:/usr/bin/X1 1:/usr/games
/home/sgww
/var/mail/sgww
/bin/bash

PATH — пути поиска исполняемых файло (так как каталога /home/sgww/ там нет, постояно приходилось писать полный путь /home/sgww/sample для выполнения команды)
HOME — домашний каталог
MAIL — файл электронной почты
SHELL — оболочка в которой работаем

Добавим к переменной PATH каталог HOME что бы не приходилось постоянно писать полный путь

$ cat sample
PATH=$PATH:$HOME

Эти строки следует добавить в

/.bash_profile
теперь нет необходимости писать полный путь до команды

Специальные символы

* — любая последовательность, любых символов
? — один любой символ
[. ] — любой из символов диапазона

$echo *
cpp file.txt mydaemon net_sh perl php sample
$ echo «*»
*

$ cat sample
text=»This is a text»
echo ‘$text’
$ sample
$text

$ cat sample
text=»This is a text»
echo \$text
$ sample
$text

$ cat sample
text=`pwd`
echo $text
$ sample
/home/sgww

Арифметические операции

Для выполнения арифметических операций в командном файле понадобиться команда expr

$ expr 7 + 96
103
$ expr 87 — 555
-468
$ expr 18 / 2
9
$ expr 19 / 2
9
$ expr 19 % 2
1
$ expr 6 \* 32
192
$ expr 6 ‘*’ 32
192
$ expr 6 * 32
expr: syntax error

Если при умножении не поставить \ или » то * будет восприниматься как любой символ

Стоит отметить, что \ — это не деление, а целая часть от деления, операция % дает остаток от деления

Переменные окружения, команда export и unset

Для взаимодейстивя с другими процессами могут пригодияться переменные окружения

Их полный списко можно посмотреть командой export

$ export
declare -x HISTCONTROL=»ignoreboth»
declare -x HOME=»/home/sgww»
declare -x LESSCLOSE=»/usr/bin/lesspipe %s %s»
declare -x LESSOPEN=»| /usr/bin/lesspipe %s»
declare -x LOGNAME=»sgww»
.

$ name=Pavel && export name
$ echo $name
Pavel

Для составления условных выражений оператора if очень полезна программа test.

$ cat sample
if test -r sample
then
echo True
else
echo False
fi
$ sample
True

В этом примере test -r sample — это условие
echo True выполняется если условие истино
echo False если ложно

Программа test предназначена для проверки типов файлов и сравнения значений

$test -r file # Истино если файл file существует и доступен для чтения
$test -w file # Истино если файл file существует и доступен для записи
$test -x file # Истино если файл file существует и доступен для выполнения

$ x=32 && export x
$ y=32 && export y

$test $x -eq $y # Истино если $x равен $y
$test $x -en $y # Истино если $x не равен $y
$test $x -ge $y # Истино если $x больше или равен $y
$test $x -gt $y # Истино если $x больше $y
$test $x -le $y # Истино если $x меньше или равен $y
$test $x -lt $y # Истино если $x меньше $y

Остальные параметры можно посмотреть в man test

$ cat sample
for x in 1 two 3
do
echo $x
done
$ sample
1
two
3

В этом цикле код между do и done выполниться 3 раза, при этом первый раз
x=1, второй раз x=two и последний x=3

$ cat sample
for x in *
do
echo $x
done
$ sample
cpp
demo
file.txt
mydaemon
net_sh
perl
php
sample

* в списке переменных цикла, заставляет for использовать в качестве значения $x элементы текущего каталога

Циклы WHILE и UNTIL

$ cat sample
while test -r file
do
sleep 10
echo file exists
done
echo file does not exist

$ touch file
$ sample
file exists
file exists
Ctr+Z
[1]+ Stopped sample
$ rm file
$ fg
sample
file exists
file does not exist

$ cat sample
until test -r file
do
sleep 5
echo file does not exist
done
echo file exists
$ sample
file does not exist
file does not exist
Ctr+Z
[1]+ Stopped sample
$ touch file
$ fg
sample
file does not exist
file exists
$

Источник статьи: http://sgww.livejournal.com/8836.html


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии