-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Mikhail Zelenyi
committed
Jul 8, 2024
1 parent
ccc52a5
commit a213010
Showing
10 changed files
with
418 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
Окружение командной строки — это интерфейс и набор параметров, с которыми пользователь или программа взаимодействует при работе в командной строке операционной системы. Оно включает в себя переменные окружения, пути к исполняемым файлам, текущий рабочий каталог и другие настройки, которые влияют на поведение командной оболочки и выполняемых команд. | ||
|
||
### Основные элементы окружения командной строки | ||
|
||
1. **Командная оболочка (Shell)**: | ||
- Программа, которая интерпретирует и выполняет команды, введенные пользователем. | ||
- Примеры: Bash, Zsh, Fish в Unix-подобных системах; Command Prompt (cmd.exe) и PowerShell в Windows. | ||
|
||
2. **Переменные окружения**: | ||
- Параметры, которые влияют на работу командной оболочки и запущенных программ. | ||
- Примеры переменных: `PATH`, `HOME`, `USER`, `SHELL`. | ||
|
||
```sh | ||
# Пример установки переменной окружения | ||
export MY_VAR="some_value" | ||
``` | ||
|
||
3. **PATH**: | ||
- Переменная окружения, содержащая список директорий, в которых командная оболочка ищет исполняемые файлы. | ||
- Разделяется двоеточиями (:) в Unix-подобных системах и точкой с запятой (;) в Windows. | ||
|
||
```sh | ||
# Пример добавления директории в PATH в Unix-подобной системе | ||
export PATH=$PATH:/usr/local/my_custom_bin | ||
``` | ||
|
||
4. **Текущий рабочий каталог**: | ||
- Каталог, в котором выполняются команды. | ||
- Команда `pwd` показывает текущий рабочий каталог, а `cd` изменяет его. | ||
|
||
```sh | ||
# Показать текущий рабочий каталог | ||
pwd | ||
# Перейти в другой каталог | ||
cd /path/to/directory | ||
``` | ||
|
||
5. **Алиасы (Aliases)**: | ||
- Короткие имена или псевдонимы для длинных команд или командных последовательностей. | ||
|
||
```sh | ||
# Создание алиаса | ||
alias ll="ls -la" | ||
``` | ||
|
||
6. **Конфигурационные файлы**: | ||
- Файлы, в которых хранятся настройки оболочки и переменные окружения. | ||
- Примеры: `~/.bashrc`, `~/.bash_profile`, `~/.zshrc` для Unix-подобных систем; `profile.ps1` для PowerShell. | ||
|
||
```sh | ||
# Пример добавления переменной окружения в .bashrc | ||
echo 'export MY_VAR="some_value"' >> ~/.bashrc | ||
``` | ||
|
||
### Примеры переменных окружения | ||
|
||
- **`PATH`**: Указывает директории, в которых система ищет исполняемые файлы. | ||
- **`HOME`**: Домашний каталог текущего пользователя. | ||
- **`USER`**: Имя текущего пользователя. | ||
- **`SHELL`**: Путь к исполняемому файлу текущей командной оболочки. | ||
- **`PWD`**: Текущий рабочий каталог. | ||
|
||
### Управление переменными окружения | ||
|
||
- **Просмотр текущих переменных окружения**: | ||
```sh | ||
printenv | ||
# Или | ||
env | ||
``` | ||
|
||
- **Просмотр значения конкретной переменной**: | ||
```sh | ||
echo $HOME | ||
``` | ||
|
||
- **Установка переменной окружения**: | ||
```sh | ||
export MY_VAR="some_value" | ||
``` | ||
|
||
- **Удаление переменной окружения**: | ||
```sh | ||
unset MY_VAR | ||
``` | ||
|
||
### Конфигурационные файлы | ||
|
||
Конфигурационные файлы командной оболочки содержат команды и настройки, которые выполняются при запуске оболочки. | ||
|
||
- **`.bashrc`**: Выполняется при запуске интерактивной не-логин оболочки Bash. | ||
- **`.bash_profile`**: Выполняется при запуске логин оболочки Bash. | ||
- **`.zshrc`**: Выполняется при запуске интерактивной оболочки Zsh. | ||
|
||
### Пример конфигурационного файла `.bashrc` | ||
|
||
```sh | ||
# Добавление директории в PATH | ||
export PATH=$PATH:/usr/local/my_custom_bin | ||
|
||
# Установка алиаса | ||
alias ll="ls -la" | ||
|
||
# Установка переменной окружения | ||
export MY_VAR="some_value" | ||
``` | ||
|
||
### Заключение | ||
|
||
Окружение командной строки — это мощный инструмент для управления и автоматизации работы в операционной системе. Оно позволяет настраивать работу оболочки и запущенных программ, обеспечивая гибкость и эффективность в выполнении команд и скриптов. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
# Консоли, терминалы и комндные оболочки | ||
|
||
|
||
Консоль в операционной системе — это интерфейс, который позволяет пользователю взаимодействовать с операционной системой посредством ввода команд в текстовом режиме. Консоли часто используются для выполнения задач, требующих административного доступа, работы с файлами и директориями, запуска программ, а также для выполнения скриптов и автоматизации процессов. | ||
|
||
Основные аспекты консоли включают: | ||
|
||
1. **Командная строка**: Основной элемент консоли, где пользователь вводит команды. Командная строка обычно представляет собой строку текста с индикатором готовности (например, `$` в Unix-подобных системах или `C:\>` в Windows), после которого пользователь может вводить команды. | ||
|
||
2. **Оболочка (shell)**: Программа, которая обрабатывает команды, введенные пользователем. В Unix-подобных системах популярны оболочки Bash, Zsh, и Fish. В Windows используется Command Prompt (cmd.exe) и PowerShell. | ||
|
||
3. **Команды**: Текстовые инструкции, которые пользователь вводит в консоли для выполнения определенных действий. Например, в Unix-подобных системах команда `ls` отображает список файлов и директорий в текущей директории, а в Windows команда `dir` выполняет аналогичную функцию. | ||
|
||
4. **Скрипты**: Наборы команд, записанные в файл, которые могут выполняться как единое целое. Это позволяет автоматизировать выполнение часто повторяющихся задач. | ||
|
||
5. **Перенаправление ввода/вывода**: Возможность перенаправления ввода и вывода команд в файлы или другие команды. Например, `ls > file_list.txt` сохранит вывод команды `ls` в файл `file_list.txt`. | ||
|
||
Консольные интерфейсы часто используются в администрировании систем, программировании, и решении различных технических задач, так как они позволяют более гибко и точно управлять операционной системой по сравнению с графическими интерфейсами. | ||
|
||
## Отличие консоли от терминала | ||
Консоль и терминал — это два связанных, но разных понятия в контексте операционных систем и пользовательских интерфейсов. | ||
|
||
### Консоль | ||
|
||
1. **Консоль** - это общее понятие, которое обозначает интерфейс для взаимодействия с операционной системой через текстовые команды. | ||
2. **Физическая консоль**: В историческом контексте консоль — это физическое устройство, состоящее из монитора и клавиатуры, подключенное напрямую к компьютеру или серверу. | ||
3. **Виртуальная консоль**: В современных операционных системах это может быть текстовый режим на мониторе, к которому можно переключиться с графического интерфейса. Например, в Linux можно переключаться между виртуальными консолями с помощью клавиш `Ctrl + Alt + F1` до `Ctrl + Alt + F6`. | ||
|
||
### Терминал | ||
|
||
1. **Терминал** - это устройство или программа, которая предоставляет интерфейс для ввода и вывода данных, взаимодействующих с системой или удаленным компьютером. | ||
2. **Физический терминал**: В прошлом терминалы были отдельными устройствами (например, телетайпы, видео-дисплейные терминалы), которые подключались к основному компьютеру или мейнфрейму. | ||
3. **Эмулятор терминала**: В современных системах терминалы обычно представляют собой программы, которые эмулируют поведение старых физических терминалов. Примеры включают GNOME Terminal, Konsole, Windows Terminal, и т.д. | ||
|
||
### Основные различия | ||
|
||
1. **Консоль как физическое устройство**: | ||
- Включает монитор и клавиатуру, подключенные напрямую к компьютеру. | ||
- Управление осуществляется непосредственно на этом устройстве. | ||
|
||
2. **Терминал как программное обеспечение**: | ||
- Эмулирует поведение физических терминалов. | ||
- Используется для доступа к командной оболочке (shell). | ||
- Могут подключаться к удаленным системам по протоколам вроде SSH. | ||
|
||
### Взаимосвязь | ||
|
||
- **Терминал и командная оболочка**: Терминал запускает оболочку (например, Bash, Zsh в Unix-подобных системах или PowerShell в Windows), через которую пользователь вводит команды. Оболочка интерпретирует команды и взаимодействует с операционной системой. | ||
- **Виртуальные консоли и терминалы**: В Unix-подобных системах виртуальные консоли могут быть доступны через комбинации клавиш и предоставлять текстовый интерфейс, подобный терминалу, но обычно с более низким уровнем функциональности и без возможности работы в графическом режиме. | ||
|
||
### Пример | ||
|
||
- **Консоль**: Включение и работа на сервере через текстовый интерфейс, который отображается непосредственно на экране сервера. | ||
- **Терминал**: Открытие программы GNOME Terminal на рабочем столе Linux, чтобы взаимодействовать с системой или подключаться к удаленному серверу через SSH. | ||
|
||
Таким образом, консоль более общее понятие, включающее физические и виртуальные интерфейсы для текстового взаимодействия, тогда как терминал чаще относится к программам, которые предоставляют такой интерфейс. | ||
|
||
|
||
## Командные оболочки | ||
|
||
Командные оболочки (shell) — это программы, которые предоставляют текстовый интерфейс для взаимодействия с операционной системой. Существуют различные оболочки, каждая из которых имеет свои особенности, синтаксис и возможности. Вот некоторые из наиболее распространенных командных оболочек: | ||
|
||
### Unix-подобные системы | ||
|
||
1. **Bash (Bourne Again Shell)**: | ||
- Наиболее распространенная оболочка в Linux. | ||
- Совместима с Bourne Shell (sh), но обладает дополнительными функциями и улучшениями. | ||
- Поддерживает скрипты и автоматизацию задач. | ||
- Используется по умолчанию в большинстве дистрибутивов Linux. | ||
|
||
2. **Zsh (Z Shell)**: | ||
- Расширяет возможности Bash, предлагая больше настроек и функций. | ||
- Поддерживает автодополнение команд и аргументов. | ||
- Включает мощные функции для работы с командной историей и плагинами (например, Oh My Zsh). | ||
|
||
3. **Fish (Friendly Interactive Shell)**: | ||
- Ориентирована на удобство использования. | ||
- Поддерживает синтаксическую подсветку и автодополнение. | ||
- Не полностью совместима с POSIX, что может ограничить выполнение некоторых скриптов. | ||
|
||
4. **Tcsh (Tenex C Shell)**: | ||
- Улучшенная версия C Shell (csh). | ||
- Поддерживает командную историю и автодополнение. | ||
- Использует синтаксис, похожий на язык программирования C. | ||
|
||
5. **Ksh (Korn Shell)**: | ||
- Совместима с Bourne Shell (sh) и обладает дополнительными возможностями. | ||
- Часто используется в коммерческих Unix-системах. | ||
- Поддерживает скрипты и автоматизацию задач. | ||
|
||
### Windows | ||
|
||
1. **Command Prompt (cmd.exe)**: | ||
- Стандартная оболочка для Windows. | ||
- Поддерживает базовые команды и пакетные файлы (.bat). | ||
- Ограничена по сравнению с современными оболочками. | ||
|
||
2. **PowerShell**: | ||
- Мощная оболочка и скриптовый язык, разработанный Microsoft. | ||
- Интегрируется с .NET Framework и поддерживает сложные сценарии автоматизации. | ||
- Обладает более мощными возможностями по сравнению с cmd.exe. | ||
|
||
### Другие | ||
|
||
1. **Dash (Debian Almquist Shell)**: | ||
- Легковесная и быстрая оболочка, совместимая с POSIX. | ||
- Часто используется в Debian и Ubuntu для выполнения скриптов в init-скриптах. | ||
|
||
2. **Csh (C Shell)**: | ||
- Одна из ранних оболочек Unix. | ||
- Имеет синтаксис, похожий на язык программирования C. | ||
- Меньше используется сегодня по сравнению с более современными оболочками. | ||
|
||
### Пример использования | ||
|
||
- **Bash**: | ||
```sh | ||
#!/bin/bash | ||
echo "Hello, World!" | ||
``` | ||
|
||
- **PowerShell**: | ||
```powershell | ||
Write-Output "Hello, World!" | ||
``` | ||
|
||
- **Fish**: | ||
```fish | ||
echo "Hello, World!" | ||
``` | ||
|
||
Каждая оболочка имеет свои особенности и преимущества, и выбор оболочки часто зависит от предпочтений пользователя и конкретных задач. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## Debuger | ||
|
||
* [PyDev](https://www.pydev.org/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,10 @@ | ||
# Документирование программного кода | ||
# Документирование программного кода | ||
|
||
|
||
## Генерация документации | ||
|
||
* [Sphinx](https://www.sphinx-doc.org/en/master/index.html#) | ||
* `pip install sphinx` | ||
* `sphinx-quickstart` | ||
* Плагины, включая `autodoc` --- автоматическая генерация документация по docstrings | ||
* Интеграция с setuptools |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import string | ||
|
||
|
||
shift = 3 | ||
choice = input("would you like to encode or decode?") | ||
word = (input("Please enter text")) | ||
|
||
letters = string.ascii_letters + string.punctuation + string.digits | ||
encoded = '' | ||
if choice == "encode": | ||
for letter in word: | ||
if letter == ' ': | ||
encoded = encoded + ' ' | ||
else: | ||
x = letters.index(letter) + shift | ||
encoded=encoded + letters[x] | ||
if choice == "decode": | ||
for letter in word: | ||
if letter == ' ': | ||
encoded = encoded + ' ' | ||
else: | ||
x = letters.index(letter) - shift | ||
encoded = encoded + letters[x] | ||
|
||
print(encoded) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Linter | ||
|
||
[//]: # (Пример в файле example_linter.py) | ||
|
||
* **Lint** or **Linter** - инструмент для статического анализа кода: | ||
* Соответствие кода Codestyle | ||
* Выявление подозрительного кода | ||
* Помощь в рефакторинге |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# PEP: Python Enhancement Proposals | ||
|
||
* [PEP 0](https://www.python.org/dev/peps/) - Index of Python Enhancement Proposals | ||
* [PEP 8](https://www.python.org/dev/peps/pep-0008/) - Style Guide for Python Code |
Oops, something went wrong.