Команда cal в linux
Основная среда взаимодействия с Linux - командная строка . Суть ее в том, что каждая строка, передаваемая пользователем системе, - это команда , которую та должна выполнить. Пока не нажата кнопка Enter, строку можно редактировать, затем она отсылается системе:
Команда cal выводит календарь на текущий месяц, а команда echo просто выводит на терминал все, что следовало в командной строке после нее. Получается, что одну и ту же команду можно использовать с разными параметрами (или аргументами ), причем параметры эти изменяют поведение команды. Здесь Мефодий захотел посмотреть календарь за март 2005 года, для чего и передал команде cal два параметра - 3 и 2005 :
В большинстве случаев при разборе командной строки первое слово считается именем команды, а остальные - ее параметрами. Более подробно о разборе командной строки и работе с ней рассказано в разделе " Интерпретатор командной строки ( shell )" и в лекции 7.
Подсистема помощи
Пока же Мефодий решил, что узнал о командной строке достаточно для того, чтобы воспользоваться главными командами Linux ( по частоте их употребления при изучении системы) - man и info .
Работать с Linux, не заглядывая в документацию, практически невозможно. На это способны только седые аксакалы, у которых все нужные знания не то что в голове - в кончиках пальцев, и новички. Всем прочим настоятельно рекомендуем, приступая к работе, а тем более - к изучению Linux, пользоваться всеми доступными руководствами .
Все утилиты , все демоны Linux, все функции ядра и библиотек , структура большинства конфигурационных файлов , наконец, многие умозрительные, но важные понятия системы описаны либо в руководствах , либо в info -страницах, либо, на худой конец, в несистематизированной сопроводительной документации. Поэтому от пользователя системы не требуется заучивать все возможные варианты взаимодействия с ней. Достаточно понимать основные принципы ее устройства и уметь находить справочную информацию. Эйнштейн говорил так: "Зачем запоминать то, что всегда можно посмотреть в справочнике?"
Больше всего полезной информации содержится в страницах руководства (manpages) , для краткости мы будем называть их просто " руководство ". Каждая страница посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства , нужно дать команду системе man объект:
Одно из самых важных полей руководства находится в конце текста. Если в процессе чтения NAME или DESCRIPTION пользователь понимает, что не нашел в руководстве того, что искал, он может захотеть посмотреть, а есть ли другие руководства или иные источники информации по той же теме . Список таких источников содержится в поле SEE ALSO :
До этого поля Мефодий добрался с помощью уже известной команды " G ". Не то чтобы ему неинтересно было читать руководство по man , скорее наоборот: им двигала любознательность. В поле SEE ALSO обнаружились ссылки на руководства по less , groff (программе форматирования страницы руководства ), структуре конфигурационного файла для man , а также по двум сопутствующим командам с такими говорящими названиями "Apropos" и "whatis" 2 По-французки " apropos " означает "кстати", а "what is" - по-английски "что такое". , что Мефодий немедленно применяет одну команду к имени другой, даже не заглядывая в документацию. Так ни в коем случае не следует делать! А что если запущенная программа начнет с того, что сотрет все файлы в Вашем каталоге?
На этот раз Мефодию повезло: команда whatis не делает ничего разрушительного. Как и команда apropos , whatis ищет подстроку в некоторой базе данных, состоящей из полей NAME всех страниц помощи в системе. Различие между ними в том, что whatis - только среди имен объектов (в левых частях полей NAME ), а apropos - по всей базе. В результате у whatis получается список кратких описаний объектов с именами, включающими искомое слово, а у apropos - список, в котором это слово упоминается . Для того, чтобы это узнать, все равно пришлось один раз прочесть документацию.
В системе может встретиться несколько объектов разного типа, но с одинаковым названием. Часто совпадают, например, имена системных вызовов (функций ядра ) и программ, которые пользуются этими функциями из командной строки (т. н. утилит ):
Описания объектов, выводимые whatis , отличаются числом в скобках - номером раздела. В системе руководств Linux - девять разделов, каждый из которых содержит страницы руководства к объектам определенного типа. Все разделы содержат по одному руководству с именем "intro", в котором в общем виде и на примерах рассказано, какие объекты имеют отношение к данному разделу:
Вот названия разделов в переводе на русский:
- Команды пользователя.
- Системные вызовы (пользовательские функции ядра Linux; руководства рассчитаны на программиста, знающего язык Си).
- Библиотечные функции (функции, принадлежащие всевозможным библиотекам подпрограмм; руководства рассчитаны на программиста, знающего язык Си).
- Внешние устройства и работа с ними (в Linux они называются специальными файлами, см. лекцию 10).
- Форматы различных стандартных файлов системы (например, конфигурационных ).
- Игры, безделушки и прочие вещи, не имеющие системной ценности.
- Теоретические положения, договоренности и все, что не может быть классифицировано.
- Инструменты администратора (часто недоступные обычному пользователю).
- Интерфейс ядра ( внутренние функции и структуры данных ядра Linux, необходимые только системному программисту, исправляющему или дополняющему ядро ).
В частности, пример с passwd показывает, что в системе " Some Linux ", которую использует Мефодий, есть программа passwd (именно с ее помощью Мефодий поменял себе пароль в предыдущей лекции), файл passwd , содержащий информацию о пользователях, и администраторская программа passwd , обладающая более широкими возможностями. По умолчанию man просматривает все разделы и показывает первое найденное руководство с заданным именем. Чтобы посмотреть руководство по объекту из определенного раздела, необходимо в качестве первого параметра команды man указать номер раздела:
2.10. Выбор среди страниц руководства с одинаковым именемЕсли в качестве первого параметра man использовать " -a ", будут последовательно выданы все руководства с заданным именем. Внутри страниц руководства принято непосредственно после имени объекта ставить в круглых скобках номер раздела, в котором содержится руководство по этому объекту: man (1) , less(1) , passwd(5) и т. д.
Команда cal предназначена для вызова одноименной утилиты, осуществляющей вывод календаря в терминале. Она может использоваться для вывода календаря на один месяц, несколько месяцев или на весь год. Она поддерживает Юлианский календарь и может выводить календари для любого заданного пользователем месяца и года. Более функциональным аналогом данной команды является команда ncal, которая выводит календарь в другом формате и реализует дополнительные функции, которые, впрочем, могут понадобиться лишь самым взыскательным пользователям.
Базовый синтаксис команды выглядит следующим образом:
Утилита может вывести календарь для любой заданной пользователем даты в случае использования параметра -d и указания этой даты. При отсутствии даты она будет выводить календарь на текущий месяц. Кроме того, она поддерживает параметр -j, позволяющий выводить числа в Юлианском стиле, параметр -h, позволяющий отключить подсветку текущей даты, параметр -m, позволяющий задать номер месяца из диапазона 1 - 12, параметр -y, позволяющий задать номер года, параметры -1 … -12, позволяющие указать число месяцев для вывода, а также параметры -A и -B, позволяющие указать число месяцев до и после текущего месяца и до текущего месяца соответственно.
Примеры использования
Вывод календаря на текущий месяц
Для вывода календаря на текущий месяц следует использовать утилиту cal без параметров:
Для вывода календаря для нескольких месяцев до и после текущего месяца может использоваться параметр -A, до текущего месяца — параметр -B:
Для вывода чисел в Юлианском стиле следует использовать параметр -j:
Вывод календаря для заданной даты
Для вывода календаря для заданной даты может использоваться параметр -d с последующим указанием даты:
Также может использоваться комбинация параметров -m и -y с указанием месяца и года:
В последнем случае утилита выведен календарь на весь год; в этом случае стоит использовать параметр -1.
В этой статье мы покажем как использовать команду cal в Linux и поговорим о параметрах команды.
О других командах Linux вы можете прочитать В полном руководстве команд Linux так де статья на Wiki
Cинтаксис команды cal:
Если аргументы не указаны, команда cal отображает календарь текущего месяца с выделенной текущей датой.
Команда Cal в Linux без опций и аргументов
Параметры команды CAL в Linux
Давайте теперь рассмотрим параметры команды cal и ее выходные данные.
Формат выходных данных может немного отличаться в зависимости от используемых вами дистрибутивов Linux. В эти примерах мы используем Ubuntu
2. Чтобы отобразить календарь на весь текущий год с выделенной текущей датой введите команду:
3. Вы можете отобразить весь календарь за определенный год, введите:
4. Вы можете отобразить календарь предыдущего, текущего (вместе с выделенной текущей датой) и следующего месяца, введите:
Отобразить календарь предыдущего, текущего и следующего месяца
5. Если вы хотите отобразить календарь на текущий месяц и следующие два месяца, введите
6. С помощью команды cal вы можете отобразить текущий месяц в юлианском календаре. Также в нем подчеркивается текущая юлианская дата. Для этого введите:
Заключение
В этой статье мы рассказали про команду cal в Linux, а так же о ее параметрах. Спасибо, что прочитали.
Эта статья покажет вам, как отображать календарь в Linux с помощью команды cal, и некоторые распространенные примеры этой команды.
Поскольку у него нет тонны опций, использовать cal довольно просто.
Если вы просто используете команду cal, она напечатает текущий месяц. Он также выделяет текущий день.
Это поведение по умолчанию, но вы можете сделать намного больше с этой командой.
Примеры команд Cal
Давайте посмотрим, как часто используется команда cal в Linux.
1. Вывести календарь на текущий год
Вы можете распечатать календарь на весь текущий год, используя опцию -y команды cal.
Вы также можете указать год для вывода календаря определенного года.
2. Распечатать календарь месяца в текущем году
Предположим, вы хотите распечатать календарь на июнь этого года. Вы можете сделать это несколькими способами.
Вы можете указать название месяца.
Вы также можете указать номер месяца.
Обратите внимание, что учитываются только первые три буквы названия месяца. Так что cal -m jun, cal -m june и cal -m junta, все три будут давать одинаковый результат.
3. Распечатать календарь определенного месяца и/или года
Если вы хотите распечатать календарь определенного месяца в году, вы можете сделать это, указав название месяца или номер и год.
Например, для печати календаря на июнь 2019 года вы можете использовать любой из следующих трех форматов.
- cal june 2019
- cal 6 2019
- cal -d 2019-6
4. Распечатать три месяца для просмотра
Вы можете распечатать предыдущий месяц, текущий месяц и календарь следующего месяца за один раз с опцией -3.
Читать 15 Примеров освоения истории командной строки в LinuxВы также можете указать месяц и год с помощью опции -3.
5. Распечатайте календарь с указанием количества месяцев до и после определенного месяца.
Если вас не устраивает просмотр трех месяцев, вы можете указать произвольный диапазон месяцев до и после определенных месяцев.
Например, если вы хотите напечатать календарь за два месяца до и через шесть месяцев после текущего месяца, вы можете использовать эту команду:
Вы можете комбинировать это с любым месяцем любого года.
Бонусный совет: как распечатать календарь с номерами дней
Вы можете напечатать календарь в числах дня с опцией -j.
Мы имеем в виду, что вместо того, чтобы давать вам день месяца, он будет отображать день в году.
Таким образом, 15 февраля будет отображаться как 46, 16 февраля как 47 и так далее.
Вы можете комбинировать опцию -j с другими опциями.
Итого
Здесь представлена основная часть использования команды cal в Linux. Есть похожая утилита, называемая ncal, которая дает немного больше опций, но команды cal достаточно для основных нужд.
Мы надеемся, что эта краткая статья помогла вам освоить команду cal. Добавьте нас в закладки и подпишитесь на нас для регулярных статей по Linux.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Утилита выводит в терминал календарь с выделенным текущим днем.
- Вывести календарь для определенного года (задайте год 4 цифрами) :
- Вывести календарь для определенного месяца заданного года (месяц задается цифрами 1..12, год - 4 цифрами):
bzip2
Файловый архиватор (использует метод Барроуза - Уилера). Заархивировать файл: bzip2…
Интерактивный калькулятор произвольной точности в терминале. Запустить калькулятор в интерактивном…
Как получить дерево директорий на Bash одним однострочникомКак установить PostgreSQL на Linux и создать базу и пользователя
PostgreSQL - система управления базой данных общего назначения. Одна из самых распространённых баз данных, используемая на многих коммерческих и некоммерческих проектах.
Как скопировать вывод команды из терминала в буфер обмена Linux и MacOS
Скорее приятный, чем необходимы "трюк", но возможность использовать возможность скопировать вывод в буфер обмена – действительно круто иной раз выручает.
Как создать неизменяемый файл в Linux / MacOS / FreeBSD
Само собой, root может всё (если введёт пару команд), однако, это вполне легальный способ запретить изменение файла.
Как удалить все Docker образы и контейнеры
Не всегда нужно удалять всё, но объяснение данного "рецепта" объяснит как в целом удалять образы и контейнеры.
Bash < потоки ввода > вывода && управляющие конструкции || коротко о главном
Небольшая заметка о конструкциях Bash, в которых путается большинство новичков. А именно: >, <, &, &&, |, ||
Лучше плохо, но сейчас. Взгляд на пути развития ПО
Сейчас такие языки как Perl и Ruby чувствуют себя не лучшим образом. Но ещё 10 – 15 лет назад они были на "гребне волны".
Как запустить программу в терминале в фоне, без вывода какого либо текста
Запускаем программу в терминале в фоновом режиме и разбираемся, как и почему это работает в Linux / Unix терминале.
Малоизвестные, но полезные возможности утилиты less
Команда less является одной из самых известных на ряду с cd, cp, mv и т.д. Но используется less зачастую далеко не на всю мощь.
Как синхронизировать локальную Git версию репозитория с серверной
Прибираемся в локальной версии Git – чтобы локальная версия соответствовала удалённой (серверной) версии Git проекта.
Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable
Исследователи сумели пройти code-review с реквестами в ядро Linux, заведомо содержащими добавление уязвимостей.
Microsoft открывает исходники, а её IDE супер-популярна
Решил сложить пару фактов и немного над этим поразмыслить. Реально ли Microsoft "переобулись"?
Пример своей консольной команды в Django проекте
Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.
Как на Bash посчитать число строк в проекте (директории)
Ниже будет представлен однострочник, решающий данную задачу на Bash + пошаговое описание его работы.
Как на Bash получить файлы, изменённые за сегодняшний день
Bash имеет огромные возможности по программированию/скриптованию и администрированию операционной системы. Не важно: Linux это, FreeBSD, или MacOS – на Bash можно сделать многое.
Как установить часовой пояс в Linux
В рамках первичной настройки Операционной Системы важно установить и по какому времени вы живёте, ведь при следующем обновлении времени через Интернет ваше время слетит.
Как найти самые большие папки и файлы в Linux
Когда кончается место на жестком диске, возникает закономерный вопрос: на что же оно было потрачено, какие файлы разрослись больше положенного?
Команда grep – полезные ключи и примеры использования
У команды "grep" довольно много различных особенностей. особенно, если учесть, что с английского это "решето" – а что может войти в решето , не факт что выйдет!
Читайте также: