Автор Тема: Альт Линукс учебник Bash  (Прочитано 7193 раз)

Оффлайн Пурпур

  • Завсегдатай
  • *
  • Сообщений: 131
    • Email
Альт Линукс учебник Bash
« : 21.03.2017 10:27:53 »
Здравствуйте.
Не так давно я начал изучать PowerShell. До этого программированием, администрированием вообще не занимался, но мне язык понравился, не сложный и позволяет автоматизацией заниматься на компьютере, а у меня как раз возникла такая потребность.

Теперь решил перейти на Альт Линукс, т.к. система очень понравилась, соответственно решил изучать Bash.
У меня три первых вопроса, буду благодарен, если кто-то отважится на них ответить:
1. Я правильно понимаю что на Линуксе нет единого синтаксиса для Bash? Т.е. на Ubuntu  и на Альте синтаксис команд в консоли будет отличаться?
2. Объясните в чем отличие консолей? Если я кликаю правой кнопкой мыши по рабочему столу, в выпадающем меню есть раздел "Konsole". Это первый вариант. Второй вариант - Ctrl+Alt+F2. Я попадаю в консоль, которая на весь экран. При чем, на этом форуме почему-то часто пишут просто Alt+F2, но у меня без контрола ничего не запускается. И далее, есть еще варианты Ctrl+Alt+F2,F3,F4,F5,F6. Я заметил, что если в консоли на Ф2 я захожу под рутом, то в консоли Ф3 мне предлагают заходить под рут снова. Эти консоли чем-то отличаются друг от друга?

Если я выбираю консоль Ф7: ctrl+alt+F7, то открывается просто черное окно с мигающим курсором, ничего вводить не получаестя. Это что?

3. Может быть есть какой-то удачный учебник для изучения языка Bash? Который для Альт Линукс подходит.

Еще раз спасибо, заранее благодарю за ответ.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн Spanish ArCher

  • Завсегдатай
  • *
  • Сообщений: 1 234
Re: Альт Линукс учебник Bash
« Ответ #2 : 21.03.2017 10:39:04 »
Спросите у гугля "Advanced Bash-Scripting Guide"

один из вариантов ответа:
http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.htmlhttp://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html
Если я попался вам навстречу, Значит вам со мной не по пути.
(С) Воскресение

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
Re: Альт Линукс учебник Bash
« Ответ #3 : 21.03.2017 10:44:42 »
Вот тут есть  очень неплохие  лекции одного из разработчиков AltLinux.
http://uneex.ru/LecturesCMC 

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Альт Линукс учебник Bash
« Ответ #4 : 21.03.2017 16:47:52 »
1. Я правильно понимаю что на Линуксе нет единого синтаксиса для Bash? Т.е. на Ubuntu  и на Альте синтаксис команд в консоли будет отличаться?

В дебианообразных используется не bash, а dash. Но принято использовать синтаксис sh чтобы скрипты меньше разъезжались. Правда расположение конфигурационных файлов в разных Линукс часто разное, но это уже детали.

2. Объясните в чем отличие консолей? Если я кликаю правой кнопкой мыши по рабочему столу, в выпадающем меню есть раздел "Konsole". Это первый вариант. Второй вариант - Ctrl+Alt+F2. Я попадаю в консоль, которая на весь экран. При чем, на этом форуме почему-то часто пишут просто Alt+F2, но у меня без контрола ничего не запускается. И далее, есть еще варианты Ctrl+Alt+F2,F3,F4,F5,F6. Я заметил, что если в консоли на Ф2 я захожу под рутом, то в консоли Ф3 мне предлагают заходить под рут снова. Эти консоли чем-то отличаются друг от друга?

Тем же, чем различаются аппаратные терминалы, которые эмулируют виртуальные терминалы:
https://ru.wikipedia.org/wiki/VT100

Но лучше также посетить один из лучших в мире виртуальных музеев истории вычислительной техники:
http://www.digibarn.com/

Если я выбираю консоль Ф7: ctrl+alt+F7, то открывается просто черное окно с мигающим курсором, ничего вводить не получаестя. Это что?

В классических Линукс, vt7 используется для старта X-сервера
$ sed -n '3,4p' /etc/inittab
# The default runlevel.
id:5:initdefault:
$ ps -eo args|grep 'X '
/usr/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
но последователи Леннарта Поттеринга решили что vt1 в операционной системе лишний и стали запускать X-сервер в vt1 (виртуальный терминал), поэтому в некоторых случаях пользователю доступно на один виртуальный терминал меньше.

Сейчас в altlinux виртуальный терминал vt1 по-умолчанию заблокирован для исключения конфликтов и не доступен пользователю. Но в ранних altlnux, до эпохи Леннарта Поттеринга, этот виртуальный терминал был доступен пользователю.
Если vt1 не используется X-сервером и не планируется (зависит от *dm), то этот виртуальный терминал можно разблокировать и сделать доступным:
$ sed -n '55p' /etc/inittab
1:2345:respawn:/sbin/mingetty --noclear tty1
« Последнее редактирование: 21.03.2017 17:21:53 от Speccyfighter »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Альт Линукс учебник Bash
« Ответ #5 : 21.03.2017 17:41:36 »
1. Я правильно понимаю что на Линуксе нет единого синтаксиса для Bash?
Напротив, он единый. Но есть bash3 и bash4.
Т.е. на Ubuntu  и на Альте синтаксис команд в консоли будет отличаться?
Команды бывают внутренние и внешние. Внешние - это просто приложения. Например, даже в ALT можно найти однотипные внешние команды с разным синтаксисом, например mail. Эта утилита есть в пакетах mailx и mailutils.
Что касается внутренних команд, они зависят от shell. Bash3 и Bash4 уже были названы, но ими дело не ограничивается. Есть ещё zsh, dash, sh. Это из тех, что на слуху. То есть, ещё раз, у bash3 синтаксис единый, но в консоли может быть совсем не bash.
2. Объясните в чем отличие консолей?
Они разные по поведению. :-)
При чем, на этом форуме почему-то часто пишут просто Alt+F2, но у меня без контрола ничего не запускается. И далее, есть еще варианты Ctrl+Alt+F2,F3,F4,F5,F6.
Они и дальше есть. до F12. 7 и 8 - графические. Ctrl для переключения добавляется в графической.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Альт Линукс учебник Bash
« Ответ #6 : 21.03.2017 19:11:20 »
Теперь решил перейти на Альт Линукс, т.к. система очень понравилась, соответственно решил изучать Bash.
У меня три первых вопроса, буду благодарен, если кто-то отважится на них ответить:
1. Я правильно понимаю что на Линуксе нет единого синтаксиса для Bash? Т.е. на Ubuntu  и на Альте синтаксис команд в консоли будет отличаться?
Нет, bash и там и там одинаковый.
Цитировать
2. Объясните в чем отличие консолей? Если я кликаю правой кнопкой мыши по рабочему столу, в выпадающем меню есть раздел "Konsole". Это первый вариант.
Это не консоль, а название программы эмулятора терминала в KDE.
Цитировать
Второй вариант - Ctrl+Alt+F2. Я попадаю в консоль, которая на весь экран.
А это и есть консоль (console).
Цитировать
При чем, на этом форуме почему-то часто пишут просто Alt+F2, но у меня без контрола ничего не запускается. И далее, есть еще варианты Ctrl+Alt+F2,F3,F4,F5,F6. Я заметил, что если в консоли на Ф2 я захожу под рутом, то в консоли Ф3 мне предлагают заходить под рут снова. Эти консоли чем-то отличаются друг от друга?
Это разные виртуальные консоли.
Цитировать
Если я выбираю консоль Ф7: ctrl+alt+F7, то открывается просто черное окно с мигающим курсором, ничего вводить не получаестя. Это что?
Ничего. Как и остальные до F12.
Цитировать
3. Может быть есть какой-то удачный учебник для изучения языка Bash? Который для Альт Линукс подходит.
Любой.
Андрей Черепанов (cas@)

Оффлайн Пурпур

  • Завсегдатай
  • *
  • Сообщений: 131
    • Email
Re: Альт Линукс учебник Bash
« Ответ #7 : 21.03.2017 19:27:38 »
Спасибо большое всем, кто ответил. Вроде что-то прояснилось. Учебники читаю.

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: Альт Линукс учебник Bash
« Ответ #8 : 31.03.2017 13:41:33 »
Они и дальше есть. до F12.
Даже не до 12, а до 63. Только у вас F для номеров >12 нет.
Но вы можете переключаться между виртуальными консолями вот так, командой:
# chvt 1
...
# chvt 63
...
Вот то "chvt 1" выше - полностью эквивалентно Ctrl+Alt+F1 ... и т.д.
Посмотреть все какие у вас есть VT можете так:
# ls /dev/tty[123456789]*
...

Если я выбираю консоль Ф7: ctrl+alt+F7, то открывается просто черное окно с мигающим курсором, ничего вводить не получаестя. Это что?
Это (мигающий курсор) значит, что у вас VT7 не инициализирована запуском логин-программы mingetty.

Кое-что о консольной системе можете посмотреть здесь: Драйверы и модули ядра Linux.

P.S. После перехода дистрибутивов Linux (каждого из) на систему инициализации systemd, начальная инициализация консолей меняется (и это интересный вопрос для уточнений и обсуждения).

« Последнее редактирование: 31.03.2017 14:01:49 от Olej »

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: Альт Линукс учебник Bash
« Ответ #9 : 31.03.2017 14:20:46 »
Это (мигающий курсор) значит, что у вас VT7 не инициализирована запуском логин-программы mingetty.
Вот так, например, вы можете (для эксперимента) запустить логин на 25-й консоли:
[olej@dell mnt]$ sudo openvt -f -c25 -l loginА затем перейти в эту текстовую консоль и там зарегистрироваться:
[root@dell system]# chvt 25После чего увидите что-то типа такого:
[olej@dell ACCOUNTS]$ who
olej     :0           2017-03-19 10:19 (:0)
root     tty25        2017-03-31 14:17

P.S. (затем вернётесь назад в GUI с помощью Ctrl+Alt+F1)

« Последнее редактирование: 31.03.2017 14:29:18 от Olej »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Альт Линукс учебник Bash
« Ответ #10 : 31.03.2017 19:06:41 »
P.S. После перехода дистрибутивов Linux (каждого из) на систему инициализации systemd, начальная инициализация консолей меняется

Ну про "каждого" это вы уже конечно перегнули :-)
Была пара проектов адаптации systemd для Slackware, но ни в официальный репозиторий Slackware, ни в репозиторий слакбилдов, код systemd принят не был. Но если кому-то _очень_ хочется, он может для себя поискать в git, обинарить код, собрать в пакет и начать отладку.

(и это интересный вопрос для уточнений и обсуждения).

Слака осталась всё такой же предсказуемой, за что слакоделы свою Слаку и любят:
$ cat slackware-live-current.txt
live@darkstar:~$ sudo su -

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

    №1) Уважайте частную жизнь других.
    №2) Думайте, прежде что-то вводить.
    №3) С большой властью приходит большая ответственность.

Пароль:


root@darkstar:~# grep -rHin getty /etc/
/etc/file/magic/modem:54:# Magic data for vgetty voice formats
/etc/inittab:52:c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
/etc/inittab:53:c2:12345:respawn:/sbin/agetty 38400 tty2 linux
/etc/inittab:54:# c3:12345:respawn:/sbin/agetty 38400 tty3 linux
/etc/inittab:55:# c4:12345:respawn:/sbin/agetty 38400 tty4 linux
/etc/inittab:56:# c5:12345:respawn:/sbin/agetty 38400 tty5 linux
/etc/inittab:57:# c6:12345:respawn:/sbin/agetty 38400 tty6 linux
/etc/inittab:60:#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100
/etc/inittab:61:#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100
/etc/inittab:64:#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
/etc/inittab:65:#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100


root@darkstar:~# sed "" /etc/os-release
NAME=Slackware
VERSION="14.2"
ID=slackware
VERSION_ID=14.2
PRETTY_NAME="Slackware 14.2"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:slackware:slackware_linux:14.2"
HOME_URL="http://slackware.com/"
SUPPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"
BUG_REPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Альт Линукс учебник Bash
« Ответ #11 : 31.03.2017 19:31:08 »
3. Может быть есть какой-то удачный учебник для изучения языка Bash?

Да без проблем :-)
http://rus-linux.net/kos.php?name=/book1/oglavl.html
http://www.opennet.ru/docs/RUS/bash_scripting_guide/

Да открывайте хоть документацию по IBM AIX, - это POSIX же.
« Последнее редактирование: 31.03.2017 19:34:40 от Speccyfighter »

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: Альт Линукс учебник Bash
« Ответ #12 : 31.03.2017 19:47:50 »
P.S. После перехода дистрибутивов Linux (каждого из) на систему инициализации systemd, начальная инициализация консолей меняется (и это интересный вопрос для уточнений и обсуждения).
Этот вопрос полностью разобран здесь: начальная инициализация консолей с systemd.