Команди Unix: перелік, особливості використання, частота застосування

Команди Unix: перелік, особливості використання, частота застосування

Операційні системи UNIX широко використовуються на сучасних серверах різних процесорних архітектур, робочих станціях, мережевих і мобільних пристроях. Термін "" команда UNIX "" відноситься до сімейству багатокористувальницьких ОС. Графічні інтерфейси ОС різноманітні. Але для користувачів Mac або Linux, які хочуть отримати максимальну віддачу від своєї операційної системи, обов 'язково потрібно познайомитися з командним рядком Unix.

Історія UNIX

Перша версія UNIX була розроблена в 1969 році Кеном Томпсономом в Bell Laboratories з використанням простою PDP-7, незабаром до нього приєднався Денніс Річі.


Спочатку UNIX призначався для використання всередині Bell System для програмістів. Томпсон і Річі багато років працювали над розробкою різних версій UNIX. Ritchie розробив мову C для підтримки UNIX. Третя версія була пов 'язана з переписуванням ОС на C. У міру просування UNIX він став широко використовуватися в AT & T, і оскільки вихідний код був доступний, він поступово приймався іншими організаціями в галузі комп' ютерних наук. Одним з найважливіших досягнень, зроблених в UNIX програмістами в Берклі, було забезпечення підтримки мережевих протоколів Інтернету (TCP/IP).

У 1988 році BSD, AT & T UNIX та інші ОС були об 'єднані в UNIX System V.4. Це нове покоління ОС об 'єднало кращі функції своїх попередників, щоб стати стандартом і основою для AT & T UNIX, SUNOS Sun Microsystems, IBM AIX і HP-UX HP.

Переваги ОС:

  1. UNIX забезпечує багатокористувацьку, багатозадачну, захищену оперативну пам 'ять, використовуючи мінімальний обсяг пам' яті.
  2. Забезпечує надійний захист користувача за допомогою перевірки та автентифікації облікового запису.
  3. Спрощує дії вводу-виводу.
  4. Дуже портативний, що означає, що він може працювати на декількох різних апаратних платформах, що спрощує користувачам установку на будь-якому обладнанні, яке вони воліють використовувати.

Основні компоненти операційної системи

Основні компоненти ОС UNIX прості і не численні, взаємодія цих компонентів один з одним унікальна. Три основні компоненти системи UNX:

  • Ядро (KERNEL).
  • Оболонка (SHELL).
  • Файлова система.

Ядро UNIX керує фізичним RESO urces апаратного комп 'ютера, пристроїв, пам' яті, обробляє d (daemons). Керує функціями між системними програмами та обладнанням і виконує всі основні команди UNIX.

Ядро керує такими елементами:


  1. Файлова система і структури.
  2. Керування пристроями, наприклад, зберігання даних на диску.
  3. Керування процесами, наприклад, daemons.
  4. Керування пам 'яттю, наприклад, простором підкачки.

Оболонка - це інтерфейс між користувачем і ядром. Вона діє як командний інтерпретатор. Вона приймає основні команди UNIX, видані користувачем, інтерпретує їх, а потім відправляє виконуваний файл в ядро. Три найбільш поширені оболонки: Bourne, C и Korn. Існують також популярні open source оболонки, такі як Z і bash, обидва є розширеннями Bourne.

Щоб ідентифікувати ту, яку використовують в UNIX, виконують, наприклад, для zsh, echo-команду UNIX:

  • echo $SHELL;
  • /bin/zsh.

Файлова система представляє собою ієрархію каталогів, підкаталогів і файлів, які організовані або згруповані для спеціальних цілей, всього того, що знаходиться під інтерфейсом системного виклику. Апаратне забезпечення забезпечує файлову систему, підсистему управління процесом, управління пам 'яттю та ОС над системними викликами. Програмісти використовують виклики ядра для розгортання корисних функцій, для компіляції та маніпулювання прикладами.

Середовище розробки

Інтерфейс програміста в UNIX визначається викликами. Більшість системних програм в UNIX написані на C, а всі виклики - це C-функції. Оскільки деталі викликів відомі тільки компілятору, це робить переносимість головною функцією UNIX-програм. Системні виклики для маніпулювання файлами - це, наприклад: creat, open, read, write, close, link, unlink и trunc.

Новий процес створюється викликом fork. Процес - це копія простору процесу батьківського процесу, що викликає fork.

Сигнали використовуються для обробки винятків. В UNIX існує 20 різних сигналів. Наприклад, сигнал переривання використовується для переривання команди до завершення виконання, зазвичай виконуваної користувачем.

Недоліки командного рядка:


  1. Деякі завдання важко або неможливо зробити в командному рядку.
  2. Завдання, які потребують великого набору тексту, наприклад, довгі імена файлів, можуть дратувати та втомлювати через відсутність мінімальної підтримки вирізання.
  3. Для більшості людей навчання і запам 'ятовування типізованих команд є складним, якщо вони не використовують команди весь час.

Переваги функції:

  1. Майже у всіх випадках вона набагато швидша і простіша у використанні для експертів, а не для новачків.
  2. Вона може використовуватися віддалено з більшою легкістю, ніж GUI.
  3. Віддалений GUI - це SLUGGISH.
  4. Коли потрібна абсолютна точність, миша/GUI занадто неточна.
  5. Для складних завдань командний рядок може бути написаний сценарієм для автоматизації процесів.

Інтерфейс користувача

Розробники і користувачі UNIX можуть використовувати програми, які вже скомпільовані і доступні для виконання. Ці програми можна розділити на функції, наприклад, на каталог і файлову обробку: mkdir, ls, touch, file, rm, link, unlink, команду cat UNIX, програму для сортування файлів sort, для порівняння файлів diff, для пошуку шаблонів grep і awk. Крім того, доступні текстові редактори, такі як vi, vim, sed та інші. Ці команди виконуються інтерпретатором користувача або оболонкою.

Стандартне введення-вивід відноситься до трьох типів файлів, які процес може відкрити. Вони відомі як стандартний ввід (дескриптор файла 0), стандартний вивід (1) і стандартна помилка (2). Програма може зчитувати зі стандартного вводу і надсилати вивід на екран користувача або у файл зі стандартним виходом.

Користувач може надіслати стандартний вивід до файла з назвою test1 або надіслати файли test1 як введення до програми:

В UNIX є три основні категорії введення-висновку:


  • блокуючі пристрої;
  • символьні пристрої;
  • сокети для мережевого зв 'язку.

Блокові пристрої, у цю категорію входять диски і стрічка. Блочний пристрій має велике значення для ізоляції деталей диска від решти частини ядра. Блокові пристрої доступні через системний файл. Приклад: / dev/sda the first scsi drive on the first scsi bus, перший диск scsi на першій scsi-шині.

Символьні пристрої, ця категорія включає в себе принтери, термінали. Приклад команди ідентифікації термінала UNIX: /dev/null a bit bucket or bottomless sink for data.

Щоб відобразити блок та символьні пристрої в системі, виконують наступну команду в оболонці: Усічений вивід показує деякі/dev пристрої на сервері UNIX.

Традиційні команди ОС

Незалежно від того, яку оболонку використовує юзер, завжди, коли буде вводитися команда, він буде запускати програму UNIX. Простий приклад для обчислення кількості файлів у/etc: IDG.

Ця послідовність команд ілюструє два важливих поняття:


  • команда ls UNIX еквівалентна dir у Windows, відображає вміст каталогу;
  • кількість слів wc.

У UNIX параметри традиційно мають префікс з одним тире "-". Ці параметри командного рядка змінюють поведінку програми. Часто вони перевизначають типові значення у середовищі. Якщо потрібно змінити спосіб ведення команди на постійній основі, автоматично встановлюють змінну середовища при вході в систему. Багато команд дозволяють комбінувати параметри в одному рядку, наприклад, ls-la, але інші немає. Можна дізнатися про всі варіанти команди, перевіривши її керівництво або довідкові сторінки.

Вивчення і використання параметрів рядка - велика частина ефективності UNIX. Деякі команди мають дуже багато варіантів, але зазвичай достатньо всього лише кілька варіантів виконання заданого завдання, а більшість параметрів використовуються тільки при написанні програм мовою оболонки.

Існує безліч команд, пов 'язаних з файловою системою, оскільки вона є основною для ОС.

Команда ls використовується найчастіше, і у неї є багато варіантів для налаштування виводу. Точкові файли (файли або каталоги), назви яких починаються з точки або періоду за замовчуванням приховані. Ці файли або каталоги зазвичай містять інформацію про налаштування або журнали для UNIX. Наприклад, файл .bash_history записує всі команди, які вводяться в рядку.

Інша команда, яка знадобиться відразу, - кd, її використовують для зміни каталогів. Вона схожа на аналогічну в Windows, але з істотною різницею. У UNIX всі диски буде показано як один диск. Якщо у Windows можна мати свої знімки на зовнішньому жорсткому диску, який відображається як E:, у Unix, цей диск може бути/home/user/pictures.


Команда pwd друкує робочий каталог. Оскільки у зростаючій файловій системі існує багато місць, які можна втратити, вона дозволяє швидко визначити, де користувач знаходиться.

Дисковий простір

Завантаження дискового простору - це поступовий процес, який може зайняти роки. Є дві команди, які потрібно використовувати, щоб перевірити вільний простір і визначити, які файли забивають диск: du за допомогою диска і df без диска. Вони обидва вибирають h варіант. Щоб зрозуміти, наскільки повний диск, використовують df-команду фільтра UNIX.

Для того, щоб дізнатися, як використовується простір, набирають du і обмежують виведення результату на перші 10 рядків. Інакше він буде показуватися в кожному каталозі на машині, що може бути занадто складним для розуміння. З цього списку можна побачити, скільки місця потрібно кожній теці. Об 'єднавши декілька команд разом, збирають сценарій, який буде перераховувати 10 кращих каталогів з використання простору. Команда, необхідна для впорядкування виводу - sort.

Оскільки версія MacOS не може обробляти дані du для читання людиною, використовують m-опцію для du-відображення використання диска в мегабайтах, параметр g або k відображає дані в гігабайтах або кілобайтах відповідно. Параметри n і r застосовуються для sort (сортування виводу) в прямому і в зворотному порядку, тому найбільші каталоги з 'являться у верхній частині списку.

Суперкористувачі su і sudo

Ряд команд відноситься до системного адміністрування. Головна команда для системного адміністрування - su. Це означає суперкористувач і відноситься до облікового запису адміністратора або користувача root. Всі файли, що належать системі, належать цьому користувачеві.

Пов 'язана з нею sudo дозволяє стати суперкористувачем для однієї команди. Навіщо використовувати sudo замість su? Практика показує, що це необхідно для того, щоб користувач не застосовував часто root, через можливість завдати непоправної шкоди системі. Краще робити все можливе (у статусі звичайного користувача) і стає суперкористувачем тільки тоді, коли це вкрай необхідно. Отримання привілею суперкористувача залежатиме від дистрибутиву UNIX.

Іноді поточний користувач не має дозволу su. У деяких wheel-системах - це означає, що користувач повинен перебувати в групі, а в інших ОС, включаючи MacOS, користувач повинен перебувати в sudoers-файлі.

Природно, для додавання користувача в sudoers файл вимагає привілеїв root. Для цього потрібно вийти з облікового запису і увійти в обліковий запис адміністратора. Потім запустити sudo nano/etc/sudoers в командному рядку, Nano відкриє sudoer-файл у вікні термінала, готовий до редагування.

Пересуваються по файлу в Nano за допомогою клавіш зі стрілками. Щоб зробити nunez, потрібно прокрутити вниз до розділу "Специфікація привілеїв користувача" і ввести рядок: nunez ALL = (ALL) ALL, для користувачів root і min користувачів.

При введенні Ctrl + x вводять "Так", щоб зберегти зміни і вийти з Nano.

Додаткові оператори системи

Розширені команди UNIX дозволять виконувати різні завдання в UNIX, надаючи більше можливостей для управління даними і виконання дій.

Дії з файлами:

  • chmod;
  • chown;
  • basename;
  • ln - створювати посилання і символічні посилання на файли і каталоги;
  • find - пошук файлів і каталогів;

Команди стану системи:

  • last;
  • w;
  • who –r;
  • uname;
  • Lsb_release - знайти інформацію про базову базу Linux (LSB).

Привілейований доступ:

  • su;
  • sudo - запускати команди з підвищеними кореневими привілеями;
  • visudo - безпечно редагувати файл/etc/sudoers.

Розширене управління процесами:

  • ps –aef;
  • ptree;
  • kill;
  • nice;
  • renice;
  • pmap;

Команди маніпулювання текстом:

  • Awk;
  • Egrep;
  • Sed;

Команди файлових систем:

  • Fstyp;
  • Df;

Керування файловою системою:

  • Mount;
  • Umount;
  • Fsck;
  • Growfs;
  • tune2fs - налаштування параметрів налаштовуваної файлової системи (для ext2/ext3);
  • mkfs;
  • Networking;
  • iptables - керувати правилами брандмауера на сервері Linux;
  • netstat;

Команда відображення файлів cat

Команда Linux cat використовується для відображення вмісту текстових файлів та об 'єднання декількох файлів в один файл, на відміну від команди ls UNIX, в якій наведено вміст каталогів файлів та каталогів. Слід враховувати, що cat не приймає каталоги.

Параметри cat представлені в таблиці.

Варіант

Опис

cat -b

додати номери рядків до непорушних рядків

cat -n

додавати номери рядків до всіх рядків

cat -s

стискати порожні рядки на один рядок

cat -E

$ в кінці рядка

cat -T

show ^ I замість вкладок

Приклади команд cat UNIX.

Перегляд даних текстового файла:

  • $ cat list1.txt;
  • milk;
  • bread;
  • apples;
  • $ cat list2.txt;
  • house;
  • car;
  • $.

Об 'єднати 2 текстові файли:

  • $ cat list1.txt list2.txt;
  • milk;
  • bread;
  • apples;
  • house;
  • car;
  • $.

Об 'єднати 2 текстові файли в інший файл:

  • $ cat list1.txt list2.txt > todo.txt;
  • $.

Основні приклади пошуку

У першому find-прикладі Linux виконується пошук через кореневу файлову систему (/) для файлу з назвою Chapter1. Якщо він знаходить файл, він друкує місце розташування на екрані: find/-name Chapter1-type f -print.

У системах Linux і UNIX більше не потрібен print-параметр в кінці find-команди, тому можна його отримати наступним чином:

  • find/-name Chapter1-type f;
  • -type f.

Цей варіант запускає команду пошуку, щоб повернути тільки файли. Якщо його не використовувати, він поверне файли, каталоги та інші елементи, такі як іменовані канали і файли пристроїв, які відповідають вказаному шаблону імені. Якщо користувачеві це не потрібно, просто залишають опцію з командою: type f.

Наступна find виконує пошук тільки з теками/usr і/home для будь- якого файла з назвою Chapter1.txt: find/usr/home -name Chapter1.txt -type f.

Щоб виконати пошук у поточній теці і у всіх підкаталогах, просто використовують символ для посилання на поточний каталог у find команді UNIX, наприклад: name Chapter1 -type f.

У наступному прикладі виконується пошук у теці/usr для всіх файлів, що починаються з літери Chapter. Назва файлу може закінчуватися будь-якою іншою комбінацією символів. Він відповідатиме іменам файлів, таким як Chapter, Chapter1, Chapter1.bad, Chapter in the life: find /usr -name ""Chapter *"" -type f.

Наступна команда виконує пошук у теці/usr/local для файлів, що закінчуються розширенням .html. Ці розташування файлів буде показано на екрані: find/usr/local -name ""* .html"" -type f.

WC для обчислення кількості рядків, слів, символів

WC-команда UNIX і Linux використовується, щоб дізнатися кількість підрахунку нового рядка, кількість слів, байти і символи підрахунку у файлах, зазначених аргументами файлів. Синтаксис команди wc:

# wc [параметри] назви файлів

Нижче наведено параметри і використання команди.

  • wc -l: друкує кількість рядків у файлі.
  • wc -w: друкує кількість слів у файлі.
  • wc -c: показує кількість байтів у файлі.
  • wc -m: друкує кількість символів з файла.
  • wc -L: друкує лише довжину найдовшого рядка у файлі.

Основний приклад wc:

Команда wc без передачі будь-якого параметра відображає основний результат файлу tecmint.txt. Три наведені нижче числа: 12 (кількість рядків), 16 (кількість слів) і 112 (кількість байтів) файлу.

[root @ tecmint ~] # wc tecmint.txt 12 16 112 tecmint.txt.

Для обчислення кількості рядків у файлі використовується параметр l, який друкує кількість рядків з цього файла. Скажімо, наступна команда UNIX покаже кількість рядків у файлі. У виводі перша назва, присвоєна як count, і друге поле є назвою файлу.

[root @ tecmint ~] # wc -l tecmint.txt 12 tecmint.txt.

Для підрахунку слів у файлі вводять наступну команду:

[root @ tecmint ~] # wc -w tecmint.txt 16 tecmint.txt.

Якщо ви використовуєте параметри c і m з командою wc, буде надруковано загальну кількість байтів і символів у файлі:

[root @ tecmint ~] # wc -c tecmint.txt 112 tecmint.txt.

[root @ tecmint ~] # wc -m tecmint.txt 112 tecmint.txt.

Команда wc UNIX дозволяє використовувати аргумент L, його можна використовувати для друку довжини кількості символів у файлі. Найдовший символьний рядок Scientific Linux у файлі.

[root @ tecmint ~] # wc -L tecmint.txt 16 tecmint.txt.

Показ рядка тексту echo

Echo - фундаментальна команда системи UNIX, яка використовується також у більшості інших ОС, які пропонують рядок. Вона часто використовується в скриптах, файлах і в складі окремих команд, коли може знадобитися вставити текст. Багато оболонок, таких як bash, ksh і csh реалізують відлуння як вбудовану команду.

Мітка

Опис

-n

Не виводити кінцевий новий рядок

-e

Увімкнути інтерпретацію escape-послідовностей зворотної косої межі (див. нижче список)

-E

Вимкнути інтерпретацію escape-послідовностей зворотної косої межі (типове значення)

--help

Показати довідкове повідомлення і вийдіть

--version

Вивести інформацію про вихід і вийти

\\

Літеральний символ зворотної косої межі (\)

\a

Попередження (символ BELL)

\b

Повернення на одну позицію.

\c

Після цього не створюйте ніяких додаткових результатів.

Щоб надрукувати рядок "Привіт, світ!", прописують команду консолі UNIX:

  • $ echo "Привіт, світ!".
  • output: Привіт, мир!.

Виконання команд оболонки з vi

Можна запускати команди UNIX і переглядати їх вивід, не виходячи з vi, а також вставити вивід у файл, який редагують.

Запускають і використовують оболонку її так само, як і звичайне середовище UNIX, а потім виходять з оболонки і повертаються до vi.

Тип оболонки, що запускається, визначається змінною $ SHELL команди UNIX. Для запуску іншого вам слід встановити параметр vi shell. Повертаються до використання vi, ввівши exit або Ctrl-D. Щоб вставити вивід з у файл, відразу після курсора:

r!command

Команда vi UNIX цікава для документування, якщо ви бажаєте увімкнути приклади виводу.

UNIX робить відмінну платформу для таких службових серверів, як Domain Name System або DNS, Dynamic Host Configuration Protocol або DHCP і Web-серверів. Його архітектура зберігає ресурси для реальних програм, які потрібно використовувати не тільки для завантаження самої операційної системи. UNIX також забезпечує стабільну і безпечну платформу для додатків, які не потребують прямої взаємодії з операційною системою.