#1 23.05.2012 13:59:33

ormorph
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 902
IP-адрес

Маленькие хитрости в Linux

Делимся небольшими хитростями.

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

$ export LD_LIBRARY_PATH={$LD_LIBRARY_PATH}:/путь/lib

Либо вписать эту команду в скрипт запуска программы.

#2 23.05.2012 15:37:08

Vaicartana
Administrator
Зарегистрирован: 17.09.2011
Сообщений: 352
IP-адрес

Маленькие хитрости в Linux

midnight commander
ctrl+o открывает консоль.

один админ 5 лет на линухе работает а такой фигни не знал...

#3 23.05.2012 17:18:49

Fat-Zer
Administrator
Зарегистрирован: 14.10.2010
Сообщений: 4 977
IP-адрес

Маленькие хитрости в Linux

По горячим следам: Общие вопросы

иногда при линковке возникает undefined reference to `some_function'.
чтобы найти в какой библиотеке эта функция есть (если конечно эта библиотека установлена) нужно сделать:


SYM="some_function"; 
DIRS="/usr/lib64/";
find $DIRS -type f -executable | while read I; do 
  OBJ_DUMP="$(objdump -tT $I 2>/dev/null | grep "$SYM")"; 
  if [ -n "${OBJ_DUMP}" ]; then 
    echo "$I"; echo "$OBJ_DUMP"; 
  fi; 
done

[разбито на строки для удобства чтения]

ну а дальше включать /dev/brain.

ЗЫ: достаточно objdump -T. я просто забываю, какая из них что делает.

#4 24.05.2012 05:25:04

Vadimsky
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 2 913
IP-адрес

Маленькие хитрости в Linux

Quote by mvt
допустим, нет такого пакета который Вам очень нужен, и Вы не имеете способностей (или времени, или ещё чего-нибудь), чтобы его сделать

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

#5 24.05.2012 09:16:42

yars
Administrator
Зарегистрирован: 23.03.2012
Сообщений: 9 369
IP-адрес

Маленькие хитрости в Linux

Чтобы создать некоторое число файлов с именами вида {a..c}{1..3}.{txt,lst,conf} не нужен даже цикл! Достаточно

touch {a..c}{1..3}.{txt,lst,conf}
Сделал для себя вот такое открытие. Путеводитель по вash-скриптингу - оочень полезная книжка :)

#6 25.05.2012 09:15:48

ormorph
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 902
IP-адрес

Маленькие хитрости в Linux

Для добавления ttf шрифтов в LaTex, можно использовать следующий скрипт:



Для его работы необходимы пакеты:
lcdf-typetools
kpathsea
TexLive
texlive-core
texlive-langcyrillic

Как известно LaTeX(TexLive) работает с локальным каталогом $HOME/texmf, собственно туда и устанавливаются шрифты. Плюс прописываются в конф файлах $HOME/.texlive
берется обычный файл шрифтов, в названии шрифта удяляются тире и пробелы, а далее выполняется команда:
./script.sh font.ttf Font
второй параметр можно сразу использовать для получения таблицы символов данного шрифта, в документе LaTeX
Пример:

\fonttable{Font}

Использовать шрифт можно просмотрев в каталоге fon который создастся после выполнения шрифта файл *.map

пример:
% Automatically maintained by otftotfm or other programs. Do not edit.

Konkord--base KonkordRetro "AutoEnc_ppykhbua6i6wxtz6lrdyzug7ed ReEncodeFont" <[a_ppykhb.enc <Konkord.ttf


Для формирования команды в документе импользуются два параметра:
первый без --base и второй полный
Пример:
{\font\KonkordRetro Konkord at40pt \KonkordRetro  А это текст,
который выводится при помощи шрифта KonkordRetro.}


Пример документа:


Результат в PDF тыц
После выполнения скрипта каталог fon можно удалить

#7 25.05.2012 10:35:55

Writer
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 3 249
IP-адрес

Маленькие хитрости в Linux

Прокручивать веб-страницы можно пробелом.

#8 25.05.2012 11:04:28

riso
Administrator
Зарегистрирован: 26.01.2011
Сообщений: 758
IP-адрес

Маленькие хитрости в Linux

Для того, чтобы автодополнение (по tab) происходило без учета регистра, нужно прописать в ~/.inputrc


set completion-ignore-case on
"\eOd": backward-word
"\eOc": forward-word

и man readline тоже полезно вещь

#9 25.05.2012 12:53:23

xxblx
Administrator
Зарегистрирован: 14.05.2011
Сообщений: 3 381
IP-адрес

Маленькие хитрости в Linux

Если нужно большое кол-во названий файлов поменять из ЗАГЛАВНЫХ в строчные, используем следующий скрипт

#! /bin/bash

for filename in *               
do
   fname=`basename $filename`
   n=`echo $fname | tr A-Z a-z`  
   if [ "$fname" != "$n" ]       
   then
     mv $fname $n
   fi
done

exit 0

Кладем этот скрипт в каталог с файлами, названия которых нужно исправить и запускаем его.
FILE.BIN, IMAGE.JPG, TEXT.TXT и т.д. переименуются в file.bin, image.jpg и text.txt соответственно.

#10 25.05.2012 15:56:01

Fat-Zer
Administrator
Зарегистрирован: 14.10.2010
Сообщений: 4 977
IP-адрес

Маленькие хитрости в Linux

Quote by xxblx
for filename in *

в общем случае тут нужен find
Quote by xxblx
n=`echo $fname | tr A-Z a-z`

а это лучше cделать средствами bash:
n=${fname,,}

#11 25.05.2012 16:38:40

-=Serj=-
Administrator
Зарегистрирован: 18.03.2011
Сообщений: 3 277
IP-адрес

Маленькие хитрости в Linux

Чтобы перейти в директорию, в которой вы были до выполнения команды

$ cd
, можно использовать
$ cd -

#12 25.05.2012 16:40:16

-=Serj=-
Administrator
Зарегистрирован: 18.03.2011
Сообщений: 3 277
IP-адрес

Маленькие хитрости в Linux

Э-э-э.. Похоже, я не вовремя. :)

#13 25.05.2012 21:32:51

xxblx
Administrator
Зарегистрирован: 14.05.2011
Сообщений: 3 381
IP-адрес

Маленькие хитрости в Linux

Fat-Zer, я из тех, кого принято называть "быдло кодер" в подобных вопросах. так что: работает, да и ладно.

#14 05.06.2012 10:10:08

raven_cler
Administrator
Зарегистрирован: 10.01.2012
Сообщений: 263
IP-адрес

Маленькие хитрости в Linux

Копипаста средним колёсиком мыши))) По-сути, одна из самых полезных вещей, которые вообще делаю мышью.

#15 14.06.2012 12:19:06

ormorph
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 902
IP-адрес

Маленькие хитрости в Linux

Ко всему перечисленному, добавляю простенький скрипт конвертации от сканированных изображений, в формате JPEG, в один файл pdf.
Главное что бы названия файлов в каталоге с изображениями, были такими что бы поддавались сортировке(что бы не потерять порядок страниц).

Скрипт выполняется в каталоге с изображениями:

#!/bin/bash
ls|grep .jpeg|while read file
do
jpeg2ps $file >`echo $file|sed 's/.jpeg/.ps/'`
done
ls|grep .ps|while read file
do
ps2pdf $file
done
rm *.ps

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=book.tes $(ls |grep .pdf|sort)
rm *.pdf
mv book.tes book.pdf

#16 14.06.2012 13:54:27

zenon
Administrator
Зарегистрирован: 04.05.2010
Сообщений: 8 784
IP-адрес

Маленькие хитрости в Linux

ormorph затеряется пост, жаль, лучше сюда - Sysadmins tips and tricks

#17 14.06.2012 14:44:03

ormorph
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 902
IP-адрес

Маленькие хитрости в Linux

ormorph затеряется пост, жаль, лучше сюда - Sysadmins tips and tricks

Да вроде решения до админских не доросли :)

#18 26.06.2012 05:14:11

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Маленькие хитрости в Linux

полезная штучка для новичков.
при удалении файлов, оболочка будет запрашивать подтверждение

echo 'alias rm="rm -i"' >> ~/.bashrc

#19 26.06.2012 13:52:50

zenon
Administrator
Зарегистрирован: 04.05.2010
Сообщений: 8 784
IP-адрес

Маленькие хитрости в Linux

moshell загляни в этот .zshrc

#20 26.06.2012 15:02:42

yars
Administrator
Зарегистрирован: 23.03.2012
Сообщений: 9 369
IP-адрес

Маленькие хитрости в Linux


при удалении файлов, оболочка будет запрашивать подтверждение
echo 'alias rm="rm -i"' >> ~/.bashrc

Ну а в скриптах тоже будет запрашивать? Проще, имхо, запомнить, что по умолчанию подтверждение не запрашивается.

#21 26.06.2012 15:54:14

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Маленькие хитрости в Linux

Ярс, тема называется маленькие хитрости, а не как писать скрипты

#22 26.06.2012 15:55:56

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Маленькие хитрости в Linux

Ньюзенон, осталось звезду прикрутить и получится новогодняя елка )

#23 26.06.2012 16:26:38

yars
Administrator
Зарегистрирован: 23.03.2012
Сообщений: 9 369
IP-адрес

Маленькие хитрости в Linux

Ярс, тема называется маленькие хитрости, а не как писать скрипты

Я в курсе. Вот и спрашиваю - не будет ли мешать ваша маленькая хитрость работе скриптов

#24 26.06.2012 16:41:23

Lupo Alberto
Administrator
Зарегистрирован: 04.07.2010
Сообщений: 11 183
IP-адрес

Маленькие хитрости в Linux

Quote by yars
Вот и спрашиваю - не будет ли мешать ваша маленькая хитрость работе скриптов

Не будет:
[console]
[lupoalberto@localhost tmp]$ touch test_{01,02}.txt
[lupoalberto@localhost tmp]$ ls -l test_*
-rw-r--r-- 1 lupoalberto lupoalberto 0 июня 26 19:38 test_01.txt
-rw-r--r-- 1 lupoalberto lupoalberto 0 июня 26 19:38 test_02.txt
[lupoalberto@localhost tmp]$ rm test_01.txt
rm: удалить пустой обычный файл «test_01.txt»? yes
[lupoalberto@localhost tmp]$ cat test.sh
#!/bin/bash
rm $1
[lupoalberto@localhost tmp]$ ./test.sh test_02.txt
[lupoalberto@localhost tmp]$ ls -l test_*
ls: невозможно получить доступ к test_*: Нет такого файла или каталога
[lupoalberto@localhost tmp]$
[/console]

#25 26.06.2012 16:48:26

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Маленькие хитрости в Linux

Те, кто пишут скрипты, думаю, знакомы с флагом -i, и с алиасами.
Совет был новичкам, представляете ситуацию - начинающий юзер удалил фильм любимой актриссы (Claudia Ricci к примеру, или Sasha Grey), что делать? Как дальше жить? Назад в окна, где по дефолту предупреждающее окошко..?

#26 26.06.2012 17:12:04

yars
Administrator
Зарегистрирован: 23.03.2012
Сообщений: 9 369
IP-адрес

Маленькие хитрости в Linux

Lupo Alberto, спасибо. Плоховато я с этим знаком, получается.

#27 26.06.2012 18:41:09

bormant
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 265
IP-адрес

Маленькие хитрости в Linux

yars,
"man bash" расскажет, что bash читает ~/.bashrc только при запуске в интерактивном режиме, а в неинтерактивном режиме (а скрипты исполняются в неинтерактивном режиме) игнорирует.

#28 26.06.2012 18:42:33

zenon
Administrator
Зарегистрирован: 04.05.2010
Сообщений: 8 784
IP-адрес

Маленькие хитрости в Linux

Ньюзенон, осталось звезду прикрутить и получится новогодняя елка )

При чем тут елка? Просто хооший и удобный конфиг для zsh.

#29 26.06.2012 18:51:38

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Маленькие хитрости в Linux

Ньюзенон, осталось звезду прикрутить и получится новогодняя елка )

При чем тут елка? Просто хооший и удобный конфиг для zsh.

не в обиду было сказано. шутки ради.
красивая консоль. но меня сбивает с толку куча вкусностей.
подскажи плз мне бы только приглашение разукрасить чтоб ориентироваться было проще между командами

#30 26.06.2012 18:54:13

ormorph
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 902
IP-адрес

Маленькие хитрости в Linux

yars
Тут все просто, файл .bashrc влияет, только на текущую оболочку bash скрипт же запускается в новой оболочке, на которую этот файл уже не действует, за это как раз и отвечает первая строчка #!/bin/bash.

Можно создать файл с содержимым rm $1 без строчки #!/bin/bash и дать права на выполнение, тогда файл .bashrc будет уже влиять.

Другими запуск скрипта, аналогичен команде bash -c "rm file"

Board footer