Иногда, работая в командной строке (особенно при работе с shell-скриптами), вам может быть интересно только имя файла, но доступным для вас является полный путь к файлу.
Команда man отображает страницы мануалов, которые являются руководством пользователя, встроенным по умолчанию во многие Linux и большинство Unix операционных систем.
man bash : Чтобы отобразить всю инструкцию bash

man <ключевое слово>, например man ls выдает информацию о команде ls.
Каналы и фильтры
Оператор pipe ‘|’ (вертикальная полоса) — это способ отправки вывода одной команды в качестве входной для другой команды.

command1 | command2
Когда команда посылает свой выход в канал, принимающей стороной для этого выхода является другая команда, а не файл. На рисунке ниже показано, как команда wc подсчитывает содержимое файла, отображенного командой cat.
wc — это команда, которая принимает данные на входе и каким-то образом преобразует их вывод. Такие команды называются фильтрами и помещаются после Unix каналов.

Фильтры
Теперь давайте посмотрим на некоторые часто используемые команды фильтров. Мы будем работать с файлом под названием , который содержит около 1000 имен детей, и с файлом , который содержит имена нескольких фруктов.
- grep или глобальное регулярное выражение ищет строки с заданной строкой или ищет шаблон в заданном входном потоке и выводит результат. Следующая команда прочитает все файлы и выведет все строки, содержащие либо слово ‘Tom’.

Но получился большой список, и мы не можем разобраться во всех этих данных, только что выведенных в терминале. Давайте посмотрим, как мы можем использовать оператор pipe, чтобы разобраться в этом.
- Фильтр wc — это сокращение от количества слов (word count). Он читает список файлов и генерирует одну или несколько следующих статистик: количество новых строк, количество слов и количество байтов. Введем в wc вывод вышеприведенной команды grep для подсчета количества строк, содержащих слово ‘Tom’.
- Фильтр sort сортирует строки в алфавитном или цифровом порядке.

Команда cat сначала читает содержимое файла , а затем сортирует его.
- Фильтр uniq означает «уникальный» и дает нам количество уникальных строк во входном потоке.
Важно отметить, что uniq не может обнаружить дубликаты записей, если они не находятся рядом. Поэтому мы использовали сортировку файла перед использованием команды сортировки. В качестве альтернативы можно также использовать команду sort -u вместо uniq.

Каналы очень удобны для выполнения некоторых сложных задач, так как несколько команд могут быть объединены в один канал вывода.
Команды Linux для навигации в терминале
- &&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
- alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
- cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
- clear. Очищает окно терминала от всех сообщений.
- history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
- man. Отображает руководство по программам и командам Linux. Введите man имя_пакетаили man ваша_команда.
- whatis. Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.

Перечень встроенных ограничений rbash
Ограниченный командный интерпретатор rbash ведет себя аналогично bash, но следующие действия не разрешены или не выполняются:
- запрещена смена текущего каталога командой cd
- запрещено изменять переменные окружения PATH, SHELL, ENV, BASH_ENV
- запрещен доступ к переменной SHELLOPTS
- запрещено перенаправление вывода
- запрещен вызов утилит, в названии которых присутствует хотя бы один символ «слэш» (/)
- запрещен вызов команды exec для запуска другого процесса
- запрещен ряд других команд, которые могут использовать сценарий для выполнения непредусмотренных действий
- запрещен выход из ограниченного режима
- Linux, написанный на Bash
- Cool Linux Resource Monitor Written …
- BashTop — это монитор ресурсов Linux …
- BashTop — это монитор ресурсов Linux …
- A Resource Monitoring Tool for Linux
Ограничения начинают действовать сразу после чтения файлов начального запуска. При выполнении команды, которая оказалась сценарием командного интерпретатора, rbash отключает любые ограничения в порожденном командном интерпретаторе для выполнения этого сценария. Подробнее здесь.
Забытая история bash.
Если вы открыли терминал и печатаете там команды, потом открыли еще один, немного его поиспользовали, то новый терминал не «вспомнит» ни одной команды, напечатанной в первом. Вдобавок, при закрытии первого терминала второй перезапишет все команды в истории, введённые в первом. Вдвойне досадно!
Это происходит потому, что история bash сохраняется только когда вы закрываете терминал, а не после каждой команды. Чтобы исправить такое поведение, добавьте в ~/.bashrc строки:
shopt -s histappend PROMPT_COMMAND=`history -a`
Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана :
PROMPT_COMMAND=‘$PROMPT_COMMAND; history -a’
Это заставит bash дополнять историю вместо того, чтобы перезаписывать её: каждый раз, когда показывается приглашение командной строки, последняя команда добавляется в историю.
Файлы и каталоги
Смена текущего каталога
Для перехода между каталогами файловой системы вам лишь нужно знать, как применять команду cd.
pwd # перейти к текущему каталогу cd # сменить текущий каталог на домашний cd /bin # перейти в каталог /bin cd .. # перейти в родительский каталог
Содержимое каталога
Чтобы вывести в каталоге файлы, папки, а также их свойства, не обойтись без команды ls.
ls # вывести список файлов и каталогов в текущем каталоге ls /bin # вывести список файлов и каталогов в /bin ls -l # вывести подробную информацию (размер, дата…) ls -a # показать скрытые файлы и каталоги ls -ld # вывести информацию о текущем каталоге (не файлов) ls my* # вывести файлы с именем, начинающимся на my… tree # показать дерево текущего каталога
Скачать файл из Интернета
Самый простой способ скачать файл с веб-серверов — это команда wget.
wget # скачать файл с указанного URL в текущий каталог

Скачивание файла с помощью wget
Создать каталог
Если вы хотите создать папку, используйте команду mkdir.
mkdir movies # создать папку с названием «movies» в текущем каталоге mkdir -p movies/genres/scifi # создать папку с названием «movies», вложенный в «genres», и «scifi»
Копирование, перемещение и удаление
Как правило, функции копирования, перемещения и удаления выполняют через файловый менеджер, но можно делать это и через терминал.
rmdir movies # удалить пустой каталог movies rm -rf movies # удалить каталог movies и его файлы rm # удалить файл mv /home/michael/ /home/john/ # переместить файл из /home/michael в /home/john cp /home/michael/ /home/john/ # скопировать файл из /home/michael в /home/john cp -R letters/ memories/ # скопировать содержимое папки «letters» в папку «memories» cp -R letters ~/Desktop # скопировать папку «letters» вставить на рабочий стол
Права доступа и владельцы
Права доступа и владельца файла или каталога можно изменить с помощью команды chmod и chown.
chmod 777 # изменить права файла chmod +x # сделать файл выполняющим chown guille # сменить владельца файла «» на пользователя «guille» ./ # запустить
Поиск файлов
Забыли где файл Хотите вывести все PDF файлы, находящиеся в папке? С помощью команды find вы можете сделать это и многое другое.
find . -name # найти файл с названием «» в текущем каталоге find /home/joe/Downloads -name *.pdf # найти PDF файлы в папке Downloads find / -executable -atime -10 # найти исполняемые файлы в каталоге root, доступ к котором был 10 минут назад find ~ -newer # найти в домашнем каталоге файл, который редактировался после файла «»
Вычисление контрольной суммы SHA256 файла
При скачивании любой программы из Интернета, рекомендуется проверить контрольную сумму SHA, чтобы убедиться, всё ли верно скачалось. И сделать это гораздо легче через терминал:
# Linux sha256sum # вычисление контрольной суммы SHA 256 файла echo -n “foobar” | sha256sum # вычисление контрольной суммы SHA 256 слова “foobar” # macOS shasum -a 256 # вычисление контрольной суммы SHA 256 файла echo -n “foobar” | shasum -a 256 # вычисление контрольной суммы SHA 256 слова “foobar”
Сжатие и распаковка TAR/ZIP файлов

Неважно, что у вас TAR или ZIP файл, вы можете распаковать его через терминал или же создать из существующих папок:
# Tar / untar tar -cvzf myfolder # сжатие папки «my_folder» в архив «» tar -xvzf # распаковка файла в текущий каталог tar -C /opt/abc -xvzf # распаковка файла в /opt/abc # Zip / unzip zip -r myfolder # сжатие папки «my_folder» в архив «» unzip # распаковка файла в текущий каталог
Свободное место на диске
Хотите узнать доступное место на жестком диске? Или на внешнем? Или в текущем каталоге? В этих вопросах помогает команда df.
df -k . # свободное место в текущем каталоге
df -k # доступное пространство во смонтированных файловых системахсвободное место на моём компьютере