Терминал

О том о сем
Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Терминал

Сообщение #1 Bill Williamson » 05 окт 2016, 21:23

Давно хотелось тему с таким громким названием для небольших вопросов по сабжу.
Итак, мой первый вопрос: недавно именно в Linux случайным образом познакомился с консольной утилитой Image Magick - мне, как человеку связанному с полиграфией, данная программа оказалась просто находкой. Особенно интересна возможность объединения множества растровых изображений в один файл PDF. Так вот, предположим в каталоге находятся файлы 01.tif, 02.tif, 03.tif... По команде ls можно увидеть содержимое раскиданным по столбцам, но как сделать вид просмотра по порядку 01.tif 02.tif 03.tif..., чтоб можно было копипастой вставить в код:

Код: Выделить всё

convert 01.tif 02.tif 03.tif output.pdf

Можно ли как-то управлять видом команды ls? Ну там: в одну строчку, в обратном порядке, по алфавиту, сначала цифры или наоборот и т.д. и т.п.
Изображение

Аватара пользователя
Chocobo
Сообщения: 3465
Зарегистрирован: 27 авг 2016, 22:57
Решено: 80
Откуда: НН
Благодарил (а): 317 раз
Поблагодарили: 913 раз
Контактная информация:

Re: Терминал

Сообщение #2 Chocobo » 05 окт 2016, 21:28

Bill Williamson, по этой задаче можно попробовать вот так - срезать перенос строки:

Код: Выделить всё

ls | tr "\n" " "


пример (по содержимому /etc/):
► Показать
Изображение

Аватара пользователя
val
Сообщения: 28
Зарегистрирован: 03 сен 2016, 01:17
Решено: 2
Поблагодарили: 6 раз
Контактная информация:

Re: Терминал

Сообщение #3 val » 05 окт 2016, 21:33

Bill Williamson писал(а):Источник цитаты Можно ли как-то управлять видом команды ls?

прочтите ls --help
В чем Сила Брат?!А Сила,она во Сне! :smoke:

Аватара пользователя
zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 12:08
Решено: 14
Благодарил (а): 48 раз
Поблагодарили: 215 раз
Контактная информация:

Re: Терминал

Сообщение #4 zuzabrik » 05 окт 2016, 21:39

Практически на любую команду есть man страница. Чтобы посмотреть руководство достаточно набрать в консоли man команда. В данном случае это будет man ls. Выход из режима man - кнопка "Q". :)

P.S. Иногда нужного результата можно добиться перенаправляя вывод одной команды в другую. Поищите в гугле что такое пайп (pipe) и конвейер в линукс. Например отсортировать вывод строк команды ls в обратном порядке можно попробовать так:

ls -Al | sort -r -

где ls - вывод файлов и папок, -A - включая скрытые, -l - по одному на строку, | - перенаправить вывод дальше в команду, sort - команда сортировки, -r - отсортировать в обратном порядке, - - взять данные не из файла, а из вывода в консоль.

P.P.S. Аналогично используя команды перенаправления потоков можно сразу скармливать программе вывод команды ls без всякой копипасты, используя > и < потоки :)
Последний раз редактировалось zuzabrik 05 окт 2016, 21:57, всего редактировалось 1 раз.
Имею желание иметь всех желающих, но не имею желающих.

В сети
Аватара пользователя
symon2014
Сообщения: 1106
Зарегистрирован: 29 авг 2016, 05:17
Решено: 14
Откуда: Феодосия
Благодарил (а): 37 раз
Поблагодарили: 284 раза
Контактная информация:

Re: Терминал

Сообщение #5 symon2014 » 05 окт 2016, 21:56

:sry:
Debian (8.8) , LMDE2 , LM 18.2 Mate .

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #6 Bill Williamson » 13 окт 2016, 18:56

Добрый вечер! Спасибо за ответы на предыдущий вопрос. Теперь возник следующий. Есть у меня программа, которая без cd диска не запускается. Я сделал с этого диска iso образ и могу монтировать вбив в терминале команду:

Код: Выделить всё

mount -t auto -o loop '/home/teacher/Образы/UCH_961.iso' '/home/teacher/Образы/UCH_961_iso'

Эта команда работает только через root. Я сделал .sh из него, поставил галку, чтоб она была исполняемой. Но при запуске скрипт не спрашивает пароль. Добавление sudo su в скрипт не монтирует образ. Как правильно сделать, что пароль спрашивался обычным окном? И можно ли команду mount выполнять без root (ведь флешки и др. устройства как-то монтируются без пароля)? Спасибо.
Изображение

Аватара пользователя
zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 12:08
Решено: 14
Благодарил (а): 48 раз
Поблагодарили: 215 раз
Контактная информация:

Re: Терминал

Сообщение #7 zuzabrik » 13 окт 2016, 19:19

ммм... я думал правильно будет

Код: Выделить всё

sudo mount -o loop -t iso9660 /home/user/disk.iso /mnt/mount_point


а самый простой способ не спрашивать пароль - настроить судо так, чтобы от имени вашего пользователя команды mount и umount работали без пароля
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #8 Bill Williamson » 31 окт 2016, 21:04

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

Код: Выделить всё

apt policy название_программы

Так вот, пример:
~ $ apt policy wine
wine:
Установлен: (отсутствует)
Кандидат: 1:1.6.2-0ubuntu14
Таблица версий:
1:1.6.2-0ubuntu14 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

По этой информации не совсем понятно, что программа wine из репозитория deb http://ppa.launchpad.net/wine/wine-builds/ubuntu xenial main
Изображение

Аватара пользователя
adargeos
Сообщения: 180
Зарегистрирован: 09 окт 2016, 14:40
Решено: 6
Откуда: Москва
Благодарил (а): 21 раз
Поблагодарили: 45 раз
Контактная информация:

Re: Терминал

Сообщение #9 adargeos » 31 окт 2016, 21:37

Bill Williamson, у Вас просто не подключен репозиторий самого Wine. А версия 1.6 уже давно валяется в репозитории Ubuntu. Если подключите репозиторий Wine, то Вам apt policy покажет еще версию 1.9
if you do this - you know what you are doing

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #10 Bill Williamson » 31 окт 2016, 22:05

adargeos, вроде как подключен:
Снимок экрана от 2016-10-31 22-01-57.png

Код: Выделить всё

~ $ wine --version
wine-1.9.21
Изображение

Аватара пользователя
adargeos
Сообщения: 180
Зарегистрирован: 09 окт 2016, 14:40
Решено: 6
Откуда: Москва
Благодарил (а): 21 раз
Поблагодарили: 45 раз
Контактная информация:

Re: Терминал

Сообщение #11 adargeos » 31 окт 2016, 22:19

Bill Williamson, странно, у меня показывает так:

Код: Выделить всё

$ apt policy wine
wine:
  Установлен: 1:1.9.21-gallium-nine~x
  Кандидат:   1:1.9.21-gallium-nine~x
  Таблица версий:
     1:1.9.21-gallium-nine~x 500
        500 http://ppa.launchpad.net/commendsarnex/winedri3/ubuntu xenial/main amd64 Packages
     1:1.6.2-0ubuntu14 500
        500 http://mirror.yandex.ru/ubuntu xenial/universe amd64 Packages
if you do this - you know what you are doing

Аватара пользователя
Chocobo
Сообщения: 3465
Зарегистрирован: 27 авг 2016, 22:57
Решено: 80
Откуда: НН
Благодарил (а): 317 раз
Поблагодарили: 913 раз
Контактная информация:

Re: Терминал

Сообщение #12 Chocobo » 01 ноя 2016, 07:05

Bill Williamson, причина в нейминге пакетов.
На wine-builds можно найти devel, staging, compat суффиксы => http://ppa.launchpad.net/wine/wine-buil ... ol/main/w/
Изображение

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #13 Bill Williamson » 01 ноя 2016, 10:12

А вообще способа узнать из какого репозитория тот или иной пакет (или был он установлен из deb пакета), не будущий подключенным к тому репозиторию, нет?
Изображение

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #14 Bill Williamson » 01 ноя 2016, 11:01

Возникло еще несколько вопросов по терминалу:
    1) Предыстория:
    ► Показать

    Как подобное организовать через терминал? Пусть с получением списка файлов в директории и чисто в терминале, хотя в идеале кнопку в контекстном меню или пункт в других параметрах окна "Создать архив".
    2) Обычно, когда я обновляю ядро, если что-то пошло не так, то в меню grub выбираю старое ядро, а новое после загрузки удаляю. Как быть если linux установлен единственной системой на ПК с меткой раздела GPT и меню grub при загрузке не появляется?
Изображение

В сети
Аватара пользователя
symon2014
Сообщения: 1106
Зарегистрирован: 29 авг 2016, 05:17
Решено: 14
Откуда: Феодосия
Благодарил (а): 37 раз
Поблагодарили: 284 раза
Контактная информация:

Re: Терминал

Сообщение #15 symon2014 » 01 ноя 2016, 11:10

Попробуй при загрузке зажать левый Shift.
:sry:
Debian (8.8) , LMDE2 , LM 18.2 Mate .

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #16 Bill Williamson » 01 ноя 2016, 11:44

PeaZip умеет каждый файл в отдельный архив.
PeaZip.jpg
Изображение

Аватара пользователя
zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 12:08
Решено: 14
Благодарил (а): 48 раз
Поблагодарили: 215 раз
Контактная информация:

Re: Терминал

Сообщение #17 zuzabrik » 01 ноя 2016, 13:09

1) man find, man 7zr
2) уже ответили

пример скрипта

find ~/tmp/test/ -name "*.txt" -exec 7zr a -t7z '{}'.7z '{}' \;

find - ищет файлы
~/tmp/test/ - путь где искать
-name - шаблон имени файла (тут все .txt файлы)
-exec - выполнить команду
7zr - консольный 7zip
a - добавить в архив
-t7z - тип архива 7z
'{}'.7z - подставить сюда вывод команды find и добавить .7z (получится имя архива)
'{}' - подставить сюда вывод команды find (будет имя файла для упаковки)
\; - нечто из черной магии, чтобы команда exec корректно сработала в консоли :)
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #18 Bill Williamson » 01 ноя 2016, 13:47

zuzabrik писал(а):Источник цитаты find ~/tmp/test/ -name "*.txt" -exec 7zr a -t7z '{}'.7z '{}' \;

Большое спасибо! Привычное окно 7-Zip и намного быстрее, и самое главное стабильнее PeaZip.
Изображение

Аватара пользователя
Bill Williamson
Сообщения: 375
Зарегистрирован: 31 авг 2016, 13:38
Решено: 12
Благодарил (а): 140 раз
Поблагодарили: 67 раз
Контактная информация:

Re: Терминал

Сообщение #19 Bill Williamson » 02 ноя 2016, 19:52

symon2014 писал(а):Источник цитаты Попробуй при загрузке зажать левый Shift.

А как действовать в обратном направлений: например, "скушали" мы Windows и не хотим больше видеть меню grub? Как правильно его скрыть?
Изображение

Аватара пользователя
hellonet
Сообщения: 177
Зарегистрирован: 11 окт 2016, 12:58
Решено: 1
Откуда: Новосибирск
Благодарил (а): 67 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Терминал

Сообщение #20 hellonet » 02 ноя 2016, 19:56

Bill Williamson писал(а):Источник цитаты А как действовать в обратном направлений: например, "скушали" мы Windows и не хотим больше видеть меню grub? Как правильно его скрыть?

Сделать, чтоб его было видно 1 секунду и тогда оно не успевает отрисоваться.


Вернуться в «Болталка: Оффтоп, разбор полетов»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость