Терминал

О том о сем
Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Терминал

Сообщение Bill Williamson » 05 окт 2016, 18: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
Сообщения: 5544
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1437 раз

Re: Терминал

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

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

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

ls | tr "\n" " "
пример (по содержимому /etc/):

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

chocobo@desktop:/tmp > cd /etc; ls | tr "\n" " "
acpi adduser.conf adjtime akonadi alternatives anacrontab apm apparmor apparmor.d apport apt at.deny at-spi2 avahi avserver.conf bash.bashrc bash_completion bash_completion.d bindresvport.blacklist blkid.conf blkid.tab bluetooth brlapi.key brltty brltty.conf ca-certificates ca-certificates.conf calendar casper.conf chatscripts chromium-browser colord.conf console ConsoleKit console-setup cracklib cron.d cron.daily cron.hourly cron.monthly crontab cron.weekly cups cupshelpers davfs2 dbus-1 debconf.conf debian_version default deluser.conf depmod.d dhcp dictionaries-common dirmngr dkms dm dnsmasq.conf dnsmasq.d dpkg drirc emacs environment esound firefox firefox-3.0 fonts fstab fstab.d fuse.conf gai.conf gconf gdb ghostscript gimp gnome groff group group- grub.d gshadow gshadow- gtk-2.0 gtk-3.0 hdparm.conf host.conf hostname hosts hosts.allow hosts.deny hp icedtea-web ifplugd ImageMagick init init.d initramfs-tools inputrc insserv insserv.conf insserv.conf.d inxi.conf iproute2 issue issue.net java-7-openjdk kbd kde4 kde4rc kernel kernel-img.conf kerneloops.conf ksysguarddrc ldap ld.so.cache ld.so.conf ld.so.conf.d legal libao.conf libaudit.conf libgda-5.0 libnl-3 libpaper.d libreoffice linuxmint locale.alias localtime logcheck login.defs logrotate.conf logrotate.d lsb-release ltrace.conf lvm magic magic.mime mailcap mailcap.order manpath.config mdm menu menu-methods mime.types mintkde-default-settings mke2fs.conf modprobe.d modules modules-load.d mono mtab mtools.conf mysql nanorc ndiswrapper netscsid.conf network NetworkManager networks newt nsswitch.conf ntp.conf obex-data-server ODBCDataSources odbc.ini odbcinst.ini openal openvpn opt os-release pam.conf pam.d papersize passwd passwd- pcmcia perl pki pm pnm2ppa.conf polkit-1 ppp profile profile.d protocols pulse python python2.7 python3 python3.4 rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rcS.d request-key.conf request-key.d resolvconf resolv.conf rmt rpc rsyslog.conf rsyslog.d samba sane.d securetty security selinux sensors3.conf sensors.d services sgml shadow shadow- shells skel speech-dispatcher ssh ssl subgid subgid- subuid subuid- sudoers sudoers.d su-to-rootrc sysctl.conf sysctl.d sysstat systemd terminfo timezone ts.conf ucf.conf udev udisks2 ufw uniconf.conf updatedb.conf update-motd.d UPower upstart-xsessions upstream-release usb_modeswitch.conf usb_modeswitch.d vdpau_wrapper.cfg vim vtrgb wgetrc wildmidi wodim.conf wpa_supplicant wvdial.conf X11 xdg xml zsh_command_not_found

Аватара пользователя

val
Сообщения: 38
Зарегистрирован: 02 сен 2016, 22:17
Решено: 2
Поблагодарили: 9 раз

Re: Терминал

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

Bill Williamson писал(а): Можно ли как-то управлять видом команды ls?
прочтите ls --help
В чем Сила Брат?!А Сила,она во Сне! :smoke:

Аватара пользователя

zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 222 раза

Re: Терминал

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

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

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

ls -Al | sort -r -

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

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

Аватара пользователя

symon2014
Сообщения: 1578
Зарегистрирован: 29 авг 2016, 02:17
Решено: 19
Откуда: Феодосия
Благодарил (а): 47 раз
Поблагодарили: 427 раз

Re: Терминал

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

:sry:
Debian (9.1) , LMDE2 , LM 18.2 Mate . Благодарности складываем сюда ---> R320161344462

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

Сообщение Bill Williamson » 13 окт 2016, 15: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, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 222 раза

Re: Терминал

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

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

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

sudo mount -o loop -t iso9660 /home/user/disk.iso /mnt/mount_point
а самый простой способ не спрашивать пароль - настроить судо так, чтобы от имени вашего пользователя команды mount и umount работали без пароля
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

Сообщение Bill Williamson » 31 окт 2016, 18: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, 11:40
Решено: 8
Откуда: Москва
Благодарил (а): 21 раз
Поблагодарили: 45 раз

Re: Терминал

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

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

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

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

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

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

~ $ wine --version
wine-1.9.21
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

adargeos
Сообщения: 180
Зарегистрирован: 09 окт 2016, 11:40
Решено: 8
Откуда: Москва
Благодарил (а): 21 раз
Поблагодарили: 45 раз

Re: Терминал

Сообщение adargeos » 31 окт 2016, 19: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
Сообщения: 5544
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1437 раз

Re: Терминал

Сообщение Chocobo » 01 ноя 2016, 04:05

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

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

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

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

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

Сообщение Bill Williamson » 01 ноя 2016, 08:01

Возникло еще несколько вопросов по терминалу:
  1. 1) Предыстория:
    У меня в Windows 7 тоже стоит 7-Zip архиватор. К сожалению, в его менеджере нет функции "Упаковать каждый файл в отдельный архив", а мне всегда нужно архивировать pdf файлы в отдельные 7z архивы. Выход из ситуации через командную строку:
    @echo off
    setlocal enabledelayedexpansion
    set _in=D:\Temp
    set _out=D:\Temp
    set _arcpath=c:\Program Files\7-zip
    for %%i in (%*) do "%_arcpath%\7z" a "%_out%\%%~ni.7z" "%%i"
    Этот скрипт я закинул в C:\Users\Имя_пользователя\AppData\Roaming\Microsoft\Windows\SendTo батником и выделенные файлы отправляю на сжатие. Минус в том, что скрипт работает только в указанной на нем директории, но мне хватает.
    Как подобное организовать через терминал? Пусть с получением списка файлов в директории и чисто в терминале, хотя в идеале кнопку в контекстном меню или пункт в других параметрах окна "Создать архив".
  • 2) Обычно, когда я обновляю ядро, если что-то пошло не так, то в меню grub выбираю старое ядро, а новое после загрузки удаляю. Как быть если linux установлен единственной системой на ПК с меткой раздела GPT и меню grub при загрузке не появляется?

Аватара пользователя

symon2014
Сообщения: 1578
Зарегистрирован: 29 авг 2016, 02:17
Решено: 19
Откуда: Феодосия
Благодарил (а): 47 раз
Поблагодарили: 427 раз

Re: Терминал

Сообщение symon2014 » 01 ноя 2016, 08:10

Попробуй при загрузке зажать левый Shift.
:sry:
Debian (9.1) , LMDE2 , LM 18.2 Mate . Благодарности складываем сюда ---> R320161344462

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

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

PeaZip умеет каждый файл в отдельный архив.
PeaZip.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 222 раза

Re: Терминал

Сообщение zuzabrik » 01 ноя 2016, 10: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
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

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

zuzabrik писал(а): find ~/tmp/test/ -name "*.txt" -exec 7zr a -t7z '{}'.7z '{}' \;
Большое спасибо! Привычное окно 7-Zip и намного быстрее, и самое главное стабильнее PeaZip.

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Терминал

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

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

Аватара пользователя

hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Re: Терминал

Сообщение hellonet » 02 ноя 2016, 16:56

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

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