Linux - DmitryGontarenko/usefultricks GitHub Wiki
Команды
sudo
- запуск команды с правами супр-пользователя (superuser do).
В директории /home
находятся папки пользователей.
~
- это сокращение пути /home/[user]/
.
/
- коренная директория Linux.
.
- текущая директория.
..
- директория выше.
Для файлов можно применять различные маски:
*
- люое количество символов?
- один любой символ
Ctrl+Z
- отправить активный процесс на фон (background)
fg
- вернуть последний фоновый процесс (foreground)
Ctrl+C
- прервать процесс выполнения (terminate)
echo $PATH
- показать список директорий, в которых Linux будет искать и запускать запрашиваемые команды.
Ctrl + Alt + F1
- F6
- зайти в телетайп 1-6 (tty).
Ctrl + Alt + F7
- выйти из телетайп в графический интерфейс.
Навигация
Описание | Команда | Пример |
---|---|---|
Зайти в директорию | cd |
cd Desktop |
Вывести текущий путь (print working dir) | pwd |
- |
Показать содержимое директории (l-long, a-all) | ls -la |
ls -la Desktop |
Показать путь до файла | whereis [name] or locate [name] |
whereis time |
Показать что делает команда | whatis [name] |
whatis time |
Показать документацию команды | man [name] or info [name] |
man time |
Найти команду по части слова (k-key part) | man -k [part_name] |
man -k time |
Очистить консоль | clear |
- |
cd /
- абсолютный путь от корневой папки Linux.
cd ..
- вернуться на директорию выше.
cd ../..
- вернуться на две директории выше и т.д.
cd
, cd /home/[user]
или cd ~/
- вернуться в домашнюю директорию.
Чтение файлов
Описание | Команда | Пример |
---|---|---|
Вывести содержимое файла | cat [file] |
cat emails.txt |
Вывести содержимое большого файла (команда q для выход) | more [file] |
more emails.txt |
Вывести содержимое большого файла (поиск по тексту командой /word) | less [file] |
less emails.txt |
Работа с файлами
Описание | Команда | Пример |
---|---|---|
Создать файл | touch [name] |
touch emails.txt |
Копировать файл (-v процесс копирования) | cp [file] [to] |
cp emails.txt ~/Desktop |
Переместить файл | mv [file] [to] |
mv emails.txt ~/Desktop |
Удалить файл | rm [file] |
rm emails.txt |
Копировать можно сразу несколько файлов. Например, скопируем все файлы в формате .txt
, командой cp *.txt ~/Desktop
.
В Linux файлы, имена которых начинаются с точки, являются скрытыми. Т.е. с помощью команда перемещения mv emails.txt .emails.txt
, можно скрыть файл.
Работа с директориями
Описание | Команда | Пример |
---|---|---|
Создать новую директорию | mkdir [name] |
mkdir Employees |
Создать новую директорию в существующей | mkdir [exist_dir]/[name] |
mkdir Employees/Freelance |
Создать вложенные директории (p-parent) | mkdir -p [name_dir1]/[name_dir2] |
mkdir -p RussianEmployees/MoscowEmployees |
Копировать директорию | cp -R [name] [to] |
cp -R Employees ~/Desktop |
Переместить директорию | mv -R [name] [to] |
mv -R Employees ~/Desktop |
Удалить директорию | rm -R [name] |
rm -R Employees |
При операциях с директориями, флаг -R
означает провести операцию рекурсивно, т.е. затрагивая содержимое директории. Без указания этого флага, операция копирования, перемещения или удаления возможна только с пустой директорией.
Команда sudo rm -R /
удалить все содержимое основной папки Linux, после чего дальнейшая работа ОС станет невозможной.
Поиск в файлах
Описание | Команда | Пример |
---|---|---|
Поиск файлов | find [path] -name "[name]" |
find . -name "*.txt" |
Сортировать результат вывода файла (флаг -n для цифр) | sort [file] |
sort characters.txt |
Получить конкретную строку в файле. (d-delimiter, f-field) | cut -d "[delimiter]" -f [col_num] [file] |
cut -d ">" -f 3 emails.txt |
Пример выполнения команды cut:
У нас есть файл employees.txt
, который в каждой строке содержит информацию о сотрудниках. Разделителем для каждого поля служит символ >
:
[email protected]>Paul>Spring st. 7>24
[email protected]>Katty>Garbage st. 12>18
[email protected]>John>Main st. 5>32
И мы хотим получить адрес каждого сотрудника. Для этого выполним команду cut
, где укажем в качестве разделителя - символ >
, а строки - цифру 3. В итоге сформировалась команда - cut -d ">" -f 3 emails.txt
, выполнив ее, получим следующий результат:
Spring st. 7
Garbage st. 12
Main st. 5
Global regular expression print (grep)
Описание | Команда | Пример |
---|---|---|
Поиск подстроки и подсветка результата. Можно использовать как для файла, так и для результата какой-либо команды (i - ignore case sensetive). | grep [string] |
grep -i A ~/Desktop/alphabet.txt or cat alphabet.txt | grep A |
Поиск можно проводить используя регулярные выражения | grep -E "[regax]" [file] |
grep -E "[A-Za-z\-\_\.]*@[A-Za-z]*.[A-Za-z]{2,5}" emails.txt |
Перенаправление ввода/вывода
Описание | Команда | Пример |
---|---|---|
Перенаправить ответ (результат команды) в файл. Если файл с таким именем уже существует, он будет перезаписан | > |
sort characters.txt > alphabet.txt |
Добавляет ответ (результат команды) в конец файла, содержимое существующего файла не сотрется | >> |
sort characters.txt >> alphabet.txt |
Перенаправить ответы с ошибками в файл | 2> |
grep dmitrii /etc/* 2> errors.txt |
Перенаправить успешные и ошибочные ответы в разные файлы | > 2> |
grep dmitrii /etc/* > success.txt 2> errors.txt |
Перенаправить все ответы в один файл | &> |
grep dmitrii /etc/* &> results.txt |
Архивация и компрессия
Описание | Команда | Пример |
---|---|---|
Упаковать в архив одну или несколько директорий или файлов (c-create, v-verbose, f-file). | tar cf [object] |
tar cvf mytar.tar file1.txt file2.txt |
Разархивировать tar-файл (x-extract) | tar xf [tar_file] |
tar xvf mytar.tar |
Вывести содержимое tar-файла | tar tf [tar_file] |
tar tf mytar.tar |
Компрессия с помощью gzip | gzip [object] |
gzip mytar.tar |
Декомпрессия с помощью gzip | gunzip [archive] |
gunzip mytar.tar.gz |
Компрессия с помощью bzip2 | bzip2 [object] |
bzip2 mytar.tar |
Декомпрессия с помощью bzip2 | bunzip2 [archive] |
bunzip2 mytar.tar.bz2 |
Компрессия с помощью xz | xz [object] |
xz mytar.tar |
Декомпрессия с помощью xz | unxz [archive] |
xz mytar.tar.xz |
Компрессия с помощью zip | zip -r [name] [object] |
zip -r myzip.zip file.txt |
Декомпрессия с помощью zip | unzip [archive] |
unzip myzip.zip |
Процессы
Описание | Команда | Пример |
---|---|---|
Запустить менеджер процессов | top |
- |
Отобразить статистику памяти | free -h |
- |
Отобразить текущие процессы (process state) (-a-all users) | ps |
- |
Отобразить ВСЕ процессы (a=все пользователи, x=скрытые процессы) | ps ax |
ps ax | grep VBoxClient |
Текстовые редакторы
Описание | Команда | Пример |
---|---|---|
Редактор nano | nano |
nano user_list.txt |
Редактор vim | vim /vi |
vim user_list.txt |
Текстовый редактор можно открыть как отдельно, так и для какого-либо файла сразу.
Линки
Описание | Команда | Пример |
---|---|---|
Создать линк | ls -s [absolte_path_to_file] [link_name] |
ls -s ~/Document/Employees LinkToEmployees |
Создать дубликат | ls [absolte_path_to_file] [link_name] |
ls ~/Document/Employees LinkToEmployees |
Создание линка аналогично ярлыку или ссылке в Windows.
Создание дубликата - создание жесткой ссылки, изменение файлов в оригинале приведет к аналогичным изменениям в дубликате, и наоборот. При создании жесткой ссылки данные не копируются, а к ним лишь создается ссылка, т.е. если по другому - создается несколько "точек входа" к даным, а следовательно, дополнительноого места на жестком диске заниматься не будет.
Учетные записи
Описание | Команда | Пример |
---|---|---|
Вывести текущего пользователя | whoami |
- |
Переключиться на другого пользователя (switch user) | su [username] |
su admin |
Показать, в каких группах состоит пользователь | id [username] |
id admin |
Добавить пользователя в группу (a-append, G-group) | sudo usermod -aG [group] [username] |
sudo usermod -aG sudo admin |
Удалить пользователя из группы | sudo deluser [username] [group] |
sudo deluser admin sudo |
Права доступа
Описание | Команда | Пример |
---|---|---|
Изменить права для подгруппы файла | sudo chmod [command] [object] |
sudo chmod +r world/ |
Изменить владельца файла | sudo chown [user] [object] |
sudo chown admin world/ |
Изменить групповой доступ к файлу | sudo chgrp [group] [object] |
sudo chgrp developers world/ |
Имея в директории несколько папок и файлов, выполним команду ls -l
и увидим примерно следующее:
-rw-rw-r-- 1 dmitrii dmitrii 0 Mar 24 13:00 characters.txt
-rw-rw-r-- 1 dmitrii dmitrii 0 Mar 24 13:00 numbers.txt
drwxrwxr-x 2 dmitrii dmitrii 4096 Mar 24 13:00 world
Результат отображается в несколько колонок:
1-ая колонка означает права доступа
-
в начале означает файл, d
- директория, l
- линк.
Здесь существует 3 подгруппы, которые могут включать символы: r
- read (прочитать файл или просмотреть директорию), w
-write (изменять, создавать или удалять), x
- execute (запускать файл или зайти в директорию) и -
.
Первая подгруппа относится к пользователю, вторая к группе, а третья ко всем пользователям.
Для того, что бы изменить права для каждой из подгруппы, существует команда - sudo chmod [command] [object]
В качестве команды в chmode
с начало указывается для какой подгруппы будут внесены изменения - u
- user, g
- group или o
- others. Если обозначение подгруппы отсутствует, команда будет применена ко всем подгруппам;
Затем, хотим мы добавить доступ +
или убрать -
;
И наконец, тип доступа - r,
w
или x
;
Добавим право на запуск файла characters.txt
и уберем право на чтение для группы у папки world
:
sudo chmod o+x characters.txt
sudo chmod g-r world/
Выполним ls -l
и увидим изменения:
-rw-rw-r-x 1 dmitrii dmitrii 0 Mar 24 13:00 characters.txt
drwx-wxr-x 2 admin dmitrii 4096 Mar 24 13:06 world
Команда sudo chmod +r world/
даст всем подгруппам доступ для чтения папки.
Команда sudo chmod ugo+r world/
будет являться альтернативной предыдущей.
Команда sudo chmod ugo=r world/
разрешит только чтение папки. Все остальные доступы будут удалены.
3-ая колонка - пользователь (владелец файла)
Для того, что бы сменить владельца, существует команда - sudo chown [user] [object]
Выполнив sudo chown admin world/
и ls -l
, увидим изменения:
drwxrwxr-x 2 admin dmitrii 4096 Mar 24 13:06 world
4-ая колонка - группа владелец
Для того, что бы сменить группу владельца, существует команда - sudo chgrp [group] [object]
Выполнив sudo chgrp Developers numbers.txt
и ls -l
, увидим изменения:
-rw-rw-r-- 1 dmitrii Developers 0 Mar 24 13:00 numbers.txt
Сетевые команды
Описание | Команда | Пример |
---|---|---|
Вывести все сетевые устройства | ifconfig /ip a |
- |
Проверить соединение с ресурсом | ping [address] |
ping www.google.com |
Загрузка и установка файлов
Описание | Команда | Пример |
---|---|---|
Скачать файл из интернета | wget [address_to_file] |
wget https://ubuntu.ru/img/logo_ru.png |
Скачать и установить пакет из linux-репозитория | sudo apt-get install [package] |
sudo apt-get install nmap |
Обновить индексы linux-репозитория | sudo apt-get update |
- |
Обновить установленные пакеты | sudo apt-get upgrade |
- |
Вывести расположения установленного пакета | whereis [package] |
whereis nmap |
Удалить установленный пакет | sudo apt-get remove [package] |
sudo apt-get remove nmap |