Читаем Внутреннее устройство Linux полностью

Чтобы удовлетворить оба типа оболочек, каким образом создавать файл. bashrc, который можно было бы использовать и в качестве файла. bash_profile? Приведу один весьма элементарный (и в то же время совершенно достаточный) пример:

# Command path.

PATH=/usr/local/bin:/usr/bin:/bin:/usr/games

PATH=$HOME/bin:$PATH

# PS1 is the regular prompt.

# Substitutions include:

# \u username \h hostname \w current directory

# \! history number \s shell name \$ $ if regular user

PS1='\u\$ '

# EDITOR and VISUAL determine the editor that programs such as less

# and mail clients invoke when asked to edit a file.

EDITOR=vi

VISUAL=vi

# PAGER is the default text file viewer for programs such as man.

PAGER=less

# These are some handy options for less.

# A different style is LESS=FRX

# (F=quit at end, R=show raw characters, X=don't use alt screen)

LESS=meiX

# You must export environment variables.

export PATH EDITOR VISUAL PAGER LESS

# By default, give other users read-only access to most new files.

umask 022

Как описано ранее, можно использовать такой файл. bashrc в качестве файла. bash_profile с помощью символической ссылки. Можно также сделать эту связь еще четче, создав файл. bash_profile, как в этой однострочной команде:

. $HOME/.bashrc


Проверка того, является ли оболочка интерактивной

Если файл. bashrc соответствует файлу. bash_profile, то обычно не приходится запускать дополнительные команды для оболочек входа в систему. Однако, если вы желаете назначить различные действия для разных типов оболочек, можно добавить следующую проверку в файл. bashrc, которая отслеживает наличие символа i в переменной оболочки $-:

case $- in

*i*) # interactive commands go here

command

—snip—

;;

*) # non-interactive commands go here

command

—snip-

;;

esac


13.4.2. Оболочка tcsh

Стандартным вариантом оболочки csh практически во всех системах Linux является оболочка tsch, улучшенная C-оболочка, которая сделала популярными такие функции, как редактирование командной строки и многорежимное завершение имен файлов и команд. Даже если вы не используете оболочку tsch как оболочку по умолчанию для нового пользователя (мы рекомендуем применять оболочку bash), наличие файлов запуска для нее все же необходимо на тот случай, если пользователь натолкнется на нее.

В оболочке tsch вам не надо беспокоиться о различиях между оболочками для входа/не для входа в систему. Во время запуска оболочка tsch ищет файл. tcshrc. Если это не удается, она ищет файл запуска. cshrc оболочки csh. Причина такого порядка действий в том, что файл. tcshrc можно использовать для таких расширений оболочки tcsh, которые не работают в оболочке csh. Вам, возможно, стоит придерживаться обычного файла. cshrc вместо. tcshrc; весьма маловероятно, что кому-либо понадобится применить ваши файлы запуска для оболочки csh. Если какой-либо пользователь действительно встретит оболочку csh в другой системе, ваш файл. cshrc будет работать.


Пример файла. cshrc

Приведу пример файла. cshrc:

# Command path.

setenv PATH /usr/local/bin:/usr/bin:/bin:$HOME/bin

# EDITOR and VISUAL determine the editor that programs such as less

# and mail clients invoke when asked to edit a file.

setenv EDITOR vi

setenv VISUAL vi

# PAGER is the default text file viewer for programs such as man.

setenv PAGER less

# These are some handy options for less.

setenv LESS meiX

# By default, give other users read-only access to most new files.

umask 022

# Customize the prompt.

# Substitutions include:

# %n username %m hostname %/ current directory

# %h history number %l current terminal %% %

set prompt="%m%% "


13.5. Пользовательские настройки по умолчанию

Лучший способ написать файлы запуска и выбрать параметры по умолчанию для новых пользователей — поэкспериментировать в системе с новым «тестовым» пользователем. Создайте такого пользователя с пустым домашним каталогом и воздержитесь от копирования ваших файлов запуска в каталог этого пользователя. Напишите новые файлы запуска с нуля.

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

В следующих разделах приведены разумные параметры по умолчанию для новых пользователей.


13.5.1. Параметры по умолчанию для оболочки

Оболочкой по умолчанию для всех новых пользователей системы Linux следует сделать bash, так как:

Перейти на страницу:

Похожие книги

Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Мюррей Хилл , Бьёрн Страуструп , Бьярн Страустрап

Программирование, программы, базы данных / Программирование / Книги по IT