Алиасы в PowerShell
Многие, кто только начинает изучать PowerShell, особенно перейдя из мира Linux, жалуются на его многословность, что может быть неудобно, если вы используете PS непосредственно для администрирования системы.
Да, это так, но этому есть свои основания.
Классические UNIX-оболочки создавались в те далекие и светлые времена, когда компьютеры были большие, объемы памяти маленькие, а скорости передачи данных – медленные. Все это заставляло биться буквально за каждый байт.
Кроме того, в те времена не было ни интернета с гуглом, ни разных синтаксис-помощников, поэтому команды старались делать попроще, чтобы запоминать было легче, пренебрегая удобством чтения кода и наглядной очевидностью.
Да, bash прост, но прост для того, кто в нем постоянно работает. Если это не так, то возможны разные веселые, или не очень, затруднения.
Например, команда:
Еще вполне читабельна и если мы помним, что такое grep, то без труда догадаемся, что мы ищем строку "
И если вы не помните синтаксис grep вам придется непросто. Особенно если нужно изменить часть команды.
Поэтому PowerShell, который разрабатывался значительно позже, обильно полили синтаксическим сахаром, справедливо предполагая, что люди тоже могут читать программы. И не только могут, но и будут.
Поэтому тот же аналог grep в PowerShell выглядит так:
Да, многословно, но даже далекий от PowerShell человек поймет, что мы выбираем строки, содержащие текст
И если мы занимаемся написанием скриптов, то такая многословность нам только в плюс, так как сильно облегчает читаемость кода человеком.
А скрипты в голом блокноте давно уже никто не пишет, есть удобные среды разработки с автодополнением, подсветкой синтаксиса, синтаксис-помощниками и прочими плюшками.
Но как быть, если мы используем PowerShell для административных нужд, каждый раз набирать полное имя команды и ключи в консоли, даже с автодополнением, может быть утомительно.
А вот как раз для этого придумали алиасы. Полный список алиасов команд PowerShell можно посмотреть, выполнив команду:
Если нас интересует конкретная команда, то следует набрать:
А если, наоборот, расшифровать алиас, то следует выполнить:
Также можно создавать свои алиасы, для этого используйте команду:
Таким образом мы легко можем настроить среду согласно своих привычек или просто писать в привычном стиле:
А для тех, кто свои лучше годы отдал работе с Windows, напоминаем, что PowerShell давно доступен и на платформе Linux.
Многие, кто только начинает изучать PowerShell, особенно перейдя из мира Linux, жалуются на его многословность, что может быть неудобно, если вы используете PS непосредственно для администрирования системы.
Да, это так, но этому есть свои основания.
Классические UNIX-оболочки создавались в те далекие и светлые времена, когда компьютеры были большие, объемы памяти маленькие, а скорости передачи данных – медленные. Все это заставляло биться буквально за каждый байт.
Кроме того, в те времена не было ни интернета с гуглом, ни разных синтаксис-помощников, поэтому команды старались делать попроще, чтобы запоминать было легче, пренебрегая удобством чтения кода и наглядной очевидностью.
Да, bash прост, но прост для того, кто в нем постоянно работает. Если это не так, то возможны разные веселые, или не очень, затруднения.
Например, команда:
grep error error.log
Еще вполне читабельна и если мы помним, что такое grep, то без труда догадаемся, что мы ищем строку "
error"
в файле error.log
. Но расширение не является обязательным атрибутом файла и поэтому мы вполне можем встретить:grep error error
И если вы не помните синтаксис grep вам придется непросто. Особенно если нужно изменить часть команды.
Поэтому PowerShell, который разрабатывался значительно позже, обильно полили синтаксическим сахаром, справедливо предполагая, что люди тоже могут читать программы. И не только могут, но и будут.
Поэтому тот же аналог grep в PowerShell выглядит так:
Select-String -Pattern "error" -Path .\error
Да, многословно, но даже далекий от PowerShell человек поймет, что мы выбираем строки, содержащие текст
“error”
из файла .\error
. И если мы занимаемся написанием скриптов, то такая многословность нам только в плюс, так как сильно облегчает читаемость кода человеком.
А скрипты в голом блокноте давно уже никто не пишет, есть удобные среды разработки с автодополнением, подсветкой синтаксиса, синтаксис-помощниками и прочими плюшками.
Но как быть, если мы используем PowerShell для административных нужд, каждый раз набирать полное имя команды и ключи в консоли, даже с автодополнением, может быть утомительно.
А вот как раз для этого придумали алиасы. Полный список алиасов команд PowerShell можно посмотреть, выполнив команду:
Get-Alias
Если нас интересует конкретная команда, то следует набрать:
Get-Alias -Definition Select-String
А если, наоборот, расшифровать алиас, то следует выполнить:
Get-Alias sls
Также можно создавать свои алиасы, для этого используйте команду:
Set-Alias -Name grep -Value Select-String
Таким образом мы легко можем настроить среду согласно своих привычек или просто писать в привычном стиле:
sls error error
А для тех, кто свои лучше годы отдал работе с Windows, напоминаем, что PowerShell давно доступен и на платформе Linux.
👍32🔥3
Используете ли вы алиасы в PowerShell
Anonymous Poll
4%
Да, создаю свои, это удобно
8%
Да, использую стандартные
7%
Да, использую только некоторые
11%
Нет, но теперь буду использовать
8%
Нет, мне это неудобно
44%
Не использую PowerShell
18%
Ничего не понятно, но очень интересно
👍8👎1
История Windows NT
Windows NT без преувеличения можно назвать ключевой системой для Microsoft, именно она и заложенные в нее технологии заложила ту основу, которую системы Windows используют сейчас.
Начиная с Windows XP закончилось деление ОС Windows на пользовательскую и профессиональную линейку и дальше пошла развиваться именно линия NT и сегодня, запуская Windows 10 или 11 мы имеем под капотом потомка той самой NT.
Вся эта история началась очень давно, в 1980 году, когда IBM готовилась к выводу на рынок IBM PC и искала для него операционную систему. Сложность дополнительно состояла в том, что все существующие на тот момент ПК были 8-битными и для 16-битного IBM PC систему еще предстояло написать.
В этот момент на сцену вышел Билл Гейтс, который пообещал недорого решить проблему IBM, для чего купил 86-DOS у компании Seattle Computer Products и перепродал лицензию IBM.
Затем, если систему продавал IBM, то она называлась PC-DOS, а если Microsoft или кто-то еще – MS-DOS.
Несмотря на то, что на момент выхода IBM PC уже вышли 16-битные версии уже существовавших ОС DOS уверенно занял рыночную нишу. Все дело было в цене, лицензия на DOS-стоила всего 40$, а CP/M – 450$ (144$ и 1613$ в нынешних ценах).
Однако дальше дела пошли не столь хорошо, ожидаемая на замену DOS операционная система Windows в версиях 1 и 2 провалилась, а выпушенная в 1987 году OS/2 оказалась тяжелой и трудно конфигурируемой, вследствие чего тоже не достигла успеха.
Понимая, что для успеха нужна новая операционная система партнеры принялись за разработку NT OS/2, которая была полностью новой системой и не базировалась ни на DOS, ни на OS/2.
Для этого Microsoft пригласила команду специалистов из DEC во главе с Девидом Катлером, который до этого разрабатывал там VAX/VMS и RSX-11M. Система изначально разрабатывалась как полностью 32-разрядная, переносимая и многопользовательская.
Сначала данный проект должен был основываться на графическом интерфейсе OS/2 и планировался к выходу как OS/2 3.0, но отношения между партерами начали портится.
IBM была недовольна открытой архитектурой IBM PC и предпринимала действия к выпуску нового поколения компьютеров PS/2 на максимально закрытой архитектуре и с использованием в качестве системы OS/2.
Но ни PS/2, ни OS/2 не имели коммерческого успеха, а в 1990 вышла в свет Windows 3.0, которая имела оглушительный рыночный успех.
В свете успехов Microsoft решила добавить в проект NT OS/2 подсистему для программной совместимости с Windows, что очень сильно не понравилось IBM, которая, наоборот, продолжала курс на максимальную закрытость и возврат контроля над всеми компонентами ПК.
В итоге в 1991 пути компаний полностью разошлись. IBM продолжило работы над OS/2, а Microsoft забрали свои наработки и выпустила в 1993 году новую ОС под именем Windows NT.
Система позиционировалась как для сетей и профессионалов, а номер первой версии был взят от рыночно успешной Windows 3.0, и новая система вышла как Windows NT 3.1
Вместе с ней увидела свет и файловая система нового поколения NTFS, а также очень многое из того, что широко применяется сейчас.
Взрывного успеха Windows NT не получила, но за год, до момента выхода NT 3.5 было продано более 300 тыс. копий по 495$ каждая (1080$ в текущих ценах).
Несмотря на наличие ресурсов и хорошие заделы по OS/2 Warp 3 компания IBM проиграла рыночную гонку с Microsoft и так и не смогла предоставить достойного конкурента Windows.
Во многом это было связано с тем, что Microsoft и лично Билл Гейтс сделали ставку на Windows и выиграли, в то время как в IBM никто не был готов взять на себя такую ответственность за проект OS/2, который продолжал оставаться еще одним из многочисленных проектов гиганта.
Вокруг этой истории до сих пор ходит масса мифов, но на самом деле Windows NT не имеет ничего общего с IBM OS/2, кроме того, что работа некоторое время велась в рамках одного проекта, это совершенно новая ОС.
Также IBM никогда не подавала к Microsoft судебных исков по поводу Windows NT.
Windows NT без преувеличения можно назвать ключевой системой для Microsoft, именно она и заложенные в нее технологии заложила ту основу, которую системы Windows используют сейчас.
Начиная с Windows XP закончилось деление ОС Windows на пользовательскую и профессиональную линейку и дальше пошла развиваться именно линия NT и сегодня, запуская Windows 10 или 11 мы имеем под капотом потомка той самой NT.
Вся эта история началась очень давно, в 1980 году, когда IBM готовилась к выводу на рынок IBM PC и искала для него операционную систему. Сложность дополнительно состояла в том, что все существующие на тот момент ПК были 8-битными и для 16-битного IBM PC систему еще предстояло написать.
В этот момент на сцену вышел Билл Гейтс, который пообещал недорого решить проблему IBM, для чего купил 86-DOS у компании Seattle Computer Products и перепродал лицензию IBM.
Затем, если систему продавал IBM, то она называлась PC-DOS, а если Microsoft или кто-то еще – MS-DOS.
Несмотря на то, что на момент выхода IBM PC уже вышли 16-битные версии уже существовавших ОС DOS уверенно занял рыночную нишу. Все дело было в цене, лицензия на DOS-стоила всего 40$, а CP/M – 450$ (144$ и 1613$ в нынешних ценах).
Однако дальше дела пошли не столь хорошо, ожидаемая на замену DOS операционная система Windows в версиях 1 и 2 провалилась, а выпушенная в 1987 году OS/2 оказалась тяжелой и трудно конфигурируемой, вследствие чего тоже не достигла успеха.
Понимая, что для успеха нужна новая операционная система партнеры принялись за разработку NT OS/2, которая была полностью новой системой и не базировалась ни на DOS, ни на OS/2.
Для этого Microsoft пригласила команду специалистов из DEC во главе с Девидом Катлером, который до этого разрабатывал там VAX/VMS и RSX-11M. Система изначально разрабатывалась как полностью 32-разрядная, переносимая и многопользовательская.
Сначала данный проект должен был основываться на графическом интерфейсе OS/2 и планировался к выходу как OS/2 3.0, но отношения между партерами начали портится.
IBM была недовольна открытой архитектурой IBM PC и предпринимала действия к выпуску нового поколения компьютеров PS/2 на максимально закрытой архитектуре и с использованием в качестве системы OS/2.
Но ни PS/2, ни OS/2 не имели коммерческого успеха, а в 1990 вышла в свет Windows 3.0, которая имела оглушительный рыночный успех.
В свете успехов Microsoft решила добавить в проект NT OS/2 подсистему для программной совместимости с Windows, что очень сильно не понравилось IBM, которая, наоборот, продолжала курс на максимальную закрытость и возврат контроля над всеми компонентами ПК.
В итоге в 1991 пути компаний полностью разошлись. IBM продолжило работы над OS/2, а Microsoft забрали свои наработки и выпустила в 1993 году новую ОС под именем Windows NT.
Система позиционировалась как для сетей и профессионалов, а номер первой версии был взят от рыночно успешной Windows 3.0, и новая система вышла как Windows NT 3.1
Вместе с ней увидела свет и файловая система нового поколения NTFS, а также очень многое из того, что широко применяется сейчас.
Взрывного успеха Windows NT не получила, но за год, до момента выхода NT 3.5 было продано более 300 тыс. копий по 495$ каждая (1080$ в текущих ценах).
Несмотря на наличие ресурсов и хорошие заделы по OS/2 Warp 3 компания IBM проиграла рыночную гонку с Microsoft и так и не смогла предоставить достойного конкурента Windows.
Во многом это было связано с тем, что Microsoft и лично Билл Гейтс сделали ставку на Windows и выиграли, в то время как в IBM никто не был готов взять на себя такую ответственность за проект OS/2, который продолжал оставаться еще одним из многочисленных проектов гиганта.
Вокруг этой истории до сих пор ходит масса мифов, но на самом деле Windows NT не имеет ничего общего с IBM OS/2, кроме того, что работа некоторое время велась в рамках одного проекта, это совершенно новая ОС.
Также IBM никогда не подавала к Microsoft судебных исков по поводу Windows NT.
👍49🤮4❤1
Управлять сайтом через консоль слишком запарно 🤨
Ispmanager разрабатывает софт, в котором можно управлять сервером, сервисом и работой с сайтом прямо в браузере.
В своём канале ребята пишут про сайты, хостинг, админство без боли и разработку без запар. Ну и про свою панель для управления сервером и бэкендом сайтов.
Тебе точно будет полезно😊
Подписывайся!
Реклама. АО "ИСПМЕНЕДЖЕР". ИНН 3810037036. erid: LjN8JyQ7S
Ispmanager разрабатывает софт, в котором можно управлять сервером, сервисом и работой с сайтом прямо в браузере.
В своём канале ребята пишут про сайты, хостинг, админство без боли и разработку без запар. Ну и про свою панель для управления сервером и бэкендом сайтов.
Тебе точно будет полезно😊
Подписывайся!
Реклама. АО "ИСПМЕНЕДЖЕР". ИНН 3810037036. erid: LjN8JyQ7S
🤮6👍3
APT-синтаксис для Альт-Линукс
Тем, кто привык к синтаксису apt, который широко применяется в современных системах Debian или Ubuntu бывает трудно обратно переучиваться на синтаксис apt-get используемый в Альт Линукс.
Но теперь, благодаря Михаилу Шигорину в репозитории добавлен разработанный нами пакет apt-aliases, который добавляет в систему поддержку привычного синтаксиса apt.
Для установки используйте:
После чего вам потребуется завершить сеанс или перезагрузить систему. Теперь вы можете использовать для управления пакетами в Альт Линукс привычный синтаксис, например:
В настоящий момент в пакете реализованы все основные используемые команды apt, которые транслируются в вызов стандартных apt-get.
Тем, кто привык к синтаксису apt, который широко применяется в современных системах Debian или Ubuntu бывает трудно обратно переучиваться на синтаксис apt-get используемый в Альт Линукс.
Но теперь, благодаря Михаилу Шигорину в репозитории добавлен разработанный нами пакет apt-aliases, который добавляет в систему поддержку привычного синтаксиса apt.
Для установки используйте:
apt-get install apt-aliases
После чего вам потребуется завершить сеанс или перезагрузить систему. Теперь вы можете использовать для управления пакетами в Альт Линукс привычный синтаксис, например:
apt install …
В настоящий момент в пакете реализованы все основные используемые команды apt, которые транслируются в вызов стандартных apt-get.
👍31🔥4❤1
История создания и развития IBM PC
На рынок персональных компьютеров руководство IBM обратило внимание в начале 80-го года, когда он был плотно занять такими признанными игроками Apple, Atari, Tandy и Commodore. Они выпускали 8-битные компьютеры для любителей писать программы на языке Бейсик.
Основным разработчиком Бейсик-продуктов была небольшая компания Microsoft, которую возглавлял недоучившийся студент Гарварда Билл Гейтс.
Бизнес по производству ПК в то время не представлялся руководству IBM имеющим настоящее, не говоря уже о будущем, но тем не менее компания считала нужным свое присутствие на этом рынке.
Команде разработчиков были поставлены самые жесткие сроки – менее года, а провал проекта грозил серьезными оргвыводами, поэтому были приняты многие решения, о которых компания впоследствии сильно пожалела.
Сжатые сроки означали, что система должна была строиться на основе уже существующих технологий и в качестве процессора был выбран 16-разрядный процессор 8088 от компании Intel.
Руководитель проекта, Дональд Эстридж, настоял на том, чтобы сделать архитектуру будущего IBM PC открытой, это позволяло воспользоваться силами сторонних производителей для выпуска периферии для нового компьютера, чтобы сразу обеспечить ее широкий ассортимент.
Вторая роковая ошибка была в том, что IBM позволило Билу Гейтсу самостоятельно продавать новую операционную систему под именем MS-DOS. Но тут деваться было некуда.
Первоначально Эстридж хотел использовать уже существующую CP/M, но руководитель Digital Research Гари Килдалл отказался подписать соглашение о неразглашении и проект зашел в тупик. Также версию CP/M для 16-разрядных компьютеров еще только предстояло разработать.
Ограничение по времени было очень жестким и тогда Гейтс и Эстридж пошли на авантюрное решение.
У Пола Аллена был знакомый Тим Паттерсон, который в начале 80-года начал писать CP/M совместимую систему для Intel 8086, назвав ее QDOS
Гейтсу осталось только перекупить QDOS за скромные 50 тыс. долларов и силами того же Тима довести до ума.
Это решение, несмотря не все его недостатки, фактически созданное в невероятной спешке на коленках стало для Эстриджа палочкой-выручалочкой, позволившей получить в срок операционную систему для будущего компьютера.
IBM PC (IBM 5150, процессор Intel 8088) был представлен публике 12 августа 1981 года и неожиданно стал пользоваться огромным успехом, если изначально компания планировала продать 250 тыс. ПК в течении пяти лет, то очень скоро она начала продавать такое же количество ПК ежемесячно.
Эстридж, как грамотный инженер, получил то, что хотел – ПК практически сразу стал поддержан большим количеством периферии, но компания получила еще один неприятный момент – клоны.
Действительно, любой мог купить процессор от Intel и операционную систему от Microsoft и уже в 1982 некая компания-выскочка Compaq представила клон IBM PC, а к 1984 году на рынке IBM-совместимых ПК конкурировали как новички, так и известные компании.
Но IBM сохраняло за собой лидерство, выпустив в 1983 году IBM PC XT, в состав которого впервые входил жесткий диск, а в 1984 PC AT на базе процессора 286.
Лидерство ускользнуло в 1986, когда Compaq первым представил 32-разрядный компьютер на базе процессора 386. Несмотря на то, что технически это клон AT, все-таки это был самый быстрый и современный ПК и выпустила его не IBM.
Тем временем компания готовила «ответный удар» в виде нового поколения ПК PS/2, для которого учла ошибки прошлого и которое базировалась на закрытой, обложенной патентами архитектуре.
Но несмотря на мощную рекламную компанию PS/2 провалился и термин IBM-совместимые компьютеры стал просто неуместен и все бывшие клоны IBM PC превратились просто в ПК или персональные компьютеры.
А компании IBM так и не смогла вернуть себе лидерство на рынке персональных компьютеров.
Эта история закончилась в декабре 2004 г. продажей IBM за 1,75 млрд. долл. своего подразделения ПК китайской компании Lenovo.
На рынок персональных компьютеров руководство IBM обратило внимание в начале 80-го года, когда он был плотно занять такими признанными игроками Apple, Atari, Tandy и Commodore. Они выпускали 8-битные компьютеры для любителей писать программы на языке Бейсик.
Основным разработчиком Бейсик-продуктов была небольшая компания Microsoft, которую возглавлял недоучившийся студент Гарварда Билл Гейтс.
Бизнес по производству ПК в то время не представлялся руководству IBM имеющим настоящее, не говоря уже о будущем, но тем не менее компания считала нужным свое присутствие на этом рынке.
Команде разработчиков были поставлены самые жесткие сроки – менее года, а провал проекта грозил серьезными оргвыводами, поэтому были приняты многие решения, о которых компания впоследствии сильно пожалела.
Сжатые сроки означали, что система должна была строиться на основе уже существующих технологий и в качестве процессора был выбран 16-разрядный процессор 8088 от компании Intel.
Руководитель проекта, Дональд Эстридж, настоял на том, чтобы сделать архитектуру будущего IBM PC открытой, это позволяло воспользоваться силами сторонних производителей для выпуска периферии для нового компьютера, чтобы сразу обеспечить ее широкий ассортимент.
Вторая роковая ошибка была в том, что IBM позволило Билу Гейтсу самостоятельно продавать новую операционную систему под именем MS-DOS. Но тут деваться было некуда.
Первоначально Эстридж хотел использовать уже существующую CP/M, но руководитель Digital Research Гари Килдалл отказался подписать соглашение о неразглашении и проект зашел в тупик. Также версию CP/M для 16-разрядных компьютеров еще только предстояло разработать.
Ограничение по времени было очень жестким и тогда Гейтс и Эстридж пошли на авантюрное решение.
У Пола Аллена был знакомый Тим Паттерсон, который в начале 80-года начал писать CP/M совместимую систему для Intel 8086, назвав ее QDOS
Гейтсу осталось только перекупить QDOS за скромные 50 тыс. долларов и силами того же Тима довести до ума.
Это решение, несмотря не все его недостатки, фактически созданное в невероятной спешке на коленках стало для Эстриджа палочкой-выручалочкой, позволившей получить в срок операционную систему для будущего компьютера.
IBM PC (IBM 5150, процессор Intel 8088) был представлен публике 12 августа 1981 года и неожиданно стал пользоваться огромным успехом, если изначально компания планировала продать 250 тыс. ПК в течении пяти лет, то очень скоро она начала продавать такое же количество ПК ежемесячно.
Эстридж, как грамотный инженер, получил то, что хотел – ПК практически сразу стал поддержан большим количеством периферии, но компания получила еще один неприятный момент – клоны.
Действительно, любой мог купить процессор от Intel и операционную систему от Microsoft и уже в 1982 некая компания-выскочка Compaq представила клон IBM PC, а к 1984 году на рынке IBM-совместимых ПК конкурировали как новички, так и известные компании.
Но IBM сохраняло за собой лидерство, выпустив в 1983 году IBM PC XT, в состав которого впервые входил жесткий диск, а в 1984 PC AT на базе процессора 286.
Лидерство ускользнуло в 1986, когда Compaq первым представил 32-разрядный компьютер на базе процессора 386. Несмотря на то, что технически это клон AT, все-таки это был самый быстрый и современный ПК и выпустила его не IBM.
Тем временем компания готовила «ответный удар» в виде нового поколения ПК PS/2, для которого учла ошибки прошлого и которое базировалась на закрытой, обложенной патентами архитектуре.
Но несмотря на мощную рекламную компанию PS/2 провалился и термин IBM-совместимые компьютеры стал просто неуместен и все бывшие клоны IBM PC превратились просто в ПК или персональные компьютеры.
А компании IBM так и не смогла вернуть себе лидерство на рынке персональных компьютеров.
Эта история закончилась в декабре 2004 г. продажей IBM за 1,75 млрд. долл. своего подразделения ПК китайской компании Lenovo.
👍26🤷♂1❤1
С какого ПК вы начинали (имеется в виду IBM совместимый ПК)
Anonymous Poll
30%
286
15%
386
13%
486
12%
Pentium I
1%
AMD K5 и аналоги
6%
Pentium II
1%
AMD K6 и аналоги
10%
Pentium III
5%
AMD K7 (Athlon / Duron)
8%
Более поздние модели
🫡8
Используем grep для поиска в файлах и потоках
Любой Linux администратор сталкивался с командой grep, которая используется для поиска строк по шаблону в стандартных потоках и текстовых файлах.
Изначально grep был написан одним из основателей UNIX Кеном Томпсоном, когда его начальник Дуглас Макилрой попросил его написать инструмент «для поиска чего-нибудь в файлах». Название утилиты происходит от global regular expression print (глобальный вывод регулярных выражений)
Самый частый сценарий использования grep, когда нам нужно отфильтровать поток ввода-вывода, например:
Также он может работать и с файлами, хотя многие используют совершенно излишнее:
В то время, когда можно просто использовать:
Но бывает недостаточно просто найти искомое значение, часто бывает нужно получить также его контекст, это, например, важно при разборе логов, для этого используйте специальные ключи:
-A (after) – выводит указанное число сток после вхождения
- B (before) – выводит указанное число строк до вхождения
-С (context) – выводит указанное число строк до и после вхождения.
Например, если нам нужно вывести следующие пять строк после найденного вхождения используйте:
Если вам наоборот нужно сократить вывод и найти только вхождения, то используйте ключ -o, его удобно сочетать с ключом -n, который выводит номера строк.
Например:
Выдаст:
Также grep умеет искать по нескольким файлам сразу, в этом случае перед выводом искомой строки будет указано имя файла, если вам нужно вывести только имена файлов, в которых найдены вхождения используйте ключ -l:
И наоборот, ключ
Для того, чтобы игнорировать регистр символов предназначен ключ -i, а ключ -v инвертирует шаблон запроса, так команда:
Выведет те строки, где нет вхождения указанного шаблона, часто применяется для того, чтобы вывести содержимое конфигурационного файла без комментариев.
И, наконец, grep может использовать регулярные выражения, для этого укажите ключ -E, например, поиск российских телефонных номеров в файле:
Несмотря на то, что grep понимает многие подстановочные символы при использовании поиска по регулярным выражениям рекомендуется всегда использовать ключ -E, что позволит избежать неожиданных результатов.
В этом месте читатели могут вспомнить утилиту egrep, но в настоящий момент она, как и fgrep, объявлена устаревшей и лучше отвыкать от ее использования.
Несмотря на то, что указанные утилиты сохраняются практически во всех дистрибутивах для обеспечения обратной совместимости лучше сразу переходить на актуальные grep -E и grep -F.
Кстати, grep -F – это полная противоположность grep -E, данный ключ предписывает игнорировать метасимволы и подстановочные данные и будет искать строку как есть:
Например:
Будет искать строго то, что написано, это может понадобится при поиске специфической информации, скажем, математических выражений, как в этом примере.
Любой Linux администратор сталкивался с командой grep, которая используется для поиска строк по шаблону в стандартных потоках и текстовых файлах.
Изначально grep был написан одним из основателей UNIX Кеном Томпсоном, когда его начальник Дуглас Макилрой попросил его написать инструмент «для поиска чего-нибудь в файлах». Название утилиты происходит от global regular expression print (глобальный вывод регулярных выражений)
Самый частый сценарий использования grep, когда нам нужно отфильтровать поток ввода-вывода, например:
dpkg -l | grep gimp
Также он может работать и с файлами, хотя многие используют совершенно излишнее:
cat file.txt | grep mystring
В то время, когда можно просто использовать:
grep mystring file.txt
Но бывает недостаточно просто найти искомое значение, часто бывает нужно получить также его контекст, это, например, важно при разборе логов, для этого используйте специальные ключи:
-A (after) – выводит указанное число сток после вхождения
- B (before) – выводит указанное число строк до вхождения
-С (context) – выводит указанное число строк до и после вхождения.
Например, если нам нужно вывести следующие пять строк после найденного вхождения используйте:
grep -A5 mystring file.txt
Если вам наоборот нужно сократить вывод и найти только вхождения, то используйте ключ -o, его удобно сочетать с ключом -n, который выводит номера строк.
Например:
grep -no mystring file.txt
Выдаст:
5:mystring
9:mystring
25:mystring
Также grep умеет искать по нескольким файлам сразу, в этом случае перед выводом искомой строки будет указано имя файла, если вам нужно вывести только имена файлов, в которых найдены вхождения используйте ключ -l:
grep -l mystring file.txt file1.txt file2.txt file3.txt
И наоборот, ключ
-L
позволяет вывести имена файлов в которых вхождение не найдено.Для того, чтобы игнорировать регистр символов предназначен ключ -i, а ключ -v инвертирует шаблон запроса, так команда:
grep -v mystring file.txt
Выведет те строки, где нет вхождения указанного шаблона, часто применяется для того, чтобы вывести содержимое конфигурационного файла без комментариев.
И, наконец, grep может использовать регулярные выражения, для этого укажите ключ -E, например, поиск российских телефонных номеров в файле:
grep -E ^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$ file.txt
Несмотря на то, что grep понимает многие подстановочные символы при использовании поиска по регулярным выражениям рекомендуется всегда использовать ключ -E, что позволит избежать неожиданных результатов.
В этом месте читатели могут вспомнить утилиту egrep, но в настоящий момент она, как и fgrep, объявлена устаревшей и лучше отвыкать от ее использования.
Несмотря на то, что указанные утилиты сохраняются практически во всех дистрибутивах для обеспечения обратной совместимости лучше сразу переходить на актуальные grep -E и grep -F.
Кстати, grep -F – это полная противоположность grep -E, данный ключ предписывает игнорировать метасимволы и подстановочные данные и будет искать строку как есть:
Например:
grep -F 2*(x+y)^2 file.txt
Будет искать строго то, что написано, это может понадобится при поиске специфической информации, скажем, математических выражений, как в этом примере.
👍47🔥4
В соседнем канале выложили такую вот бумагу. Чем она интересна?
1. Регулятор запрашивает у получателей данной рассылки сведения об используемых ими протоколах.
2. Указывает на те сервисы и протоколы, которые подлежат блокировке.
В их числе "хваленый" Shadowsocks, причем в силу его практической непригодности для корпоративных коммуникаций его блокировка видится делом ближайшего будущего.
А вот классические протоколы: PPTP, L2TP и OpenVPN как ходили, так и будут ходить, так как широко используются в корпоративной среде.
Тоже самое, скорее всего, справедливо будет и для WireGuard. Несмотря на то, что протокол относительно новый его уже достаточно широко используют в производственных целях.
А рубить широко и с плеча сегодня никто не будет, так как VPN нужен очень многим, в том числе и трансграничный.
В этом ключе все летние блокировки видятся именно как проверка: кого и как сильно заденет блокировка протокола, чтобы оценить ситуацию и скорректировать цели.
1. Регулятор запрашивает у получателей данной рассылки сведения об используемых ими протоколах.
2. Указывает на те сервисы и протоколы, которые подлежат блокировке.
В их числе "хваленый" Shadowsocks, причем в силу его практической непригодности для корпоративных коммуникаций его блокировка видится делом ближайшего будущего.
А вот классические протоколы: PPTP, L2TP и OpenVPN как ходили, так и будут ходить, так как широко используются в корпоративной среде.
Тоже самое, скорее всего, справедливо будет и для WireGuard. Несмотря на то, что протокол относительно новый его уже достаточно широко используют в производственных целях.
А рубить широко и с плеча сегодня никто не будет, так как VPN нужен очень многим, в том числе и трансграничный.
В этом ключе все летние блокировки видятся именно как проверка: кого и как сильно заденет блокировка протокола, чтобы оценить ситуацию и скорректировать цели.
🤡28👍24🤔4👎1👌1
Полезная для начинающих утилита с неприличным именем
Работая в консоли Linux, начинающие делают ошибки, это нормально. Гораздо хуже, когда ее не удается быстро исправить или поиск информации затруднен.
В этом случае может пригодиться одна полезная утилита с неприличным именем - The Fuck, которое исправляет ошибки в введенных ранее консольных командах.
Утилита разработана на Python и для ее установки выполните:
Обратите внимание, что саму утилиту, в отличие от зависимостей, следует устанавливать с правами того пользователя, который будет ей пользоваться, а ключ
После чего в файл
Которая добавит для команды алиас
Затем перечитайте значения из файла или перезапустите сеанс:
Теперь можно попробовать утилиту в деле. Вводим команду с ошибкой, после чего вызываем
Утилита тут же предлагает нам исправление, достаточно нажать Enter, но теперь снова ошибка, мы запустили команду с недостаточным набором прав. Снова вызываем утилиту, и она нас снова поправляет.
Чтобы избежать постоянного вызова утилиты можно запустить ее в режиме повторения:
Теперь она будет последовательно обрабатывать все полученные ошибки до получения результата, либо пока вы не прервете ее действия.
Если вы хотите применять исправления автоматически, то вызовите утилиту с ключом:
Но полностью полагаться на искусственный интеллект неразумно и небезопасно, поэтому разработчики отключили автоматическое подтверждение в режиме повторения.
Больше об утилите можно узнать на официальной странице Git: https://github.com/nvbn/thefuck
Работая в консоли Linux, начинающие делают ошибки, это нормально. Гораздо хуже, когда ее не удается быстро исправить или поиск информации затруднен.
В этом случае может пригодиться одна полезная утилита с неприличным именем - The Fuck, которое исправляет ошибки в введенных ранее консольных командах.
Утилита разработана на Python и для ее установки выполните:
sudo apt install python3-dev python3-pip python3-setuptools
pip install thefuck -–user
Обратите внимание, что саму утилиту, в отличие от зависимостей, следует устанавливать с правами того пользователя, который будет ей пользоваться, а ключ
-–user
предписывает установить утилиту только для текущего пользователя.После чего в файл
.bashrc
внести строку:eval $(thefuck --alias fuck)
Которая добавит для команды алиас
fuck
, если вам ближе родная речь, то можете написать:eval $(thefuck --alias blya)
Затем перечитайте значения из файла или перезапустите сеанс:
source .bashrc
Теперь можно попробовать утилиту в деле. Вводим команду с ошибкой, после чего вызываем
fuck
Утилита тут же предлагает нам исправление, достаточно нажать Enter, но теперь снова ошибка, мы запустили команду с недостаточным набором прав. Снова вызываем утилиту, и она нас снова поправляет.
Чтобы избежать постоянного вызова утилиты можно запустить ее в режиме повторения:
fuck -r
Теперь она будет последовательно обрабатывать все полученные ошибки до получения результата, либо пока вы не прервете ее действия.
Если вы хотите применять исправления автоматически, то вызовите утилиту с ключом:
fuck -y
Но полностью полагаться на искусственный интеллект неразумно и небезопасно, поэтому разработчики отключили автоматическое подтверждение в режиме повторения.
Больше об утилите можно узнать на официальной странице Git: https://github.com/nvbn/thefuck
😁22👍14🔥2👀2
Употребляете ли вы "крепкие" выражения?
Anonymous Poll
28%
Да, постоянно
27%
Да, время от времени
23%
Да, во время крепких эмоций
10%
Редко
3%
Нет, но понимаю тех кто употребляет
4%
Нет и решительно осуждаю
0%
Употребляю сугубо не тревзым
5%
Ничего не понятно, но очень интересно
👍7😁7
KISS (Keep it simple stupid, «не усложняй, придурок»)
Работая с различными заказчиками, очень часто приходится вспоминать этот принцип. Потому как многие коллеги, особенно молодые, очень любят переусложнять системы.
Когда в сети на 5-7 узлов встречаешь ActiveDirectory, развернутую на единственном сервере, там же еще крутится 1С, СУБД и всякое прочее – берет оторопь.
Причем никакой виртуализацией там не пахнет, потому что виртуализация – это сложно.
А насколько просто будет поддерживать и сопровождать этого монстрика Франкенштейна – никто и не думает.
Если заглянуть в набор правил брандмауэра, то мы увидим там кучу правил с заковыристыми критериями, типа TCP-флагов и прочего, чего сам коллега и толком пояснить не может.
На вопрос: «зачем?»
Поясняют, что: «Защита от сетевых атак»
На следующий вопрос: «А вас кто-то атакует?» тоже остается без ответа.
По имеющимся сообщениям, акроним был придуман Кларенсом Джонсоном, ведущим инженером Lockheed Skunk Works, когда Джонсон вручил команде инженеров-авиаконструкторов набор инструментов, поставив им условие: механик среднего уровня должен суметь отремонтировать реактивный самолёт, который они проектировали, в полевых условиях только с этими инструментами.
Такой же принцип будет не лишним и в IT, когда специалист среднего уровня и квалификации должен разобраться и починить ваше «творчество» подручными средствами.
Тем более в эпоху виртуализации делать проще становится еще легче. Никто не мешает разнести нам сервисы и сервера по отдельным виртуалкам или контейнерам, чтобы исключить их влияние на соседей.
А аппаратные ресурсы для этого способен предоставить любой бытовой ПК среднего уровня.
Работая с различными заказчиками, очень часто приходится вспоминать этот принцип. Потому как многие коллеги, особенно молодые, очень любят переусложнять системы.
Когда в сети на 5-7 узлов встречаешь ActiveDirectory, развернутую на единственном сервере, там же еще крутится 1С, СУБД и всякое прочее – берет оторопь.
Причем никакой виртуализацией там не пахнет, потому что виртуализация – это сложно.
А насколько просто будет поддерживать и сопровождать этого монстрика Франкенштейна – никто и не думает.
Если заглянуть в набор правил брандмауэра, то мы увидим там кучу правил с заковыристыми критериями, типа TCP-флагов и прочего, чего сам коллега и толком пояснить не может.
На вопрос: «зачем?»
Поясняют, что: «Защита от сетевых атак»
На следующий вопрос: «А вас кто-то атакует?» тоже остается без ответа.
По имеющимся сообщениям, акроним был придуман Кларенсом Джонсоном, ведущим инженером Lockheed Skunk Works, когда Джонсон вручил команде инженеров-авиаконструкторов набор инструментов, поставив им условие: механик среднего уровня должен суметь отремонтировать реактивный самолёт, который они проектировали, в полевых условиях только с этими инструментами.
Такой же принцип будет не лишним и в IT, когда специалист среднего уровня и квалификации должен разобраться и починить ваше «творчество» подручными средствами.
Тем более в эпоху виртуализации делать проще становится еще легче. Никто не мешает разнести нам сервисы и сервера по отдельным виртуалкам или контейнерам, чтобы исключить их влияние на соседей.
А аппаратные ресурсы для этого способен предоставить любой бытовой ПК среднего уровня.
💯41👍19
Караван-сарай или величественный собор?
Наткнулся я тут случайно на такой проект, как CBSD, это это обёртка из sh-скриптов (преимущественно) вокруг подсистемы jail(8), гипервизоров bhyve, QEMU / NVMM и Xen для BSD операционных систем.
Какого-либо нового функционала в ОС на данном этапе не внесено — всё, что могут делать скрипты CBSD, можно сделать командой (командами, десятками, сотнями команд) в CLI через соответствующие утилиты.
Глядя на сайт, я сначала подумал, что это еще один заброшенный проект десятилетней давности, но нет, проект жив и даже куда-то там барахтается…
При том, что на дворе 2023 год и в мире Linux давно есть мощные и удобные продукты виртуализации, такие как Proxmox.
И здесь снова и снова вспоминаешь старое высказывание разработчиков FreеBSD про караван-сарайный принцип разработки Linux, где систему могут дорабатывать все, кто не лень, в противопоставление которому ставились принципы разработки FreeBSD, которую они сравнивали с величественным собором, который возводит небольшая группа архитекторов.
Время расставило все на свои места и Linux из караван-сарая превратился в современный технопарк, а величественный собор так и стоит недостроенным.
При этом за последние 10-15 лет FreeBSD серьезно утратила позиции превратившись в ОС для энтузиастов и маргиналов. Ну и то место, где код можно взять и ничего назад не отдавать.
И все эти заявления, мол BSD используется в macOS, PlayStation, Juniper, NetApp и т.д. выглядят нелепо и смешно, на уровне школьных разборок: «а у меня брат – каратист».
Действительно, кивать на более успешные проекты можно только в отсутствие собственных достижений. Тем более, что все вышеперечисленное – закрытые коммерческие ОС и никто не знает сколько там чего от FreeBSD и насколько это переписано.
А со своим там действительно все плохо, на попытку разработать собственную графическую оболочку с использованием только BSD технологий - Lumina без слез не глянешь.
С доставшейся по наследству ZFS тоже приключилась неприятность, так как из всех вариаций ZFS наиболее активно развивалась ZFS on Linux, то в 2018 году было принято решение, что новая версия OpenZFS 2.0 будет базироваться на кодовой базе для Linux и уже из нее портироваться на другие системы.
Ну и наконец старая история с использованием кода BSD в стеке TCP/IP Windows, которую можно охарактеризовать словами: слышал звон, да не знаю где он.
При выпуске на рынок Windows 3.11 Microsoft потребовалось добавить туда поддержку TCP/IP, а так как собственный стек еще был в разработке, то было лицензировано решение от компании Spider Systems, которое было написано с применением кода FreeBSD. С ним же в Windows попали основанные на коде BSD утилиты, предназначенные для нового стека ftp, rcp и rsh и т.п.
Но у стека Spider был один существенный недостаток, он был завязан на собственную среду STREAMS, которую тоже пришлось портировать на Windows и нести связанные с ней накладные расходы.
Собственный стек TCP/IP Microsoft, созданный с нуля, вышел в конце 1994 года и поставлялся с Windows NT, а также позже вошел в состав Windows 95.
Но, несмотря на новый стек, часть утилит переписывать не стали и оставили прежними. Действительно, зачем переписывать клиент FTP если он хорошо работает и законным образом лицензирован? Но именно последний момент, а именно отсылка к лицензии BSD и дала повод различным досужим теориям о BSD стеке TCP/IP в Windows.
А мы еще раз глянем на картинку ниже: справа величественный собор, слева – караван-сарай. Не перепутай!
Наткнулся я тут случайно на такой проект, как CBSD, это это обёртка из sh-скриптов (преимущественно) вокруг подсистемы jail(8), гипервизоров bhyve, QEMU / NVMM и Xen для BSD операционных систем.
Какого-либо нового функционала в ОС на данном этапе не внесено — всё, что могут делать скрипты CBSD, можно сделать командой (командами, десятками, сотнями команд) в CLI через соответствующие утилиты.
Глядя на сайт, я сначала подумал, что это еще один заброшенный проект десятилетней давности, но нет, проект жив и даже куда-то там барахтается…
При том, что на дворе 2023 год и в мире Linux давно есть мощные и удобные продукты виртуализации, такие как Proxmox.
И здесь снова и снова вспоминаешь старое высказывание разработчиков FreеBSD про караван-сарайный принцип разработки Linux, где систему могут дорабатывать все, кто не лень, в противопоставление которому ставились принципы разработки FreeBSD, которую они сравнивали с величественным собором, который возводит небольшая группа архитекторов.
Время расставило все на свои места и Linux из караван-сарая превратился в современный технопарк, а величественный собор так и стоит недостроенным.
При этом за последние 10-15 лет FreeBSD серьезно утратила позиции превратившись в ОС для энтузиастов и маргиналов. Ну и то место, где код можно взять и ничего назад не отдавать.
И все эти заявления, мол BSD используется в macOS, PlayStation, Juniper, NetApp и т.д. выглядят нелепо и смешно, на уровне школьных разборок: «а у меня брат – каратист».
Действительно, кивать на более успешные проекты можно только в отсутствие собственных достижений. Тем более, что все вышеперечисленное – закрытые коммерческие ОС и никто не знает сколько там чего от FreeBSD и насколько это переписано.
А со своим там действительно все плохо, на попытку разработать собственную графическую оболочку с использованием только BSD технологий - Lumina без слез не глянешь.
С доставшейся по наследству ZFS тоже приключилась неприятность, так как из всех вариаций ZFS наиболее активно развивалась ZFS on Linux, то в 2018 году было принято решение, что новая версия OpenZFS 2.0 будет базироваться на кодовой базе для Linux и уже из нее портироваться на другие системы.
Ну и наконец старая история с использованием кода BSD в стеке TCP/IP Windows, которую можно охарактеризовать словами: слышал звон, да не знаю где он.
При выпуске на рынок Windows 3.11 Microsoft потребовалось добавить туда поддержку TCP/IP, а так как собственный стек еще был в разработке, то было лицензировано решение от компании Spider Systems, которое было написано с применением кода FreeBSD. С ним же в Windows попали основанные на коде BSD утилиты, предназначенные для нового стека ftp, rcp и rsh и т.п.
Но у стека Spider был один существенный недостаток, он был завязан на собственную среду STREAMS, которую тоже пришлось портировать на Windows и нести связанные с ней накладные расходы.
Собственный стек TCP/IP Microsoft, созданный с нуля, вышел в конце 1994 года и поставлялся с Windows NT, а также позже вошел в состав Windows 95.
Но, несмотря на новый стек, часть утилит переписывать не стали и оставили прежними. Действительно, зачем переписывать клиент FTP если он хорошо работает и законным образом лицензирован? Но именно последний момент, а именно отсылка к лицензии BSD и дала повод различным досужим теориям о BSD стеке TCP/IP в Windows.
А мы еще раз глянем на картинку ниже: справа величественный собор, слева – караван-сарай. Не перепутай!
👍30👎6🤷♂1❤1
Компания «Технологии Доверия» ищет специалистов в команду 1С!
В топовой аудиторско-консалтинговой фирме тебя ждет работа над развитием крупного международного проекта с 3000 пользователей и мощная прокачка экспертизы.
В ТеДо открыты следующие вакансии:
— Функциональный архитектор 1С (Учет затрат, себестоимость)
— Разработчик 1С (middle\senior)
Работа в ТеДо — это:
— оформление в штат по ТК РФ в аккредитованную ИТ-компанию
— гибкий формат работы: можно работать удаленно в РФ или в одном из 10 офисов в разных городах
— расширенный ДМС со стоматологией с первого месяца работы
— бесплатное внутреннее и внешнее обучение
— корпоративная техника и мобильная связь
Не упусти возможность построить свою траекторию успеха вместе с компанией «Технологии Доверия»! Откликайся на вакансии по ссылкам выше ⬆️
Реклама. ООО "ТЕХНОЛОГИИ ДОВЕРИЯ - КОНСУЛЬТИРОВАНИЕ". ИНН 7710764839.
В топовой аудиторско-консалтинговой фирме тебя ждет работа над развитием крупного международного проекта с 3000 пользователей и мощная прокачка экспертизы.
В ТеДо открыты следующие вакансии:
— Функциональный архитектор 1С (Учет затрат, себестоимость)
— Разработчик 1С (middle\senior)
Работа в ТеДо — это:
— оформление в штат по ТК РФ в аккредитованную ИТ-компанию
— гибкий формат работы: можно работать удаленно в РФ или в одном из 10 офисов в разных городах
— расширенный ДМС со стоматологией с первого месяца работы
— бесплатное внутреннее и внешнее обучение
— корпоративная техника и мобильная связь
Не упусти возможность построить свою траекторию успеха вместе с компанией «Технологии Доверия»! Откликайся на вакансии по ссылкам выше ⬆️
Реклама. ООО "ТЕХНОЛОГИИ ДОВЕРИЯ - КОНСУЛЬТИРОВАНИЕ". ИНН 7710764839.
👍2
Временные метки файлов в Linux
Этот, вроде-бы простой на первый взгляд вопрос часто вызывает достаточно много сложностей, особенно у начинающих.
Согласно стандарту POSIX у файлов в Linux имеются три временных метки:
▫️ atime – время последнего доступа к файлу
▫️ mtime – время последней модификации содержимого файла
▫️ ctime – время последнего изменения содержимого файла или его метаданных
С первой меткой вроде бы все просто, atime обновляется при любом доступе к файлу, например, при открытии. Но если файловая система смонтирована с опцией noatime данная метка обновляться не будет.
Метка mtime меняется при изменении содержимого файла, но ее не меняют изменения метаданных, такие как изменение владельца или прав доступа или переименование.
И, наконец, ctime, которая фиксирует любое изменение файла, будь то изменение содержимого или метаданных. Хотя во многих материалах метка ctime ошибочно описывается как время последнего изменения метаданных.
Особенностью метки ctime является то, что данная метка управляется системой, в то время как atime и mtime может произвольно изменять владелец файла. Таким образом данная метка однозначно покажет нам время последнего изменения файла, в то время как mtime может содержать неверную информацию.
При этом в нормальных условиях изменение mtime всегда влечет изменение ctime, а вот изменение ctime может происходить отдельно от других временных меток.
Так переименование файла изменит atime и ctime, но не затронет mtime, а изменение прав или владельца файла отразится только на ctime.
Позвольте, скажет иной читатель, а как быть с временем создания файла? А никак, такой временной метки POSIX не предусматривает. Однако позже была добавлена еще одна временная метка – crtime – которая как раз отражает время создания файла, но она имеет некоторые особенности.
Не являясь POSIX-совместимой, данная метка была реализована на уровне файловой системы и, следовательно, хранится только в ее пределах, между системами данный атрибут не переносится.
Таким образом данная метка отражает время создания файла в текущей файловой системе и при переносе файла между файловыми системами данная метка у него изменится, в то время как остальные временные метки будут сохранены.
Это может приводить к ситуации, показанной на рисунке ниже, когда время создания файла больше, чем время его модификации.
Каким образом можно посмотреть временные метки? Используйте команду stat, например:
Строки Доступ, Модифицирован и Изменен будут соответствовать atime, mtime и ctime. Однако если мы посмотрим на свойства файла в графическом окружении, то сможем увидеть, что Изменен в этом случае соответствует mtime, что в целом верно логически, но способно внести путаницу.
Поэтому, если вы хотите получить точное значение параметра, то используйте форматирование вывода команды stat:
Как видим, вроде бы простая тема оказалась не такой уж и простой. Но, если не пытаться переносить на Linux опыт других систем, а внимательно изучить теорию, то все станет на свои места и вы будете прекрасно понимать, что значит та или иная временная метка.
Этот, вроде-бы простой на первый взгляд вопрос часто вызывает достаточно много сложностей, особенно у начинающих.
Согласно стандарту POSIX у файлов в Linux имеются три временных метки:
▫️ atime – время последнего доступа к файлу
▫️ mtime – время последней модификации содержимого файла
▫️ ctime – время последнего изменения содержимого файла или его метаданных
С первой меткой вроде бы все просто, atime обновляется при любом доступе к файлу, например, при открытии. Но если файловая система смонтирована с опцией noatime данная метка обновляться не будет.
Метка mtime меняется при изменении содержимого файла, но ее не меняют изменения метаданных, такие как изменение владельца или прав доступа или переименование.
И, наконец, ctime, которая фиксирует любое изменение файла, будь то изменение содержимого или метаданных. Хотя во многих материалах метка ctime ошибочно описывается как время последнего изменения метаданных.
Особенностью метки ctime является то, что данная метка управляется системой, в то время как atime и mtime может произвольно изменять владелец файла. Таким образом данная метка однозначно покажет нам время последнего изменения файла, в то время как mtime может содержать неверную информацию.
При этом в нормальных условиях изменение mtime всегда влечет изменение ctime, а вот изменение ctime может происходить отдельно от других временных меток.
Так переименование файла изменит atime и ctime, но не затронет mtime, а изменение прав или владельца файла отразится только на ctime.
Позвольте, скажет иной читатель, а как быть с временем создания файла? А никак, такой временной метки POSIX не предусматривает. Однако позже была добавлена еще одна временная метка – crtime – которая как раз отражает время создания файла, но она имеет некоторые особенности.
Не являясь POSIX-совместимой, данная метка была реализована на уровне файловой системы и, следовательно, хранится только в ее пределах, между системами данный атрибут не переносится.
Таким образом данная метка отражает время создания файла в текущей файловой системе и при переносе файла между файловыми системами данная метка у него изменится, в то время как остальные временные метки будут сохранены.
Это может приводить к ситуации, показанной на рисунке ниже, когда время создания файла больше, чем время его модификации.
Каким образом можно посмотреть временные метки? Используйте команду stat, например:
stat file.txt
Строки Доступ, Модифицирован и Изменен будут соответствовать atime, mtime и ctime. Однако если мы посмотрим на свойства файла в графическом окружении, то сможем увидеть, что Изменен в этом случае соответствует mtime, что в целом верно логически, но способно внести путаницу.
Поэтому, если вы хотите получить точное значение параметра, то используйте форматирование вывода команды stat:
stat -c ‘%x’ file.txt - atime
stat -c ‘%y’ file.txt - mtime
stat -c ‘%z’ file.txt - ctime
Как видим, вроде бы простая тема оказалась не такой уж и простой. Но, если не пытаться переносить на Linux опыт других систем, а внимательно изучить теорию, то все станет на свои места и вы будете прекрасно понимать, что значит та или иная временная метка.
👍32👌1
zaninpz1.pdf
1.1 MB
Я просто оставлю это здесь и даже не буду подробно комментировать, так как далек от нынешнего высшего образования.
Но в наши времена сей опус с трудом потянул бы на курсовую, а тут как-никак выпускная работа (читай диплом).
И если теперь для дипломной работы достаточно просто поднять OpenVPN на двух узлах, то становится печально от такого уровня "образования".
Но в наши времена сей опус с трудом потянул бы на курсовую, а тут как-никак выпускная работа (читай диплом).
И если теперь для дипломной работы достаточно просто поднять OpenVPN на двух узлах, то становится печально от такого уровня "образования".
😱25👍8🤔6👀3