Как изменить оболочку по умолчанию в Linux с помощью chsh

Я хотел бы переименовать cca 1000 файлов, которые названы как: 66-123123.jpg -> abc-123123-66.jpg. В общем случае формат файла: xx-yyyyyy.jpg -> abc-yyyyyy-xx.jpg, где xx и yyyyyy — числа, abc — строка. Может кто-нибудь помочь мне с bash или py скриптом?

Для чего нужен login shell

Вход в систему обрабатывается оболочкой и другими инструментами, например, сам login или ваш диспетчер рабочего стола (с помощью PAM и различных других инструментов).

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

Особенности оболочки входа, по крайней мере, реализованной в Bash, заключаются в следующем:

Как переименовать файл Linux | Losst Как переименовать файл Linux — Техничка Как переименовать файл Linux — Техничка Как переименовать файл Linux | Losst

  • оболочка входа в систему обрабатывает команды из /etc/profile, затем первый файл, который она находит среди ~/.bash_profile, ~/.bash_login и ~/.profile (если только это не интерактивная оболочка входа, запущенная без параметра —login);
  • при выходе из оболочки входа выполняется logout вместо exit;
  • выход из оболочки входа в систему прерывает все задания;
  • оболочку входа нельзя приостановить;
  • оболочка входа устанавливает переменную HOME (кроме POSIX-корректного режима);
  • оболочка входа устанавливает параметр оболочки login_shell.

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

Смотрите также: Различия между Login shell и Non login shell (оболочка с входом и оболочка без входа)

Редактируем с помощью Midnight Commander

Я пользуюсь в основном Midnight Commander, поэтому сначала нужно установить его:

yum install mc -y

И потом любой файл можно редактировать этим коммандером.

Сначала пишем команду mcedit, а потом путь к файлу:

mcedit … какой-нибудь файл, т.е: mcedit /etc/

Или открываем сам коммандер командой

В нем перемещаемся до нужного файла и используем клавиши:

  • F4 – открыть файл для редактирования,
  • F2 – сохранить все изменения,
  • F10 – выйти из файла.

ls — просмотр содержимого папки

Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:

  • Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
  • ls -R
  • Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
  • ls /home

Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:

ls — просмотр содержимого папки

ls -l /home/

2. cd — изменить папку

Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:

Читайте также:  Возможности Linux

cd Desktop

Вы также можете указать полный путь к папке:

ls — просмотр содержимого папки

cd /usr/share/

Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:

cd ..

Вы также можете вернуться в предыдущую рабочую папку:

cd —

ls — просмотр содержимого папки

3. rm — удалить файлы

Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:

rm file

Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:

  1. rm /usr/share/file
  2. Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
  3. rm -r /home/user/photo/
  4. Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
ls — просмотр содержимого папки

4. rmdir — удалить папку

Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:

rmdir directory

Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.

5. mv — перемещение файлов

ls — просмотр содержимого папки

Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:

mv file newfile

Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/

mv file /home/user/tmp/

6. cp — копирование файлов

ls — просмотр содержимого папки

Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.

cp file newfile

Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:

cp -r /etc /etc_back

7. mkdir — создать папку

ls — просмотр содержимого папки
  • Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
  • mkdir test
  • Если нужно создать папку в другом каталоге, укажите полный путь к нему:
  • mkdir /home/user/test

8. ln — создание ссылок

  1. ln -s /home/user/Downloads/ /home/user/test/
  2. Для создания жесткой ссылки никаких опций задавать не нужно:
  3. ln /home/user/Downloads/ /home/user/test/

9. chmod — изменить права

chmod позволяет изменить права доступа к файлам. Например, chmod +x добавляет флаг исполняемости к файлу :

ls — просмотр содержимого папки
  • chmod +x  
  • Чтобы убрать флаг исполняемый используйте опцию -x:
  • chmod -x
  • Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.

10. touch — создать файл

  1. Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
  2. touch file
  3. Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.

11. mc

Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие.

ls — просмотр содержимого папки

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

Для установки mc в Ubuntu выполните:

  • sudo apt install mc
  • После завершения установки достаточно выполнить команду mc:
  • mc
  • Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
  • Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.

Выводы

В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в х!

ls — просмотр содержимого папки

Подсистема идентификации

Подсистемой учётных записей пользуется подсистема идентификации, которая в Linux имеет модульную структуру и называется PAM (Pluggable Authentication Modules, т. е. Подключаемые Модули Идентификации). Идея PAM — в том, чтобы унифицировать и, вместе с тем, сделать более гибкой любые процедуры идентификации в системе — начиная от команды login и заканчивая доступом к файлам по протоколу, скажем, FTP. Для этого недостаточно просто написать «библиотеку идентификации» и заставить все программы её использовать. В зависимости от того, для чего производится идентификация, условия, при которых оня будет успешной, могут быть более или менее строгими, а если она прошла успешно, бывает нужно выполнить действия, связанные не с определением пользователя, а с настройкой системы.

Читайте также:  Что нового в iOS 14.5: гайд по настройке и всем новым функциям

В большинстве дистрибутивов PAM обучен схеме «. d», и настройки каждой службы, которая использует идентификацию, лежат в отдельном файле:

[[email protected] root]# ls /etc/pam.d chpasswd groupdel other system-auth userdel chpasswd-newusers groupmod passwd system-auth-use_first_pass usermod crond login sshd user-group-mod groupadd newusers su useraddПример 8. Подключаемые Модули Идентификации (PAM)

В PAM определено четыре случая, требующие идентифкации: auth — собственно идентификация, определние, тот ли пользователь, за кого он себя выдаёт, account — определение, всё ли хорошо с учётной записью пользователя, password — изменение пароля в учётной записи, и session — дополнительные действия непосредственно перед или непосредственно после того, как пользователь получит доступ к затребованной услуге. Эти значения принимает первое поле любого файла настройки из pam.d, а в третьем поле записывается модуль, который проверяет какой-нибудь из аспектов идентификации. Второе поле определяет, как успех или неуспех проверки одного модуля влияет на общий успех или неуспех идентификации данного типа (например, required означает, что в случае неуспеха модуля проверка пройдена не будет). Четвёртое и последующие поля отведены под параметры модуля.

[[email protected] root]# cat /etc/pam.d/login auth include system-auth auth required pam_ account include system-auth password include system-auth session include system-auth session optional pam_ [[email protected] root]# cat /etc/pam.d/system-auth auth required pam_ shadow count=8 nullok account required pam_ shadow password required pam_ use_authtok shadow count=8 write_to=tcb session required pam_Пример 9. Настройка PAM для login

Такие настройки login обнаружил Мефодий на своём компьютере. Во всех четырёх случаях используется включаемый файл system-auth (к нему обращаются и другие службы), с некоторыми дополнениями: во время идентификации pam_ дополнительно проверяет, не запрещено ли пользователям регистрироваться вообще (как это бывает за несколько минут до перезагрузки системы), а перед входом в систему и после выхода из неё pam_ выполняет описанную в лекции Права доступа «передачу прав на владение устройствами» (и, соответственно, лишение пользователя этих прав).

Каталог /etc/pam.d — замечательный пример того, как профиль определяет поведение системы. В частности, четыре первых строки из system-auth показывают, что в этом дистрибутиве используется не просто «теневой» файл паролей, а схема TCB, описанная в лекции Права доступа. (Как уже известно Мефодию, в этой схеме вместо общего для всех /etc/shadow задействованы файлы вида /etc/tcb/входное_имя/shadow, причём права доступа к ним устроены таким образом, чтобы при выполнении команды passwd можно было обойтись без подмены пользовательского идентификатора на суперпользовательский).

Работа с консолью

Как запустить консоль в Mac OS X

Нажмите сочетание горячих клавиш Command (⌘) + T.

Или запустите Spotlight, для этого нажмите на значок лупы в верхнем горизонтальном меню справа или с помощью сочетания клавиш <Ctrl> + <Пробел>.

В строке поиска Spotlight введите слово “Терминал” и нажмите “Enter”. В результате откроется окно Терминала.

Как запустить консоль в Linux или Ubuntu

Чтобы запустить терминал, нажмите одновременно Ctrl + Alt + T.

Работа с окном консоли

Команда (или горячие клавиши) Что делает
Ctrl + Alt + T (Linux, Ubuntu) Command (⌘) + T (Mac OS X) открытие консоли
logout или exit выход из консоли
Ctrl + Alt + F1(2,3,4,5,6) переход в консоль из графического режима
Alt + Fn (n = 1,…,6) переключение между консолями
Alt + F7 переключение из консоли в графический режим
Команда (или горячие клавиши) Что делает
Ctrl + Alt + T (Linux, Ubuntu) Command (⌘) + T (Mac OS X) открытие консоли
logout или exit выход из консоли
Ctrl + Alt + F1(2,3,4,5,6) переход в консоль из графического режима
Alt + Fn (n = 1,…,6) переключение между консолями
Alt + F7 переключение из консоли в графический режим

Список установленных оболочек

Чтобы увидеть, какие оболочки установлены на вашем компьютере, используйте эту команду. Он просто перечисляет содержимое /etc/shells файл:

cat /etc/shells

Мы упоминали bash, dash, а также rbash, но что sh?

sh это Томпсон оболочка, написанная еще в 1971 году Кен Томпсон из Bell Labs известность. Он больше не поддерживается и давно заменен современными оболочками. Он включен исключительно для обеспечения совместимости со старыми сценариями, в которых в первой строке по-прежнему указывается следующее:

#!/bin/sh

Это инструктирует систему использовать sh оболочка для выполнения скрипта. У вас действительно есть эта древняя оболочка на вашем компьютере, и она используется для запуска ваших скриптов? which Команда скажет нам, какая программа действительно запускается при вводе команды.

Давайте посмотрим, что работает, когда вы печатаете sh:

which sh

Это кажется, чтобы найти двоичный файл. если мы копнем немного глубже, мы увидим, что это символическая ссылка, которая на самом деле указывает на dashоблегченная оболочка, используемая для выполнения скриптов:

ls -l /bin/sh

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

Раскрашиваем и изменяем строку приглашения:

Разобравшись, как устанавливать цвета linux через esc-коды, не составит труда переделать и раскрасить строку приглашения. За ее вывод отвечает переменная PS1, которая определена в файле

В Linux Mint скрипт ее инициализации имеет следующий вид:

То-есть сперва определяется, запустил ли скрипт root или обычный пользователь. Поскольку в подавляющем большинстве случаев имеет место именно второй вариант, то и редактировать нужно строку, следующую после первого ‘else’. Формат строки расшифрован в документации по баш, в разделе «Promting». Из него следует, что esc-последовательность должна начинаться с «\[» и заканчиваться «\]». Таким образом:

Раскрашиваем и изменяем строку приглашения:
  • [\033[01;32m\] — устанавливает зеленый цвет;
  • \u — выводит имя пользователя;
  • \h — выводит имя хоста;
  • [\033[00m\] — очищает установленные атрибуты;
  • [\033[01;34m\] — устанавливает синий цвет;
  • \w — выводит имя рабочей директории;
  • Привет! — пример того, что может быть выведен любой производный текст.

Что ещё можно вывести в строке приглашения:

  • \d — дату, в формате «Wed Dec 28»;
  • \A — время в 24-часовом формате;
  • \! — номер текущей команды в истории;
  • \n — перенос вывода на другую строку;

Введем что нибудь поинтереснее:

И строка приглашения примет вид:

Так, не понял, а откуда взялась ёлка-то?

Раскрашиваем и изменяем строку приглашения:

Ну ладно, на самом деле, если в конец .bashrc вставить echo -e «С Новым годом», то поздравление будет выводиться при каждом запуске терминала перед приглашением ввода. Соответственно, вывод можно раскрашивать каким угодно способом. А там уж и ёлку нарисовать не сложно.

Источник

Недостатки текстового режима

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

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