Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Конзолни решения


tux

Препоръчан отговор

Хубаво е да беше написал какво прави скрипта. Или трябва да се оглеждаме за rm- rf :) може да си дал скрипт за триене на /home примерно :)

Линк към коментара
Сподели в други сайтове

  • Отговори 438
  • Създадено
  • Последен отговор

Потребители с най-много отговори

Защо смяташ че ще се занимавам с това.

Ако поне малко познаваш линукс ще знаеш какво е imagemagick както и другия "скрипт" който е за качване на текстови файлове в sprunge.us

 

Линк към коментара
Сподели в други сайтове

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

Линк към коментара
Сподели в други сайтове

преди 1 минута, Росен Р. Александров написа:

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

Вярно но въпрос на елементарна учтивост и внимание към другия е да напишеш за какво е скрипта - това ще ти отнеме много по-малко време отколкото на някой да разбере сам, особено, че вероятността да ми трябва точно сега - независимо какво прави е малка...

Линк към коментара
Сподели в други сайтове

  • 5 седмици по-късно...

Опитвам се да взема всички видео файлове от една папка и да направя линкове към тях в друга.

Измислих следния начин:

ln -s $( find ~/Downloads \( -name "*.avi" -o -name "*.mkv" -o -name "*.mp4" -o -name "*.wmv" \) ) ~/Desktop

Обаче това не работи при файловете, които имат интервал в името. Третира всяка дума като отделен файл - нормално.

Някакви идеи?

Редактирано от bornofash (преглед на промените)
Линк към коментара
Сподели в други сайтове

Да, сблъсквал съм се с това. Ползва се системна променлива от обкръжението на шела $IFS, мисля че се казваше "file name space".

Ето прочети повече тук: https://bash.cyberciti.biz/guide/$IFS

И пример как да се използва, точно за файлове с интервали в името:

find . -type f -name "*.csv" -print0 | while IFS= read -r -d '' file; do
    echo "file = $file"
done

 

Редактирано от Topper (преглед на промените)
Линк към коментара
Сподели в други сайтове

Мхм, първият начин проработи идеално.

find ~/Downloads \( -name "*.avi" -o -name "*.mkv" -o -name "*.mp4" -o -name "*.wmv" \) -print0 | while IFS= read -r -d '' file; do
    ln -s "$file" ~/Desktop
    done

И вторият начин проработи, като промених IFS

IFS="$(printf '\n\t')"

Обаче не мога да накарам „ls“ да изкарва файлове от папките в папка „~/Downloads“, дори когато му сложих „-Ra“ Но не е болка за умиране.

Благодаря ви.

Линк към коментара
Сподели в други сайтове

  • 9 месеца по-късно...

Попаднах на една много интересна програма: translate-shell. Превежда думи, изречения и дори цели уеб страници. Може дори да изговаря английските думи. Има доста опции и не съм ги прегледал всички. Но ето един пример, както аз я ползвам в комбинация с xsel и zenity за превод от английски на български:

След като си я свалиш в някоя директория от

echo $PATH

и я направиш изпълнима с

chmod +x trans

Правиш клавишна комбинация със следната команда:

trans :bg "$(xsel)" -no-ansi|zenity --text-info

След това маркираш дума или текст, където и да е, и изпълняваш клавишната комбинация.

Резултатът – изскача ти прозорец с превода:
 

Spoiler

 

2017-01-26-131044_734x656_scrot.png

 

 

 

Има и опция за възпроизвеждане на аудио:

trans :bg -p "$(xsel)" -no-ansi|zenity --text-info

предполагам го възпроизвежда с плеъра по подразбиране така, но може и да се избере друг. Например MPV:

trans :bg -player mpv "$(xsel)" -no-ansi|zenity --text-info

та тогава може да се чуе и произношението, когато се изпълни клавишната комбинация.

––––––––––––––––––––––––––––––––––––

Днес си поиграх малко, за да оползотворя двата бутона отдолу. Обобщено – зависимостите са: zenity, xsel, mpv, trans.

#!/bin/bash

translate() {
	trans :bg -dictionary "$(xsel)" -no-ansi|
	zenity --text-info \
	--cancel-label="Изход" \
	--ok-label="Чуй"
}

while translate; do
	trans :bg -player mpv "$(xsel)"|
	zenity \
	--progress \
	--pulsate \
	--no-cancel \
	--auto-close \
	--text="Възпроизвеждане"
done

Копира се скриптът във файл на име trans.sh (примерно). Прави се изпълним с chmod +x trans.sh. И се слага на клавишна комбинация.

Редактирано от bornofash (преглед на промените)
Линк към коментара
Сподели в други сайтове

  • 7 месеца по-късно...

За старите потребители в Линукс ОС графичното управление е кощунство и не признават друго, освен конзолата, но за новите потребители, идващи от света на Уиндоус този конзолен начин на управление в повечето случай ги отказва, а Линукс, освен, че е безплатен, за сървърна употреба предлага много по-дори и интересни възможности и решения. Аз лично съм изпробвал почти всички налични графични интерфейси и по-добър от Webmin и Virtualmin не съм открил. Може би и аз отдавна бих избягал от Линукс, ако нямах тези добри графични инструменти и трябваше да правя всичко конзолно.

За тези, които не знаят, Виртуалмин е добавка към Уебмин за уеб хостинг. С инсталирането и, за всеки нов домейн се създава нов юзер собственик на домейна с ограничени права свързани само с управлението на домейна си без достъп до основните неща в системата и да направи някаква поразия, а също така, задно с новия домейн наглася и мейл сървър към него и още други неща. Принципа на който работят е, че за разните действия които потребителя иска да извърши те извършват нужните команди конзолно за да се получи нужния резултат. 

Уебмин може да се инсталира и върху машина с инсталирани вече други приложения вече, но виртуалмин изисква да се инсталира върху съвсем чисто инсталирана система. Аз работя и само с Убунту. Не твърдя, че това е най-добрата дистрибуция, а просто с нея съм започнал като по-лесна и до сега не съм имал нужда от друга в която да има нещо, което да ми липсва в Убунту, но който работи с други дистрибуции, нещата и в другите са аналогични. 

Създавам тази тема с цел, който споделя моето мнение да се обединим около едно или няколко графични решения за определени цели и да си споделяме опит и решения на възникващи в процес на работата проблеми, а също и с идеята и други да последват моя пример и споделят предимства и недостатъци на други графични решения, които ползват и познават. 

Ще започна темата с бърза инструкция за инсталирането на Webmin. В него има доста графични настройки за настройка и десктопи, които липсват в десктоп настройките. За мен е бил незаменим инструмент дори и когато ползвах Линукс за десктоп. В момента ползвам Уиндоус десктоп поради нуждата от софтуер на който нямам аналог за Линукс, но това е друга тема. 

# Инсталиране на Webnin

1) sudo -i # Влизаме в системата като root юзер и вече всички команди ще ги изпълняваме без като администратор без sudo отпред

2) С тази команда отдолу добавяме хранилището на Уебмин
cat >> /etc/apt/sources.list.d/webmin.list <<-EOF
deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
EOF

3) wget http://www.webmin.com/jcameron-key.asc && apt-key add jcameron-key.asc  # Изтегляме и инсталираме ключовете за него.

4) apt-get update && apt-get install webmin  # Ъпдейтваме хранилищата и инсталираме Уебмин. 

5) apt-get install build-essential gcc sudo unzip libc6-dev libwrap0 libwrap0-dev curl libwww-perl # Инсталираме допълнителни пакети, които ще са нужни допълнително за компилиране на някои Perl модули, но може и без тях. 

# Допълнителни Perl модули, без които също може.
cpan PAR::Dist
cpan ExtUtils::MakeMaker
cpan Authen::Libwrap

Сега вече, след като сме го инсталирали, можем да влезем в него, ако е на локалната машина на адрес https://localhost:10000 , а ако е на отдалечена машина https://ip_na_mashinata:10000 с юзер root и паролата му, ако не сме разрешили преди това логването с руут юзер, то с първия с администраторските права, който сме задали при инсталиране на системата. Разрешването на логването с администраторския root юзер става с командата  sudo passwd и след нейното изпълнение задавате парола на руут юзера. 

Линк към коментара
Сподели в други сайтове

Ебасси!!!! Половин час писах нова инструкция за инсталирането на Виртуалмин и настройка на рутер с Shorewall с него като допълнение на тази тема и вие през това време сте я преместили целия ми труд отиде на вятъра!

Няма да я пиша отново! Пускам линк към форума Линукс.бг, дето съм я писал малко по-повърхностно преди! 

http://www.linux-bg.org/forum/index.php?topic=47774.0

Линк към коментара
Сподели в други сайтове

  • 2 години по-късно...

Здравейте въпрос за awk.

не можах да намеря пример за обработка на текст с awk и резултата пак да обработя с awk на 1 команда, пробвах с разни калкулатори, но не можах да го измисля

идеята ми е да взема cpu usage на браузъра и да го сравня с някаква стойност  и от там да се направи нещо или нищо (в случая да блокирам screensaver/standby) със loop скрипт (който се изпълнява да кажем 1 път в минута), основната част на който е:

usage=$(top -bn1|grep -i chrome|awk '{print $9;exit}'|awk -F'[,]' '{print $1}')

[ $usage -gt 25 ] && xdotool key shift

на стария линукс top показваше само цяло число и скрипта беше така:

usage=$(top -bn1|grep -i chrome|awk '{print $9;exit}')

[ $usage -gt 25 ] && xdotool key shift

целта  е като слушам музика да работи скрийнсейвъра, а като гледам клип да не работи (и съответно да не се гаси екрана)... но на новия линукс top вади число след запетаята после не може да се сравни в bash - за това се изпълнява второто awk и то реже след запетаята... та идеята ми е дали може да стане на веднъж, не че много ще се забави процесора, но така да се каже "за спорта"

ето го целия скрипт:

#!/bin/dash
#prevent standby when browser playing video
#first make this file executable: chmod +x .fakekeyb_awk.sh
while true; do
sleep 60
usage=$(top -bn1|grep -i content|awk '{print $9;exit}'|awk -F'[,]' '{print $1}')
[ $usage -gt 20 ] && xdotool key shift
usage=$(top -bn1|grep -i plugin|awk '{print $9;exit}'|awk -F'[,]' '{print $1}')
[ $usage -gt 20 ] && xdotool key shift
usage=$(top -bn1|grep -i chrome|awk '{print $9;exit}'|awk -F'[,]' '{print $1}')
[ $usage -gt 20 ] && xdotool key shift
usage=$(top -bn1|grep -i palemoon|awk '{print $9;exit}'|awk -F'[,]' '{print $1}')
[ $usage -gt 25 ] && xdotool key shift
done

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

echo $(top -bn1|grep -i chrome|awk '{print $9;exit}'|awk -F'[,]' '{print $1}')

при клип дето е просто снимка натоварването е доста по малко от това на клип с видео... освен това натоварването зависи и от резолюцията и от самия браузър, така че не е съвсем перфектно... понеже top вади толкова резултата, колкото ядра/нишки има процесора, затова е добавен и exit - awk да принтне само първия...

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

no-screen-saver.desktop

[Desktop Entry]
Encoding=UTF-8
Name=no-screen-saver
Icon=display
Exec=lxterminal -t no-sleep --geometry=20x1 -e "dash -c 'while true; do xdotool key shift;  sleep 59; done'"
Type=Application

при стартиране вади прозорче и докато не го затворя пречи на screen-saver/standby

както се вижда скриптовете ползват xdotool, втория lxterminal (защото съм с lxde), но и с друг терминал ще работи...

Линк към коментара
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

  • Разглеждащи това в момента   0 потребители

    • Няма регистрирани потребители разглеждащи тази страница.
×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване