Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 632 сообщений
Cообщения с меткой

unix - Самое интересное в блогах

Следующие 30  »
eugene20237

Linux: как посмотреть список открытых портов в системе?

Среда, 22 Июня 2016 г. 23:20 (ссылка)

lsof -Pni4

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Разработка Docker контейнеров с помощью системы многоцелевых сценариев Sparrow

Четверг, 02 Июня 2016 г. 14:28 (ссылка)

В этой статье я хотел бы рассказать как можно создавать сценарии сборки имиджей для Docker контейнеров с помощью системы многоцелевых сценариев Sparrow*.



Читать дальше →

https://habrahabr.ru/post/302278/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Перевод] Linux Programming Interface

Пятница, 29 Апреля 2016 г. 16:28 (ссылка)

Здравствуйте, уважаемые читатели! С наступающими вас праздниками.



В последней апрельской публикации мы хотели бы рассказать вам о замечательной книге Майкла Керриска «Linux Programming Interface», которая в очередной раз вернулась в наше поле зрения благодаря превосходным продажам другой литературы по Linux:







Конечно, сложная книга о системном программировании объемом 1500+ страниц — литература, прямо скажем, на любителя. Но, поскольку отзывы о ней до сих пор восторженные, а нам потратиться на Linux завсегда не жалко предлагаем почитать ее обзор, опубликованный в далеком 2011 году.





Книга Майкла Керриска «The Linux Programming Interface» (TLPI) в первую очередь ориентирована на системных программистов, работающих с Linux, но целевая аудитория ими далеко не ограничивается. Хотя это и объемистый том (говорят, «таким можно быка пришибить»), читается книга на удивительно легко — и если вы ее просто пролистываете, и если штудируете каждый абзац. Здесь вы найдете энциклопедическую информацию об интерфейсе системных вызовов ядра Linux, но весь материал изложен в очень доступном стиле. В общем, это отличный справочник, который займет достойное место в библиотеке любого специалиста по Linux, работающего как с ядром, так и с пользовательским пространством, а также заинтересует некоторых из тех, кто не занимается Linux профессионально.



Керриск занимается поддержкой man-справки по Linux с 2004 года, поэтому отлично представляет себе Linux API. Как он упоминает в предисловии, возможно, вы уже знакомы с некоторыми его работами, а именно с разделами 2, 3, 4 и 5 этой справки. Но книга – не просто сборник статей из справки, хотя тематически во многом им близка. Ее материал организован иначе и изложен значительно более живым, популярным стилем.



Объем книги – около 1500 страниц, поэтому написать по ней обзор было не так просто. Однако, приступив к чтению, я вскоре ею увлекся. Керриск внятно описывает системные вызовы Linux и другие элементы API. Я решил прочитать лишь наиболее заинтересовавшие меня главы, а остальное пропустить, но в итоге прочитал гораздо больше, чем собирался.



Книга состоит из 64 глав, в каждой из которых примерно 20 страниц. Поэтому материал легко усваивается небольшими фрагментами, можно читать книгу и параллельно заниматься другими задачами. Основное внимание Керриск уделяет Linux, однако не забывает и о других разновидностях UNIX, отмечает, чем другие UNIX-подобные системы отличаются от Linux. Автор внимательно рассматривает различные стандарты, описывающие поведение Linux – в частности, POSIX и Single UNIX Specification (SUS) — указывая, где в Linux соблюдаются и где не соблюдаются эти стандарты.



Книга начинается с исторического экскурса: от таких классиков как Томпсон и Ричи до недавнего прошлого, с рассмотрением различных ветвей древа UNIX. Затем автор рассказывает, что такое операционная система, какую роль в ней играет ядро, а также излагает некоторые общие концепции, составляющие суть Unix (и Linux). Хотя для большинства корифеев Linux здесь нет никаких секретов, эта информация пригодится тем, кто раньше работал с другими операционными системами. Идеи «все — файл» и «файл — это просто поток байт» описаны настолько доступно, что любой системный программист, познакомившись с книгой, сможет быстро вступить на «путь Unix».



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



В каждой главе приводятся понятные образцы кода, которые удобно читать. Важно, что эти примеры очень помогают напрактиковаться в теме, а некоторые из листингов легко можно доделать до хороших утилит. Весь исходный код доступен на сайте man7.org/tlpi и является свободным, выпущен по лицензии Affero GPLv3. Кроме того, в каждой главе есть упражнения для читателя, решения некоторых из них даны в приложении.



Итак, о чем же книга? Легко сказать «обо всем сразу», но это будет своеобразная отговорка, причем неточная. В книге вы найдете множество глав о файлах, файловом вводе/выводе, расширенных атрибутах, списках контроля доступа (ACL). Есть глава о каталогах и ссылках, а в другой главе рассматривается вызов inotify, позволяющий получать уведомления о событиях, происходящих в файлах.



Здесь вы найдете множество глав о процессах, потоках, сигналах, целые главы, в которых рассматриваются группы процессов, сеансы, приоритет процессов и планирование. Особенно интересной мне показалась глава о создании защищенных привилегированных программ. Есть две главы о разделяемых библиотеках, причем в первой из этих глав акцент делается на базовых идеях, лежащих в основе этих библиотек, а также о создании разделяемых библиотек в принципе; в свою очередь, вторая из этих глав посвящена системному вызову dlopen() и ему подобным.



Пожалуй, в книге слишком много глав о межпроцессной коммуникации (IPC), по одной главе посвящено каждому IPC-механизму в составе System V (разделяемая память, очереди сообщений и семафоры). Также есть по главе о каждом из трех POSIX-вариантов этих типов IPC. Как по POSIX, так и по System V IPC есть своя вводная глава кроме тех глав, в которых излагаются подробности о каждом типе. Между двумя разделами о механизмах System V и POSIX IPC втиснуты две главы об отображении на память и об операциях с виртуальной памятью, которые, возможно, лучше было бы поставить в другой части книги. Еще есть глава, в которой делается введение в IPC и глава о более традиционных каналах Unix и очередях FIFO. Всего насчитывается двенадцать глав, связанных с IPC, после чего автор начинает рассматривать API сокетов.



После IPC идет глава о блокировке файлов, а затем шесть глав о сокетах. В этих главах рассматриваются сокеты Unix и сокеты Интернета, а также рассказывается о серверном дизайне и освещаются сложные темы, связанные с сокетами. Книга заканчивается главами о терминалах и псевдотерминалах, между которыми как-то затесалась глава «Альтернативные модели ввода/вывода». Это интересная глава, в которой рассматриваются вызовы select(), poll(), epoll(), сигнально-управляемый ввод/вывод и некоторые другие темы. Но расположена она все-таки немного странно.



Само собой, содержание книги этим не ограничивается. После ее прочтения особенно впечатляет, насколько велик API Linux/Unix. В книге также рассматриваются некоторые недостатки и морально устаревшие детали, сохранившиеся в API. Керриск ничуть не стесняется делать в нужных местах подобные замечания: «Вообще, очередями сообщений System V обычно лучше не пользоваться».



Есть две темы, о которых я очень хотел почитать, но которые плохо раскрыты в книге. Во-первых, это контейнеры и пространства имен, которые лишь вскользь упоминаются при обсуждении флагов системного вызова clone(). Более странным показалось, что в книге почти не упоминается системный вызов ptrace(). В тех немногих местах, где он все-таки фигурирует, читателей отсылают к man-справке ptrace(2).



Разумеется, кроме интерфейса системных вызовов можно было бы рассмотреть и другие элементы Linux API – навскидку вспоминаются sysf, splice() и perf – но Керриску явно приходилось выбирать, что включить в книгу, а от чего отказаться. В принципе, автор справился хорошо. Некоторые технические книги по Linux достаточно быстро устаревают, но в случае с этой работой проблема устаревания стоит не так остро как, например, с книгой об устройстве ядра.



У меня есть еще некоторые претензии к книге, но все они несущественные. В первую очередь, хотелось бы сказать, что многочисленные «отступления» в книге — это именно лирические отступления. Они содержат дополнительную информацию, которая некритична для понимания темы. По-моему, многие из них лучше было бы вплести в основной текст.



Книга пригодится, прежде всего, системным программистам и разработчикам приложений, но ими целевая аудитория не ограничивается. Разработчики ядра смогут уточнить, не противоречат ли их новые фичи (или фиксы) структуре API. Программисты, занятые преимущественно разработкой для Unix-подобных систем, при помощи этой книги смогут сделать свой код более портируемым. Думаю, читатель будет регулярно с пользой возвращаться к этой книге. Полагаю, все, кто по-настоящему интересуется программированием для Linux, со мной согласятся.





Актуальность книги






































Проголосовало 42 человека. Воздержалось 28 человек.




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





Original source: habrahabr.ru.

https://habrahabr.ru/post/282776/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Перевод] Linux Programming Interface

Пятница, 29 Апреля 2016 г. 16:28 (ссылка)

Здравствуйте, уважаемые читатели! С наступающими вас праздниками.



В последней апрельской публикации мы хотели бы рассказать вам о замечательной книге Майкла Керриска «Linux Programming Interface», которая в очередной раз вернулась в наше поле зрения благодаря превосходным продажам другой литературы по Linux:







Конечно, сложная книга о системном программировании объемом 1500+ страниц — литература, прямо скажем, на любителя. Но, поскольку отзывы о ней до сих пор восторженные, а нам потратиться на Linux завсегда не жалко предлагаем почитать ее обзор, опубликованный в далеком 2011 году.





Книга Майкла Керриска «The Linux Programming Interface» (TLPI) в первую очередь ориентирована на системных программистов, работающих с Linux, но целевая аудитория ими далеко не ограничивается. Хотя это и объемистый том (говорят, «таким можно быка пришибить»), читается книга на удивительно легко — и если вы ее просто пролистываете, и если штудируете каждый абзац. Здесь вы найдете энциклопедическую информацию об интерфейсе системных вызовов ядра Linux, но весь материал изложен в очень доступном стиле. В общем, это отличный справочник, который займет достойное место в библиотеке любого специалиста по Linux, работающего как с ядром, так и с пользовательским пространством, а также заинтересует некоторых из тех, кто не занимается Linux профессионально.



Керриск занимается поддержкой man-справки по Linux с 2004 года, поэтому отлично представляет себе Linux API. Как он упоминает в предисловии, возможно, вы уже знакомы с некоторыми его работами, а именно с разделами 2, 3, 4 и 5 этой справки. Но книга – не просто сборник статей из справки, хотя тематически во многом им близка. Ее материал организован иначе и изложен значительно более живым, популярным стилем.



Объем книги – около 1500 страниц, поэтому написать по ней обзор было не так просто. Однако, приступив к чтению, я вскоре ею увлекся. Керриск внятно описывает системные вызовы Linux и другие элементы API. Я решил прочитать лишь наиболее заинтересовавшие меня главы, а остальное пропустить, но в итоге прочитал гораздо больше, чем собирался.



Книга состоит из 64 глав, в каждой из которых примерно 20 страниц. Поэтому материал легко усваивается небольшими фрагментами, можно читать книгу и параллельно заниматься другими задачами. Основное внимание Керриск уделяет Linux, однако не забывает и о других разновидностях UNIX, отмечает, чем другие UNIX-подобные системы отличаются от Linux. Автор внимательно рассматривает различные стандарты, описывающие поведение Linux – в частности, POSIX и Single UNIX Specification (SUS) — указывая, где в Linux соблюдаются и где не соблюдаются эти стандарты.



Книга начинается с исторического экскурса: от таких классиков как Томпсон и Ричи до недавнего прошлого, с рассмотрением различных ветвей древа UNIX. Затем автор рассказывает, что такое операционная система, какую роль в ней играет ядро, а также излагает некоторые общие концепции, составляющие суть Unix (и Linux). Хотя для большинства корифеев Linux здесь нет никаких секретов, эта информация пригодится тем, кто раньше работал с другими операционными системами. Идеи «все — файл» и «файл — это просто поток байт» описаны настолько доступно, что любой системный программист, познакомившись с книгой, сможет быстро вступить на «путь Unix».



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



В каждой главе приводятся понятные образцы кода, которые удобно читать. Важно, что эти примеры очень помогают напрактиковаться в теме, а некоторые из листингов легко можно доделать до хороших утилит. Весь исходный код доступен на сайте man7.org/tlpi и является свободным, выпущен по лицензии Affero GPLv3. Кроме того, в каждой главе есть упражнения для читателя, решения некоторых из них даны в приложении.



Итак, о чем же книга? Легко сказать «обо всем сразу», но это будет своеобразная отговорка, причем неточная. В книге вы найдете множество глав о файлах, файловом вводе/выводе, расширенных атрибутах, списках контроля доступа (ACL). Есть глава о каталогах и ссылках, а в другой главе рассматривается вызов inotify, позволяющий получать уведомления о событиях, происходящих в файлах.



Здесь вы найдете множество глав о процессах, потоках, сигналах, целые главы, в которых рассматриваются группы процессов, сеансы, приоритет процессов и планирование. Особенно интересной мне показалась глава о создании защищенных привилегированных программ. Есть две главы о разделяемых библиотеках, причем в первой из этих глав акцент делается на базовых идеях, лежащих в основе этих библиотек, а также о создании разделяемых библиотек в принципе; в свою очередь, вторая из этих глав посвящена системному вызову dlopen() и ему подобным.



Пожалуй, в книге слишком много глав о межпроцессной коммуникации (IPC), по одной главе посвящено каждому IPC-механизму в составе System V (разделяемая память, очереди сообщений и семафоры). Также есть по главе о каждом из трех POSIX-вариантов этих типов IPC. Как по POSIX, так и по System V IPC есть своя вводная глава кроме тех глав, в которых излагаются подробности о каждом типе. Между двумя разделами о механизмах System V и POSIX IPC втиснуты две главы об отображении на память и об операциях с виртуальной памятью, которые, возможно, лучше было бы поставить в другой части книги. Еще есть глава, в которой делается введение в IPC и глава о более традиционных каналах Unix и очередях FIFO. Всего насчитывается двенадцать глав, связанных с IPC, после чего автор начинает рассматривать API сокетов.



После IPC идет глава о блокировке файлов, а затем шесть глав о сокетах. В этих главах рассматриваются сокеты Unix и сокеты Интернета, а также рассказывается о серверном дизайне и освещаются сложные темы, связанные с сокетами. Книга заканчивается главами о терминалах и псевдотерминалах, между которыми как-то затесалась глава «Альтернативные модели ввода/вывода». Это интересная глава, в которой рассматриваются вызовы select(), poll(), epoll(), сигнально-управляемый ввод/вывод и некоторые другие темы. Но расположена она все-таки немного странно.



Само собой, содержание книги этим не ограничивается. После ее прочтения особенно впечатляет, насколько велик API Linux/Unix. В книге также рассматриваются некоторые недостатки и морально устаревшие детали, сохранившиеся в API. Керриск ничуть не стесняется делать в нужных местах подобные замечания: «Вообще, очередями сообщений System V обычно лучше не пользоваться».



Есть две темы, о которых я очень хотел почитать, но которые плохо раскрыты в книге. Во-первых, это контейнеры и пространства имен, которые лишь вскользь упоминаются при обсуждении флагов системного вызова clone(). Более странным показалось, что в книге почти не упоминается системный вызов ptrace(). В тех немногих местах, где он все-таки фигурирует, читателей отсылают к man-справке ptrace(2).



Разумеется, кроме интерфейса системных вызовов можно было бы рассмотреть и другие элементы Linux API – навскидку вспоминаются sysf, splice() и perf – но Керриску явно приходилось выбирать, что включить в книгу, а от чего отказаться. В принципе, автор справился хорошо. Некоторые технические книги по Linux достаточно быстро устаревают, но в случае с этой работой проблема устаревания стоит не так остро как, например, с книгой об устройстве ядра.



У меня есть еще некоторые претензии к книге, но все они несущественные. В первую очередь, хотелось бы сказать, что многочисленные «отступления» в книге — это именно лирические отступления. Они содержат дополнительную информацию, которая некритична для понимания темы. По-моему, многие из них лучше было бы вплести в основной текст.



Книга пригодится, прежде всего, системным программистам и разработчикам приложений, но ими целевая аудитория не ограничивается. Разработчики ядра смогут уточнить, не противоречат ли их новые фичи (или фиксы) структуре API. Программисты, занятые преимущественно разработкой для Unix-подобных систем, при помощи этой книги смогут сделать свой код более портируемым. Думаю, читатель будет регулярно с пользой возвращаться к этой книге. Полагаю, все, кто по-настоящему интересуется программированием для Linux, со мной согласятся.





Актуальность книги






































Проголосовало 2 человека. Воздержалось 4 человека.




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





Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/282776/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
zerg_from_hive

осиновый кол

Вторник, 01 Марта 2016 г. 12:02 (ссылка)

Новость, однако: "Компании SCO и IBM согласились принять решение суда и прекратить судебную тяжбу по претензиям SCO к IBM. 2 февраля окружной суд штата Юта принял решение об отклонении последних оставшихся претензий SCO к IBM и дал время до 26 февраля решить, согласны ли они с решением или намерены продолжить судебный процесс.

Стороны подписали соглашение, по которому в условиях банкротства компании SCO и отсутствия у неё каких-либо финансовых ресурсов помимо выдвинутого иска (т.е. единственный "финансовый ресурс", который остался у SCO, это надежда на удовлетворение иска и получение компенсации от IBM), подача апелляции и затягивание иска не имеет практического смысла. Более того, с прекращением иска, суду не нужно будет принимать решение по встречным искам от IBM, что позволит сэкономить средства суда и сторон. Интересно, что соглашение не затрагивает встречные иски IBM к SCO и оставляет IBM возможность продолжить тяжбы при желании."


Кажется, ночь живых мертвецов (сериал "SCO contra mundi" начался в 2003 году) наконец-то закончилась осиновым колом. Правда, один из комментаторов новости несколько более оптимистичен касательно покойника: "SCO хоронили -- три баяна порвали. И ещё десяток порвут. The show must go on!" 8-)

Метки:   Комментарии (2)КомментироватьВ цитатник или сообщество
mad-lion

Good Commands

Понедельник, 28 Декабря 2015 г. 13:44 (ссылка)

Команды



Процессы



1. Получим список всех процессов, которые запустил не я:



ps aux | grep -v `whoami`



   Получим список из 10 процессов, которые больше всего нагружают процессор:



ps aux --sort=-%cpu | grep -m 11 -v `whoami`



   Какие процессы жрут память:



ps -eo user,pcpu,pmem,pid,cmd | sort -r -k3 | head -10



   Получим список процессов ввиде дерева:



pstree        - pkg psmisc



   Получить статистику процеса:



prtstat       - pkg psmisc



 



2. Сбросить консоль:



reset         - pkg ncurses-bin

 



3. Резервная копия каталога скопировать только изменившиеся файлы:



rsync -vare ssh user@host:/Source/Backup/dir/* /Destination/backup/



 



4. Увелитчить время работы батареи ноутбука и снизить шум вращающихся деталей.



hdparm        - pkg hdparm





hdparm -y /dev/sdb    - перейти в режим ожидания,

hdparm -Y /dev/sdb    - перейти в спящий режим,

hdparm -S 36 /dev/hdb - выставляет время автоматического выключения.






5. Тестирование скорости HDD можно произвести следующей команды:



hdparm -Tt /dev/sda



  Результат будет выглядеть примерно так:



hdparm -Tt /dev/sda



/dev/sda:

  Timing cached reads: 15782 MB in 2.00 seconds = 7895.86 MB/sec

  Timing buffered disk reads: 364 MB in 3.01 seconds = 121.05 MB/sec




  Чтобы узнать текущие настройки, добавьте к hdparm имя устройства:



hdparm /dev/sda



/dev/sda:

  multcount = 16 (on)

  IO_support = 1 (32-bit)

  readonly = 0 (off)

  readahead = 256 (on)

  geometry = 60801/255/63, sectors = 976773168, start = 0






6. Список открытых портов в состоянии Listen:



netstat -lnp







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




cat /etc/confile.conf | egrep -ve "^#|^$"       или

cat /etc/confile.conf | egrep -v "^(#|$)"       или

cat /etc/confile.conf | grep -v '\(^#\|^$\)'    или

cat /etc/confile.conf | grep -v '\(^\(#\|$\)\)'






8. Резервный образ HDD (создать, залить):




dd            - pkg coreutils



dd if=/dev/sda bs=512 | gzip > /mnt/sdb1/system_drive_backup.img.gz

gzip -dc /mnt/sdb1/system_drive_backup.img.gz | dd of=/dev/sda




   Внимание !

   ==========


      Загрузиться при этом нужно с LiveCD (Flash).


 



--



 


Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
zerg_from_hive

vim cheat sheet

Пятница, 18 Декабря 2015 г. 17:04 (ссылка)

Собственно, краткий справочник по командным клавишам vi/vim, позаимствованный тут. Мало ли, вдруг кому-то понадобится, к тому же там достаточно понятно, почему те или иные действия завязаны на ту или иную клавишу.
VIM-TIPS (700x494, 122Kb)

Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Перевод] Мифы о /dev/urandom

Среда, 16 Декабря 2015 г. 13:04 (ссылка)


image



Наверняка многие из вас неоднократно сталкивались с мифами о /dev/urandom и /dev/random. Может быть, в некоторые из них вы даже верите. В этом посте мы сорвём покровы со всех этих мифов и разберём настоящие сильные и слабые стороны этих генераторов случайных чисел.

Читать дальше →

http://habrahabr.ru/post/273147/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
zerg_from_hive

UNIX-коаны

Вторник, 15 Декабря 2015 г. 21:53 (ссылка)

Практически полный набор переведённых на русский UNIX-коанов обнаружился на хабре. Весьма рекомендую прочитать и проникнуться духом UNIX. 8-)

Мастер Фу и 10 000 строк
Метки:   Комментарии (2)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Из песочницы] Разноцветные терминалы

Понедельник, 02 Ноября 2015 г. 12:49 (ссылка)





В этой публикации я расскажу о некоторых трюках, которые украсят будни любого системного администратора Linux (и не только). Все они связаны с переменной PS1 оболочки bash. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле ~/.bashrc (который выполняется при запуске bash и используется для в том числе для конфигурации).



Для начала рассмотрим простой вариант, мой любимый формат командной строки.



PS1='\t j\j \u@\h:\w\n\$ '


Результат будет вот такой:



17:42:46 j0 olleg@petrel:~
$


Это обычное использование переменной PS1, но если бы я не начал с этого — рассказ был бы неполным. Обычно в переменной PS1 с помощью специальных последовательностей символов определяют формат приглашения для ввода команд. Подробный список этих последовательностей можно почитать в документации к bash, в данном примере:




  • \t — вывод «текущего времени», на самом деле это получается время завершения выполнения предыдущей команды, удобно когда перед глазами.

  • j\j — выводит символ j и после него количество запущенных job, т.е. процессов в фоне. Это тоже удобно иметь перед глазами чтобы случаем про них не забыть когда соберешься закрыть терминал.

  • \u@\h — имя пользователя и название сервера. Если работаете с несколькими серверами через удаленные терминалы — чтобы не путаться.

  • \w — после двоеточия — рабочая директория.

  • \n — поскольку строка получилась хоть и информативной (что-то вроде статус бара), но длинной, то приглашаем вводить команды с новой строки, а эта верхняя строка будет наглядно отделять от результата работы предыдущей команды.

  • \$ — на новой строке будет выводится символ либо $ для обычного пользователя либо # для root'а и отделив его пробелом можно приглашать вводить новую команду.



Казалось бы, чего еще желать… Но дальше будет интереснее. Дело в том, что с помощью специальных управляющих символов можно задавать цвет выводимого текста, цвет курсора и даже переопределять title bar у таких графических терминалов, как Gnome2. И, на мой взгляд, довольно удобно когда цветом отделяются терминалы запущенные на различных серверах. Для меня каждый сервер ассоциируется с каким-то цветом и в этот цвет мы будем красить командную строку и курсор на каждом сервере.



У меня .bashrc разделен на два файла, в самом .bashrc содержится общий код для всех серверов, а в .bash_local — уникальные для этого сервера настройки командной строки. .bash_local я буду вставлять в .bashrc специальной директивой. Начнем с .bash_local. В контексте данной статьи там у меня будут две строчки, которые определяют цвет этого сервера:




# .bash_local
# change cursor and prompt color
cursor_color='#0087FF'
prompt_color='33'


Просто заношу коды цвета в переменные. Но, как вы заметили, что способ задания цвета для курсора и для текста командной строки — разный. Почему-то так исторический получилось. Чтобы понять, какой цвет каким кодом кодируется, есть подходящая картинка.



image



Посредине — обозначение цвета для цвета курсора, снизу — обозначение цвета для текста. Как вы можете увидеть, что я для текста и курсора использую цвет морской волны. Т.к. название сервера petrel («буревестник»), то он ассоциируется у меня с этим цветом.



Теперь .bashrc, тоже показываю его не полностью, а только то что имеет отношение к теме:




# .bashrc
# local stuff
[[ -f ~/.bash_local ]] && . ~/.bash_local


Тут я вставляю код из .bash_local в общий файл. Таким образом определяться ранее описанные переменные с цветом сервера.




# set to red
root_cursor_color='#FF0000'
root_prompt_color='196'


Еще две переменные определяю с чисто красным цветом, он будет использоваться для маркировки терминалов привелигированного пользователя (root'а).




#my favorite PS1
case "$TERM" in
xterm*|rxvt*)
PS1='\[\e[38;5;'$prompt_color'm\]\t j\j \u@\h:\w\n'
[[ $UID == 0 ]] && { prompt_color=$root_prompt_color;cursor_color=$root_cursor_color; }
PS1="$PS1"'\[\e[m\e]12;'$cursor_color'\a\e[38;5;'$prompt_color'm\]\$ \[\e[m\]'
;;
*)
PS1='\t j\j \u@\h:\w\n\$ '
;;
esac


Тут проверяется какой используется терминал. Для любого неизвестного или неподдерживающего цвета будет использоваться приглашение без цвета (PS1='\t j\j \u@\h:\w\n\$ ') так, как я это описал в начале статьи. Но если имя терминала начинается на xterm или rxvt, например, так себя позиционирует терминал Gnome, начинаем кудесить с цветом. Первая строчка — задаем цвет текста — цвет сервера и выводим первую строку приглашения ввода команд. Она всегда будет окрашена в цвет сервера. Вторая строчка — проверяем, работаем ли мы под непривелигированным или привелигированным пользователем (root'ом). Если root — то переопределяем цвета на красный. Третья строчка — формируем вторую строчку приглашения и определяем цвет курсора в терминале. Т.е. там у нас получится либо $ и через пробел курсор, оба покрашенные в цвет сервера, если пользователь обычный. Либо красный # и через пробел красный курсор, если это root.




# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac


А это, если честно, один в один скопированно из первоначального .bashrc от Дебиана. Знаю, что этот код видоизменяет title bar у окна, размещает там информацию об пользователе, сервере и домашней директории. Но поскольку этот код придумал не я, комментировать его не буду.



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

Original source: habrahabr.ru (comments, light).

http://habrahabr.ru/post/269967/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
SoftLabirint

Подборка книг "Unix и Linux". 7 книг (2003-2012) PDF/Djvu » SoftLabirint.Ru: Скачать бесплатно и без регистрации - Самые Популярные Новости Интернета

Пятница, 23 Октября 2015 г. 22:07 (ссылка)
softlabirint.ru/book/10828-...fdjvu.html


Подборка книг "Unix и Linux". 7 книг (2003-2012) PDF/Djvu

Посетители сайта SoftLabirint.Ru – Вашему вниманию представлена подборка книг, посвященная теме "Unix/Linux". В подборке 7 книг.



Список книг:

*Современное программирование для школьников, книга 1. ОС Linux — командная строка, утилиты, сценарии (2010-2011/DjVu/RUS)

*Немет Э., Снайдер Г., Хейн Т., Уэйли Б. — Unix и Linux. Руководство системного администратора (2012/PDF/DjVu)

*Митчелл М., Оулдем Дж., Самьюэл А. — Программирование для Linux. Профессиональный подход (2003/PDF)

*Буленок В.Г., Пьяных Е.Г. — Основы работы с ОС Linux (2008/PDF)

*Лав Р. — Linux. Системное программирование (2008/PDF)

*Цилюрик О. — Инструменты в Linux для программистов из Windows (2011/PDF)

*Тихомиров В.О. — Введение в Linux (2007/PDF)



Скачать Подборка книг "Unix и Linux". 7 книг (2003-2012) PDF/Djvu-150.58 Mb:



Скачать | Download | TurboBit.net

http://turbobit.net/scwvkost3kt4/linux2.rar.html



Скачать | Download | HitFile.net

http://www.hitfile.net/a7ph/linux2.rar.html



Скачать | Download | Файлообменник.рф

http://файлообменник.рф/bz86znwueea5/linux2.rar.html



Скачать | Download | BornCash.org

http://borncash.org/load/1734000283



Скачать | Download | StartFiles.org

http://startfiles.org/load/1734000283



Скачать | Download | GoldFiles.org

http://goldfiles.org/load/1734000283



Скачать | Download | BornCash.net

http://borncash.net/load/1734000283



Скачать | Download | File-Space.org

http://file-space.org/files/get/jKkY-6z6o-/linux2.rar.html

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<unix - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda