День 3/90 с Шубхамом Лондхе
Как инженер DevOps, вы должны хорошо разбираться в инструментах командной строки Linux. Эта шпаргалка может помочь.
Давайте начнем! 💯
⫸ Основные команды 😊
✍ мкдир
mkdir linux-basics
: создает новый каталог с указанным именем.
mkdir dev qa prod
: создает несколько каталогов одновременно.mkdir logfolder{1..10}
: создает диапазон каталогов с порядковыми номерами от 1 до 10.
✍ sudo: означает «суперпользователь делает»
sudo [options] [cmd]
: используется для выполнения команд в качестве пользователя root или суперпользователя.
sudo apt-get update
: обновляет список пакетов
sudo -u username touch file.txt
: создает новый файл «file.txt» с владельцем «имя пользователя».
sudo -s
: запускает новую оболочку с привилегиями root.
✍ история
history
: отображать все команды, которые мы выполнили на терминале.
✍ ls
ls
: вывести содержимое текущего рабочего каталога
ls -l
: список содержимого в длинном формате с разрешениями, владельцем, размером и датой последнего изменения для каждого каталога.ls -a
: список всех файлов в каталоге, включая скрытые файлы, начинающиеся с точки (.).
ls -R
: рекурсивно перечислить содержимое текущего каталога и его подкаталогов.
ls -r
: обратный порядок отображения. Старые файлы перечислены первыми.ls -h
: отображать размер файла в удобочитаемом формате. например, КБ, МБ или ГБ.
мы также можем комбинировать вышеуказанные варианты:
ls -alh
: отображать содержимое каталога, включая скрытые файлы, в длинном формате с размером файла, отображаемым в удобочитаемом формате.
✍ cd
cd <path/to/directory>
: приведет вас к указанному пути к каталогу.
cd ~
: используется для перехода в домашний каталог.cd /
: перейти в корневой каталогcd ..
: перейти на один каталог вверх
✍ пвд
pwd
: это рабочий каталог для печати. Он печатает текущий рабочий каталог, в котором в данный момент находится пользователь.
⫸ Операции с файлами 📁
✍ коснитесь
touch
: Эта команда помогает создать новый файл.
✍ кошка
cat filename
: используется для отображения содержимого файла
cat file1 file2 > newfile
: объединить содержимое файла1 и файла2 в новый файл.cat file1 >> file2
: добавляет содержимое файла1 к файлу2.cat -n filename
: отображать содержимое с номерами строк.cat -E filename
: отображать содержимое со знаком $ в конце каждой строки.cat -T filename
: отображать содержимое имени файла с вкладками.
✍ cp
cp src dest
: скопировать файл/каталог в другое место
cp file1.txt file2.txt
: это скопирует содержимое файла1 в файл2, который находится в том же каталоге.
cp -v file.txt dev
: копирует файл .txt в каталог dev в подробном режиме. Таким образом, вы смогли увидеть прогресс.
cp -r dev qa
: копирует каталог и подкаталог в целевой каталог
✍ mv
mv file.txt file3.txt
: перемещает или переименовывает файл или каталог.
✍ rm
rm file/directory_name
: удаляет файл или каталог
rm file.txt
: удалить файлrm -r qa
: рекурсивно удалить файл и папки.
rm -rf prod
: принудительно удаляет каталог/файл, чтобы удалить каталог, нам нужно использовать-r
.
⫸ Обработка текста 📋
✍ грэп
grep [options] [pattern] [filename]
: «глобальный поиск регулярного выражения и печать». Он используется для текстового поиска и фильтрации на основе регулярных выражений и возвращает строки, соответствующие шаблону.
Например: анализ журнала, мониторинг системы и отладка кода.
grep "INFO" logfile.txt
: это вернет поиск с ключевым словом INFO из logfile.txt.
grep "ERROR" -r -i /home/ubuntu
: это попытается найти ключевое слово «ошибка» в пути /home.
top | grep -i systemd
: grep можно комбинировать с другими командами Linux и искать точный шаблон.
df -h | grep -i /dev/shm
: здесь мы объединили команду grep с командой disk space и искали /dev/shm
✍ авк
awk <condition> {<action>} filename
: awk — это язык программирования со своим собственным синтаксисом. Он используется для обработки текста и манипулирования им.
Например: извлечение данных, создание отчетов или манипулирование данными.
awk '/INFO/ {print $1 $2 $3 $6} logfile.txt
: здесь вы можете передать шаблон «INFO» и условие для печати столбцов 1, 2, 3 и 6 файла журнала.
awk -F',' '{print $1, $3}' fruits.txt
: это разделит разделитель и напечатает значения столбцов 1 и 3 в выводе.
awk -F',' '$2 > 75 {print $1}' marks.txt
: Это будет разделено по разделителю, а затем по оценкам учащихся и будет напечатано их имена, если оценки превышают 75.
✍ найти
find
: используется для поиска файлов и каталогов в заданном каталоге. Он использует имя, размер, тип или время изменения файла для поиска.
Например: управление файлами, резервное копирование и системное администрирование.
find . -name "logfile.txt"
: это найдет файл по имени в текущем каталоге и его подкаталогах.find . -name "*.txt"
: будут найдены все файлы с расширением .txt.
find . -type d
: это находит все каталоги из текущего каталога.find . -type f -size +10M
: это находит все больше 10Mfind . -name "logfile.txt" -delete
: удаляет все файлы, которые соответствуют имени файла.
✍ сед
sed [options] [pattern] [filename]
: Используется для поиска, преобразования и замены в файле/выводе команды.
sed -i 's/bitter/awesome/g' logfile.txt
: старый текст заменяется новым текстом в файле.-i
означает редактирование файла на месте,-g
означает замену всех вхождений, а-s
означает замену старого значения новым.
sed -i '3s/cool/sweet/' file.txt
: заменить первое вхождение старого текста новым текстом, но только в строке 3 файла
sed -i ‘/awesome/d’ file.txt
: удалить все строки, содержащие слово «круто» в файле.
⫸ Информация о системе
✍ топ
top
: показывает использование системных ресурсов в режиме реального времени.
✍ ps
ps
: предоставляет информацию о запущенных процессах.
✍ df
df
: указывает использование дискового пространства
✍ бесплатно
free
: показывает использование системной памяти
✍ имя
uname -u
: отображает имя системы
⫸ Сеть
✍ пинг
ping google.com
: проверяет подключение, отправляя пакеты на хост.
✍ сш
ssh -i user@remote_host
: Это позволяет подключиться к удаленному серверу через ssh
✍ объект
scp filename remotehost:localpath
: эти команды копируют файлы с удаленного хоста в локальную систему.
⫸ Управление пользователями и группами
Эти команды используются для управления учетными записями пользователей, группами и паролями.
✍ добавить пользователя
useradd username
: это добавит нового пользователя
✍ пароль
passwd username
: изменить пароль пользователя
cat \etc\passwd
: просмотреть всех пользователей
✍ групповое добавление
groupadd grpname
: создаст новую группу
cat \etc\group
: просмотреть все группы
✍ gpasswd
gpasswd -a username grpname
: добавить в группу одного пользователяgpasswd -M user1,user2 groupname
: добавить в группу нескольких пользователей.gpasswd -A username grpname
: создать администратора группы.gpasswd -d username groupname
: удалить пользователя из группы.
✍ делюзер
deluser username
: это удалит учетную запись пользователя.
⫸ Разрешение на файл
✍ чмод
Классы разрешений:
Тип: тип файла или каталога.
- Владельцы: они являются владельцами файла
- Группа: Разрешение для групп
- Другое: Разрешение для других пользователей. например, вы могли использовать кнопку «Поделиться» в документе Word.
Существует три типа разрешений: чтение (r), запись (w) и выполнение (x).
Возьмем пример
В приведенном выше примере Fruit.txt имеет
- Владелец: у него есть права на чтение и запись (4: чтение) + (2: запись) = 6
- Группа: права на чтение и запись (4: чтение) + (2: запись) = 6
- Другое: только прочитано (4: прочитано) = 4
Следовательно, текущее разрешение для файла — 664.
Чтобы изменить разрешение файла на 772, мы будем использовать chmod cmd.
- Первые 7 указывают на владельца, чтобы изменить его разрешение, нам нужны права на чтение (4), запись (2) и выполнение (1), которые представлены 4 + 2 + 1 = 7.
- Группа имеет права на чтение (4), запись (2) и выполнение (1), которые представлены как 4+2+1=7.
- Все остальные пользователи имеют только право на запись, которое представлено 0+2+0=2.
chmod 772 fruits.txt
: Это изменит разрешение файла fruit.txt с 664 на 772.
Здесь в -rwxrwx-w-
` первый —
представляет собой обычный файл.
⫸ Разное
✍ голова
head filename
: отображать верхнее содержимое файла, по умолчанию 10 строк.
head -n 3 filename
: Отображает 3 верхние строки файла.
✍ хвост
tail filename
: отображать нижние строки файлов
tail -n 3 filename
: показать нижние 3 строки файлов
✍ разница
diff file1 file2
: показывает разницу между двумя файлами.
- Любая строка, уникальная в файле1, будет отмечена символом ‹.
- Строки, уникальные в файле2, будут отмечены символом ›
Большой! Если вы дошли до конца. Это указывает на то, что у вас много терпения.
Это #Day3 из #90daysofdevops с Shubham Londhe