Linux и Unix имеют философию “всё есть файл” и “делай одно, но делай хорошо”. Команды — это ваш инструмент для управления системой через терминал. В этом гайде разберём самые полезные команды, которые встречаются в 90% работы.
1. Навигация по файловой системе
pwd (Print Working Directory)
Что это: выводит полный путь текущей директории
Зачем нужно: понять, где вы находитесь в файловой системе
pwd
/home/user/Documents
Вы в папке Documents, которая находится в /home/user.
ls (List)
Что это: выводит список файлов и папок в текущей директории
Зачем нужно: видеть содержимое папки
Базовое использование:
ls
Desktop Documents Downloads Pictures
Полезные флаги:
# -l показывает подробную информацию (права доступа, размер, дату)
ls -l
drwxr-xr-x 5 user user 4096 Jan 9 10:30 Desktop
-rw-r--r-- 1 user user 2048 Jan 8 15:42 document.txt
# -a показывает скрытые файлы (начинаются с точки)
ls -a
. .. .config .ssh Desktop document.txt
# -h показывает размеры в понятном формате (MB, GB)
ls -lh
-rw-r--r-- 1 user user 2.5M Jan 8 15:42 video.mp4
# Комбинирование флагов
ls -lah
Как это работает: ls читает содержимое директории из файловой системы и выводит список. Флаги изменяют формат вывода.
cd (Change Directory)
Что это: меняет текущую директорию (переходит в другую папку)
Зачем нужно: перемещаться по файловой системе
# Переход в конкретную папку
cd /home/user/Documents
# Переход в домашнюю папку пользователя
cd ~
# или просто
cd
# Переход на уровень выше
cd ..
# Переход в предыдущую директорию
cd -
# Переход в корневую директорию
cd /
Как это работает: shell (интерпретатор команд) изменяет текущее рабочее пространство на указанную директорию. Все последующие команды будут работать относительно этой папки.
2. Работа с файлами и папками
mkdir (Make Directory)
Что это: создаёт новую папку
Зачем нужно: организовать файлы по папкам
# Создание одной папки
mkdir myproject
# Создание вложенной структуры (флаг -p)
mkdir -p /home/user/projects/myapp/src/components
Как это работает: mkdir вызывает системный вызов для создания директории в файловой системе.
touch
Что это: создаёт пустой файл или обновляет время модификации существующего
Зачем нужно: быстро создать файл или обновить его “дату последнего изменения”
# Создание пустого файла
touch index.html
# Создание нескольких файлов сразу
touch file1.txt file2.txt file3.txt
# Обновление времени модификации (полезно для вспомогательных действий)
touch existing_file.txt
cp (Copy)
Что это: копирует файлы или папки
Зачем нужно: создать копию файла или резервную копию
# Копирование файла
cp document.txt document_backup.txt
# Копирование файла в другую папку
cp document.txt /home/user/backup/
# Копирование папки со всем содержимым (флаг -r)
cp -r myproject myproject_backup
# Копирование с информацией о прогрессе (флаг -v)
cp -v large_file.iso /backup/
'large_file.iso' -> '/backup/large_file.iso'
Как это работает: cp читает содержимое файла-источника и записывает его в новый файл-назначение.
mv (Move)
Что это: перемещает или переименовывает файлы и папки
Зачем нужно: перенести файл в другую папку или переименовать его
# Переименование файла
mv old_name.txt new_name.txt
# Перемещение файла в другую папку
mv document.txt /home/user/Documents/
# Перемещение и переименование одновременно
mv /home/user/Downloads/file.pdf /home/user/Documents/important_file.pdf
# Перемещение папки
mv old_project_folder new_project_folder
Как это работает: mv изменяет указатель на файл в файловой системе, поэтому это очень быстро даже для больших файлов.
rm (Remove)
Что это: удаляет файлы или папки
Зачем нужно: удалить ненужные файлы
# Удаление файла
rm temporary_file.txt
# Удаление папки со всем содержимым (флаг -r)
rm -r old_project/
# Удаление с подтверждением перед каждым файлом (флаг -i)
rm -i *.log
remove file1.log? y
remove file2.log? n
# Принудительное удаление без подтверждения (флаг -f)
rm -f file.txt
# Комбинирование флагов
rm -rf /path/to/folder
️ Важно: Linux не имеет “корзины” — удаленные файлы очень сложно восстановить. Будьте осторожны с rm -rf.
Как это работает: rm удаляет запись о файле из директории и помечает место на диске как свободное. Данные еще какое-то время остаются на диске, но получить к ним доступ становится очень сложно.
3. Просмотр содержимого файлов
cat (Concatenate)
Что это: выводит полное содержимое файла
Зачем нужно: быстро посмотреть содержимое небольших текстовых файлов
# Просмотр содержимого файла
cat config.txt
server=localhost
port=5432
database=mydb
# Просмотр нескольких файлов (выведет один за другим)
cat file1.txt file2.txt
# Нумерация строк (флаг -n)
cat -n script.sh
1 #!/bin/bash
2 echo "Hello"
3 date
# Показание символов конца строк (полезно для отладки)
cat -A file.txt
hello$
world $
Как это работает: cat читает содержимое файла и выводит его в стандартный вывод (stdout).
less и more
Что это: просматривает файл по страницам (постраничный просмотр)
Зачем нужно: смотреть большие файлы без перегрузки экрана
# Постраничный просмотр большого файла
less large_log_file.txt
# После запуска less используйте:
# Space или Page Down - следующая страница
# b или Page Up - предыдущая страница
# g - в начало файла
# G - в конец файла
# /search_term - поиск текста
# q - выход
Как это работает: less подгружает файл по частям, позволяя экономно использовать память и быстро навигировать по большим файлам.
head и tail
Что это: выводит начало (head) или конец (tail) файла
Зачем нужно: посмотреть первые/последние строки логов или файлов
# Вывод первых 10 строк (по умолчанию)
head log.txt
2026-01-09 10:15:23 INFO Starting application
2026-01-09 10:15:25 INFO Database connected
...
# Вывод первых 20 строк
head -20 log.txt
# Вывод последних 10 строк
tail log.txt
# Вывод последних 50 строк
tail -50 log.txt
# Отслеживание нового содержимого в реальном времени (очень полезно для логов)
tail -f /var/log/syslog
2026-01-09 10:35:12 kernel: [12345.123456] CPU0: Package temperature/speed normal
2026-01-09 10:35:15 kernel: [12348.456789] systemd[1]: Started session...
# Будет обновляться по мере появления новых строк
Как это работает: head читает файл с начала и выводит N строк, tail ищет конец файла и выводит N последних строк. Флаг -f создаёт постоянный поток данных.
4. Поиск и фильтрация
find
Что это: ищет файлы и папки по различным критериям
Зачем нужно: быстро найти нужный файл в большой структуре папок
# Поиск файла по имени в текущей директории и подпапках
find . -name "document.txt"
./Documents/document.txt
# Поиск всех файлов с расширением .log
find . -name "*.log"
# Поиск в конкретной директории
find /var/log -name "*.log"
# Поиск файлов больше определённого размера (здесь более 100 MB)
find . -size +100M
# Поиск файлов, изменённых в течение последних 7 дней
find . -mtime -7
# Поиск папок (тип -type d)
find . -type d -name "node_modules"
# Поиск файлов (тип -type f)
find . -type f -name "*.js"
# Комбинирование условий
find /home/user/projects -type f -name "*.js" -size +1M
# Выполнение команды для каждого найденного файла
find . -name "*.txt" -exec rm {} \;
# Здесь {} заменяется на имя файла, ; закрывает команду
Как это работает: find рекурсивно проходит по директориям, проверяя каждый файл по заданным условиям.
grep
Что это: ищет текст внутри файлов по шаблону
Зачем нужно: найти строку в файле или отфильтровать вывод других команд
# Поиск в одном файле
grep "error" log.txt
2026-01-09 10:15:23 ERROR Connection failed
2026-01-09 10:16:45 ERROR Timeout
# Поиск во всех файлах папки (флаг -r рекурсивный)
grep -r "TODO" /home/user/project
project/app.js:// TODO: refactor this function
project/utils.js:// TODO: add error handling
# Поиск с игнорированием регистра (флаг -i)
grep -i "ERROR" log.txt
# найдёт error, Error, ERROR и т.д.
# Показание номеров строк (флаг -n)
grep -n "config" config.js
5:const config = require('./config.json');
12:const dbConfig = config.database;
# Инверсия поиска - строки, НЕ содержащие шаблон (флаг -v)
grep -v "^#" config.txt
# выведет все строки, кроме комментариев (начинающихся с #)
# Подсчёт количества совпадений (флаг -c)
grep -c "error" log.txt
47
# Использование регулярных выражений (флаг -E)
grep -E "^[0-9]{4}-[0-9]{2}-[0-9]{2}" log.txt
# найдёт строки, начинающиеся с даты в формате YYYY-MM-DD
# Комбинирование с другими командами через pipe (|)
cat log.txt | grep "error" | wc -l
# подсчитает количество строк с "error"
Как это работает: grep читает файл строку за строкой и проверяет каждую строку по заданному шаблону.
5. Работа с процессами и системой
ps (Process Status)
Что это: показывает запущенные процессы
Зачем нужно: увидеть, какие программы работают в системе
# Просмотр процессов текущего пользователя
ps
PID TTY STAT TIME COMMAND
1234 pts/0 Ss 0:00 bash
1456 pts/0 R+ 0:00 ps
# PID - идентификатор процесса
# TTY - терминал, в котором запущен процесс
# STAT - статус процесса (S = sleeping, R = running)
# COMMAND - команда, запустившая процесс
# Полный список всех процессов в системе
ps aux
# aux означает:
# a - все процессы для всех пользователей
# u - подробный формат
# x - включить процессы без контролирующего терминала
# Примеры вывода:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.4 103008 6720 ? Ss 10:00 0:02 /sbin/init
user 1234 0.0 1.2 4523456 45320 ? S 10:15 0:05 node app.js
Как это работает: ps читает информацию о процессах из файловой системы Linux (/proc) и выводит её в форматированном виде.
top
Что это: интерактивный монитор процессов в реальном времени
Зачем нужно: видеть, какие процессы потребляют больше всего ресурсов (CPU, памяти)
# Запуск top
top
# Вывод будет выглядеть так:
top - 10:36:45 up 5 days, 2:15, 1 user, load average: 0.45, 0.52, 0.48
Tasks: 156 total, 2 running, 154 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 1.1 sy, 0.0 ni, 96.2 id, 0.1 wa, 0.2 hi, 0.1 si
MiB Mem : 16384.0 total, 12456.3 free, 2048.5 used, 1879.2 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 13985.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2345 user 20 0 1234567 456789 98765 S 8.3 2.8 2:15.47 firefox
1890 root 20 0 345678 123456 67890 S 3.1 0.8 1:05.32 systemd-journal
Ключевые навыки использования top:
q - выход из top
k - убить процесс (введите PID)
Shift+M - сортировка по памяти
Shift+P - сортировка по CPU (по умолчанию)
kill
Что это: останавливает (завершает) процесс по его PID
Зачем нужно: закрыть зависший процесс или остановить ненужную программу
# Нормальное завершение процесса (дает процессу время на очистку)
kill 2345
# Принудительное завершение (жёсткий kill)
kill -9 2345
# 9 - это сигнал SIGKILL, он не может быть проигнорирован
# Другие полезные сигналы:
kill -15 2345 # SIGTERM - вежливый запрос на завершение (по умолчанию)
kill -19 2345 # SIGSTOP - приостановка процесса
kill -18 2345 # SIGCONT - продолжение приостановленного процесса
# Поиск PID и kill в одной команде
pkill firefox # убьёт все процессы с именем firefox
Как это работает: kill отправляет сигнал операционной системы процессу. Процесс может обработать этот сигнал по-своему.
6. Работа с правами доступа
chmod (Change Mode)
Что это: меняет права доступа к файлам и папкам
Зачем нужно: контролировать, кто может читать, писать и выполнять файлы
# Права доступа в Linux состоят из трёх групп:
# rwx rwx rwx
# | | └─ права для остальных (other)
# | └───── права для группы (group)
# └───────── права для владельца (user/owner)
# r (read) - чтение (4)
# w (write) - запись (2)
# x (execute) - выполнение (1)
# Пример прав: drwxr-xr-x
# d - это директория
# rwx - владелец может читать, писать и выполнять
# r-x - группа может читать и выполнять (но не писать)
# r-x - остальные могут читать и выполнять (но не писать)
# Численный способ (самый простой):
chmod 755 script.sh
# 7 = rwx для владельца (4+2+1)
# 5 = r-x для группы (4+0+1)
# 5 = r-x для остальных (4+0+1)
# Символический способ:
chmod u+x script.sh # добавить execute для владельца
chmod g+w file.txt # добавить write для группы
chmod o-r file.txt # убрать read для остальных
chmod a+r file.txt # добавить read для всех (a = all)
# Делает скрипт исполняемым
chmod +x script.sh
# Рекурсивное изменение прав для папки и содержимого
chmod -R 755 /path/to/folder
Как это работает: каждый файл в Linux содержит информацию о правах доступа. chmod изменяет эту информацию.
chown (Change Owner)
Что это: меняет владельца файла или папки
Зачем нужно: изменить, кто является владельцем файла
# Изменение владельца (требует прав администратора)
sudo chown newuser file.txt
# Изменение владельца и группы одновременно
sudo chown newuser:newgroup file.txt
# Рекурсивное изменение для папки и содержимого
sudo chown -R newuser:newgroup /path/to/folder
# Практический пример: файл создан от имени root, нужна смена на обычного пользователя
sudo chown -R user:user /home/user/project
7. Управление пакетами и установка программ
apt / apt-get (Debian/Ubuntu)
Что это: менеджер пакетов для Debian-based систем (Ubuntu, Debian и т.д.)
Зачем нужно: устанавливать, обновлять и удалять программы
# Обновление списка доступных пакетов
sudo apt update
# Установка пакета
sudo apt install nodejs
# Установка нескольких пакетов одновременно
sudo apt install git curl wget
# Обновление установленных пакетов до последней версии
sudo apt upgrade
# Удаление пакета
sudo apt remove nodejs
# Удаление пакета и его конфигурационных файлов
sudo apt purge nodejs
# Поиск пакета
apt search postgres
postgresql - object-relational SQL database
postgresql-client - front-end programs for PostgreSQL
...
# Показание информации о пакете
apt show nodejs
Package: nodejs
Version: 18.12.1-1nodesource1
Priority: optional
Section: devel
...
yum / dnf (RedHat/Fedora)
Что это: менеджер пакетов для RedHat-based систем (Fedora, RHEL, CentOS)
Зачем нужно: то же самое, что apt, но для другого семейства Linux
# Обновление списка пакетов (обычно автоматически)
sudo dnf check-update
# Установка пакета
sudo dnf install nodejs
# Обновление пакетов
sudo dnf upgrade
# Удаление пакета
sudo dnf remove nodejs
# Поиск пакета
sudo dnf search postgres
8. Работа с текстом и обработка данных
wc (Word Count)
Что это: считает строки, слова и символы в файле
Зачем нужно: получить статистику по размеру файла
# Подсчёт строк, слов и символов
wc document.txt
42 156 1024 document.txt
# 42 строки, 156 слов, 1024 символа
# Только количество строк (флаг -l)
wc -l log.txt
1523 log.txt
# Только количество слов (флаг -w)
wc -w document.txt
156 document.txt
# Только количество символов (флаг -c)
wc -c document.txt
1024 document.txt
# Для нескольких файлов и итога
wc -l *.log
100 file1.log
250 file2.log
180 file3.log
530 total
sort и uniq
Что это: sort сортирует строки, uniq удаляет дубликаты
Зачем нужно: организовать или очистить данные
# Сортировка содержимого файла
sort data.txt
# выведет строки в алфавитном порядке
# Числовая сортировка (флаг -n)
sort -n numbers.txt
# отсортирует как числа, а не строки
# "2" будет перед "10", а не после
# Сортировка в обратном порядке (флаг -r)
sort -r data.txt
# Удаление дубликатов (при условии, что файл отсортирован)
sort data.txt | uniq
# Показание только дубликатов (флаг -d)
sort data.txt | uniq -d
# Показание количества повторений (флаг -c)
sort data.txt | uniq -c
3 apple
1 banana
2 cherry
cut
Что это: извлекает колонки из текста
Зачем нужно: получить определённые поля из структурированных данных
# Извлечение 1-го и 3-го полей, разделённых табуляцией
cut -f1,3 data.tsv
# Извлечение первых 10 символов каждой строки (флаг -c)
cut -c1-10 long_text.txt
# Указание другого разделителя (флаг -d)
cut -d',' -f1,2 data.csv
# для CSV файлов, где разделитель - запятая
9. Перенаправление и pipes
Это очень важно для работы в Linux. Pipes позволяют связывать команды вместе.
Pipe (|)
Что это: передаёт вывод одной команды на вход другой
Зачем нужно: объединять простые команды в мощные цепочки
# Вывести только строки с ошибками из большого лог-файла
cat huge_log.txt | grep "ERROR"
# Отсортировать ошибки
cat huge_log.txt | grep "ERROR" | sort
# Удалить дубликаты из отсортированного списка
cat huge_log.txt | grep "ERROR" | sort | uniq
# Подсчитать количество ошибок
cat huge_log.txt | grep "ERROR" | wc -l
42
# Более сложный пример: найти 5 самых частых ошибок
cat huge_log.txt | grep "ERROR" | cut -d' ' -f4 | sort | uniq -c | sort -rn | head -5
15 Connection
8 Timeout
7 Authentication
6 Database
4 Memory
Перенаправление ввода-вывода (>, >>, <)
Что это: перенаправляет вывод команды в файл или входные данные из файла
Зачем нужно: сохранять результаты команд в файлы
# Перенаправление вывода в файл (перезапишет файл)
echo "Hello" > output.txt
# содержимое output.txt: Hello
# Добавление вывода в конец файла (не перезапишет)
echo "World" >> output.txt
# содержимое output.txt: Hello\nWorld
# Перенаправление входа из файла
cat < input.txt
# Перенаправление ошибок в файл (2 это stderr)
ls /nonexistent 2> errors.txt
# нормальный вывод в консоль, ошибки в файл
# Перенаправление и нормального вывода и ошибок в один файл
ls /nonexistent > output.txt 2>&1
# Отправка вывода в никуда (полезно для скрытия сообщений)
rm /tmp/* 2>/dev/null
Как это работает: операционная система имеет три стандартных потока: stdin (0), stdout (1) и stderr (2). Перенаправление меняет, куда идёт данный поток.
10. Полезные утилиты
echo
Что это: выводит текст
Зачем нужно: выводить сообщения, переменные, создавать содержимое файлов
# Простой вывод
echo "Hello, World!"
Hello, World!
# Вывод переменной
echo $HOME
/home/user
# Вывод без переноса строки (флаг -n)
echo -n "Enter name: "
# Вывод с интерпретацией escape-последовательностей (флаг -e)
echo -e "Line 1\nLine 2\tTabbed"
Line 1
Line 2 Tabbed
# Создание файла с содержимым
echo "server=localhost" > config.txt
man (Manual)
Что это: показывает справку (man-страницы) по командам
Зачем нужно: узнать подробности о команде, её флаги и примеры
# Справка по команде
man ls
# откроется справка, используйте Space для навигации, q для выхода
# Поиск команды по ключевому слову
man -k "copy"
# выведет все команды, связанные со словом "copy"
# Примеры:
man grep
man chmod
man find
which и whereis
Что это: найти, где находится исполняемый файл команды
Зачем нужно: узнать полный путь к программе
# Полный путь к исполняемому файлу
which python3
/usr/bin/python3
# Более подробная информация (источник, man-страница, и т.д.)
whereis python3
python3: /usr/bin/python3 /usr/share/man/man1/python3.1.gz
date
Что это: выводит текущую дату и время
Зачем нужно: узнать текущее время или использовать в скриптах
# Текущая дата и время
date
Fri Jan 9 10:36:45 MSK 2026
# Пользовательский формат
date "+%Y-%m-%d %H:%M:%S"
2026-01-09 10:36:45
# Использование в скриптах для создания файлов с датой
backup_file="backup_$(date +%Y%m%d_%H%M%S).tar.gz"
echo $backup_file
backup_2026010910364501_363645.tar.gz
tar
Что это: упаковывает и распаковывает архивы
Зачем нужно: создавать резервные копии, передавать группы файлов
# Создание архива (флаг c, v - вывод процесса, f - файл)
tar -cvf archive.tar folder/
folder/
folder/file1.txt
folder/file2.txt
# Создание сжатого архива (.tar.gz через флаг z)
tar -cvzf archive.tar.gz folder/
# Распаковка архива
tar -xvf archive.tar
# Распаковка .tar.gz
tar -xvzf archive.tar.gz
# Список содержимого архива (без распаковки)
tar -tvf archive.tar
drwxr-xr-x user/user 0 2026-01-09 10:35 folder/
-rw-r--r-- user/user 1024 2026-01-09 10:35 folder/file1.txt
du (Disk Usage)
Что это: показывает размер файлов и папок
Зачем нужно: узнать, сколько места занимает папка
# Размер текущей папки
du .
# Размер в понятном формате (MB, GB)
du -h
256K ./config
1.2M ./logs
45M ./data
1.3G ./cache
# Итоговый размер только
du -sh .
48G .
# Размер конкретной папки
du -sh /home/user/Downloads
3.5G /home/user/Downloads
# 10 самых больших папок
du -h . | sort -rh | head -10
df (Disk Free)
Что это: показывает свободное место на диске
Зачем нужно: проверить, хватает ли места на диске
# Показание свободного места
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 65G 35G 65% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/sda2 500G 420G 80G 84% /home
# По файловой системе (флаг -i показывает inodes)
df -i
11. Работа с переменными окружения
export
Что это: устанавливает переменную окружения
Зачем нужно: передать переменную всем дочерним процессам (программам)
# Установка переменной для текущей сессии
export PATH="/usr/local/bin:$PATH"
# Использование переменной
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
# Частая переменная - HOME (домашняя папка)
echo $HOME
/home/user
# USER - текущий пользователь
echo $USER
user
# Переменная для программ (например, NODE_ENV для Node.js)
export NODE_ENV=production
node app.js # приложение получит переменную
12. Комбинирование команд
&& (И) и || (ИЛИ)
Что это: условное выполнение нескольких команд
Зачем нужно: выполнить команды в определённом порядке или только при успехе
# Выполнить вторую команду, если первая успешна (&&)
cd project && npm install
# cd выполнится, и если успешно, то выполнится npm install
# Выполнить вторую команду, если первая не успешна (||)
cd /nonexistent || echo "Directory not found"
# cd не выполнится, но выведет "Directory not found"
# Комбинирование
mkdir backup && cp -r project backup || echo "Backup failed"
Практические примеры использования
Пример 1: Поиск и удаление больших логов
# Найти все файлы .log больше 100 MB и удалить
find /var/log -name "*.log" -size +100M -exec rm {} \;
# Или с подтверждением перед удалением
find /var/log -name "*.log" -size +100M -exec rm -i {} \;
Пример 2: Резервная копия с датой
# Создать архив с датой в названии
tar -czf "backup_$(date +%Y%m%d_%H%M%S).tar.gz" important_folder/
# Вывод:
# backup_20260109_103645.tar.gz
Пример 3: Мониторинг нового содержимого в логе
# Смотреть новые строки в логе в реальном времени
tail -f /var/log/syslog | grep "ERROR"
# Альтернатива с цветным выводом (если система поддерживает)
tail -f /var/log/syslog | grep --color=auto "ERROR"
Пример 4: Подсчёт количества файлов по типам
# Сколько JavaScript файлов в проекте
find . -name "*.js" | wc -l
# Какие расширения файлов есть в проекте
find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn
234 js
89 json
45 md
12 html
Пример 5: Поиск и удаление дублирующихся файлов по имени
# Найти все файлы, которые встречаются в папке несколько раз
find . -type f -exec basename {} \; | sort | uniq -d
# Найти конкретный дублирующийся файл
find . -name "config.js" -ls
# Покажет ВСЕ файлы с именем config.js и их размер
Заключение
Эти команды покрывают 80-90% повседневной работы в Linux/Unix. Ключ к мастерству:
Понимайте, что делает каждая команда - не просто копируйте команды, понимайте логику
Используйте man страницы - man command всегда даст вам полную информацию
Экспериментируйте - практика - лучший учитель
Комбинируйте команды - мощь Unix в ability объединять простые инструменты в сложные цепочки (pipes)
Будьте осторожны с rm - Linux не имеет корзины!
Удачи в изучении Linux!