Кінцевий посібник командного рядка Linux - Повна інструкція з Bash

Ласкаво просимо до нашого остаточного посібника з командного рядка Linux. Цей підручник покаже вам деякі ключові технології командного рядка Linux та познайомить з мовою сценаріїв Bash.

Що таке Bash?

Bash (скорочення від Bourne Again SHell) - це оболонка Unix і інтерпретатор командної мови. Оболонка - це просто макропроцесор, який виконує команди. Це найбільш широко використовувана оболонка, упакована за замовчуванням для більшості дистрибутивів Linux, і наступник оболонки Korn (ksh) та оболонки C (csh).

Багато речей, які можна зробити з операційною системою Linux, можна зробити за допомогою командного рядка. Деякі приклади:

  • Редагування файлів
  • Регулювання гучності операційної системи
  • Отримання веб-сторінок з Інтернету
  • Автоматизація роботи, яку ви виконуєте щодня

Ви можете прочитати більше про bash тут, через Документацію GNU та через посібник tldp.

Використання bash у командному рядку (Linux, OS X)

Ви можете почати використовувати bash у більшості операційних систем Linux та OS X, відкривши термінал. Давайте розглянемо простий приклад зі світу. Відкрийте термінал і напишіть такий рядок (все після знака $):

[email protected]:~$ echo "Hello world!" Hello world!

Як бачите, ми використали команду echo, щоб надрукувати рядок “Hello world!” до терміналу.

Написання сценарію bash

Ви також можете помістити всі свої команди bash у файл .sh і запустити їх із командного рядка. Скажімо, у вас був скрипт bash із таким вмістом:

#!/bin/bash echo "Hello world!"

Варто зазначити, що перший рядок сценарію починається з #!. Це спеціальна директива, до якої Unix по-різному ставиться.

Чому ми використовували #! / Bin / bash на початку файлу сценарію?

Це тому, що це домовленість, щоб інтерактивна оболонка знала, який інтерпретатор запускатиметься для наступної програми. Перший рядок повідомляє Unix, що файл повинен виконуватися / bin / bash. Це стандартне розташування оболонки Борна майже на кожній системі Unix. Додаючи #! / Bin / bash як перший рядок вашого сценарію, ОС повідомляє про те, щоб викликати вказану оболонку для виконання команд, які слідують за сценарієм. #!часто називають "хеш-бэг", "вона-вибух" або "ша-вибух". Хоча він виконується лише в тому випадку, якщо ви запускаєте скрипт як виконуваний файл. Наприклад, коли ви вводите текст ./scriptname.extension, він шукатиме інтерпретатор у верхньому рядку, тоді як, виконуючи скрипт як bash scriptname.sh, перший рядок ігнорується.

Тоді ви можете запустити сценарій так: Для того, щоб зробити файл виконуваним, вам слід викликати цю команду під sudo chmod + x “ім'я файлу”.

[email protected]:~$ ./myBashScript.sh Hello world!

Сценарій має лише два рядки. Перший вказує, який інтерпретатор використовувати для запуску файлу (у цьому випадку bash). Другий рядок - це команда, яку ми хочемо використати, echo, за якою слід надрукувати «Hello World».

Іноді сценарій не виконується, і вищевказана команда повертає помилку. Це пов’язано з дозволами, встановленими у файлі. Щоб уникнути такого використання:

[email protected]:~$ chmod u+x myBashScript.sh

А потім виконайте сценарій.

Командний рядок Linux: Bash Cat

Cat - одна з найбільш часто використовуваних команд в операційних системах Unix.

Cat використовується для послідовного читання файлу та друку його на стандартний вивід. Назва походить від його функції до кін котячих файлів Enate.

Використання

cat [options] [file_names]

Найчастіше використовувані варіанти:

  • -b, число непустих вихідних рядків
  • -n, пронумеруйте всі вихідні рядки
  • -s, стиснути кілька сусідніх порожніх рядків
  • -v, відображати недруковані символи, за винятком табуляції та символу кінця рядка

Приклад

Роздрукуйте в терміналі вміст file.txt:

cat file.txt

Об'єднайте вміст двох файлів і відображте результат у терміналі:

cat file1.txt file2.txt

Командний рядок Linux: Bash cd

Наприклад, змініть каталог на вказаний шляхcd projects.

Є кілька справді корисних аргументів, які допоможуть цьому:

  • . посилається на поточний каталог, такий як ./projects
  • ..може використовуватися для переміщення вгору на одну папку, використовувати cd ..і може поєднуватися для переміщення вгору на кілька рівнів../../my_folder
  • /є корінь вашої системи , щоб дістатися до основних папок, таких як system, usersі т.д.
  • ~ is the home directory, usually the path /users/username. Move back to folders referenced relative to this path by including it at the start of your path, for example ~/projects.

Linux Command Line: Bash head

Head is used to print the first ten lines (by default) or any other amount specified of a file or files. Cat is used to read a file sequentially and print it to the standard output.

ie prints out the entire contents of the entire file. - that is not always necessary, perhaps you just want to check the contents of a file to see if it is the correct one, or check that it is indeed not empty. The head command allows you to view the first N lines of a file.

if more than on file is called then the first ten lines of each file is displayed, unless specific number of lines are specified. Choosing to display the file header is optional using the option below

Usage

head [options] [file_name(s)]

Most used options:

  • -n N, prints out the first N lines of the file(s)
  • -q, doesn’t print out the file headers
  • -v, always prints out the file headers

Example

head file.txt

Prints in terminal the first ten lines of file.txt (default)

head -n 7 file.txt

Prints in terminal the first seven lines of file.txt

head -q -n 5 file1.txt file2.txt

Print in terminal the first 5 lines of file1.txt, followed by the first 5 lines of file2.txt

Linux Command Line: Bash ls

ls is a command on Unix-like operating systems to list contents of a directory, for example folder and file names.

Usage

cat [options] [file_names]

Most used options:

  • -a, all files and folders, including ones that are hidden and start with a .
  • -l, List in long format
  • -G, enable colorized output.

Example:

List files in freeCodeCamp/guide/

ls ⚬ master CODE_OF_CONDUCT.md bin package.json utils CONTRIBUTING.md gatsby-browser.js plugins yarn.lock LICENSE.md gatsby-config.js src README.md gatsby-node.js static assets gatsby-ssr.js translations

Linux Command Line: Bash man

Man, the abbreviation of manual, is a bash command used to display on-line reference manuals of the given command.

Man displays the reletive man page (short for manual page) of the given command.

Usage

man [options] [command]

Most used options:

  • -f, print a short description of the given command
  • -a, display, in succession, all of the available intro manual pages contained within the manual

Example

Display the man page of ls:

man ls

Linux Command Line: Bash mv

Moves files and folders.

mv source target mv source ... directory

The first argument is the file you want to move, and the second is the location to move it to.

Commonly used options:

  • -f to force move them and overwrite files without checking with the user.
  • -i to prompt confirmation before overwriting files.

That's all. Go forth and use Linux.