КОМАНДИ LINUX
| Команда | Опис |
|---|---|
| Системная информация | |
| arch | відобразити архітектуру комп'ютера |
| uname -m | |
| uname -r | відобразити версію ядра, що використовується |
| dmidecode -q | показати апаратні системні компоненти - (SMBIOS / DMI) |
| hdparm -i /dev/hda | вивести характеристики жорсткого диска |
| hdparm -tT /dev/sda | протестувати продуктивність читання даних з жорсткого диска |
| cat /proc/cpuinfo | відобразити інформацію про процесор |
| cat /proc/interrupts | показати переривання |
| cat /proc/meminfo | перевірити використання пам'яті |
| cat /proc/swaps | показати файл(и) підкачки |
| cat /proc/version | вивести версію ядра |
| cat /proc/net/dev | показати мережеві інтерфейси та статистику по них |
| cat /proc/mounts | відобразити змонтовані файлові системи |
| lspci -tv | показати у вигляді дерева пристрої PCI |
| lsusb -tv | показати у вигляді дерева пристрої USB |
| date | вивести системну дату |
| cal 2007 | вивести таблицю-календар 2007-го року |
| date 041217002007.00 | встановити системні дату і час ММДДЧЧммРРРР.СС (МісяцьДеньГодиниХвилиниРік.Секунди) |
| clock -w | зберегти системний час в BIOS |
| Зупинка системи | |
| shutdown -h now | Зупинити систему |
| init 0 | |
| telinit 0 | |
| shutdown -h hours:minutes & | запланувати зупинку системи на вказаний час |
| shutdown -c | скасувати заплановану по розкладу зупинку системи |
| shutdown -r now | перезавантажити систему |
| reboot | |
| logout | вийти з системи |
| Файли та директорії | |
| cd /home | перейти в директорію '/home' |
| cd .. | перейти в директорію рівнем вище |
| cd ../.. | перейти в директорію двома рівнями вище |
| cd | перейти в домашню директорію |
| cd ~user | перейти в домашню директорію користувача user |
| cd - | перейти в директорію, в якій перебували до переходу в поточну директорію |
| pwd | показати поточну директорію |
| ls | відобразити вміст поточної директорії |
| ls -F | відобразити вміст поточної директорії з додаванням до імен символів, що характеризують тип |
| ls -l | показати деталізоване подання файлів і директорій в поточній директорії |
| ls -a | показати приховані файли і директорії в поточній директорії |
| ls *[0-9]* | показати файли і директорії, що містять в імені цифри |
| tree | показати дерево файлів і директорій, починаючи від кореня (/) |
| lstree | |
| mkdir dir1 | створити директорію з ім'ям 'dir1' |
| mkdir dir1 dir2 | створити дві директорії одночасно |
| mkdir -p /tmp/dir1/dir2 | створити дерево директорій |
| rm -f file1 | видалити файл з ім'ям 'file1' |
| rmdir dir1 | видалити директорію з ім'ям 'dir1' |
| rm -rf dir1 | видалити директорію з ім'ям 'dir1' і рекурсивно все її вміст |
| rm -rf dir1 dir2 | видалити дві директорії і рекурсивно їх вміст |
| mv dir1 new_dir | перейменувати або перемістити файл або директорію |
| cp file1 file2 | скопіювати файл file1 в файл file2 |
| cp dir/* . | копіювати всі файли директорії dir в поточну директорію |
| cp -a /tmp/dir1 . | копіювати директорію dir1 з усім вмістом в поточну директорію |
| cp -a dir1 dir2 | копіювати директорію dir1 в директорію dir2 |
| ln -s file1 lnk1 | створити символьне посилання на файл або директорію |
| ln file1 lnk1 | створити "жорстке" (фізичне) посилання на файл або директорію |
| touch -t 0712250000 fileditest | змінити дату і час створення файлу, за його відсутності, створити файл з вказаними датою і часом (РРММДДггхх) |
| Пошук файлів | |
| find / -name file1 | знайти файли і директорії з ім'ям file1. Пошук почати з кореня (/) |
| find / -user user1 | знайти файл і директорію, що належать користувачу user1. Пошук почати з кореня (/) |
| find /home/user1 -name "*.bin" | Знайти всі файли і директорії, імена яких закінчуються на '. bin'. Пошук почати з '/ home/user1' |
| find /usr/bin -type f -atime +100 | знайти всі файли в '/usr/bin', час останнього звернення до яких більше 100 днів |
| find /usr/bin -type f -mtime -10 | знайти всі файли в '/usr/bin', створені або змінені протягом останніх 10 днів |
| find / -name *.rpm -exec chmod 755 '{}' \; | знайти всі файли і директорії, імена яких закінчуються на '.rpm', і змінити права доступу до них |
| find / -xdev -name "*.rpm" | знайти всі файли і директорії, імена яких закінчуються на '.rpm', ігноруючи знімні носії, такі як cdrom, floppy і т.п. |
| locate "*.ps" | знайти всі файли, що містять в імені '.ps'. Попередньо рекомендується виконати команду 'updatedb' |
| whereis halt | показує розміщення бінарних файлів, вихідних кодів і посібників, що стосуються файлу 'halt' |
| which halt | відображає повний шлях до файлу 'halt' |
| Монтування файлових систем | |
| mount /dev/hda2 /mnt/hda2 | монтує розділ 'hda2' в точку монтування '/mnt/hda2'. Переконайтеся в наявності директорії-точки монтування '/mnt/hda2' |
| umount /dev/hda2 | розмонтує розділ 'hda2'. Перед виконанням, залиште '/mnt/hda2' |
| fuser -km /mnt/hda2 | примусове розмонтування розділу. Застосовується в разі, коли розділ зайнятий якимось користувачем |
| umount -n /mnt/hda2 | виконати розмонтування без занесення інформації в /etc/mtab. Корисно коли файл має атрибути "тільки читання" або недостатньо місця на диску |
| mount /dev/fd0 /mnt/floppy | монтувати флоппі-диск |
| mount /dev/cdrom /mnt/cdrom | монтувати CD або DVD |
| mount /dev/hdc /mnt/cdrecorder | монтувати CD-R/CD-RW або DVD-R/DVD-RW(+/-) |
| mount -o loop file.iso /mnt/cdrom | змонтувати ISO-образ |
| mount -t vfat /dev/hda5 /mnt/hda5 | монтувати файлову систему Windows FAT32 |
mount -t smbfs -o username=user,password=pass//winclient/share [/mnt/share |
монтувати мережеву файлову систему Windows (SMB/CIFS) |
| mount -o bind /home/user/prg /var/ftp/user | "монтує" директорію в директорію (binding). Доступна з версії ядра 2.4.0. Корисна, наприклад, для надання вмісту користувача директорії через ftp при роботі ftp-сервера в "пісочниці" (chroot), коли симлінки зробити неможливо. |
| Дисковий простір | |
| df -h | відображає інформацію про змонтовані розділи з відображенням загального, доступного і використаного простору (Прим.перекладача. ключ -h працює не в усіх *nix системах) |
ls -lSr [|more |
видає список файлів і директорій рекурсивно з сортуванням за зростанням розміру і дозволяє здійснювати посторінковий перегляд |
| du -sh dir1 | підраховує і виводить розмір, займаний директорією 'dir1' (Прим.перекладача. ключ -h працює не в усіх *nix системах) |
du -sk * [|] sort -rn |
відображає розмір і імена файлів і директорій, з сортуванням за розміром |
rpm -q -a [-]-qf '%10{SIZE}t%{NAME}n' [|] sort -k1,1n |
показує розмір використовуваного дискового простору, займане файлами rpm-пакета, з сортуванням за розміром (fedora, redhat і т.п.) |
dpkg-query -W -f='${Installed-Size;10}t${Package}n'[|] sort -k1,1n |
показує розмір використовуваного дискового простору, займане файлами deb-пакета, з сортуванням за розміром (ubuntu, debian т.п.) |
| Користувачі і групи | |
| groupadd group_name | створити нову групу з ім'ям group_name |
| groupdel group_name | видалити групу group_name |
| groupmod -n new_group_name old_group_name | перейменувати групу old_group_name в new_group_name |
| useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 | створити користувача user1, призначити йому в якості домашнього каталогу /home/user1, в якості shell'/a /bin/bash, включити його в групу admin і додати коментар Nome Cognome |
| useradd user1 | створити користувача user1 |
| userdel -r user1 | видалити користувача user1 і його домашній каталог |
| usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 | змінити атрибути користувача |
| passwd | змінити пароль |
| passwd user1 | змінити пароль користувача user1 (тільки root) |
| chage -E 2005-12-31 user1 | встановити дату закінчення дії облікового запису користувача user1 |
| pwck | перевірити коректність системних файлів облікових записів. Перевіряються файли /etc/passwd і /etc/shadow |
| grpck | перевіряє коректність системних файлів облікових записів. Перевіряється файл/etc/group |
| newgrp [-] group_name | змінює первинну групу поточного користувача. Якщо вказати "-", ситуація буде ідентичною тій, в якій користувач вийшов з системи і знову увійшов. Якщо не вказувати групу, первинна група буде призначена з /etc/passwd |
| Виставлення/зміна повноважень на файли | |
| ls -lh | перегляд повноважень на файли і директорії в поточній директорії |
ls /tmp [|] pr -T5 -W$COLUMNS |
вивести вміст директорії /tmp і розділити вивід на п'ять колонок |
| chmod ugo+rwx directory1 | додати повноваження на директорію directory1 ugo(User Group Other)+rwx(Read Write eXecute) - всім повні права. Аналогічне можна зробити таким чином "chmod 777 directory1" |
| chmod go-rwx directory1 | забрати у групи і всіх інших всі повноваження на директорію directory1. |
| chown user1 file1 | призначити власником файлу file1 користувача user1 |
| chown -R user1 directory1 | призначити рекурсивно власником директорії directory1 користувача user1 |
| chgrp group1 file1 | змінити групу-власника файлу file1 на group1 |
| chown user1:group1 file1 | змінити власника і групу власника файлу file1 |
| find / -perm -u+s | знайти, починаючи від кореня, всі файли з виставленим SUID |
| chmod u+s /bin/binary_file | призначити SUID-біт файлу /bin/binary_file. Це дає можливість будь-якому користувачеві запускати на виконання файл з повноваженнями власника файлу. |
| chmod u-s /bin/binary_file | зняти SUID-біт з файлу /bin/binary_file. |
| chmod g+s /home/public | призначити SGID-біт директорії /home/public. |
| chmod g-s /home/public | зняти SGID-біт з директорії /home/public. |
| chmod o+t /home/public | призначити STIKY-біт директорії /home/public. Дозволяє видаляти файли тільки власникам |
| chmod o-t /home/public | зняти STIKY-біт з директорії /home/public |
| Спеціальні атрибути файлів | |
| chattr +a file1 | дозволити відкривати файл на запис тільки в режимі додавання |
| chattr +c file1 | дозволяє ядру автоматично стискати/розтискати вміст файлу. |
| chattr +d file1 | вказує утиліті dump ігнорувати даний файл під час виконання backup'а |
| chattr +i file1 | робить файл недоступним для будь-яких змін: редагування, видалення, переміщення, створення лінків на нього. |
| chattr +s file1 | дозволяє зробити видалення файлу безпечним, т.е. виставлений атрибут s говорить про те, що при видаленні файлу, місце, займане файлом на диску заповнюється нулями, що запобігає можливість відновлення даних. |
| chattr +S file1 | вказує, що, при збереженні змін, буде виконана синхронізація, як при виконанні команди sync |
| chattr +u file1 | цей атрибут вказує, що при видаленні файлу вміст його буде збережено і за необхідності користувач зможе його відновити |
| lsattr | показати атрибути файлів |
| Архівування та стиснення файлів | |
| bunzip2 file1.bz2 | розтискає файл 'file1.gz' |
| gunzip file1.gz | |
| gzip file1 | стискає файл 'file1' |
| bzip2 file1 | |
| gzip -9 file1 | стиснути файл file1 з максимальним стисненням |
| rar a file1.rar test_file | створити rar-архів 'file1.rar' і включити в нього файл test_file |
| rar a file1.rar file1 file2 dir1 | створити rar-архів 'file1.rar' і включити в нього file1, file2 і dir1 |
| unrar x file1.rar | розпакувати rar-архів |
| tar -cvf archive.tar file1 | створити tar-архів archive.tar, що містить файл file1 |
| tar -cvf archive.tar file1 file2 dir1 | створити tar-архів archive.tar, що містить файл file1, file2 і dir1 |
| tar -tf archive.tar | показати вміст архіву |
| tar -xvf archive.tar | розпакувати архів |
| tar -xvf archive.tar -C /tmp | розпакувати архів в /tmp |
| tar -cvfj archive.tar.bz2 dir1 | створити архів і стиснути його за допомогою bzip2(Прим.перекладача. ключ -j працює не в усіх *nix системах) |
| tar -xvfj archive.tar.bz2 | розтиснути архів і розпакувати його(Прим.перекладача. ключ -j працює не в усіх *nix системах) |
| tar -cvfz archive.tar.gz dir1 | створити архів і стиснути його за допомогою gzip |
| tar -xvfz archive.tar.gz | розтиснути архів і розпакувати його |
| zip file1.zip file1 | створити стиснутий zip-архів |
| zip -r file1.zip file1 file2 dir1 | створити стиснутий zip-архів і з включенням в нього кількох файлів і/або директорій |
| unzip file1.zip | розтиснути і розпакувати zip-архів |
| RPM пакети (Fedora, Red Hat і тому подібне) | |
| rpm -ivh package.rpm | встановити пакет з виведенням повідомлень і прогрес-бару |
rpm -ivh [-]-nodeps package.rpm |
встановити пакет з виведенням повідомлень і прогрес-бару без контролю залежностей |
| rpm -U package.rpm | оновити пакет без змін конфігураційних файлів, у разі відсутності пакета, він буде встановлений |
| rpm -F package.rpm | оновити пакет тільки якщо він встановлений |
| rpm -e package_name.rpm | видалити пакет |
| rpm -qa | відобразити список всіх пакетів, встановлених в системі |
rpm -qa [|] grep httpd |
серед всіх пакетів, встановлених в системі, знайти пакет, що містить у своєму імені "httpd" |
| rpm -qi package_name | вивести інформацію про конкретному пакеті |
| rpm -qg "System Environment/Daemons" | відобразити пакети, що входять до групи пакетів |
| rpm -ql package_name | вивести список файлів, що входять в пакет |
| rpm -qc package_name | вивести список конфігураційних файлів, що входять в пакет |
rpm -q package_name [-]-whatrequires |
вивести список пакетів, необхідних для встановлення конкретного пакета за залежностями |
rpm -q package_name [-]-whatprovides |
show capability provided by a rpm package |
rpm -q package_name [-]-scripts |
відобразить скрипти, що запускаються при встановленні/видаленні пакета |
rpm -q package_name [-]-changelog |
вивести історію ревизій пакета |
| rpm -qf /etc/httpd/conf/httpd.conf | перевірити якому пакету належить вказаний файл. Вказувати слід повний шлях і ім'я файлу. |
| rpm -qp package.rpm -l | відображає список файлів, що входять в пакет, але ще не встановлених в систему |
rpm [-]-import /media/cdrom/RPM-GPG-KEY |
імпортувати публічний ключ цифрового підпису |
rpm [-]-checksig package.rpm |
перевірить підпис пакета |
| rpm -qa gpg-pubkey | перевірити цілісність встановленого вмісту пакета |
| rpm -V package_name | перевірити розмір, повноваження, тип, власника, групу, MD5-суму і дату останньої зміни пакета |
| rpm -Va | перевірити вміст всіх пакети встановлені в систему. Виконуйте з обережністю! |
| rpm -Vp package.rpm | перевірити пакет, який ще не встановлений в систему |
rpm2cpio package.rpm [|] cpio [-]-extract [-]-make-directories *bin* |
витягти з пакета файли, що містять у своєму імені bin |
| rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm | встановити пакет, зібраний з вихідних кодів |
rpmbuild [-]-rebuild package_name.src.rpm |
зібрати пакет з вихідних кодів |
| YUM - засіб оновлення пакетів(Fedora, RedHat і тому подібне) | |
| yum install package_name | завантажити і встановити пакет |
| yum update | оновити всі пакети, встановлені в систему |
| yum update package_name | оновити пакет |
| yum remove package_name | видалити пакет |
| yum list | вивести список всіх пакетів, встановлених в систему |
| yum search package_name | знайти пакет в репозиторії |
| yum clean packages | очистити rpm-кеш, видаливши завантажені пакети |
| yum clean headers | видалити всі заголовки файлів, які система використовує для вирішення залежностей |
| yum clean all | очистити rpm-кеш, видаливши завантажені пакети і заголовки |
| DEB пакети (Debian, Ubuntu і тому подібне) | |
| dpkg -i package.deb | встановити / оновити пакет |
| dpkg -r package_name | видалити пакет з системи |
| dpkg -l | показати всі пакети, встановлені в систему |
dpkg -l [|] grep httpd |
серед всіх пакетів, встановлених в системі, знайти пакет, що містить у своєму імені "httpd" |
| dpkg -s package_name | відобразити інфрмацию про конкретному пакеті |
| dpkg -L package_name | вивести список файлів, що входять в пакет, встановлений в систему |
dpkg [-]-contents package.deb |
відобразити список файлів, що входять в пакет, який ще не встановлений в систему |
| dpkg -S /bin/ping | знайти пакет, в який входить вказаний файл. |
| APT - засіб управління пакетами (Debian, Ubuntu і тому подібне) | |
| apt-get install package_name | встановити / оновити пакет |
| apt-cdrom install package_name | встановити / оновити пакет з cdrom'а |
| apt-get update | отримати оновлені списки пакетів |
| apt-get upgrade | оновити пакети, встановлені в систему |
| apt-get remove package_name | видалити пакет, встановлений в систему з збереженням файлів конфігурації |
| apt-get purge package_name | видалити пакет, встановлений в систему з видаленням файлів конфігурації |
| apt-get check | перевірити цілісність залежностей |
| apt-get clean | видалити завантажені архівні файли пакетів |
| apt-get autoclean | видалити старі завантажені архівні файли пакетів |
| Перегляд вмісту файлів | |
| cat file1 | вивести вміст файлу file1 на стандартне пристрій виводу |
| tac file1 | вивести вміст файлу file1 на стандартне пристрій виводу в зворотному порядку (останній рядок стає першою і т.д.) |
| more file1 | посторінковий вивід вмісту файлу file1 на стандартне пристрій виводу |
| less file1 | посторінковий вивід вмісту файлу file1 на стандартне пристрій виводу, але з можливістю прокручування в обидві сторони (вгору-вниз), пошуку по вмісту і т.п. |
| head -2 file1 | вивести перші два рядки файлу file1 на стандартне пристрій виводу. За замовчуванням виводиться десять рядків |
| tail -2 file1 | вивести останні два рядки файлу file1 на стандартне пристрій виводу. За замовчуванням виводиться десять рядків |
| tail -f /var/log/messages | виводити вміст файлу /var/log/messages на стандартне пристрій виводу по мірі появи в ньому тексту. |
| Маніпуляції з текстом | |
cat file [|] grep -i "Criteria" > result.txt |
загальний синтаксис виконання дій по обробці вмісту файлу і виведення результату в новий |
cat file [|] grep -i "Criteria" » result.txt |
загальний синтаксис виконання дій по обробці вмісту файлу і виведення результату в існуючий файл. Якщо файл не існує, він буде створений |
| grep Aug /var/log/messages | з файлу '/var/log/messages' відібрати і вивести на стандартне пристрій виводу рядки, що містять "Aug" |
grep [^]Aug /var/log/messages |
з файлу '/var/log/messages' відібрати і вивести на стандартне пристрій виводу рядки, що починаються на "Aug" |
| grep [0-9] /var/log/messages | з файлу '/var/log/messages' відібрати і вивести на стандартне пристрій виводу рядки, що містять цифри |
| grep Aug -R /var/log/* | відібрати і вивести на стандартне пристрій виводу рядки, що містять "Aug", у всіх файлах, що знаходяться в директорії /var/log і нижче |
| sed 's/stringa1/stringa2/g' example.txt | у файлі example.txt замінити "string1" на "string2", результат вивести на стандартне пристрій виводу. |
sed ['/^$/]d' example.txt |
видалити порожні рядки з файлу example.txt |
sed ['/ *#/]d; [/^$/]d' example.txt |
видалити порожні рядки і коментарі з файлу example.txt |
echo 'test' [|] tr '[:lower:]' '[:upper:]' |
перетворити символи з нижнього регістру в верхній |
| sed -e '1d' result.txt | видалити перший рядок з файлу example.txt |
| sed -n '/string1/p' | відобразити тільки рядки, що містять "string1" |
sed -e 's[/] *$[/]/' example.txt |
видалити порожні символи в кінці кожного рядка |
sed -e 's[/]string1[/]/g' example.txt |
видалити рядок "string1" з тексту не змінюючи всього іншого |
| sed -n '1,8p;5q' example.txt | взяти з файлу з першої по восьму рядки і з них вивести перші п'ять |
| sed -n '5p;5q' example.txt | вивести п'ятий рядок |
| sed -e 's/0*/0/g' example.txt | замінити послідовність з будь-якої кількості нулів одним нулем |
| cat -n file1 | пронумерувати рядки при виведенні вмісту файлу |
cat example.txt [|] awk 'NR%2==1' |
при виведенні вмісту файлу, не виводити парні рядки файлу |
echo a b c [|] awk '{print $1}' |
вивести першу колонку. Розділення, за замовчуванням, по пробілу/пробілам або символу/символам табуляції |
echo a b c [|] awk '{print $1,$3}' |
вивести першу і третю колонки. Розділення, за замовчуванням, по пробілу/пробілам або символу/символам табуляції |
| paste file1 file2 | об'єднати вмісту file1 і file2 у вигляді таблиці: рядок 1 з file1 = рядок 1 колонка 1-n, рядок 1 з file2 = рядок 1 колонка n+1-m |
| paste -d '+' file1 file2 | об'єднати вмісту file1 і file2 у вигляді таблиці з роздільником "+ |
| sort file1 file2 | відсортувати вміст двох файлів |
sort file1 file2 [|] uniq |
відсортувати вміст двох файлів, не відображаючи повторів |
sort file1 file2 [|] uniq -u |
відсортувати вміст двох файлів, відображаючи тільки унікальні рядки (рядки, що зустрічаються в обох файлах, не виводяться на стандартне пристрій виводу) |
sort file1 file2 [|] uniq -d |
відсортувати вміст двох файлів, відображаючи тільки повторювані рядки |
| comm -1 file1 file2 | порівняти вміст двох файлів, не відображаючи рядки, що належать файлу 'file1' |
| comm -2 file1 file2 | порівняти вміст двох файлів, не відображаючи рядки, що належать файлу 'file2' |
| comm -3 file1 file2 | порівняти вміст двох файлів, видаляючи рядки, що зустрічаються в обох файлах |
| Перетворення наборів символів і файлових форматів | |
| dos2unix filedos.txt fileunix.txt | конвертувати файл текстового формату з MSDOS в UNIX (різниця в символах повернення каретки) |
| unix2dos fileunix.txt filedos.txt | конвертувати файл текстового формату з UNIX в MSDOS (різниця в символах повернення каретки) |
| recode ..HTML < page.txt > page.html | конвертувати вміст тестового файлу page.txt в html-файл page.html |
recode -l [|] more |
вивести список доступних форматів |
| Аналіз файлових систем | |
| badblocks -v /dev/hda1 | перевірити розділ hda1 на наявність bad-блоків |
| fsck /dev/hda1 | перевірити/відновити цілісність linux-файлової системи розділу hda1 |
| fsck.ext2 /dev/hda1 | перевірити/відновити цілісність файлової системи ext2 розділу hda1 |
| e2fsck /dev/hda1 | |
| e2fsck -j /dev/hda1 | перевірити/відновити цілісність файлової системи ext3 розділу hda1 з вказівкою, що журнал розташований там же |
| fsck.ext3 /dev/hda1 | перевірити/відновити цілісність файлової системи ext3 розділу hda1 |
| fsck.vfat /dev/hda1 | перевірити/відновити цілісність файлової системи fat розділу hda1 |
| fsck.msdos /dev/hda1 | |
| dosfsck /dev/hda1 | |
| Форматування файлових систем | |
| mkfs /dev/hda1 | створити linux-файлову систему на розділі hda1 |
| mke2fs /dev/hda1 | створити файлову систему ext2 на розділі hda1 |
| mke2fs -j /dev/hda1 | створити журнальовану файлову систему ext3 на розділі hda1 |
| mkfs -t vfat 32 -F /dev/hda1 | створити файлову систему FAT32 на розділі hda1 |
| fdformat -n /dev/fd0 | форматування флоппі-диска без перевірки |
| mkswap /dev/hda3 | створення swap-простору на розділі hda3 |
| swap-простір | |
| mkswap /dev/hda3 | створення swap-простору на розділі hda3 |
| swapon /dev/hda3 | активувати swap-простір, розташований на розділі hda3 |
| swapon /dev/hda2 /dev/hdb3 | активувати swap-простори, розташовані на розділах hda2 і hdb3 |
| Створення резервних копій (backup) | |
| dump -0aj -f /tmp/home0.bak /home | створити повну резервну копію директорії /home в файл /tmp/home0.bak |
| dump -1aj -f /tmp/home0.bak /home | створити інкрементальну резервну копію директорії /home в файл /tmp/home0.bak |
| restore -if /tmp/home0.bak | відновити з резервної копії /tmp/home0.bak |
rsync -rogpav [-]-delete /home /tmp |
синхронізувати /tmp з /home |
rsync -rogpav -e ssh [-]-delete /home ip_address:/tmp |
синхронізувати через SSH-тунель |
rsync -az -e ssh [-]-delete ip_addr:/home/public /home/local |
синхронізувати локальну директорію з віддаленою директорією через ssh-тунель зі стисненням |
rsync -az -e ssh [-]-delete /home/local ip_addr:/home/public |
синхронізувати віддалену директорію з локальною директорією через ssh-тунель зі стисненням |
dd bs=1M if=/dev/hda [|] gzip [|] ssh user@ip_addr 'ddof=hda.gz' |
зробити "зліпок" локального диска в файл на віддаленому комп'ютері через ssh-тунель |
| tar -Puf backup.tar /home/user | створити інкрементальну резервну копію директорії '/home/user' в файл backup.tar з збереженням повноважень |
( cd /tmp/local/ && tar c . ) [|] ssh -C user@ip_addr 'cd/home/share/ && tar x -p' |
копіювання вмісту /tmp/local на віддалений комп'ютер через ssh-тунель в /home/share/ |
( tar c /home ) [|] ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' |
копіювання вмісту /home на віддалений комп'ютер через ssh-тунель в /home/backup-home |
tar cf - . [|] (cd /tmp/backup ; tar xf - ) |
копіювання однієї директорії в іншу з збереженням повноважень і лінків |
find /home/user1 -name '*.txt' [|] \
xargs cp -av [-]-target-directory=/home/backup/[-]-parents |
пошук в /home/user1 всіх файлів, імена яких закінчуються на '.txt', і копіювання їх в іншу директорію |
find /var/log -name '*.log' [|] tar cv [-]-files-from=- [|]bzip2 > log.tar.bz2 |
пошук в /var/log всіх файлів, імена яких закінчуються на '.log', і створення bzip-архіву з них |
| dd if=/dev/hda of=/dev/fd0 bs=512 count=1 | створити копію MBR (Master Boot Record) з /dev/hda на флоппі-диск |
| dd if=/dev/fd0 of=/dev/hda bs=512 count=1 | відновити MBR з флоппі-диска на /dev/hda |
| CDROM | |
| cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force | clean a rewritable cdrom |
| mkisofs /dev/cdrom > cd.iso | create an iso image of cdrom on disk |
mkisofs /dev/cdrom [|] gzip > cd_iso.gz |
create a compressed iso image of cdrom on disk |
| mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd | create an iso image of a directory |
| cdrecord -v dev=/dev/cdrom cd.iso | burn an ISO image |
gzip -dc cd_iso.gz [|] cdrecord dev=/dev/cdrom - |
burn a compressed ISO image |
| mount -o loop cd.iso /mnt/iso | mount an ISO image |
| cd-paranoia -B | rip audio tracks from a CD to wav files |
cd-paranoia [-]- "-3" |
rip first three audio tracks from a CD to wav files |
cdrecord [-]-scanbus |
scan bus to identify the channel scsi |
| Мережа (LAN і WiFi) | |
| ifconfig eth0 | показати конфігурацію мережевого інтерфейсу eth0 |
| ifup eth0 | активувати (підняти) інтерфейс eth0 |
| ifdown eth0 | деактивувати (опустити) інтерфейс eth0 |
| ifconfig eth0 192.168.1.1 netmask 255.255.255.0 | виставити інтерфейсу eth0 ip-адресу і маску підмережі |
| ifconfig eth0 promisc | перевести інтерфейс eth0 в promiscuous-режим для "лову" пакетів (sniffing) |
| ifconfig eth0 -promisc | відключити promiscuous-режим на інтерфейсі eth0 |
| dhclient eth0 | активувати інтерфейс eth0 в dhcp-режимі. |
| route -n | вивести локальну таблицю маршрутизації |
| netstat -rn | |
| route add -net 0/0 gw IP_Gateway | задати ip-адресу шлюзу за замовчуванням (default gateway) |
| route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 | додати статичний маршрут в мережу 192.168.0.0/16 через шлюз з ip-адресою 192.168.1.1 |
| route del 0/0 gw IP_gateway | видалити ip-адресу шлюзу за замовчуванням (default gateway) |
| echo "1" > /proc/sys/net/ipv4/ip_forward | дозволити пересилання пакетів (forwarding) |
| hostname | відобразити ім'я комп'ютера |
host www[.]yandex[.]ru |
розрішити ім'я www[.]yandex[.]ru хоста в ip-адресу і навпаки |
| host 93.158.134.3 | |
| ip link show | відобразити стан всіх інтерфейсів |
| mii-tool eth0 | відобразити статус і тип з'єднання для інтерфейсу eth0 |
| ethtool eth0 | відображає статистику інтерфеса eth0 з виведенням такої інформації, як підтримувані і поточні режими з'єднання |
| netstat -tupn | відображає всі встановлені мережеві з'єднання за протоколами TCP і UDP без розв'язування імен в ip-адреси і PID'и і імена процесів, що забезпечують ці з'єднання |
| netstat -tupln | відображає всі мережеві з'єднання за протоколами TCP і UDP без розв'язування імен в ip-адреси і PID'и і імена процесів, що слухають порти |
| tcpdump tcp port 80 | відобразити весь трафік на TCP-порт 80 (зазвичай - HTTP) |
| iwlist scan | просканувати ефір на предмет, доступності бездротових точок доступу |
| iwconfig eth1 | показати конфігурацію бездротового мережевого інтерфейсу eth1 |
| Microsoft Windows networks(SAMBA) | |
| nbtscan ip_addr | розрішити netbios-ім'я nbtscan не в усіх системах ставиться за замовчуванням, можливо, доведеться доустановлювати вручну. nmblookup включений в пакет samba. |
| nmblookup -A ip_addr | |
| smbclient -L ip_addr/hostname | відобразити ресурси, надані в загальний доступ на windows-машині |
smbget -Rr smb:[/]/]ip_addr[/]share |
подібно wget може отримати файли з windows-машин через smb-протокол |
mount -t smbfs -o username=user,password=pass[/]/]winclient[/]share [/]mnt[/]share |
змонтувати smb-ресурс, наданий на windows-машині, в локальну файлову систему |
| IPTABLES (firewall) | |
| iptables -t filter -nL | відобразити всі ланцюжки правил |
| iptables -nL | |
| iptables -t nat -L | відобразити всі ланцюжки правил в NAT-таблиці |
| iptables -t filter -F | очистити всі ланцюжки правил в filter-таблиці |
| iptables -F | |
| iptables -t nat -F | очистити всі ланцюжки правил в NAT-таблиці |
| iptables -t filter -X | видалити всі користувацькі ланцюжки правил в filter-таблиці |
iptables -t filter -A INPUT -p tcp [-]-]dport telnet -j ACCEPT |
дозволити вхідне підключення telnet'ом |
iptables -t filter -A OUTPUT -p tcp [-]-]dport http -j DROP |
блокувати вихідні HTTP-з'єднання |
iptables -t filter -A FORWARD -p tcp [-]-]dport pop3 -j ACCEPT |
дозволити "пробивати" (forward) POP3-з'єднання |
iptables -t filter -A INPUT -j LOG [-]-]log-prefix "DROP INPUT" |
увімкнути журналювання ядром пакетів, що проходять через ланцюжок INPUT, і додаванням до повідомлення префікса "DROP INPUT" |
| iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | увімкнути NAT (Network Address Translate) вихідних пакетів на інтерфейсі eth0. Допустимо при використанні з динамічно виділеними ip-адресами. |
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp [-]-]dport 22 \
-j DNAT [-]-]to-destination 10.0.0.2:22 |
перенаправлення пакетів, адресованих одному хосту, на інший хост |
| Моніторинг і налагодження | |
| top | відобразити запущені процеси, використовувані ними ресурси і іншу корисну інформацію (з автоматичним оновленням даних) |
| ps -eafw | відобразити запущені процеси, використовувані ними ресурси і іншу корисну інформацію (один раз) |
ps -e -o pid,args [-]-]forest |
вивести PID'и і процеси у вигляді дерева |
| pstree | відобразити дерево процесів |
| kill -9 98989 | "вбити" процес з PID 98989 "на смерть" (без дотримання цілісності даних) |
| kill -KILL 98989 | |
| kill -TERM 98989 | Коректно завершити процес з PID 98989 |
| kill -1 98989 | змусити процес з PID 98989 перечитати файл конфігурації |
| kill -HUP 98989 | |
| lsof -p 98989 | відобразити список файлів, відкритих процесом з PID 98989 |
| lsof /home/user1 | відобразити список відкритих файлів з директорії /home/user1 |
| strace -c ls > /dev/null | вивести список системних викликів, створених і отриманих процесом ls |
| strace -f -e open ls > /dev/null | вивести виклики бібліотек |
| watch -n1 'cat /proc/interrupts' | відображати переривання в режимі реального часу |
| last reboot | відобразити історію перезавантажень системи |
| last user1 | відобразити історію реєстрації користувача user1 в системі і час його перебування в ній |
| lsmod | вивести завантажені модулі ядра |
| free -m | показати стан оперативної пам'яті в мегабайтах |
| smartctl -A /dev/hda | контроль стану жорсткого диска /dev/hda через SMART |
| smartctl -i /dev/hda | перевірити доступність SMART на жорсткому диску /dev/hda |
| tail /var/log/dmesg | вивести десять останніх записів з журналу завантаження ядра |
| tail /var/log/messages | вивести десять останніх записів з системного журналу |
| Інші корисні команди | |
| apropos …keyword | виводить список комманд, які так чи інакше стосуються ключових слів. Корисно, коли ви знаєте що робить програма, але не пам'ятаєте команду |
| man ping | виклик довідника по роботі з програмою, в даному випадку, - ping |
| whatis …keyword | відображає опис дій вказаної програми |
mkbootdisk [-]-]device /dev/fd0 `uname -r` |
створює завантажувальний флоппі-диск |
| gpg -c file1 | шифрує файл file1 за допомогою GNU Privacy Guard |
| gpg file1.gpg | дешифрує файл file1 за допомогою GNU Privacy Guard |
wget -r www[.]example[.]com |
завантажує рекурсивно вміст сайту www[.]example[.]com |
wget -c www[.]example[.]com/file[.]iso |
завантажити файл www[.]example[.]com/file[.]iso з можливістю зупинки і продовження в подальшому |
echo 'wget -c www[.]example[.]com/files[.]iso' [|] at 09:00 |
почати завантаження в вказаний час |
| ldd /usr/bin/ssh | вивести список бібліотек, необхідних для роботи ssh |
| alias hh='history' | призначити алиас hh команді history |
Ядро працює в 1 адресному просторі. Тобто 1 модуль або драйвер може зіпсувати все ядро.
ctrl + alt + F(1-6) перемикання між віртуальними консолями. ttyN - де N - номер консолі?
ctrl + alt + F7 перемикання в графічну консоль
startx _запуск X Windows System (перехід у графічний режим)
ho -r або runlevel _показ рівня виконання ОС !!!
init n (n від 0 до 6) запускає один з рівнів ОС, наприклад 3. Тобто запускає файл rc3.d, який містить символічні посилання на файли в init.d.
Ім'я посилання може починатися з К-зупинка або S-запуск, далі цифра пріоритету запуску.
*************
mount /dev/hda4 mnt/hda4 -t data=<режим журналювання> _writeback, ordered, journal?
Створення нов.файлової системи ext3
1.створити розділ за допомогою parted або fdisk
2.відформатувати розділ mkfs
3.призначити розділу мітку за допомогою e2label
4.створити тчк монтування mkdir
5.додати розділ у файл etcfstab
*************
GRUB завантажувач
натискання Е - вхід в інтерфейс редактора записів. Esc - скасування змін і повернення в меню.
натискання В (після редагування) - виконання команд і завантаження ОС
натискання С - вхід в інтерфейс командного рядка введення команд і натискання enter для виконання
help all - виведення всіх команд
Вибір ядра, і натискання - а. В кінці рядка додайте через пробіл номер runlevel
less /boot/grub/grub.conf _файл завантажувача
**************************
2.1 Супер блоки - вжлива інфо по дисках?
dumpe2fs /dev/sda1 | grep superblock _інфо по суперблоках
Використання запасного суперблока: все?
1. Завантаження з Live CD або інсталяційного диска Centos
2. fsck -y -b 8193 /dev/sda1 _Перевірка диска 8193 - номер 1 із запасних суперблоків
3. Монтування файл.системи
3.1 Звичайним способом
3.2 Якщо не вийшло:
mount sb=8193 /dev/sda1 /mnt _№ з.супер блока /пристр-во /тчк.монтування
4. Додаємо в /etc/fstab опцію sb (sb=8193) до нашої файлової системи
*********************
Права доступу до файлів
123 456 789
s t rwx rwx rwx
s _suid-біт - 4 (000) файл отримує права не того, хто його запустив, а власника файлу (утиліта passwd) пов.б. права на виконання? ***в shell, червоним виділені файли з suid-біт.
t _sticky-біт - 1 (000)
1/2/3 _читання/запис/виконання д/власника
4/5/6 _читання/запис/виконання д/групи власника
7/8/9 _читання/запис/виконання д/решти
Право на читання позначається цифрою 4, на запис - 2, на виконання - 1
Якщо все дозволено, то цифра прав яка встановлюється на файл для окр.групи = 7.
chmod [опції] [режим] файл -змінити права доступу. -v - виводить налагоджувальну інформацію, -R - рекурсивний режим, змінювати права доступу для всіх підкаталогів і файлів
chmod 4755 test.txt _4-додати suid-біт, 7-повні права власнику, 5 і 5 -читання і виконання групі та іншим - ця команда на файл у домашньому каталозі (папці) root, видала повідомлення: You have new mail in /var/spool/mail/root ?
-rwsr-xr-x root root 1 _потрібно читати як rws (s замість x) rx rx, root - власник, root - група власника, 1 - кількість посилань
Назад: chmod 0755 test.txt або chmod 755 test.txt - 0 перед 7 підставляється за замовчуванням.
chmod 750 test.txt - 0 занулює значення прав
chmod -R u=rwx,g=rx,o=x myfiles - 2-й метод зміни прав доступу для каталогу або файлу.
chmod -R u-x,g-x,o-x myfiles - 3-й метод зміни прав доступу для каталогу або файлу окремо кожній групі користувачів, де a -власник, g -група власників, o -всі інші.
chmod -R a-x myfiles - 4-й метод зміни прав доступу для каталогу або файлу для всіх користувачів. У 3 і 4 можна -/+
chmod +x script.sh - додати на виконання всім групам. 5-й метод зміни прав доступу.
sgid-біт - 2 (000) - успадковуються права групи власника. Якщо біт sgid встановлено для каталогу, то створювані в ньому файли, при запуску будуть приймати ідентифікатор групи каталогу, а не групи до якої входить власник файлу.
Виконання програми з правами групи власника? Як правильно?
sgid-біт для файлу: chmod 2755 test.txt
sticky-біт - 1 (000) - якщо вст-ся на каталог, то видаляти і перейменовувати файли цього каталогу може тільки власник цього каталогу, власник файлу або root. Мати тільки розширення на запис у цей каталог не достатньо.
chmod 1755 test.txt
chown [опції] [власник]:[група] test.txt - зміна власника файлу і групи. -v - виводить налагоджувальну інформацію, -R - рекурсивний режим.
[власник]:[група] - це нові власник і нова група.
chown -R user1:user1 * - зміна власника і групи, для всіх файлів і підкаталогів поточного каталогу. Не можна змінити власників підкаталогу. У кого права на зміну власників файлу або каталогу?
chgrp group1 file1 – зміна групи.
umask ХХХХ - зміна (завдання) режиму доступу, задає права доступу для новостворюваних каталогів і файлів!!!
Значення umask віднімається з числа 777 для каталогів і з числа 666 для файлів.
umask - дізнатися який umask вик-ся в системі, в моїй: 0022.
Нові каталоги: 0777 - 0022 = 0755. Нові файли 0666 - 0022 = 0644
umask 0 1 2 3 4 5 6 7
Маска режиму доступу r w x r w - r - x r - - - w x - w - - - x - - -
mount [опції] [пристрій] [тчк_монтування] - монтування файлів
umount [опції] [пристрій] АБО [тчк_монтування] -f примус.розмонтування
mount - список змонтованих файл. систем
При монтуванні можна задати права. Можна змонтувати всю ФС тільки для читання. Це перекриє раніше признач.права
змонтувати cd: mount -t iso9660 /dev/csrom /mnt _вказ-ся тип фс (для cd не обов'язково)
змонтувати образ: mount -o loop -t iso9660 image.iso /mnt/iso не вийшло?
iso9660 для монтування unix систем і cd/dvd mount -t ext3 /dev/sda4 /disk mount не створює розділів.
nfs для монтування мережевої файлової системи
wifet, ntfs для монтування віндовс розділів
ufs для solyaris
У файлі /etc/fstab вказано список файлових систем для автоматичного монтування при запуску ОС
[пристрій] [тчк.монтур.] [тип фс] [опції] [флаг dump _застаріло] [флаг fsck (0-не перевіряти, 1-перевіряти, 2-перев.після перевірки 1]
cat /etc/fstab –
назва пристроїв:
hdc – жорсткі диски
scasi -
cat /etc/mtab (mount) _ перегляд інформації про змонтовані ФС. Вручн.не редагується.
/etc/filesystems _список можливих ФС. Викор-ся командою mount для автопідстановки, якщо немає ключа -t з типом фс
ФС proc існує тільки в RAM. Викор-ся як інтерфейс до структур даних ядра. Це віртуальна ФС, завант-ся в оперативну пам'ять при старті системи і не займає місце на HD. Багато файлів у ній можна змінювати, тим самим змінюючи параметри ядра в режимі реального часу.
cat /proc/cpuinfo, meminfo, mounts, devices, filesystems, modules, version, cmdline -список параметрів переданих ядру при завантаженні. Гарне джерело інформації про систему!!!
Робота з файлами:
Створити текстовим редактором vi/vim ім'я ф., перенаправленням виводу команди echo або cat.
Редактор vim:
i - введення тексту. Esc - після введення, повернення в режим редагування.
: - для набору команд роботи з файлами, редагування налаштувань та інших команд.
Тепер можна вводити: w - для запису файлу і q для виходу з редактора. q! – вихід без збереж.
/ - пошук
touch test.txt – оновити час доступу раніше створеного файлу (створити новий у поточній директорії). За замовчуванням створюється файл з правами 644. Зазвичай змінюють на 775/ 755
touch ‘s probelom’.txt – створити файл з пробілом.
CP [опції] [джерело] [пункт призначення] - копіювання файлу або каталогу.
cp test.txt test1.txt -створити test1 як копію test.txt, cp /etc/test.txt ~ - копіювати test.txt в домашній каталог.
cp -r /etc/ /root/dok - копіювати вміст розділу /etc/ у новостворену папку /root/dok, не можна копіювати файл одночасно зі створенням папки, тільки вміст розділу.
mv [опції] [джерело] [пункт призначення]- переміщення файлів
mv file.txt /tmp/ - перемістити file.txt в /tmp/ без перейменування
mv /tmp/file.txt ~/file2.txt - перемістити file.txt, перейменувавши на file2.txt
М'яке посилання вказує на файл, жорстке на індексний дескриптор файлу.
ln [опції] [ціль] [ім'я посилання] - створення посилань між файлами.
ln -s file.txt lnk - створ.символічного (м'якого) посилання lnk (через –s) - замість шляхового імені файлу можна вказати псевдонім, вказує на файл.
ln file2.txt file.txt - створ.жорсткого посилання - вказує на індексний дескриптор файлу
unlink lnk - видалення м'якого посилання
cat – перегляд, less - посторінковий/порядковий вивід, q – вихід, Shift + PgUp/ PgDn – переміщення.
cat test.txt test1.txt - вивід на екран вмісту 2 файлів.
cat test.txt test1.txt > test2.txt - об'єднання файлів в 1.
cat test1.txt > test2.txt - замінити вміст файлу test2, вмістом файлу test1.
cat test1.txt >> test2.txt - додати вміст файлу test1, до вмісту файлу test2.
cat - >> test1.txt - додавання даних у файл test1 прямо з shell. Ctrl + C - записати зміни.
head -n 20 test.txt -вивести перші 20 рядків файлу (за замовчуванням 10рядків).
tail -n 20 test.txt -вивести останні 20 рядків файлу (за замовчуванням 10рядків).
nl test.txt - вивести файл з нумерацією рядків
df [опції] [файл] - статистика по використанню ФС. Можна df, df -h або df -h /dev/sda1.
du [опції] [файл] - статистика по дисковому простору. du -hs /usr/share - вивід розміру каталогу /usr/share.
-h - надає статистику в зручному для люд. форматі - Mb і т.д. -s - сумує результати підкаталогів і файлів у них.
echo [опції] [рядок] - відображення рядка тексту. echo -n 'blablabla' - відображає blablabla на цьому ж рядку.
echo 'blablabla' - відображає blablabla на новому рядку.
echo 'blablabla' > file.txt - замінити вміст файлу, echo 'blablabla' >> file.txt – додати до вмісту файлу
wc [опції] [файл] - статистика по файлу !!!
-c - кількість байтів у файлі, -m - кількість символів у файлі, -l - кількість рядків у файлі, -L - довжина найдовшого рядка
-w - кількість слів у файлі.
find [шлях_пошуку] [опція_пошуку] [значення] [опція_дії] -пошук файлів або каталогів.
-name - ім'я файлу або каталогу який потрібно знайти
-type - тип об'єкта: f - звичайний файл, d – каталог, b - блочний пристрій, c - символьний пристрій, p - іменований канал, l - символьне посилання, s – сокет,
-size - використовувати розмір файлу як критерій пошуку
-mtime - дата модифікації
-ctime - час останньої зміни атрибутів файлу. В чому різниця mtime і ctime?
-atime - час останнього звернення до файлу touch?
-perm 777 – з правами доступу 777
-print - просто роздрукувати маршрутне ім'я файлу
-exec - виконати певну команду для знайдених об'єктів
find / -name pab -type d
find /tmp/ -name core -type f -print | xargs /bin/rm –f -шукаємо файл, виводимо на екран print, і за допомогою xargs, як аргумент, передаємо команді rm.
find /etc/ -perm 777 -type f -шукаємо файли з правами 777 в каталозі etc.
find /etc/ -name pablish -exec rm -rf {} \; - виконання команди rm -rf для знайдених об'єктів. Замість {} буде підставлено те, що ми знайшли як аргумент.
F4- відкриття файлу
Робота з каталогами:
mkdir -Створення, ls -перегляд, mv -перейменування/переміщення, rm -rf -видалення зайнятих каталогів, rmdir -видалення порожніх !!!
mkdir –p ~/test/cda/blabla _100% створити підкаталоги в домашньому каталозі
mkdir -p /root/dok/dir2{dir1,dir2,dir3} –створення структури каталогу dok/dir2, з 3 розділами dir1-3
«.» -поточний каталог, «..» -батьківський каталог, для кореня «.» = «..»
mkdir -m 700 dir2 - явне задання прав для нового каталогу
rm -rf* - видалення всього вмісту поточного розділу,
де -r - рекурсивний режим, -f - вимкнення запитів на підтвердження
rmdir ~/test _видалити порожній підкаталог домашнього каталогу
mknod _створення байт орієнтованих пристроїв - принтери, модеми rm _delet?
mknod _створення блок орієнтованих пристроїв - hard disk?
mknod _створення іменованих каналів rm _delet?
сокед можна видалити rm
ls - виведення вмісту каталогу.
ls -lhR /etc/ | less -через канал виведення направити в команду less
-а -все в т.ч.приховані файли(поч-ся з точки), -h -розмір файлів, -l -вся інфо, -i -inodи (індексні дескриптори), -R -інфо по всіх підкаталогах -t –сортування за часом, /*.txt – пошук за маскою
Man ls – довідка.
q – вихід, Pg Up, Pg Dn – переміщення. / - введення пошуку, n - вниз N - вгору
ls ../.. _перегляд на 2 рівні вгору, ls ../man _в рівні вище знайти директорію man
ls -l /dev/sda = file /dev/sda, ls –l /root /tmp /usr …- виведення декількох файлів
ls –l /etc/*/*.conf – пошук за розширенням, «пропускаючи» 1 рівень
ls -l /etc/[^a-w]*.conf - шукає каталоги не на a-w з розширенням conf.
ls –ld – права на поточну директорію.
cd – change directory – зміна директорії
cd /usr/share/doc -перехід за абсолютним шляхом
cd - _в попередній каталог, cd .. _на рівень вгору, cd ~ _в домашній каталог,
cd ~/myfiles _перехід з будь-якого місця в новостворений підкаталог домашнього каталогу.
grep [опції] шаблон [шлях до файлу пошуку] - Пошук за шаблоном.
rpm -qa | grep chk - пошук chk у виведенні всіх встановлених у системі пакетів.
/dev/null - т.зв. чорна діра, вик-ся для поглинання не потрібного виведення програм
command > /dev/nul 2>&1 - направлення всіх помилок в /dev/null.
/dev/zero - можна використовувати для створення файлу потрібного розміру
dd if=/dev/zero of=file.iso bs=1024 count=1024 - створення iso файлу в 1 Mb.
/dev/random, /dev/urandom - вик-ся скриптами для генерації випадк.чисел.
BASH:
# - командний рядок з правами адміністратора
$ - командний рядок звичайного користувача - можна прац-ти в домашньому каталозі без впливу на систему в цілому
Ctrl + C - перервати поточний процес (сигнал SIGINT)
Ctrl + D - вихід з командного інтерпретатора
Ctrl + L - очищення екрана
Ctrl + Z - перевести процес у фоновий режим
Alt + D - видалити всі символи від поточної позиції до кінця слова
Alt + R - очистити весь рядок
Подвійний TAB - всі доступні команди
Esc + D - видалити від курсора до кінця слова
echo $BASH_VERSION - версія BASH. $ - знак змінної, тобто виведення змінної BASH_VERSION.
echo $BASH - розташування BASH
Формат команд: ім'я_команди [прапорці/опції] [аргументи]
./name_script.sh - запуск скрипта з домашнього каталогу
Конфігураційні файли BASH
1.Локальні - розташовані в домашніх каталогах користувачів системи і мають приоритет над Глобальними.
.bash_logout - сценарій виконується при виході з системи
.bash_history - файл з історією команд, яка зберігається у файл після виходу usera з сист. Можна налаштувати щоб відразу?
.bash_profile - сценарій виконується при вашому підключенні до системи(в некот.системах вик-ся bashlogin)
.bashrc - сценарій виконується кожного разу, коли відкривається новий shell. Вик-ся він, і всі команди кот в ньому перелічені.
2.Глобальні:
/etc/profile
/etc/bashrc
histiry - перегляд історії команд. Кіл-ть рядків зад-ся змінною echo $HISTSIZE, за замовчуванням 1000 рядків.
histiry N - відображати останні N рядків.
history -d N - видалити рядок N.
!! - виконати останню введену команду
!N - виконати команду N
!string - найостанніша команда, яка починається з рядка string
Перенаправлення вводу/виводу.
Файловий дескриптор - не від'ємне ціле число, призначуване ОС відкриваному процесом файлу. В системі постійно відкрито 3 файлових дескриптори.
Номер Назва Опис Коментар
0 stdin Стандартний ввід - ввід даних з клавіатури обслуговує клавіатуру
1 stdout Стандартний вивід - дисплей монітора обслуговує монітор
2 stderr Викор-ся для виводу повідомлень про помилки
cat file1 file3 2>err_file - помилка виводу не існуючого file3, направлена у новостворений файл err_file. 2 - stderr.
cat < /etc/resolv.conf - перенаправлення з файлу.
cat > file, далі enter, і з нового рядка вводимо текст. Завершення вводу Ctrl + c. Введений текст додався у новостворений file.
date > date.txt - при перенаправленні у файл, існуючі дані затираються.
date >> date.txt - при перенаправленні у файл, дописати до існуючих даних.
vi <(ls /etc) - перенаправлення в текстовий редактор вмісту каталогу etc. Під яким ім'ям зберегти отримане?
echo -e "'ls -l /etc/[^a-w]*.conf'\n" - шукає каталоги не на a-w з розширенням conf. Не працює??? '- ?
Можливі перенаправлення:
Звідки Куди
stdout Файл
stdout Stderr
stdout і stderr Stdout
stdout і stderr Stderr
stdout і stderr Файл
stderr Файл
stderr Stdout
Конвеєри об'єднують стнд вихід однієї кмнд з входом іншої і познач: |
ls /usr/share | wc -l - підрахунок кіл-ті рядків у каталозі
Builtin вбудовані в bash команди. enable (enable -a) - подивитися всі (виводить список.кмнд)
rpm -qa | grep hist - шукає на hist в пакетах системи, такого немає, т.к. кмнд history вбудована в bash.
При запуску спочатку вик-ся builtin кмнд, і тільки потім відбувається її пошук у змінній $PATH
enable -n pwd -відключ.builtin команди pwd. Після цього буде вик-ся системн.кмнд pwd розташ.в /bin/pwd
enable -n - список відключ.builtin кмнд
Змінні
Батьк. процес > дочірній процес > дочірній процес тощо.
Процеси можуть послідовно передавати інформацію про змінні на нижчий рівень від батьк. процесу до дочірніх, але не навпаки. Дочірній не може передати будь-що в батьк. процес.
Value=10 – створення змінної та задання її значення. Змінна буде доступна лише в поточному сеансі.
Export Value=10 – тепер можна використовувати змінну з інших програм.
Unset value – видалення змінної
env – подивитися змінні оточення (експортовані). Тут ми побачимо лише після виконання кмнд: Export Value
typeset - подивитися змінні оточення, у т.ч. створені користувачем.
Vim script.sh, сам скрипт:
#!/bin/bash
Echo $value
./script.sh – виконання скрипта в домашньому каталозі roota.
Shell – є батьківським процесом для скрипта. Ми могли дозволити йому користуватися змінною, експортувавши її. Або заборонити, не експортувавши її.
Популярні змінні: подивитися echo $
$HOSTNAME – ім'я хоста
$Shell – ім'я командного інтерпретатора
$USER – ім'я користувача, що увійшов у систему
$PATH – список каталогів ОС, у яких відбувається пошук команди, коли ми її набираємо в консолі. Пошук відбувається послідовно по каталогах до першого збігу.
$PWD – поточний робочий каталог
$HOME – поточний каталог користувача
$UID – цифровий ідентифікатор поточного користувача
$# - кількість переданих аргументів
echo $PATH - змінна, зберігає список каталогів в ОС
Локальні змінні.
$0 – містить ім'я файлу, що запускається
$1 – перший аргумент
$2 – другий аргумент
$PS1 – це запрошення командного рядка
Vim script.sh, сам скрипт:
#!/bin/bash
Echo “first arg” - $0
Echo “second arg” - $1
…
Echo “10 arg” - ${10} – починаючи з 10 аргументу, їх потрібно вказувати в дужках.
./script.sh first_arg second_arg – передача скрипту 1го та 2го аргументу
Корисні команди:
cat /etc/passwd - виведення списку користувачів
pwd - перегляд робочого каталогу. pwd [-LP]
ps aux | grep mingetty - знайти всі процеси системи + вивести лише ті, що містять слово mingetty
whoami -повертає поточний обл.запис, з-під якого працює користувач.
netstat -nr - для мережевого аналізу
su user1 - перемикання на іншого користувача. Питання в якому випадку після зміни користувача на звичайного, має сенс кмнд: cd ~ ?
exit - повернення в команд.рядок roota
useradd – додати користувача – command not found при введенні до startx?
Питання sudo useradd PPetrov – помилка вже після введення запитаного пароля?
#passwd Uliashov– зміна пароля з-під roota на будь-який
$passwd Ivanov – зміна пароля з-під користувача на той, що відповідає критеріям безпеки.
date - системні дата та час дивитися
env – подивитися змінні оточення (експортовані)
typeset - подивитися змінні оточення, у т.ч. створені користувачем.
df –h – ступінь заповнення дискового простору
rm mod pcspkr – вивантажить драйвер ядра з оперативної пам'яті
modprobe pcspkr
lsmod – список модулів
modinfo pcspkr – виведення інформації про модуль
Лекція №4
У кожній директорії є 2 посилання. Додавання кожної піддиректорії додає +1 посилання.
Деякі вимикають swop щоб уникнути постійного смикання дисків.
fdisk – l – конфігурація ж.д.
free – статистика по оперативній пам'яті
vnc viewer 10.95.4.229
DOS система дозволяє створити 3 розділи
Prymary - звичайний
Extendet – розширений, всередині нього можна створити logical розділ
З 1 по 4 розділ це Prymary або Extendet. З 5 і вище – logical
swapon –a/ swapoff –a – підключення/ відключення swap
etoolabel ???
partprobe?
Скачати viever vnc
mkswap – ???
mkfs hdc1(2-6)
Якщо примонтувати розділ у нову папку, то створювані в папці файли, будуть знаходитися не в ній, а в змонтованому розділі
1 free
2 cat /proc/swaps
3 swapoff –a /dev/mapper/VolGroup00-LogVol01 -шлях з п.2
4 mkfs /dev/mapper/VolGroup00-LogVol01
5 mkdir /novyi
6 mount /dev/mapper/VolGroup00-LogVol01 /novyi
7 створити папки і файли в папці – тчк монтування
8 umount
9 mkswap /dev/mapper/VolGroup00-LogVol01 розмітили пристрій
10 swapon –a
alias ‘fuck’ = ‘init 0’ не робити
Підключати ФС (mount) може тільки рут.
Можна підключити віддалену ФС наприклад на час бекапу.
В etc/fstab, можна прописати права користувачу на монтування якоїсь папки.
Лекція №6
LVM – менеджер логічних томів – подивитися опис в інтернеті.
LV > VG – група > PV – hd1, …фізичні диски об'єднуються в 1 групу. Або навпаки 1 диск розбивається на декілька томів???. Можлива втрата продуктивності ~ 5%.
vgs, pvs, lvs
Задача отримати логічний том.??????????
pvcreate /dev/hdc5
PV
VG
Vgcreate VG1 /dev/hdc5 - створ групи
Lvcreate –L 100M –n DataBase VG1 - створ логічного тому
Ls /dev/VG1/DataBase - дивимося.
Робимо:
1 free
2 cat /proc/swaps
3 swapoff –a /dev/mapper/VolGroup00-LogVol01 -шлях з п.2 - відключили
4 lvremove /dev/mapper/VolGroup00-LogVol01 - видалили
5 cat /proc/swaps
6 vgs – покаже вільне місце free
7 lvcreate –L 100M –n MYVOL1 VolGroup00
8 mkfs /dev/VolGroup00/MYVOL1 – форматування
8 mount /dev/mapper/VolGroup00-MYVOL2 /novyi або mount /dev/VolGroup00/MYVOL1 /novyi
ls –l /Dev/VolGroup00 – посилання на dev/mapper/Vol…
можна зробити миттєвий знімок стану розділу:
lvcreate –s /dev//VolGroup00/MYVOL1 –n SNAP_MYVOL1 –L 100M - знімок це теж новий розділ. Його можна підключити як розділ до тчк.мнт, але якщо в ній створити файл, він не буде в знімку
при створенні файлів у точці монтування lvs покаже зміни розділу знімка
Перед зміною даних, їх історія заноситься в снепшоп
Снепшоп створюється в тій же воліумгрупп.
Створити знімок тільки для читання:
lvcreate –p r –s /dev//VolGroup00/MYVOL1 –n SNAP_MYVOL1 –L 100M – не дасть записати в тчк монт.
Команди:
Ctrl + r + вводимо шуканий текст
Ctrl + u – стерти весь вивід (помилка при введенні пароля)
Ctrl + W – стерти по словах
Ctrl + L – стерти екран???
Alt + . – вивід останнього параметра
Ctrl + S – блокування екрана. Ctrl + Q - розблокувати
