Команды Linux окружения пользователя
Операционная система Linux позволяет обновить свой рабочий интерфейс и включить в него необходимые инструменты. Они облегчают работу за компьютером благодаря гибкой настройке и удобному расположению. Самые популярные:
- «date» — команда, которая выводит текущую дату. Есть возможность опциональной настройки формата времени (12/24 ч.);
- «alias» сокращает наименование указанной команды, даёт возможность пользователю установить её синоним;
- «uname» демонстрирует информацию об операционной системе, её имени, профиле;
- «sudo» — запуск приложений и программ от любого из зарегистрированных пользователей;
- «sudo su» включает режим суперпользователя;
- «sleep» переводит систему в спящий режим;
- «shutdown» настраивает время включения компьютера. По умолчанию немедленно запускает систему;
- «reboot» помогает перезагрузить операционную систему. Благодаря опциональной настройке позволяет задать необходимое время для планируемой перезагрузки.
ls Linux
Одно дело знать, где мы находимся. Другое дело знать содержание. Команда для этой задачи — ls . Это сокращение для списка.
В то время как pwd просто запускается без аргументов, ls гораздо мощнее. Мы запустили его здесь без аргументов, и в этом случае он просто отобразит наше текущее местоположение. Однако мы можем сделать больше с Ls.
Схема использования:
ls
В приведенном выше примере квадратные скобки ([]) означают, что эти элементы являются необязательными, мы можем запустить команду с ними или без них. В терминале ниже я запустил ls несколькими различными способами для демонстрации.
Давайте разберемся с этим:
Строка 1 — Мы запустили ls в самой простой форме. В нем перечислены содержимое нашего текущего каталога.
Строка 2 — Мы запустили ls с одним параметром командной строки (-l), который указывает, что мы собираемся сделать длинный список.
Строка 3 — мы запустили ls с аргументом командной строки (/etc). Когда мы делаем это, он говорит ls не перечислять наш текущий каталог, а вместо этого перечислять содержимое этих каталогов.
Строка 4 — Мы запустили ls с параметром командной строки и аргументом. Как таковой он сделал длинный список каталога / и т.д.
Как писать собственные скрипты
Теперь, когда вы знакомы с некоторыми основами, давайте перейдем к сценариям оболочки. Сценарии оболочки — это программа с открытым исходным кодом, предназначенная для работы в Linux. Вы пишете серию команд, а оболочка их выполняет.
Перво-наперво, что такое оболочка? Shell — это интерфейс, который позволяет вам общаться с операционной системой. Вы получаете доступ к оболочке через терминал, вводите свои команды, оболочка обрабатывает их и выдает результат.
В Linux есть следующие оболочки:
- csh Оболочка C: синтаксис этой оболочки похож на C
- sh или Bourne Shell: эта оболочка доступна во всех системах Linux. Оболочка является базовой и предлагает несколько функций.
- ksh или Korn Shell
- Bash или Bourne Again Shell: этот мощный инструмент является стандартной оболочкой GNU. Он гибкий и интуитивно понятный.
Чтобы узнать больше о BASH, прочтите нашу шпаргалку по 25 лучшим командам BASH.
Приступим к нашему первому сценарию. Откройте текстовый редактор и напишите код ниже.
Сохраните файл как hello_world.sh. Будем распечатывать Hello World!. Первая строка — это директива, означающая, что все последующее должно интерпретироваться оболочкой Bourne. Вторая строка — комментарий. Третья команда печатает Hello World!.
Далее мы установим разрешения для этого файла, например:
Чтобы запустить файл, используйте:
Вот и все. Ваш самый первый сценарий оболочки!
Создадим еще один, name_age.shиспользующий переменные. Ниже у нас есть две переменные: nameи age. Сценарий принимает ввод с помощью чтения и выводит значения переменных на экран.
Добавление пользователей в группу
Продолжим изучение темы “Группы и пользователи в Linux”. Теперь рассмотрим процесс добавление в группу пользователей. Но для начала разберемся с первичными и дополнительными группами. Как я показывал раньше, при создании пользователя обычно создается одноименная группа это первичная группа пользователя. Первичная группа используется, например, при создании файла.
Например, если пользователь Linux «Вася» имеет первичную группу «Вася» и какие-то дополнительные группы, и он создал файл, то к файлу будут иметь доступ все пользователи которые входят в группу «Вася». Но одна из дополнительных групп у “Васи” – это группа «Разработчики», и у группы «Разработчики» не будет доступа к файлу, так как файл взял права от первичной группы «Вася», а не от дополнительной «Разработчики» . Это просто пример поведения Linux, с системой прав разберемся позже.
Группы и пользователи в Linux
В одном из примеров выше я показывал вывод команды id для пользователя alex:
alex@deb-11:~$ id uid=1000(alex) gid=1000(alex) группы=1000(alex),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
Тут первичная группа alex, а дополнительные все остальные.
Чтобы пользователю добавить дополнительную группу можно воспользоваться командой usermod -aG,
- -a — добавляет к текущим группам пользователя дополнительные. Без этой опции группы заменяются на новые, а с этой опцией к старым группам добавляются новые;
- -G — указывает, что работать будем с дополнительными группами а не с первичной.
alex@deb-11:~$ su - Пароль: root@deb-11:~# usermod -aG testgroup alex root@deb-11:~# id alex uid=1000(alex) gid=1000(alex) группы=1000(alex),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),1002(testgroup) root@deb-11:~#
Как видим alex добавился в группу testgroup.
Утилитой usermod нельзя удалять дополнительные группы, можно только не используя опцию -a, написать список групп в которые должен будет входить данный пользователь, не указав ту группу, из которой вы хотите удалить пользователя. Например мы хотим удалить alex из testgroup:
root@ubuntu:~# usermod -G adm,cdrom,sudo,dip,plugdev,lxd alex root@ubuntu:~# id alex uid=1000(alex) gid=1000(alex) groups=1000(alex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lxd) root@deb-11:~# usermod -G cdrom,floppy,audio,dip,video,plugdev,netdev alex root@deb-11:~# id alex uid=1000(alex) gid=1000(alex) группы=1000(alex),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
Если мы хотим поменять пользователю первичную группу, то нужно использовать опцию -g:
root@deb-11:~# usermod -g testgroup alex root@deb-11:~# id alex uid=1000(alex) gid=1002(testgroup) группы=1002(testgroup),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
И вернем все как было:
root@deb-11:~# usermod -g alex alex
Еще один способ добавить пользователя в дополнительную группу (и наверное более запоминающийся) это использовать утилиту adduser, при этом утилите вначале передается имя пользователя, затем группы:
root@deb-11:~# adduser alex testgroup Добавляется пользователь «alex» в группу «testgroup» ... Добавление пользователя alex в группу testgroup Готово.
Удалить пользователя из группы можно командой deluser:
root@deb-11:~# deluser alex testgroup Удаляется пользователь «alex» из группы «testgroup» ... Готово.
И так, для добавления или удаления пользователя в дополнительную группу я бы рекомендовал использовать команды adduser и deluser. А для изменения первичной группы команду usermod -g.
Фильтры в Linux
Фильтры — это способ получения необработанных данных, созданных другой программой или сохраненных в файле.
Эти фильтры имеют различные параметры командной строки, которые изменяют их поведение. В результате, всегда полезно проверить страницу руководства для фильтра.
В приведенных ниже примерах мы будем предоставлять данные для этих программ с помощью файла.
Для каждой из демонстраций ниже будет использоваться следующий файл в качестве примера. Этот файл примера содержит список содержимого, чтобы немного облегчить понимание примеров. Кроме того, файл фактически указан как путь, и поэтому вы можете использовать абсолютные и относительные пути, а также подстановочные знаки.
СКРИН
head
Head — это программа, которая печатает первые строки ввода. По умолчанию он напечатает первые 10 строк, но мы можем изменить это с помощью аргумента командной строки.
head
tail
Данная команда противоположна head. Tail — это команда, которая печатает последние строки ввода. По умолчанию он напечатает последние 10 строк, но мы можем изменить это с помощью аргумента командной строки.
tail
Выше было поведение tail по умолчанию. А ниже указывается заданное количество строк.
sort
Сортировка — это красиво и просто. По умолчанию сортировка выполняется в алфавитном порядке. Между тем, существует множество параметров, позволяющих изменить механизм сортировки. Кроме того, не забудьте проверить справочную страницу, чтобы увидеть все, что он может сделать.
sort
nl
Обозначение чисел в Linux реализуется за счет команды nl.
nl
Вот еще несколько полезных опций командной строки.
В приведенном выше примере мы использовали 2 параметра командной строки. Первый -s указывает, что следует печатать после числа. С другой стороны, второй -w указывает, сколько отступов ставить перед числами. Для первого нам нужно было включить пробел как часть того, что было напечатано.
Поскольку пробелы обычно используются в качестве символов-разделителей в командной строке, нам нужен был способ указать, что пробел является частью нашего аргумента, а не просто между аргументами. Мы сделали это, включив аргумент в кавычки.
wc
wc обозначает количество слов, а также символы и строки. По умолчанию он подсчитывает все вышеперечисленное. Между тем, используя параметры командной строки, мы можем ограничить его только тем, что нам нужно.
wc
Иногда вам просто нужно одно из этих значений. -l даст нам только строки, -w даст нам слова, а -m даст нам символы.
Кроме того, Вы можете комбинировать аргументы командной строки.
cut
Cut — это хорошая команда, которую можно использовать, если ваш контент разделен на столбцы и вам нужны только определенные поля.
вырезать
В нашем примере файла у нас есть данные в 3 столбцах. Допустим, мы хотели только первый столбец.
По умолчанию cut использует символ TAB в качестве разделителя для идентификации полей. Опция -f позволяет нам указать, какое поле мы бы хотели. Если нам нужно 2 или более полей, мы разделяем их запятой, как показано ниже.
sed
Sed расшифровывается как Stream Editor и позволяет эффективно выполнять поиск и замену наших данных. Это довольно мощная команда, но мы будем использовать ее здесь в ее базовом формате.
sed <выражение>
Инициал s обозначает замену и определяет действие, которое нужно выполнить. Между первой и второй косой чертой (/) мы размещаем то, что ищем. Затем между вторым и третьим слэшем, чем мы хотим его заменить.
uniq
Uniq означает уникальный, и его работа заключается в удалении повторяющихся строк из данных. Однако одно ограничение заключается в том, что эти линии должны быть смежными.
uniq
tac
Ребята из Linux известны своим забавным чувством юмора. Программа TAC на самом деле является CAT наоборот. Это было названо так, как это делает противоположность CAT. Получив данные, он напечатает последнюю строку первой, вплоть до первой строки.
TAC
Руководство для начинающих по команде pwd в Linux
В этой статье мы рассмотрим pwd команду, одну из самых основных команд в Linux.
Мы узнаем, как использовать команду pwd для записи на стандартный вывод полного имени пути вашего текущего каталога и узнаем разницу между встроенной командой pwd и командой внешнего pwd.
Что делает PWD?
Pwd является аббревиатурой «Print Working Directory». Команда pwd является одной из наиболее часто используемых команд системными администраторами Linux. Она работает в Linux и других UNIX, таких как операционные системы, и представляет собой встроенную команду оболочки, доступную на оболочке Bash, korn, ksh и т. д.
Команда pwd печатает текущее имя рабочего каталога с полным путем, начиная с root (/). Это также переменная окружающей среды.
Снимок экрана ниже показывает, что оболочка bash поставляется с встроенной командой pwd и двоичной версией.
Синтаксис команды PWD
Каждая команда Linux имеет свой собственный синтаксис. Без базовых знаний командного синтаксиса выполнение команд на терминале Linux может показаться утомительной задачей.
Ниже приведен базовый синтаксис команды pwd:
Команда Pwd поставляется с различными параметрами, которые позволяют нам использовать эту команду по-разному. Однако вы все равно можете использовать команду pwd без каких-либо аргументов.
Давайте рассмотрим самые основные параметры команды pwd. Чтобы найти список параметров команды pwd, вы можете ввести pwd —help в терминале.
-L: Печатает значение $ PWD, если оно называет текущий рабочий каталог. Другими словами, он печатает или отображает текущий рабочий каталог.
-P: Печатает физический каталог без каких-либо символических ссылок. Символическая ссылка — это особый вид файла, который создает ярлык для файла или указывает на другой файл. Распечатайте физический каталог без каких-либо символических ссылок, используя следующие команды:
Обе команды отображают текущий рабочий каталог.
Команда ls linux
Как обычно, в таких статьях сначала нам нужно понять синтаксис команды, чтобы вы знали как правильно ее использовать. На самом деле, синтаксис очень прост, вы набираете саму команду, а после нее путь к папке, содержимое которой хотите посмотреть. Если вы запустите команду без пути, то она выдаст содержимое текущего каталога:
$ ls опции /путь/к/папке
Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:
- — a — отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
- — A — не отображать ссылку на текущую папку и корневую папку . и …;
- — author — выводить создателя файла в режиме подробного списка;
- — b — выводить Escape последовательности вместо непечатаемых символов;
- — block-size — выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
- — B — не выводить резервные копии, их имена начинаются с ~;
- — c — сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
- — C — выводить колонками;
- — color — включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
- — d — выводить только директории, без их содержимого, полезно при рекурсивном выводе;
- — D — использовать режим вывода, совместимый с Emacs;
- — f — не сортировать;
- — F — показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
- — full-time — показывать подробную информацию, плюс вся информация о времени в формате ISO;
- — g — показывать подробную информацию, но кроме владельца файла;
- — group-directories-first — сначала отображать директории, а уже потом файлы;
- — G — не выводить имена групп;
- -h — выводить размеры папок в удобном для чтения формате;
- — H — открывать символические ссылки при рекурсивном использовании;
- — hide — не отображать файлы, которые начинаются с указанного символа;
- -i — отображать номер индекса inode, в которой хранится этот файл;
- — l — выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
- — L — для символических ссылок отображать информацию о файле, на который они ссылаются;
- — m — разделять элементы списка запятой;
- — n — выводить UID и GID вместо имени и группы пользователя;
- — N — выводить имена как есть, не обрабатывать контролирующие последовательности;
- — Q — брать имена папок и файлов в кавычки;
- — r — обратный порядок сортировки;
- — R — рекурсивно отображать содержимое поддиректорий;
- — s — выводить размер файла в блоках;
- — S — сортировать по размеру, сначала большие;
- — t — сортировать по времени последней модификации;
- -u — сортировать по времени последнего доступа;
- — U — не сортировать;
- — X — сортировать по алфавиту;
- — Z — отображать информацию о расширениях SELinux;
- — 1 — отображать один файл на одну строку.
Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.