Титла: Customizer Публикувано от: smil3y в Oct 19, 2010, 23:44 Здравейте.
Първо искам да подчертая, че не съм кой знае колко опитен, но набирам скорост. Та направо към въпроса -- започнах да пиша една програмка ( нищо сложно, просто bash скриптчета ), с която да можеш да си правиш собствения дистрибуция на базата на Убунту. Целта ми е да "навляза" в света не програмирането като започна от някаде и реших, че bash не е толкова труден и сложен език за програмиране. Дотук добре, научих по-основното и с всеки ден по-добър ставам :P . Програмката не е от особенно значение ( неискам да се фукам, тей като има хора много по-напред от мен в програмирането ), но все от някаде трябаше да започна. За в бъдеще мисля да науча и Python или C, но засега ще остана на bash. Всяко мнение по въпроса как да осъвършенствам, оптимизирам или добавя финкция в програмката ще ми е от полза, така че пишете на воля ;). Можете да свалите последната версия от ТУК ($2) Ето и повече инфо за програмката: (http://u-customizer.eu5.org/images/U-Customizer.png) използва Убунту ISO-файл за основа ( Ubuntu-Mini-Remix ISO например ) Основните функии и опций на програмката са: -- Автоматична инсталация на нужните програмки -- CLI-Chroot -- GUI-Chroot ( използва Xephyr ) -- Автоматично инсталиране на програми от предварително зададени листи ( минимална или пълна графична среда като Gnome, KDE и др. ) или променяне на листа ръчно -- Стартиране на Synaptic в Chroot среда -- "Разглеждане" на екстракнатата файлова система като ROOT ( за по-лесна донастройка, добавяне на файлове и др. ) -- "Разглеждане" на ISO папката като ROOT ( добавяне на файлове и др. ) -- Промяна на LiveCD ХОСТ-име, ЮЗЪР-име и пълно ЮЗЪР-име -- QEMU ( подкарва ISO-то под виртуална машина ) -- Автоматичен ISO-билд -- Изчистване на временните файлове и директорий -- Автоматично инсталиране на DEB пакети -- Автоматично изпълняване на команди в Chroot среда -- Преглед на инсталираните пакети в лист -- Лесно и бързо копиране на файлове -- Запазване или отваряне на проекта в/от файл (snapshot) и други... Програмката се инсталира в директорията /opt/Customizer. Програмката си прави линк в System Tools във вашето меню. Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: romeo_ninov в Oct 20, 2010, 11:40 1. Нужно ли е разширението да е bash, не може ли просто да е sh
2. след като имате дефиниран интерпретатор на първия ред на всеки скрипт защо го викате с bash ime_na_script.bash? 3. никъде не проверявате като какъв потребител се стартира скрипта, а някои операции може да са възможни само за root 4. навсякъде предполагате че се намирате в правилната директория, а това може да е много опасно предположение 5. Никъде не проверявате дали скрипта, който стартирате го има наистина 6. задавайте пълни пътища към командите, никой не ви дава сигурност че нещо ще го има в пътя 7. опитайте се да окрупните файловете и да отделите всички функции в един отделен файл П.П. Bash далеч не е добра стартова точка за да се учите на програмиране Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Oct 20, 2010, 20:15 НАКРАТКО:
1. Еми има разлика между bash и sh -- bash е една от многото shell-ове които Линукс използва. Аз пердопочетох да използвам bash а не sh, затова и разширението е *.bash 2. Зашото така се стартират bash скриптове от терминал 3. НАПРОТИВ -- проверява се в почти всеки "енджин" ( основнен скрипт в програмата ми ). В началото на вески съм включил проверка 4. да, опасно е, НО тепърва ще вклиючвам и ИФ елементи в скриптовете за проверка на файловете и функцийте. Просто реших да имам някаква основа, която да мога да доразвия в последствие 5. дам, погледни пак 4 6. не съм задал пълните пътища, за да може програмата да работи в всяка директория а не да има проблеми при разархивиране в произволна папка. Например ако аз съм я правил да работи под директория /home/moeuserime/U-Customizer , дори и да я сложиш в твоята хоум директорията, програмата няма да работи, тей като юзър името не е същото като моето 7. Съжелявам. но май не си преглеждал програмката подробно -- направил съм го. Основните скриптове ( отделни за всяка основна функция ) са в папка ENGINE, има папки за лог-файловете, за конфигурационните файлове, а нужните папки, за да работи програмта ( TEMP и CHROOT ) се създават ако не съществуват. Моля, хвърли й един поглед ( по-подробно ) и питай ако има нещо др. Ще се опитам да го обесня, ако мога разбирасе, ако ли не ще потърся инфо в нета и тогава ще се опитам да ти обесня, за да не стане хаус. Мисля да започна да правя GUI за програмката ( с Glade или QT4 ), за да вида дали ще се справя ( поне до някаква степен ), но ще пада четене преди да се получи нещо, което да работи дори на на 10% :D .. П.П. Може и да съм сбъркал някъде, но се съмнявам. Ако все пак съм сбъркал, някой по-опитен да ме поправи. А, и.. защо имам чувството, че ме пробваш на акъл ??? Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: romeo_ninov в Oct 20, 2010, 22:22 1. Еми има разлика между bash и sh -- bash е една от многото shell-ове които Линукс използва. Аз пердопочетох да използвам bash а не sh, затова и разширението е *.bash
Интересно защо скриптовете независимо дали са на корн или бърн под UNIX са си все sh 2. Зашото така се стартират bash скриптове от терминал А да си чувал за флаг Х. И ако така стартираш чий го крепи това в първия ред: Код: #!/bin/bash 3. НАПРОТИВ -- проверява се в почти всеки "енджин" ( основнен скрипт в програмата ми ). В началото на вески съм включил проверка Къде са тези проверки, погледнах, меню, едитап и нямат 4. да, опасно е, НО тепърва ще вклиючвам и ИФ елементи в скриптовете за проверка на файловете и функцийте. Просто реших да имам някаква основа, която да мога да доразвия в последствие Това трябва да се направи още в началото, не после! 5. дам, погледни пак 4 Предишния ми коментар 6. не съм задал пълните пътища, за да може програмата да работи в всяка директория а не да има проблеми при разархивиране в произволна папка. Например ако аз съм я правил да работи под директория /home/moeuserime/U-Customizer , дори и да я сложиш в твоята хоум директорията, програмата няма да работи, тей като юзър името не е същото като моето Кой е казал че е нужно да се задава твърдо пътя, man dirname 7. Съжелявам. но май не си преглеждал програмката подробно -- направил съм го. Основните скриптове ( отделни за всяка основна функция ) са в папка ENGINE, има папки за лог-файловете, за конфигурационните файлове, а нужните папки, за да работи програмта ( TEMP и CHROOT ) се създават ако не съществуват. Идеята ми беше да се съберат функциите в един файл, не да има във всеки, това, което видях ми се видя ужасно разхвърляно ... Мисля да започна да правя GUI за програмката ( с Glade или QT4 ), за да вида дали ще се справя ( поне до някаква степен ), но ще пада четене преди да се получи нещо, което да работи дори на на 10% :D .. tcl/tk П.П. Може и да съм сбъркал някъде, но се съмнявам. Ако все пак съм сбъркал, някой по-опитен да ме поправи. А, и.. защо имам чувството, че ме пробваш на акъл ??? Не, но ти не си се научил да слушаш и приемаш критики. А, и да четеш повечко за ОС, не само отгоре-отгоре... П.П. И между другото такъв код е глупав: Код: cd ENGINE Код: clear П.П.П. Не ме карай да навлизам по-навътре, по-добре преосмисли философията и започни от начало Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Oct 20, 2010, 22:58 Ами честно казано аз това търся -- критики, за да знам как да осъвършенствам кода. Знам, че има много "боклук" в него, но в бъдеще ще го оптимизирам ( по-ясен и кратък код без ненужни команди ). Ще постъпя разумно и няма те занимавам с програмката докато не "изчистя" скриптовете. И все пак ако имаш конкретни предложения как да заместя част от код с друг, опиши какво с какво да заместя. Иначе аз съм нов в занаята, така че моля да бъда извинен ако не съм напвавил нещо както трябва в скриптовете.
П.П. Явно хората които следят форума са доста заети. Еми да, разбирам ви -- на разбирачите не им се занимава с тъпи въпроси ( неискам да прозвучи грубо, но е факт ). Затова може би най-добрият вариант е да чета из нета, да науча туй-онуй, пък каквото стане в крайна сметка :D Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Oct 21, 2010, 23:07 Оф, знам че сте заети хора но имам един странен проблем. Когато опитам да пусна скрипта за проверка, който направих, ми дава следния резултат в лог-файла:
Check.sh: line 99: syntax error near unexpected token `else' Check.sh: line 99: `else' В скрипта всичко е наред, но просто неиска да се пущи ако неизтрия редовете за проверка на .диск папката. Ако ми обясните защо става така ще съм мн благодарен. Благодаря предварително :) Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: neter в Oct 21, 2010, 23:12 Не си си довършил if-a на ред 97. Това
Код трябва да бъде така Код
Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Oct 21, 2010, 23:20 :o мерси. Мн тъпа грешка ;D. Иначе скоро ще пусна нова версиика, която доста си поиграх да преработя. Останаха ми само менютата и ще обновя темата. Мерси отново ;D
Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Oct 22, 2010, 23:25 Така. обнових темата с новата версийка. Сега искам да попитам дали на някой му се прави ГУИ за скриптовете ( малко се съмнявам ). Ако не, ще се ровя в нета, ще си бия главата в стената, пак ровене в нета, бой.. та така докато стане. Единствения проблем е че незнам как да настроя бутоните и др. работи да дават коректен сигнал, за да въздействат на конфигурационните файлове и да пускат скриптовете. Та започвам да ровя пък ще видин до каде ще стигна :D . Иначе прикачам към поста и скрииншот и файловете, който успях да скалъпя набързо, за да дам пример какво искам да се получи.
Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: nedyalkor в Oct 23, 2010, 16:19 Не съм ти разглеждал скрипта, но ако идеята ти за графичен интерфейс не включва много сложни елементи можеш да използваш следните неща:
- dialog - за ncurses интерфейс - kdialog - за QT - zenity - за GTK - xdialog Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Oct 23, 2010, 22:35 Ами аз вече използвам Zenity диалози и др. работи в скриптовете, но искам да направя нещо повече от това. Та, започнах да замислям нещо на Qt4, Направих основния прозорец с бутоните и др. ,но пустите сигнали още немога да ги оправя :( . Те искат позняния върху Python , който ми липсват за съжаление :( , В момента чета като зубар, но ще ми отнеме доста време да науча основата и да мога да напваря нещо по-така.
Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: gat3way в Oct 24, 2010, 01:11 :)
Страничният (неприятен) ефект е че ако root-ския user пусне това, всеки потребител може да го накара да направи лоши неща. Примерно ползва се временен файл в /tmp с известно име, за да се wget-не google.com и съдържанието да се изсипе там. Колко му е преди това да създам един symlink примерно /tmp/index.google -> /lib/libc.so.6 и да гледам сеир :) В UseImage, правиш TEMP директорията world-writable, впоследствие другаде видях че копираш файлове от една поддиректория в друга поддиректория на TEMP. Лоши идеи ми идват в главата, примерно това може нарочно да се накара да race-не - от момента, в който TEMP стане world-writable до момента в който се копират файлове, мога да презапиша source фаила и да symlink-на destination файла нанякъде - резултатът ще бъде да презапиша който си искам файл на системата (което означава сдобиване с root достъп - примерно чрез създаване на мой си cronjob в /etc/crontab). Ъм лошото на шел скриптовете е че много лесно се изпускат такива неща. П.П и все пак предвид това: Цитат sudo rm -rf /tmp/index.google ln -s / /tmp/index.google ми се вижда много забавна идея :) Жалко че педалите от убунту развалиха хубавата команда rm :( Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: c111100101 в Oct 24, 2010, 13:44 Всички сценарии за bash могат да бъдат написани на python. защо не пишеш директно на python, това е един от най-лесните езици за изучаване и същевременно предлага доста мощни инструменти за професионално програмиране дори.
Имам доста добри книги за python на руски. Щях да прикача тази книга Python.v.sistemnom.administrirovanii.UNIX.i.Linux.Noah.Gift.2009 но е много малък допустимия размер за прикачване. Нея както и други интересни книги за програмиране на каквито се сетиш езици може да намериш тук: http://rutracker.org/ ($2) Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Oct 24, 2010, 19:31 Проблема е, че неразбирам руски :D.. иначе започнах да чета тука там и намерих един мн добър сайт. Та сега чета усърдно в свободното си време ( което напоследък не е много :( ) .
Първоначалната ми идея беше да направя скриптовете на базата на BASH, а после да направя и графичен интерфейс за нея с Glade, Qt4 или някоя друга подобна програмка ( изборът е голям ), но след като четох тук-там и пробвах няколко програмки за направата на ГИ разбрах, че повечето искат и познания върху Python. Тук идва момента на обрата -- започнах да си мисля, че наистина ще е по-добре програмката ИЗЦЯЛО да е написана на Python. Въпросът е, че тепърва ще свиквам с Python, а в момента имам сравнително добри скриптчета. Та може и да стане друго яче - да си остана с скриптовете, за само ГИ да е направен с Qt4 например, а останалото да си останат скриптчетата, тей като ще се наложи да пренапиша ВСИЧКО ( демек отначало :( ). Ще почета още, за да разбера доло горе какви са възможностите на Python и какви са недостатъците му ( дотук един ГОЛЯМ -- всичко трябва да е стрикно написано, което може да ми отнема доста време в дебъгване на писаниците ми ), пък тогава ще преценя какво да правя. Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: romeo_ninov в Oct 24, 2010, 19:45 ...Това, което смятате за недостатък всъщност е преимущество, защото учи на подреденост и кара да обмислите какво ще правите преди да се захванете всъщност да го правите. И в този смисъл Питон е по-добър "учител" за начинаещи програмисти. Титла: Re: Търся мнения от професионалистите ( bash скриптинг ) Публикувано от: smil3y в Nov 03, 2010, 13:28 ЗА ВСИЧКИ ФЕНОВЕ ( :D ):
новата версия е готова!!! 1. Имах проблеми с PC-то и това ми коства 5 ДНИ ! >:( 2. Вече има ГИ написан на Gambas2 3. В момента се занимавам с направта и тестването на деб пакет. След като приключа с него ще обновя темата Титла: Re: >> U-Customizer << Публикувано от: smil3y в Nov 05, 2010, 00:28 Ето я и новата верскийка :D -- 1.8.1
Титла: Re: >> U-Customizer << Публикувано от: smil3y в Nov 08, 2010, 23:56 Обновявям темата с нова версийка :)
Титла: Re: >> U-Customizer << Публикувано от: bop_bop_mara в Nov 09, 2010, 10:14 Програмката се инсталира в директорията /usr/U-CustomizerТова сериозно ли?? Не може ли да е в някое по-общоприето място място (включено в $PATH да речем)? Титла: Re: >> U-Customizer << Публикувано от: romeo_ninov в Nov 09, 2010, 12:19 Марче, права си че /usr/.... не е добро място, но по-подходящо би било /usr/local или /optПрограмката се инсталира в директорията /usr/U-CustomizerТова сериозно ли?? Не може ли да е в някое по-общоприето място място (включено в $PATH да речем)? Пътя лесно се "добавя" със софтлинк Титла: Re: >> U-Customizer << Публикувано от: bop_bop_mara в Nov 09, 2010, 13:55 Дам, /opt е най-добре [_]3Марче, права си че /usr/.... не е добро място, но по-подходящо би било /usr/local или /optПрограмката се инсталира в директорията /usr/U-CustomizerТова сериозно ли?? Не може ли да е в някое по-общоприето място място (включено в $PATH да речем)? Титла: Re: >> U-Customizer << Публикувано от: smil3y в Nov 09, 2010, 18:45 Ще го оправя в следващата версия, благодаря за мненията ;). Ако има нещо друго -- не се стеснявайте..
Титла: Re: >> U-Customizer << Публикувано от: smil3y в Dec 16, 2010, 02:45 Ако все още има хора, които се интересуват: Уебсайт ($2) Форум ($2) Титла: Re: >> U-Customizer << Публикувано от: smil3y в Dec 01, 2011, 03:35 Здравейте!
Първо да се извиня, че "съживявам" стара тема, но не мисля, че да пусна нова е по-доброто решение. Та, все още се занимавам с тази програмка. Измина доста време от както започнах да работя по нея и ето до къде стигнах - https://github.com/fluxer/Customizer. Чета следната ($2) тема и гледам доста умни хора се събрали тука, та реших да попитам компетентните по върпросите ми. Основата все още си е Bash, граичният интерфейс е писан на Gambas2 (Visual Basic за Линукс). Работя усърдно да я направя по-функционална и осъвършенствана, но все пак стигам до положение, до което става една голяма каша. В последните 2-дни се опитвам да организирам нещата, та да може, в крайна сметка, да е по-лесно за мен и за потрибелите, който искат, да четем кода. Най-добре ще е да сложа кода, който се използва често във функции или променливи - това го разбирам. Но, самата организация нещо ми куца. Планирам Functions.sh да стане common и всичко обшо да е там, до тук добре. Но, идва един проблем - в скриптовете за chroot правя файл всеки път, това мога да разделя на два скрипта (подготовка и излизане от chroot-средата) но ми трябва контрол върху това което ще се случи между тези два скрипта. Идеята някак не ми харесва. Нещата се разделят твърде много на модули, в който трудно се следи какво се случва. Пиша си с един приятел (Испанец) и той ми предлага да пробвам с Python, но ми се струва, че нещата ще станат много по-сложни от колкото са в момента. Да, Python предлага добър начин за управляване на грешките (try - except), но до момента само това ми грабна вниманието. Дори аргументите към скрипт се "понасят" по-лесно при Bash, при Питона нещо не успях да намеря задоволителен начин да извикам функция с argparse модула. Ако някой има идеи как бих могъл да организирам кода си по добър начин за лесна работа с него - да предлага! ПП Бъдете милостиви, ползвам ГНУ/Линукс от малко повече от 1-година и не се считам за гуру :D |