Основные команды Linux | Справочник

Этот справочник по командам Linux следует правилу 80/20: вы выучите 80% темы примерно за 20% времени.

Данное руководство не пытается охватить все, что связано с Linux и его командами. Он фокусируется на небольших основных командах, которые вы будете использовать в 80% или 90% случаях. А так же упрощает использование более сложных.

Эти команды работают в Linux, macOS, WSL и везде, где есть среда UNIX.

Надеемся, что содержание этого руководства поможет вам добиться того, чего вы хотите: освоить Linux.

Вы можете добавить эту страницу в закладки, чтобы иметь постоянный доступ к данному руководству по командам Linux.

Содержание

Введение в Linux и оболочки

Что такое Linux?

Linux - это операционная система, такая же как macOS или Windows.

А также это самая популярная операционная система с открытым исходным кодом, которая дает вам большую свободу.

Она поддерживает большинство серверов в интернете. Это основа, на которой все построено. Например, Android основан на (модифицированной версии) Linux.

«Ядро» Linux появилось в 1991 году в Финляндии и прошло очень долгий путь от своего начала. В дальнейшем он стал ядром операционной системы GNU, создав дуэт GNU/Linux.

В Linux есть одна вещь, которую корпорации вроде Microsoft, Apple и Google никогда не смогут предложить: свобода делать со своим компьютером все, что угодно.

Linux - это максимальная свобода.

Linux разрабатывают добровольцы, некоторым платят компании, а некоторые - независимо. Но нет ни одной коммерческой компании, которая могла бы определять, что входит в Linux или в его приоритеты.

Никто не может диктовать, какие приложения вы можете запускать, или «звонить домой» с приложения, которое отслеживает, например, ваше местоположение.

Что такое оболочка Linux?

Оболочка Linux - это интерпретатор команд, который предоставляет пользователю интерфейс для работы с базовой операционной системой. Позволяет выполнять операции с использованием текста и команд, а также предоставляет пользователям расширенные функции, такие как возможность создавать сценарии.

ВАЖНО: оболочки позволяют выполнять задачи более оптимизированным образом, чем позволяет GUI (графический пользовательский интерфейс). Инструменты командной строки могут предлагать множество различных параметров конфигурации, не будучи сложными в использовании.

Есть много разных видов оболочек. Например: Bash, Csh, Zsh, Fish и многие другие. Все оболочки происходят от оболочки Bourne Shell, называемой sh. «Борн», потому что его создателем был Стив Борн.

Каждая оболочка имеет свои уникальные особенности и расширенное использование, но все они имеют общие функции: они позволяют выполнять программы, а также их можно программировать.

В оставшейся части этого руководства мы подробно рассмотрим наиболее распространенные команды.

Linux man команда

Команда man используется для просмотра справочных руководств системы. Команда предоставляет пользователям доступ к страницам руководства для утилит и инструментов командной строки.

Поэтому, когда не знаете, как использовать команду, можно набрать, man <command> чтобы получить:

На приведенном выше скриншоте показан только один из 14 экранов с объяснением ls команды. 

Синтаксис man команды: man <command/tool name>

Затем будет найдена и отображена справочная страница с примерами.

Linux ls команда

Команда ls представляет собой служебную программу командной строки для перечисления содержимого каталога или каталогов, переданных ему через стандартный ввод. Он записывает результаты в стандартный вывод. Команда ls поддерживает отображение разнообразной информации о файлах, сортировку по диапазону параметров и рекурсивный список.

Чтобы отобразить содержимое каталога, передайте команде имя каталога ls. Это отобразит содержимое каталога в алфавитном порядке. Если ваш терминал поддерживает цвета, вы можете увидеть, что списки файлов и каталогов имеют другой цвет.

ls /home/george
bin  code  dotfiles  Downloads  go  irc  logs  src

Чтобы показать скрытые файлы и папки передайте -a параметр в ls.

ls -a /home/george
.                         .goobook            .tmux.conf
..                        .goobook_auth.json  .urlview
.asoundrc                 .inputrc            .vim
.asoundrc.asoundconf      .install.sh         .viminfo
.asoundrc.asoundconf.bak  .irbrc              .viminfo.tmp
...

Чтобы добавить индикатор типа файла в список каталогов, передайте -F опцию.

 ls -F
  bin@   dotfiles/   file.txt  irc/   src/
  code/  Downloads/  go/       logs/

Также:

  • -l опция показывает длинный список;
  • -S опция сортирует по размеру;
  • -t опция сортирует по времени модификации;
  • -u опция сортирует по времени доступа;
  • -h опция показывает размер файла в удобочитаемом формате;
  • -1 опция отображает по одному файлу или папку в строке;
  • -R опция показывает рекурсивный листинг.

Linux cd команда

cd команда в Linux известна как команда изменения каталога. Она используется для изменения текущего рабочего каталога.

Синтаксис: $ cd [directory]

Для перемещения внутри подкаталога в Linux мы используем: $ cd [directory_name]

Примеры команды cd:

  • Перейдите в домашний каталог (определяется переменной среды $ HOME): $ cd или cd ~
  • перейти в корневой каталог: $ cd /
  • перейти в родительский каталог: $ cd ..
  • перейти в родительский каталог: $ cd ..
  • перейти в подкаталогDocuments: $ cd Documents
  • перейдите в подкаталогDocuments/Books: $ cd Documents/Books
  • перейдите в каталог с абсолютным путем/home/user/Desktop: $ cd /home/user/Desktop
  • измените имя каталога с пробелом -Мои изображения: $ cd My \ Images, или $ cd "My Images", или $ cd 'My Images'.

Linux pwd команда

Команда pwd представляет собой служебную программу командной строки. Она выведет полный системный путь к текущему рабочему каталогу.

Когда вы потерялись в файловой системе, вызывайте pwd команду, чтобы узнать, где вы находитесь.

Linux mkdir команда

С помощью команды mkdir можно создавать папки:

mkdir fruits

Вы можете создать несколько папок:

mkdir dogs cars

Можно создать несколько вложенных папок, добавив -p параметр:

mkdir -p fruits/apples

Linux rmdir команда

Когда вам нужно удалить папку используйте команду rmdir:

rmdir fruits

Так можно удалить сразу несколько папок:

mkdir fruits cars
rmdir fruits cars

Папка, которую вы удаляете, должна быть пустой.

Чтобы удалить папки с файлами, используйте более общую rm команду, которая удаляет файлы и папки, используя -rf опцию:

rm -rf fruits cars

Важно: данная команда не запрашивает подтверждения для удаления. При удалении файлов из командной строки они не попадут в корзину. Восстановить потерянные файлы будет практически невозможно.

Linux mv команда

Чтобы переместить файл используйте mv команду. Укажите текущий путь к файлу и его новый путь:

mv/путь/к/файлу/новый/путь/к/файлу

Переместить несколько файлов в каталог:

mv -t directory fileToMove1 fileToMove2

Переименование файла с помощью mv:

При перемещении файла в тот же каталог с другим именем он просто переименовывается.

mv oldFileName newFileName

Linux cp команда

С помощью cp команды, вы можете скопировать файл:

touch test
cp apple another_apple

Для копирования папок нужно добавить -r возможность рекурсивного копирования всего содержимого папки:

mkdir fruits
cp -r fruits cars

Linux open команда

Команда open позволяет вам открыть файл, используя синтаксис:

open <filename>

Открыть каталог, который в macOS открывает приложение Finder с текущим каталогом:

open <directory name>

Открыть текущий каталог:

open .

Специальный . символ указывает на текущий каталог, а .. указывает на родительский каталог.

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

open <application name>

Linux touch команда

Чтобы создать пустой файл с помощью touch команды:

touch apple

Если файл уже существует, он открывает файл в режиме записи и метка времени файла обновляется.

Linux find команда

Команду find используют для поиска файлов или папок соответствующие определенный шаблон поиска. Ищет рекурсивно.

Например:

Найдите все файлы в текущем дереве с .js расширением и распечатайте относительный путь к каждому файлу, который соответствует:

find . -name '*.js'

Важно использовать кавычки вокруг специальных символов, * чтобы оболочка не интерпретировала их.

Найдите в текущем дереве каталоги, соответствующие имени "src":

find . -type d -name src

Используйте -type f для поиска только файлов или -type l поиска только символьных ссылок.

-name чувствителен к регистру. Используйте -iname для поиска без учета регистра.

Вы можете искать по нескольким корневым деревьям:

find folder1 folder2 -name filename.txt

Найдите каталоги под текущим деревом, соответствующие имени "node_modules" или 'public':

find . -type d -name node_modules -or -name public

Вы можете исключить путь, используя -not -path:

find . -type d -name '*.md' -not -path 'node_modules/*'

Вы можете искать файлы, содержащие более 100 байтов:

find . -type f -size +100c

Искать файлы размером более 100 КБ, но меньше 1 МБ:

find . -type f -size +100k -size -1M

Искать файлы, отредактированные более 3 дней назад:

find . -type f -mtime +3

Искать файлы, отредактированные за последние 24 часа:

find . -type f -mtime -1

Чтобы удалить все файлы, соответствующие запросу, добавив -delete опцию. Это удалит все файлы, отредактированные за последние 24 часа:

find . -type f -mtime -1 -delete

Вы можете выполнить команду для каждого результата поиска. В этом примере мы запускаем cat печать содержимого файла:

find . -type f -exec cat {} \;

Обратите внимание на завершение \;{} заполняется именем файла во время выполнения.

Linux ln команда

Команда ln является частью команд файловой системы Linux.

Она используется для создания ссылок. Что такое ссылка? Это как указатель на другой файл или файл, указывающий на другой файл. Вы знакомы с ярлыками Windows? Они похожи.

У нас есть 2 типа ссылок: жесткие ссылки и мягкие ссылки.

Жесткие ссылки

Жесткие ссылки используются редко. У них есть несколько ограничений: вы не можете ссылаться на каталоги и вы не можете ссылаться на внешние файловые системы (диски).

Жесткая ссылка создается с использованием следующего синтаксиса:

ln <original> <link>

Пример. Ппредположим, что у вас есть файл recipes.txt. Вы можете создать жесткую ссылку на него, используя:

ln recipes.txt newrecipes.txt

Созданная новая жесткая ссылка неотличима от обычного файла:

Теперь каждый раз, когда вы редактируете любой из этих файлов, содержимое будет обновляться для обоих.

Если вы удалите исходный файл, ссылка все равно будет содержать исходное содержимое файла, так как оно не удаляется, пока на него не будет указана одна жесткая ссылка.

Мягкие ссылки

Софт-ссылки разные. Они более мощные, поскольку вы можете связываться с другими файловыми системами и каталогами. Но учтите, что при удалении оригинала ссылка будет разорвана.

Вы создаете программные ссылки, используя следующие -s и ln опции:

ln -s <original> <link>

Пример. Предположим, что у вас есть файл recipes.txt. Вы можете создать мягкую ссылку на него, используя:

ln -s recipes.txt newrecipes.txt

В этом случае вы можете увидеть специальный l флаг, когда вы перечисляете файл с помощью ls -al. Имя файла имеет @ в конце, и он может быть окрашен по-разному, если у вас включены цвета:

Теперь, если вы удалите исходный файл, ссылки будут разорваны и оболочка сообщит вам: «Нет такого файла или каталога», если вы попытаетесь получить к нему доступ:

Linux gzip команда

Вы можете сжать файл, используя протокол сжатия gzip под названием LZ77, используя gzip команду.

Вот простейшее использование:

gzip filename

Это сжимает файл и добавляет .gz к нему расширение. Исходный файл удаляется.

Чтобы предотвратить это, вы можете использовать -c опцию и использовать перенаправление вывода для записи вывода в filename.gz файл:

gzip -c filename > filename.gz

Параметр -c указывает, что вывод будет идти в стандартный поток вывода, оставляя исходный файл нетронутым.

Или вы можете использовать -k опцию:

gzip -k filename

Есть разные уровни сжатия. Чем сильнее сжатие, тем больше времени потребуется для сжатия (и распаковки). Уровни варьируются от 1 (самое быстрое, худшее сжатие) до 9 (самое медленное, лучшее сжатие), по умолчанию - 6.

Вы можете выбрать конкретный уровень -<NUMBER> опцией:

gzip -1 filename

Сжать несколько файлов, перечислив их:

gzip filename1 filename2

Рекурсивно сжать все файлы в каталоге, используя -r параметр:

gzip -r a_folder

Опция -v печатает процент сжатия информации. Вот пример его использования вместе с -k опцией (сохранить):

Также gzip можно использовать для распаковки файла, используя -d опцию:

gzip -d filename.gz

Linux gunzip команда

Команда gunzip в основном эквивалентна gzip команде, за исключением того, что -d опция всегда включена по умолчанию.

Команду можно вызвать следующим образом:

gunzip filename.gz

Это произведет сжатие и удалит .gz расширение, поместив результат в filename файл. Если этот файл существует, он перезапишет его.

Вы можете выполнить извлечение в другое имя файла, используя перенаправление вывода, используя -cопцию:

gunzip -c filename.gz > anotherfilename

Linux tar команда

Команда tar используют для создания архива, группируя несколько файлов в один файл.

Эта команда создает архив с именем archive.tar и с содержанием file1 file2:

tar -cf archive.tar file1 file2

c вариант означает создание

f опция используется для записи в файл архива

Чтобы извлечь файлы из архива в текущей папке, используют:

tar -xf archive.tar

x означает экстракт

Для извличения их в конкретный каталог, используйте:

tar -xf archive.tar -C directory

Вы также можете просто перечислить файлы, содержащиеся в архиве:

Linux alias команда

С помощью этой команды запускают программу с набором параметров, которые вам нравятся.

Например, возьмите ls команду. По умолчанию он выводит мало информации:

Но если вы используете -al опцию, он даст больше полезной информации, включая дату изменения файла, размер, владельца и разрешения. В нем будут перечислены скрытые файлы (файлы, начинающиеся с символа .:

Вы можете создать новую команду, например, ll, это псевдоним для ls -al.

Делается это так:

alias ll='ls -al'

Как только вы это сделаете, вы сможете вызывать ll также, как если бы, это была обычная команда UNIX:

Теперь при вызове alias без какой-либо опции будут перечислены определенные псевдонимы:

Псевдоним будет работать до закрытия терминальной сессии.

Чтобы сделать его постоянным, вам нужно добавить его в конфигурацию оболочки. Это может быть ~/.bashrc, или ~/.profile, или ~/.bash_profile, если вы используете Bash оболочку, в зависимости от случая использования.

Будьте осторожны с кавычками, если у вас есть переменные в команде: вы используете двойные кавычки, переменная разрешается во время определения. Если вы используете одинарные кавычки, это разрешается во время вызова. Эти 2 разные:

alias lsthis="ls $PWD"
alias lscurrent='ls $PWD'

$ PWD относится к текущей папке, в которой находится оболочка. Если вы перейдете в новую папку, lscurrent отобразит список файлов в новой папке, но lsthis по-прежнему будет перечислять файлы в папке, в которой вы находились, когда определяли псевдоним.

Linux cat команда

cat также как и tail может добавлять содержимое в файл, что делает команду мощной.

В простейшем случае cat выводит содержимое файла на стандартный вывод:

cat file

Вы можете распечатать содержимое нескольких файлов:

cat file1 file2

и используя оператор перенаправления вывода, > вы можете объединить содержимое нескольких файлов в новый файл:

cat file1 file2 > file3

С помощью >> вы можете добавить содержимое нескольких файлов в новый файл, создав его, если он не существует:

cat file1 file2 >> file3

Когда вы просматриваете файлы исходного кода, полезно видеть номера строк. Вы можете cat распечатать их, используя -n опцию:

cat -n file1

Вы можете добавить число только к -b непустым строкам или вы также можете удалить все несколько пустых строк с помощью -s.

Linux less команда

less команда показывает вам контент, хранящийся внутри файла, в красивом интерактивном интерфейсе.

Использование: less <filename>.

Когда вы войдете в less сеанс, вы сможете выйти, нажав q.

Вы можете перемещаться по содержимому файла с помощью up и down клавиш или с помощью space bar и b для навигации по страницам. Также, вы можете перейти к концу файла, нажав, G и вернуться к началу, нажав g.

Чтобы искать содержимое внутри файла, нужно нажать / и введя слово для поиска. Это поиск вперед. Можно искать в обратном направлении, используя ? символ и вводя слово.

Эта команда просто визуализирует содержимое файла. Можно напрямую открыть редактор, нажав v. Он будет использовать системный редактор, который в большинстве случаев есть vim.

Нажатие F клавиши входит в режим следования или режим часов. Когда файл изменяется кем-то другим, например, из другой программы, вы можете увидеть изменения в реальном времени.

По умолчанию этого не происходит и вы видите только версию файла на момент его открытия. Для выхода из этого режима необходимо нажать: ctrl-C. В этом случае поведение похоже на выполнение tail -f <filename> команды.

Можно открыть несколько файлов и перемещаться по ним с помощью :n (для перехода к следующему файлу) и :p (для перехода к предыдущему).

Linux tail команда

Лучший вариант использования tail - это вызов с -f опцией. Он открывает файл в конце и следит за изменениями файла.

Каждый раз, когда в файле появляется новое содержимое, информация появляется в окне. Это отлично подходит для просмотра файлов, например:

tail -f /var/log/system.log

Для выхода нажмите ctrl-C.

Вы можете распечатать последние 10 строк файла:

tail -n 10 <filename>

Что бы распечатать все содержимое файла, начиная с определенной строки, используйте + перед номером строки:

tail -n +10 <filename>

Linux wc команда

Команда wc дает нам полезную информацию о файле или входных данных, которые он получает через каналы.

echo test >> test.txt
wc test.txt
1       1       5 test.txt

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

ls -al | wc
6      47     284

Первый возвращаемый столбец - это количество строк. Второй - количество слов. Третий - количество байтов.

Можно сказать ему просто подсчитать строки:

wc -l test.txt

Или просто слова:

wc -w test.txt

Или просто байты:

wc -c test.txt

Байты в кодировке ASCII приравниваются к символам. Но с кодировками, отличными от ASCII, количество символов может отличаться, потому что некоторые символы могут занимать несколько байтов (например, это происходит в Unicode).

В этом случае -m флаг поможет вам получить правильное значение:

wc -m test.txt

Linux grep команда

Команда grep - полезный инструмент. Когда вы овладеете им, это поможет вам в повседневном программировании.

grep означает печать глобального регулярного выражения.

Можете использовать grep для поиска в файлах или комбинировать его с каналами для фильтрации вывода другой команды.

Например, вот как мы можем найти вхождения document.getElementById строки в index.md файле:

grep -n document.getElementById index.md

Используя эту -n опцию, он покажет номера строк:

grep -n document.getElementById index.md

Одна очень полезная вещь - указать grep печатать 2 строки до и 2 строки после совпадающей строки, чтобы дать вам больше контекста. Это делается с помощью -C опции, которая принимает несколько строк:

grep -nC 2 document.getElementById index.md

По умолчанию поиск чувствителен к регистру. Используйте -i флаг, чтобы сделать его нечувствительным.

Как уже упоминалось, вы можете использовать grep для фильтрации вывода другой команды. Мы можем воспроизвести те же функции, что и выше, используя:

less index.md | grep -n document.getElementById

Строка поиска может быть регулярным выражением и это grep очень эффективно.

Еще одна вещь, которая является полезной - это инвертировать результат, исключив строки, соответствующие определенной строке, используя -v опцию:

Linux sort команда

Предположим, у вас есть текстовый файл, содержащий имена собак:

Этот список не упорядочен.

Команда sort помогает отсортировать их по имени:

Используйте r опцию, чтобы изменить порядок:

Сортировка по умолчанию чувствительна к регистру и по алфавиту. Используйте --ignore-case опцию сортировки без учета регистра и -n опцию сортировки с использованием числового порядка.

Если файл содержит повторяющиеся строки:

Вы можете использовать -u опцию для их удаления:

sort не только работает с файлами, как многие команды UNIX - он также работает с каналами. Таким образом, вы можете использовать его на выходе другой команды. Например, вы можете заказать файлы, возвращаемые с lsпомощью:

ls | sort

sort мощный и имеет гораздо больше возможностей, которые вы можете изучить, набрав man sort.

Linux uniq команда

uniq это команда, которая помогает сортировать строки текста.

Вы можете получить строки из файла или использовать каналы из вывода другой команды:

uniq dogs.txt

ls | uniq

Учитывайте этот ключевой момент: uniq вы обнаружите только соседние повторяющиеся строки.

Это означает, что, скорее всего, вы будете использовать его вместе с sort:

sort dogs.txt | uniq

У sort команды есть собственный способ удаления дубликатов с помощью -u (уникальной) опции. Но uniq обладает большей мощностью.

По умолчанию он удаляет повторяющиеся строки:

Вы можете указать ему отображать только повторяющиеся строки, например, с помощью -d параметра:

sort dogs.txt | uniq -d

Можете использовать -u опцию, чтобы отображать только неповторяющиеся строки:

Можете подсчитать количество появлений каждой строки с помощью -c опции:

Используйте специальную комбинацию:

sort dogs.txt | uniq -c | sort -nr

Чтобы затем отсортировать строки по наиболее частым:

Linux diff команда

diff - удобная команда. Предположим, у вас есть 2 файла, которые содержат почти одинаковую информацию, но вы не можете найти разницу между ними.

diff обработает файлы и расскажет, в чем разница.

Предположим, у вас есть 2 файла: dogs.txt и moredogs.txt. Разница в том, что в moredogs.txt содержится еще одно имя:

diff dogs.txt moredogs.txt сообщит вам, что во втором файле есть еще одна строка:

Если вы измените порядок файлов, он сообщит вам, что во втором файле отсутствует строка 3, содержимое которой Vanille:

Использование -y опции позволит сравнивать 2 файла построчно:

Однако этот -u вариант будет вам более знаком, потому что он используется системой управления версиями Git для отображения различий между версиями:

Аналогично работает и сравнение каталогов. Вы должны использовать -r опцию для рекурсивного сравнения (переход в подкаталоги):

Если вас интересует, какие файлы отличаются, а не содержимое, используйте параметры r и q:

Есть еще много других вариантов, которые вы можете изучить на странице руководства, запустив man diff команду:

Linux echo команда

Команда echo выполняет одно простое задание: она выводит переданный ей аргумент.

Этот пример:

echo "hello"

выведет hello в терминал.

Мы можем добавить результат в файл:

echo "hello" >> output.txt

Можем интерполировать переменные среды:

echo "The path variable is $PATH"

Помните, что специальные символы нужно экранировать с помощью обратной косой черты \. $например:

Это только начало. Мы можем делать некоторые интересные вещи, когда дело касается взаимодействия с функциями оболочки.

Можем повторить файлы в текущей папке:

echo *

Повторить файлы в текущей папке, которые начинаются с буквы o:

echo o*

Здесь можно использовать любую допустимую команду и функцию Bash (или любую используемую вами оболочку).

Распечатать путь к домашней папке:

echo ~

Вы также можете выполнять команды и выводить результат на стандартный вывод (или в файл):

echo $(ls -al)

Обратите внимание, что по умолчанию пробелы не сохраняются. Для этого вам нужно заключить команду в двойные кавычки:

Вы можете создать список строк, например диапазоны:

echo {1..5}

Linux chown команда

Каждый файл в операционных системах Linux, macOS (в целом, системах UNIX) имеет 3 разрешения: чтение, запись и выполнение.

Зайдите в папку и выполните ls -al команду.

Строки, которые вы видите в строках файла, например drwxr-xr-x, определяют права доступа к файлу или папке.

Теперь подробнее.

Первая буква указывает на тип файла:

  • - означает файл;
  • d означает каталог;
  • l означает, что это ссылка.

У вас есть 3 набора значений:

  • Первый набор представляет собой разрешения владельца файла.
  • Второй набор представляет разрешения членов группы с которой связан файл.
  • Третий набор представляет собой разрешения всех остальных.

Эти наборы состоят из 3 значений. rwx означает, что конкретный персонаж имеет доступ для чтения, записи и выполнения. Все, что снимается обменено с -, что позволяет формировать различные комбинации значений и относительных разрешений: rw-, r--, r-x и так далее.

Вы можете изменить разрешения предоставленные файлу, с помощью chmod команды.

chmod можно использовать 2 способами. Первый использует символьные аргументы, второй - числовые аргументы. Начнем с символов, что более интуитивно понятно.

Вы вводите с chmod последующим пробелом и буквой:

  • a стоит для всех;
  • u означает пользователя;
  • g обозначает группу;
  • o стоит для других.

Затем введите либо + или - добавить разрешение, или удалить его. После этого, введите один или несколько символов разрешений (r, w, x).

За всем следует имя файла или папки.

Вот некоторые примеры:

chmod a+r filename #everyone can now read
chmod a+rw filename #everyone can now read and write
chmod o-rwx filename #others (not the owner, not in the same group of the file) cannot read, write or execute the file

Вы можете применить одни и те же разрешения к нескольким персонажам, добавив несколько букв перед + / -:

chmod og-r filename #other and group can't read any more

Если вы редактируете папку, вы можете применить разрешения к каждому файлу, содержащемуся в этой папке, используя -r флаг (рекурсивный).

Числовые аргументы работают быстрее. Вы используете цифру, которая представляет разрешения персонажа. Это числовое значение может быть максимум 7, и оно рассчитывается следующим образом:

  • 1 если есть разрешение на исполнение;
  • 2 если есть разрешение на запись;
  • 4 если есть разрешение на чтение.

Это дает нам комбинации:

  • 0 нет разрешений;
  • 1 может выполнить;
  • 2 может писать;
  • 3 может писать и выполнять;
  • 4 может читать;
  • 5 может читать, выполнять;
  • 6 может читать, писать;
  • 7 может читать, писать и выполнять.

Мы используем их парами по 3, чтобы установить разрешения для всех 3 групп вместе:

chmod 777 filename
chmod 755 filename
chmod 644 filename

Linux umask команда

Когда вы создаете файл, вам не нужно заранее определять разрешения. У разрешений есть значения по умолчанию.

Значения по умолчанию можно контролировать и изменять с помощью umask команды.

Ввод umask без аргументов покажет вам текущую umask, в этом случае 0022:

Что 0022 значит? Это восьмеричное значение, представляющее разрешения.

Еще одно распространенное значение 0002.

Используйте umask -S для просмотра удобочитаемых обозначений:

В этом случае пользователь (u), владелец файла, имеет права на чтение, запись и выполнение файлов.

Другие пользователи, принадлежащие к той же группе (g), имеют разрешение на чтение и выполнение, как и все другие пользователи (o).

В числовом обозначении обычно меняют последние 3 цифры.

Список, который объясняет значение числа:

  • 0 читать, писать, выполнять;
  • 1 прочитать и написать;
  • 2 читать и выполнять;
  • 3 только чтение;
  • 4 написать и выполнить;
  • 5 только писать;
  • 6 только выполнять;
  • 7 нет разрешений.

Обратите внимание, что это числовое обозначение отличается от того, которое мы используем chmod.

Можно установить новое значение для маски, задав значение в числовом формате:

umask 002

Или вы можете изменить разрешение конкретной роли:

umask g+r

Linux du команда

Команда du рассчитает размер каталога:

du

Число 32 является значением, выраженное в байтах.

Запуск du * рассчитает размер каждого файла индивидуально:

Вы можете настроить du отображение значений в мегабайтах, используя du -m и гигабайтах используя du -g.

Вариант -h покажет удобочитаемое обозначение размеров, приспосабливаясь к размеру:

При добавлении -a опции будет напечатан размер каждого файла в каталогах:

Удобно отсортировать каталоги по размеру:

du -h <directory> | sort -nr

А затем по конвейеру, чтобы head получить только первые 10 результатов:

Linux df команда

Команда df используется для получения информации об использовании диска.

Его основная форма будет давать информацию о смонтированных томах:

Использование -h опции (df -h) покажет эти значения в удобочитаемом формате:

Можете указать имя файла или каталога, чтобы получить информацию о том, на каком конкретном томе он находится:

Linux basename команда

Предположим, у вас есть путь к файлу, например /Users/flavio/test.txt.

Запуск:

basename /Users/flavio/test.txt

вернет text.txt строку:

Если вы запустите basename строку пути, которая указывает на каталог, вы получите последний сегмент пути. В этом примере /Users/flavio это каталог:

Linux dirname команда

Предположим, у вас есть путь к файлу, например /Users/flavio/test.txt.

Запуск:

dirname /Users/flavio/test.txt

вернет /Users/flavio строку:

Linux ps команда

На вашем компьютере постоянно выполняется множество различных процессов.

Вы можете просмотреть их с помощью ps команды:

Это список инициированных пользователем процессов, запущенных в текущем сеансе.

В примере, есть несколько fish экземпляров оболочки, которые в основном открываются VS Code внутри редактора и экземпляр Hugo, запускающий предварительную версию сайта для разработки.

Это просто команды, назначенные текущему пользователю. Чтобы перечислить все процессы, нам нужно передать некоторые параметры ps.

Наиболее распространенный из них ps ax:

Эта a опция также используется для вывода списка процессов других пользователей, а не только ваших собственных. xпоказывает процессы, не связанные с каким-либо терминалом (не инициированные пользователями через терминал).

Как видите, более длинные команды вырезаны. Используйте команду ps axww чтобы продолжить перечисление команд с новой строки, а не вырезать ее:

Укажите w 2 раза, чтобы применить этот параметр.

Вы можете искать конкретный процесс в сочетании grep с конвейером, например:

ps axww | grep "Visual Studio Code"

Столбцы, возвращаемые функцией, ps представляют некоторую ключевую информацию.

Первая информация - PID это идентификатор процесса. Это ключевой момент, когда вы хотите сослаться на этот процесс в другой команде, например, чтобы убить его.

Затем у нас есть информация TT об используемом идентификаторе терминала.

Затем STAT сообщает нам состояние процесса:

  • I простаивающий процесс (спящий более 20 секунд);
  • R работоспособный процесс;
  • S процесс, спящий менее 20 секунд;
  • T остановленный процесс;
  • U процесс в режиме непрерывного ожидания;
  • Z мертвый процесс (зомби).

Если у вас более одной буквы, вторая представляет дополнительную информацию, которая может быть технической.

Обычно + указывает, что процесс находится на переднем плане в своем терминале. s означает, что процесс является лидером сеанса.

TIME сообщает нам, как долго выполняется процесс.

Linux top команда

Команда top используется для отображения динамической информации (в реальном времени) о запущенных в системе процессах.

Очень удобно понимать, что происходит.

Его использование простое - вы просто набираете top и терминал полностью погружается в это:

Процесс долгий. Чтобы выйти, вы можете ввести q букву или ctrl-C.

Нам предоставляется много информации: количество процессов, сколько процессов запущено или загрузка ЦП и многое другое.

Ниже список процессов, занимающих больше всего памяти и ЦП, постоянно обновляется.

По умолчанию, как видно из %CPU выделенного столбца, они сортируются по используемому процессору.

Вы можете добавить флаг для сортировки процессов по используемой памяти:

top -o mem

Linux kill команда

Процессы Linux могут получать сигналы и реагировать на них.

Это один из способов взаимодействия с запущенными программами.

kill может посылать различные сигналы программы.

Он не просто используется для завершения программы, как следует из названия, но и в этом ее основная задача.

Мы используем это так:

kill <PID>

По умолчанию это отправляет TERM сигнал указанному идентификатору процесса.

Мы можем использовать флаги для отправки других сигналов, в том числе:

kill -HUP <PID>
kill -INT <PID>
kill -KILL <PID>
kill -TERM <PID>
kill -CONT <PID>
kill -STOP <PID>
  1. HUP значит повесить трубку. Он отправляется автоматически, когда окно терминала запустившее процесс, закрывается перед завершением процесса.
  2. INT означает прерывание и он отправляет тот же сигнал, который используется при нажатии, ctrl-C на терминал, который обычно завершает процесс.
  3. KILL отправляется ядру операционной системы, которое немедленно останавливает и завершает процесс.
  4. TERM означает прекратить. Это сигнал по умолчанию.
  5. CONT значит продолжить. Его можно использовать для возобновления остановленного процесса.
  6. STOP отправляется ядру операционной системы, которое немедленно останавливает (но не завершает) процесс.

Вместо этого вы можете увидеть числа, например kill -1 <PID> . В этом случае:

  • 1 соответствует HUP.
  • 2 соответствует INT.
  • 9 соответствует KILL.
  • 15 соответствует TERM.
  • 18 соответствует CONT.
  • 15 соответствует STOP.

Linux killall команда

Подобно kill команде, killall отправляет сигнал сразу нескольким процессам вместо отправки сигнала определенному идентификатору процесса.

Это синтаксис:

killall <name>

где name имя программы. Например, у вас может быть несколько top запущенных экземпляров программы и killall top вы завершите их все.

Вы можете указать сигнал, например, с помощью kill (ознакомьтесь с kill руководством, чтобы узнать больше о конкретных типах сигналов, которые мы можем отправлять), например:

killall -HUP top

Статья дополняется...

Читайте также

Комментарии ()

    Написать комментарий