Terminal

Проработать

  1. Основы работы с терминалом и BASH | Основные команды терминала. Первый скрипт на BASH.
  2. ТРАБЛШУТИНГ LINUX // Основные команды, примеры
  3. Основные команды Linux - 12 Вопросов На Собеседовании Линукс Админа

Основные разделы

Как работает

Терминал выполняет commands через одну их оболочек(shell). Можно узнать через какую - command 'echo $SHELL'. К примеру если ответ '/bin/bash' - значит используется оболочка Bash.

Command - программа, которая лежит где-то на жестком диске. При вызове требует имя команды и необходимые запросу parameters(данные с которыми работать) и/или options(как выполнять работу, через - или --).

command p1 p2 p3 ...

wc -l file.txt
        

Общие команды:

  1. TAB - дополняет набираемую команду из списка доступных.
  2. echo - вывод в консоль.
  3. clear(ctrl + L) - очистить терминал.
  4. man - показать описание других команд и из параметров. Пример: man pwd
  5. uname -a - получить информацию о системе.
  6. sudo -i - создает новую среду, как будто root только что вошел в систему
  7. sudo su - изменяет текущего пользователя на root.
  8. history - посмотреть историю выполненных команд.
  9. varName='' - объявление переменной. Пример:test='abc'

Top

top - получить информацию о процессах.

  1. ls -la - отобразить список файлов и папок в текущей директории
  2. cd - выполнить переход из текущей директории
  3. cd или cd .. - выполнить переход на предыдущую директорию.
  4. cd~ - выполнить переход в корневую директорию.
  5. pwd(print working directory) - вывести текущую директорию.

Работа с сетью:

  1. ping - пинг по ip. Пример:ping 8.8.8.8
  2. host - получения ip по домен имени. Пример:host google.com
  3. telnet - пинг по ip и порту. Пример:telnet opennet.ru 80
  4. netstat -ntlp - команда для отображения занятых портов.

Объединение команд

curl

curl - отправить HTTP запрос.

Среды выполнения скриптов:

  1. sh(Shell)
  2. Bash
  1. locale - поиск по имени. Но перед поиском необходимо выполнить команду "sudo updatedb" для обновления индексов.
  2. find /. -name "abc" -type d - поиск папки abc из корневой директории.

Sort

sort - команда применяется для сортировки полученного результата.

Поиск строки(grep)

Grep(global regular expression print) - поиск строки. С его помощью можно даже искать конкретные слова в файле. Также можно передать вывод любой команды в grep, что сильно упрощает работу во время поиска и траблшутинга.

Поиска папок и файлов

Пример объединения с командой ls и поиска папок и файлов с abs в названии(кавычки можно убрать если слово одно).

ls | grep 'abs'
        

Для поиска строчки с заданым текстом в файле

grep 'test word' file.txt
        

Поиск по нескольким параметрам

grep -e 'test word' -e 'test word2' file.txt
        

Рекурсивный поиск

Поиск всех строк содержащих заданое слово во всех файлах по дериктории

grep -r test /directory/to/search
        

Игнорировать регистр

Игнорирует регистр ключем i

grep -i test file.txt
        

Исключить шаблон

Для поиска строчек НЕ ИМЕЮЩИХ искомое слово использует ключем -v

grep -v test file.txt
        

Вывод номера строки

Чтобы показать номер строки, используем ключ n.

grep -n test file.txt
        

Использование регулярных выражений

  1. [] - проверка на соответствие одного из указаных символов - [123]
  2. - - диапазон вероятного(от до) - [1-3]
  3. ^ - начало искомой строки - '^A'
  4. [^] - между квадратными скобками смысл меняется, исключает из поиска следующие за ней символы или диапазон символов - [^1-3]
  5. $ - конец искомой строки - 'A$'
  6. . - любой один символ - '1.3'

Можно использовать квантификаторы

  1. {n} - n раз - Ха{3}ха
  2. {m,n} - от m до n включительно - Ха{2,4}ха
  3. {m,} - не менее m - Ха{2,}ха
  4. {,n} - не более n - Ха{,3}ха
  5. ? - ноль или одно вхождение
  6. * - ноль или более
  7. + - одно или более

Работа с файлами:

Создание

  1. touch - создание файла
  2. mkdir - создание папки
  3. mkdir /home/joe/Desktop/new_folder
                

Просмотр

  1. cat - показать файл целиком. Она позволяет просматривать, создавать, объединять содержимое файлов в командной строке или в другом файле.
  2. cat example.txt
                
  3. nl - показать файл с номерами строк.
  4. head - начало файла. По умолчанию 10 строк, можно указать сколько строк нужно отобразить.
  5. tail -f -n 5 имяФайла - открыть последние 5 строк файла syslog с дальнейшим отслеживание.
  6. less - интерактивный просмотр. Постраничная прокрутка, поиск по файлу, для очень больших файлов, не грузит файл целиком в память.

Изменение

  1. cp - копирование файла. Параметры: указать путь файл, указать путь куда копировать
  2. cp ./hosts-m3-dev-artyom ./hosts-m3-dev-artyom-backup
                
  3. mv - перемещение/переименование
  4. mv /home/user/my_static /home/user/static
                
  5. rm - удаление
  6. rm /tmp/readme.txt
                

Variables

Создание

MY_VAR="hello" - объявление локальной переменной в терминале для текущего окна терминала, до момента перезагрузки сессии. Для строковых данных нужно использовать кавычки. " - с интерполяцией(возможностью внутри строки использовать другие переменные MY_VAR="hello $MY_VAR") или ' без интерполяции.

export MY_VAR=hello - объявление переменной среды, до момента перезагрузки сессии.

Чтобы переменная жила между сессиями нужно объявить ее в ~/.bashrc или в ~/.bash_profile

Отображение

set - command отобразить все переменные.

env - command отобразить только переменные окружения.

echo $MY_VAR - отобразить конкретную переменную.

Добавление команд для терминала

Для включения возможности именование терминальных окон нужно в файл "sudo nano ~/.bashrc" добавить:

# change name of tab for terminal
set-title(){
  ORIG=$PS1
  TITLE="\e]2;$@\a"
  PS1=${ORIG}${TITLE}
}
        

Пример команды: set-title новое_имя

Для быстрого отображения погоды в терминале

we() # Weather report, no parameter defaults to braila
{
    printf '\033[8;40;130t';
    if [[ $# -eq 0 ]]; then
        curl wttr.in/dnepr
    else
        curl wttr.in/$1
    fi
}
        

Для смены пароля пользователя:

Выполняем команду -> sudo passwd

Для смены пароля шифрования диска:

Выполняем команду -> blkid

Находим строку с TYPE="crypto_LUKS" и берем из нее первую часть - Пример:/dev/nvme0n1p3

Выполняем команду используя полученное -> sudo cryptsetup luksChangeKey /dev/nvme0n1p3

Вводим старый пароль и 2 новых.

md5 sum

MD5 сумма - математическое значение, которое, как правило, представляет собой набор из 32 шестнадцатеричных букв и цифр. Значение создается с помощью специальных инструментов, которые используют «криптографическую хэш-функцию для создания хэш-значения в формате 128-бит (16 байт)». Полное соответствие контрольной суммы MD5 гарантирует целостность данных и отсутствие изменений со стороны других пользователей, а также подтверждает, что скачанный файл является точной копией исходного файла.

md5sum путь_к_файлу

Обновление времени

sudo ntpdate ntp.ubuntu.com