Відмінності між версіями «Цікаві набори команд»
Armyguy (обговорення • внесок) (→Робота з файлами та каталогами) |
Armyguy (обговорення • внесок) (→Робота з файлами та каталогами) |
||
Рядок 1: | Рядок 1: | ||
== Робота з файлами та каталогами == | == Робота з файлами та каталогами == | ||
# ''' cat config.conf | sed -e '/^#/d' -e '/^$/d' ''' - вивести вміст конфігураційного файлу без коментарів, коментарі помічаються на початку рядка знаком '''#'''. | # ''' cat config.conf | sed -e '/^#/d' -e '/^$/d' ''' - вивести вміст конфігураційного файлу без коментарів, коментарі помічаються на початку рядка знаком '''#'''. | ||
+ | # ''' iconv -c --from-code=cp1251 --to-code=utf8 ВХІДНИЙ_ФАЙЛ > ВИХІДНИЙ_ФАЙЛ''' - перетворити кодування у вхідному файлі з CP1251 на UTF-8 з ігноруванням можливих помилок (параметр -c). | ||
# ''' chmod g+s КАТАЛОГ ''' - вказати, щоб при створенні нових файлів у каталозі, виконувалося наслідування прав з батьківського каталогу. | # ''' chmod g+s КАТАЛОГ ''' - вказати, щоб при створенні нових файлів у каталозі, виконувалося наслідування прав з батьківського каталогу. | ||
# ''' find КАТАЛОГ -type f -name "*.php" -o name "*.html" ''' - пошук у каталозі та підкаталогах файлів з розширенням php та html. | # ''' find КАТАЛОГ -type f -name "*.php" -o name "*.html" ''' - пошук у каталозі та підкаталогах файлів з розширенням php та html. | ||
+ | # | ||
== Змінне середовище == | == Змінне середовище == |
Версія за 14:38, 4 квітня 2014
Зміст
Робота з файлами та каталогами
- cat config.conf | sed -e '/^#/d' -e '/^$/d' - вивести вміст конфігураційного файлу без коментарів, коментарі помічаються на початку рядка знаком #.
- iconv -c --from-code=cp1251 --to-code=utf8 ВХІДНИЙ_ФАЙЛ > ВИХІДНИЙ_ФАЙЛ - перетворити кодування у вхідному файлі з CP1251 на UTF-8 з ігноруванням можливих помилок (параметр -c).
- chmod g+s КАТАЛОГ - вказати, щоб при створенні нових файлів у каталозі, виконувалося наслідування прав з батьківського каталогу.
- find КАТАЛОГ -type f -name "*.php" -o name "*.html" - пошук у каталозі та підкаталогах файлів з розширенням php та html.
Змінне середовище
- export http_proxy=http://username:password@proxy_server:port/ - (встановлюємо параметри проксі-сервера для поточної консолі)
Скрипти
Щоб створити виконуючий скрипт в системі під управлінням ОС сімейства Linux або подібних, необхідно
- Створити файл.
- Виставити право файл виконувати rwx
- Відкрити файл на редагування і в заголовку вказати інтерпретатор для виконання коду
Для прикладу можемо навести список команд для створення скрипта на базі ОС Debian. Знак $ означає запрошення командного інтерпретатора.
hostname ~ # cd ~ (переходимо у домашній каталог) hostname ~ # pwd (переглянути шлях до поточного каталогу) /root hostname ~ # ls -l <b>виводимо</b> загалом 0 hostname ~ # > my_script.sh (створюємо порожній файл із вказаним іменем) hostname ~ # ls -l загалом 0 -rw-r--r-- 1 root root 0 кві 4 11:48 my_script.sh hostname ~ # chmod 700 my_script.sh (змінюємо права на файл, виставляємо права rwx для власника файлу, у нашому випадку - це користувач root) hostname ~ # ls -l загалом 0 -rwx------ 1 root root 0 кві 4 11:48 my_script.sh hostname ~ # nano my_script.sh (використаємо редактор nano для редагування вмісту файлу)
У вікні редактора набираємо код, для прикладу можна взяти наступний лістинг
#!/bin/bash echo "Hello world!" exit 0
Щоб записати введені дані у файл необхідно натиснути комбінацію клавіш ^O (знак ^ означає Control) та Enter. Для виходу необхідно натиснути комбінацію ^X.
hostname ~ # cat my_script.sh (виводимо вміст файлу на екран) #!/bin/bash echo "Hello world!" exit 0 hostname ~ # ./my_script.sh Hello world! hostname ~ #
Запустили скрипт на виконання. У команді запуску комбінація ./ означає шукати в поточному каталозі, інакше система буде намагатися знайти файл на виконання у каталогах, вказаних у змінному середовищі. Вище наведений скрипт виводить рядок Hello world! на екран і повертає код виходу з програми 0.
Скрипт для застосування прав до каталогу та його вмісту (рекурсивний обхід)
Виклик даного скрипта із указанням імені каталогу призведе, що усі файли в даному каталозі та в усіх підкаталогах отримають права типу chmod 664 $file а каталоги права типу chmod 775 $dir . У скрипті наведено приклад використання умовного оператору IF та оператора циклу FOR.
Список файлів для обробки отримуємо з результату виконання програми find "Директорія". Результат поміщається у масив і поелементно обходиться в циклі FOR, поточне значення заноситься у змінну $file.
#!/bin/bash DIR="" if [ -z $1 ]; then echo "Ви не вказали каталог для перетворення" else DIR=$1 for file in `find "$DIR" `; do if [ -f $file ]; then chmod 664 $file else if [ -d $file ]; then chmod 775 $file chmod g+s $file fi fi chown -R root.user $file done fi
--Микола Діхтяр 12:56, 4 квітня 2014 (EEST)