Crmgo Блог

КОМАНДИ LINUX

КОМАНДИ LINUX

КОМАНДИ LINUX Команда Опис Системна інформація arch відобразити архітектуру комп'ютера uname -m uname -r відобразити використовувану версію ядра dmidecode -q показати апаратні системні компоненти - (SMBIOS / DMI) hdparm -i /dev/hda вивести характеристики жорсткого диска hdparm -tT /dev/sda протестувати продуктивність…

КОМАНДИ LINUX

КОМАНДИ 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 - розблокувати

 

стаття взята звідси

Примітка: матеріал міг бути створений за підтримки ШІ з подальшою людською редакцією. Відповідальний за зміст: Dmytro Lomaka, Kaltenkirchen.