Скрипты в Linux

Опрос

Каким языком пользуетесь?
php
ruby
python
perl
C
C++
bash
haskell
brainfuk
java
lua
Over
Действительно linux для многих будет неудобен, если неиспользовать скрипты для часто повторяющихся действий... И так ближе к делу сегодня расмотрим создание скриптов на нескольких языках...
1. PHP так как я php программист то первым будет именно он:

#!/usr/bin/php
<?php
    class testScript {
        public function __construct(){
            echo "Hellow world \n";
        }
    }

    new testScript();
?>
2. ruby

   #!/usr/bin/ruby
   puts "Hello world \n";
3. python

  #!/usr/bin/python
  print "Hello world \n"
4. bash

   #!/usr/bin/bash
   echo "Hello world \n"

И т.д.
Первая строка каждого скрипта описывает интерпритатор который будет выполнять этот скрипт
#!/usr/bin/bash это путь к интерпритатору
Далее что бы скрипт выполнялся ему необходимо установить права соответствующие права доступа.

   $ chmod a+x testScript.php
   $ ./testScript.php
    Hellow world
   $
Ну и последний штрих, хотелось бы что бы скрипт можно было выполнить в любой папке и не указывать каждый раз путь до него...
Есть несколько способов решить эту проблему:
1. Добавить новый путь в переменную PATH

   export PATH=$PATH:/home/user/bin
И все юзерские скрипты ложить в свою директорию в папку bin
для автоматизации можно написать скрипт добавления директории в путь при загрузке.
autoload_path

    #!/usr/bin/bash
    export PATH=$PATH:/home/user/bin
Далее установить права

    chmod a+x autoload_path
И скопировать в /usr/bin/
естевственно из под su(super user) или root проще говоря

   cp ./autoload_path /usr/bin/

и последним штрихом добавить этот скрипт в автозагрузку настроев из окружения рабочего стола
или же просто добавив в ~/.xinitrc...
После этого скрипты лежащие в /home/user/bin/ будут доступны для выполнения.

2. Способ делать сим линки в bin

sudo ln -s /home/user/bin/testScript /usr/bin/testScript

3. Просто копирую скрипт в /usr/bin/

sudo cp /home/user/bin/testScript /usr/bin/testScript

4. Способ от nafanja...

Aivar
/usr/local/bin/
+1

lnroman
Ну и последний штрих, хотелось бы что бы скрипт можно было выполнить в любой папке и не указывать каждый раз путь до него...
такой вариант более правильный.
~/.local/bin/
а путь нужно прописать
для bash ~/.bash_profile
export PATH=~/.local/bin:$PATH
для zsh ~/.zprofile
path=(~/.local/bin $path)
typeset -U path
нужно заметить, что приоритет должен быть у локального пути к исполняемым файлам!
Я пишу скрипты проверяю и пользуюсь 3-им способом просто копирую в соответствующие папки bin или sbin. Но первый способ кажеть мне изящнее я пока не знаю может более опытные пользователи archlinux подскажут и более красивые решения данных задач...
Тема вроде как про скрипты, но в тоже время даны в голосовании никак не скриптовые языки...
lnroman, признаться, я так и не понял, что вы хотели сказать и что сей блог несет нового и полезного.

lnroman
3. Просто копирую скрипт в /usr/bin/
Для этого лучше подойдет директория /usr/local/bin/
lnroman, зачем ты над php так поиздевался???

Aivar
/usr/local/bin/
+1

lnroman
Ну и последний штрих, хотелось бы что бы скрипт можно было выполнить в любой папке и не указывать каждый раз путь до него...
такой вариант более правильный.
~/.local/bin/
а путь нужно прописать
для bash ~/.bash_profile
для zsh ~/.zprofile
export PATH=~/.local/bin:$PATH
нужно заметить, что приоритет должен быть у локального пути к исполняемым файлам!
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Тема "Скрипты в Linux", а в самом Опросе указаны также и не скриптовые языки, вы либо название темы поменяйте либо опрос подправьте, а то путаница какая-то получается.
nafanja
lnroman, зачем ты над php так поиздевался???

PHP - Ну это не только язык для разработки веб-приложений... С помощью его можно писать полноценные консольнве приложения, он имеет нативные методы работы с командной строкой, да если я хорошо знаю php зачем мне учить какой то другой язык программирования? правильно незачем...

В общем дискусию о php можно продолжать и продолжать, кто то будет говорить что "php это не до язык и т.д.", об этом споры не утихнуть, но всё же большинство из тех кто так говорит имеют, в корне не правильный подход к программированию а потом говорят что "php это нечто плохое", "php фреймворки это что ояень тяжёлое" ну так ясен пень если человеку нехватает ума хотябы прочитать что такое "патерны программирование" что такое MVC, singleton, factory, driver, adapter и т.д. Потом удивляються почему ничего неполучаеться, почему лезит куча багов, почему всё тормазит(так ясен пень сплошь одни масивы и работы с регулярками)...

В общем то язык программирования это лишь инструмент, и нет "плохих" языков есть не премые руки.

П.С. На счёт не скриптовых языков в опросе:
- Может кто то программирует на и ему удобней просто скомпилировать программку на нём и выполнять вот C в опросе...
- На счёт brainfuk шутка.
П.П.С. А информационная нагрузка я как то, когда устновил gentoo и начел с ней работать то задался вопросами как написать скрипт? как сделать что бы он запускался? а я хочу на php как? а я хочу весде его запускать и т.д.? тогда я не получил ответов разом с наскока. Вот и родился этот блок сейчас....
lnroman
П.С. На счёт не скриптовых языков в опросе:
- Может кто то программирует на и ему удобней просто скомпилировать программку на нём и выполнять вот C в опросе...
это всё понятно, просто видно явное несоответствие названия темы и опроса.
Если придраться по мелочи то и сам опрос немного "неполный":
- во первых выбор только одного пункта, а не мешало бы задать множественный выбор
- во вторых не хватает пункта "Другие языки"
- да и сам bash наверное лучше заменить на "Языки командной оболочки Shell" куда уже входят sh, bash, zsh и подобные
lnroman
PHP - Ну это не только язык для разработки веб-приложений... С помощью его можно писать полноценные консольнве приложения, он имеет нативные методы работы с командной строкой, да если я хорошо знаю php зачем мне учить какой то другой язык программирования? правильно незачем...

Это точно.
Обработка 1Gb csv данных с распаковкой по таблицам в MariaDB - около 180 минут (12 ядер, хотя это здесь ни к чему).
То же самое в NodeJS - около 8 минут (вот здесь 12 ядер).

Надеюсь, руки не кривые :)
Рядовая таблица не менее 20000000 записей.
lnroman, я об этом
lnroman
1. PHP так как я php программист то первым будет именно он:
#!/usr/bin/php
<?php
class testScript {
public function __construct(){
echo "Hellow world \n";
}
}

new testScr
просто поразило! с какого бодуна можно было так сговнокодить на "Привет Мире" :D
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
corner, судя по тому что ты выше написал, ~ в два раза медленнее получается отработка в php ;)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
 
Зарегистрироваться или войдите чтобы оставить сообщение.