An open API service indexing awesome lists of open source software.

https://github.com/moskkovsky/unix

Основные команды и bash скрипты
https://github.com/moskkovsky/unix

bash-script linux unix

Last synced: about 1 month ago
JSON representation

Основные команды и bash скрипты

Awesome Lists containing this project

README

          

# Unix
> [!TIP]
> Основные команды Linux

## Просмотреть содержимое каталога
```
ls: Вывод список всех файлов и директорий в текущем месте.
ls -l: Вывод список с правами, владельцем и размером.
ls -la: Вывести полный список, но еще и со скрытыми файлами.
```

## Работа с директориями
```
pwd: Полный путь директории в которой Вы сейчас находитесь
cd : Переход в другую директорию
cd ..: Перейти на 1 директорию назад
cd ../..: Перейти на 2 директории назад
cd ~: Переход в домашнюю папку
mkdir : Создание новой директории
mkdir -p parent/child: Создаст директорию parent и внутри нее child
rm -r : Удаление директории
> : Удаление содержимого в документе
touch : Создание файла
```
## Работа с файлами
```
cp что_копировать куда_копировать
mv old_folder new_folder: Переименовать директорию
mv file.txt new_file.txt: Переименовать файл
mv new_file.txt /media: Перенести файл в директорию media
cp -r путь_к_папке путь_к_новому_месту
cp new_file.txt copy_new_file.txt: Скопировать файл
cp -r media media_copy: Скопировать директорию
tar -czvf archive.tar.gz media_copy: Заархивировать папку с нашими файлами
tar -xzvf archive.tar.gz: Разархив
+ zip archive.zip file1 file2
unzip archive.zip
find /home -name "*.txt": Найти файл в любой директории
```

## Вывод информации
```
echo "Ваш текст здесь" > new_file.txt: Записать текст из терминала в файл
echo "Дополнительная строка текста" >> new_file.txt: Текст записывался ниже уже существующих, а не перезаписывался
cat file.txt: Прочитать содержимое файла
cat > new_file.txt: Ввод информации в файл(чтобы закончить ввод, CTRL + D)
cat >> new_file.txt: Вставляет текст ниже существующего
printf "Первая строка\nВторая строка\n" > new_file.txt: Вставить текст с табуляцией
printf "Дополнительная строка\n" >> new_file.txt: Вставить текст ниже
seq 1 20 >> : Генерация с 1 до 20 в документе
head -n 10 : Выводит первые 10 строк в документе
tail -n 10 : Выводит последние 10 строк в документе
df -h: Сколько жесткого диска у нас съедено
du -h .txt: Посмотреть сколько весит файл
du -sh /media_copy: Посмотреть размер директории
free -h: Посмотреть свободную и занятую оперативную память
ps aux: Список запущенных процессов (ctrl + alt + del)
top: Смотреть за нагрузкой в реальном времени (вернуть обратно ctrl+C)
kill : Удалить процесс
```

## Права доступа
**Каждому файлу и директории в Linux назначаются три типа прав:**

* **Чтение (Read)** — позволяет просматривать содержимое файла или список файлов в директории.
Обозначается буквой r.

* **Запись (Write)** — позволяет изменять содержимое файла или добавлять и удалять файлы в директории.
Обозначается буквой w.

* **Исполнение (Execute)** — позволяет выполнять файл как программу или заходить в директорию.
Обозначается буквой x.

```
-rwxr-xr--
```
* Владелец: rwx (чтение, запись и выполнение),
* Группа: r-x (чтение и выполнение),
* Остальные: r-- (только чтение).

**Первый символ указывает тип файла:**
* "-" для обычного файла;
* "d" для директории.

Остальные 9 символов идут по три для каждой категории пользователей:
* Первые три символа (rwx) — права владельца.
* Средние три символа (r-x) — права группы.
* Последние три символа (r--) — права остальных.

**Права доступа также можно указывать числовыми значениями:**

* 4 — право на чтение (r),
* 2 — право на запись (w),
* 1 — право на выполнение (x),
Комбинируя значения, получаем нужные права: 7 (4+2+1) означает rwx.

Примеры:
* 755 — rwxr-xr-x: владелец может читать, записывать и выполнять, группа и остальные могут читать и выполнять.
* 644 — rw-r--r--: владелец может читать и записывать, остальные только читать.

> [!TIP]
> Bash scripts
## Переменные
```
name="Alice" // Без пробелов вокруг
Name="Alice1" // Имена переменных чувствительны к регистру
echo ${Name}

count=0
let count+=1 # Увеличить значение на 1
count=$((count + 1)) # Альтернативный способ

echo "Введите ваше имя:"
read name // Ввод с клавиатуры
echo "Привет, $name!"
```

## Условный оператор if-else, case
```
if [ условие ]; then
# Команды, выполняемые, если условие истинно
elif [ другое условие ]; then
# Команды, если выполнено другое условие
else
# Команды, если ни одно из условий не выполнено
fi

echo "Введите букву оценки (A, B, C, D, F):"
read grade
```

```
case $grade in
A)
echo "Отлично!"
;;
B)
echo "Хорошо"
;;
C)
echo "Удовлетворительно"
;;
D)
echo "Неудовлетворительно"
;;
F)
echo "Провал"
;;
*)
echo "Неверный ввод"
;;
esac
```

## Операторы сравнения
```
-eq: равно
-ne: не равно
-gt: больше чем
-lt: меньше чем
-ge: больше или равно
-le: меньше или равно

Пример:

number=10
if [ $number -gt 5 ]; then
echo "Число больше 5"
else
echo "Число меньше или равно 5"
fi
```

## Строковые операторы
```
==: строки равны
!=: строки не равны
-z: строка пустая
-n: строка не пустая

Пример:

str="Hello"
if [ -n "$str" ]; then
echo "Строка не пустая"
else
echo "Строка пустая"
fi
```

## Логические операторы
```
AND: [ условие1 ] && [ условие2 ]
OR: [ условие1 ] || [ условие2 ]
NOT: !

Пример:

age=25
if [ $age -gt 18 ] && [ $age -lt 30 ]; then
echo "Возраст между 18 и 30"
fi
```

## Циклы for, while, until

## for
```
for color in red green blue; do
echo "Color: $color"
done

Пример:

for i in {1..5}; do
echo "Number: $i" // 1 2 3 4 5
done

for i in {0..10..2}; do
echo "Even number: $i" // 0 2 4 6 8 10
done
```
## while
```
count=1
while [ $count -le 5 ]; do
echo "Count: $count" // 1 2 3 4 5
count=$((count + 1))
done
```

## until (выполняет команды, пока условие ложно)
```
count=1
until [ $count -gt 5 ]; do
echo "Count: $count" // 1 2 3 4 5
count=$((count + 1))
done
```

## Функции
```
function имя_функции() {
# Команды функции
}

Пример:
greet() {
echo "Hello, World!"
}

# Вызов функции
greet

Пример:
is_even() {
if (( $1 % 2 == 0 )); then // $1 - аргумент (первый), который передается при вызове функции
return 0 # Возвращает 0, если число чётное
else
return 1 # Возвращает 1, если число нечётное
fi
}

# Проверка числа
is_even 4
if [ $? -eq 0 ]; then //$? - проверяемое значение
echo "Чётное"
else
echo "Нечётное"
fi
```