diff --git a/README-es.md b/README-es.md index e9a7b7d..d3e4dab 100644 --- a/README-es.md +++ b/README-es.md @@ -506,6 +506,32 @@ Estos son puntos relevantes *únicamente* para OS X. - Para obtener la información de la versión del OS X, usa `sw_vers`. +## Solo para Windows + +Estos son puntos relevantes *únicamente* para Windows. + +-En Windows 10, puedes usar [Bash de Ubuntu en Windows](https://msdn.microsoft.com/commandline/wsl/about) que proporciona un entorno familiar con la línea de comandos en Unix. Su lado positivo, este permite a los programas de Linux ejecutarse en Windows. Por otro lado este no soporta ejecutar de programas de Windows desde la línea de comandos Bash. +- Accede al poder del shell de Unix en Microsoft Windows instalando [Cygwin](https://cygwin.com/). La mayoría de las cosas descritas en este documento funcionaran en su configuración por defecto. + +- Instala programas adicionales de Unix con el gestor de paquetes de Cygwin + +- Usa `mintty` como tu línea de comando. + +- Accede al portapapeles de Windows a través de `/dev/clipboard`. + +- Ejecuta `cygstart` para abrir un archivo arbitrario a través de su aplicación registrada. + +- Accede al registro de Windows con `regtool`. + +- Ten en cuenta que la ruta `C:\` del disco Windows se transforma en `/cygdrive/c` en Cygwin, y que Cygwin `/` aparece en `C:\cygwin` en Windows. Convierte entre Cygwin y rutas de archivos estilo Windows con `cygpath`. Este es el más útil de los scripts que invocan programas de Windows. + +- Puedes ejecutar y hacer scripts de la mayoría de las tareas administrativas del sistema de Windows desde la línea de comandos aprendiendo y usando `wmic`. + +- Otra opción para obtener la apariencia y sensación de Unix en Windows es [Cash](ttps://github.com/dthree/cash). Ten en cuenta que muy pocos comandos de Unix y opciones de la línea de comandos están disponibles en este entorno. + +- Una opción alternativa para tener herramientas de desarrollo GNU (algo como GCC) en windows es [MinGW](http://www.mingw.org/) y [MSYS](http://www.mingw.org/wiki/msys) su paquete, que proporciona utilidades tales como bash, gawk, make y grep. MSYS no tiene todas las características al compararse con Cygwin. MinGW es particularmente útil para crear ejecutables nativos de Windows de las herramientas Unix. + + ## Más recursos - [awesome-shell](https://github.com/alebcay/awesome-shell): Una lista curada de herramientas shell y recursos. diff --git a/README-sl.md b/README-sl.md index 2f8137e..5974925 100644 --- a/README-sl.md +++ b/README-sl.md @@ -540,6 +540,10 @@ To so elementi pomembni *samo* za OS X. ## Samo za Windows +Sledeče velja *samo* za Windows. + +- Na Windows 10 lahko uporabite [Bash na Ubuntu na Windows](https://msdn.microsoft.com/commandline/wsl/about), ki ponuja znano okolje Bash z orodji ukazne vrstice Unix. Prednost je, da to omogoča poganjanje programov za Linux na Windows-u. Po drugi strani pa to ne podpira poganjanja Windows programov iz ukazne vrstice Bash. + - Dostopajte do moči lupine Unix na Microsoft Windows z namestitvijo [Cygwin](https://cygwin.com/). Večina stvari opisanih v tem dokumentu bo delala "Out of the Box". - Namestite dodatne programe Unix z upraviteljem paketov Cygwin. @@ -556,6 +560,10 @@ To so elementi pomembni *samo* za OS X. - Večino opravil sistemske administracije Windows iz ukazne vrstice lahko izvajate tako, da se naučite uporabljati `wmic`. +- Druga opcija, da dobite izgled in občutek Unix-a na Windows-u, je [Cash](https://github.com/dthree/cash). Upoštevajte, da so v tem okolju na voljo le nekateri ukazi Unix in opcije ukazne vrstice. + +- Alternativna možnost, da dobite GNU razvojna orodja (kot je GCC) na Windows, je [MinGW](http://www.mingw.org) in njegov [MSYS](http://www.mingw.org/wiki/msys) paket, ki ponuja orodja, kot je bash, gawk, make in grep. MSYS nima na voljo vseh lastnosti v primerjavi s Cygwin. MinGW je posebej uporaben za izdelavo izvornih Windows prenosov orodij Unix. + ## Več virov - [awesome-shell](https://github.com/alebcay/awesome-shell): urejan seznam orodij lupine in virov. diff --git a/README-uk.md b/README-uk.md index 8dd5273..4012c31 100644 --- a/README-uk.md +++ b/README-uk.md @@ -27,6 +27,7 @@ [**Будь-ласка, зробіть свій внесок**](/CONTRIBUTING.md) якщо ви знайшли помилку або можете щось покращити! + ## Опис Охоплення: @@ -38,7 +39,8 @@ Нотатки: -- Щоб все вміщалось на одній сторінці, вся інформація вставлена прямо тут. У вас вистачить вмінь, щоб самостійно вивчити питання більш детально з інших джерел. Використовуйте `apt-get`, `yum`, `dnf`, `pacman`, `pip` та `brew` (залежно від вашої системи управління пакетами) для установки нових програм. +- Вся інформація збережена в одному файлі для спрощення пошуку, перекладу та навігації. У вас вистачить вмінь, щоб самостійно вивчити питання більш детально в іншому місці. Використовуйте `apt-get`, `yum`, `dnf`, `pacman`, `pip` та `brew` (залежно від вашої системи управління пакетами) для установки нових програм. + - На [Explainshell](http://explainshell.com/) можна знайти просте і докладне пояснення того, що таке команди, їх опції, пайпи(pipes(*|*)) і т.д. @@ -64,16 +66,19 @@ - Вивчіть і використовуйте систему управління версіями, наприклад таку, як `git`. -- Добре знайте регулярні вирази і різні опції для `grep`/`egrep`. Такі опції як `-i`, `-o`, `-v`, `-A`, `-B` та `-C` варто знати. +- Навчіться писати регулярні вирази і вивчіть різні опції для `grep`/`egrep`. Такі опції як `-i`, `-o`, `-A`, та `-B` варто знати. + +- Навчіться використовувати системами управління пакетами `apt-get`, `yum`, `dnf` та `pacman` (залежно від дистрибутива). Знайте як шукати і встановлювати пакети. Обов'язково майте встановленим `pip` для встановки модулів та програм, написаних на Python (деякі з тих команд, що ви знайдете нижче, найлегше встановити через `pip`). -- Навчіться використовувати системи управління пакетами та встановлювати пакети `apt-get`, `yum`, `dnf` та `pacman` (залежно від дистрибутива). Обов'язково майте встановленим `pip` для установки командних утиліт, написаних на Python (деякі з тих команд, що ви знайдете нижче, найлегше встановити через `pip`). ## Щоденне використання - Використовуйте клавішу табуляції (**Tab**) в Bash для автодоповнення аргументів до команд та **ctrl-r** для пошуку по історії командного рядка. + - Використовуйте **ctrl-w** в Bash для того, щоб видалити останнє слово в команді; **ctrl-u** для того, щоб видалити команду повністю. Використовуйте **alt-b** і **alt-f** для того, щоб переміщатись між словами у команді, **ctrl-k** для того, щоб перейти в кінець рядка, **ctrl-l** для того, щоб очистити екран. Гляньте на `man readline` щоб дізнатися про всі комбінації клавіш Bash. Їх багато! Наприклад, **alt-.** переміщається між попередніми аргументам команди, а **alt-*** максимально розширює аргументи. -- Якщо вам подобаються клавішні комбінації vim, виконайте `set -o vi` (`set -o emacs` що б повернути налаштування). + +- Якщо вам подобаються клавішні комбінації vim, виконайте `set -o vi` (`set -o emacs` щоб повернути налаштування). - Для редагування довгих команд після налаштування вашого консольного редактора (наприклад `export EDITOR=vim`), **ctrl-x** **ctrl-e** відкриє поточну команду в редакторі для багаторядкового редагування команди. Або у vi стилі, **escape-v**. - Для того, щоб переглянути історію, введіть `history`. Також існує безліч абревіатур, наприклад `! $` - Останній аргумент, `!!` - остання команда, хоча ці абревіатури часто заміняються комбінаціями **ctrl-r** та **alt-.**. - Перейти в домашню директорію можна за допомогою `cd`. Щоб вказати шлях до файлів із домашньої директорії можна скористатися префіксом `~` (наприклад: `~/.bashrc`). У `sh` скриптах для звернення до домашньої директорії можна використовувати змінну `$HOME`. @@ -89,7 +94,7 @@ - Знайте різні сигнали, які можна слати процесам. Наприклад, щоб призупинити процес, використовуйте `kill -STOP [pid]`. Для повного списку подивіться `man 7 signal`. - Використовуйте `nohup` або` disown`, якщо ви хочете запустити фоновий процес що б він постійно виконувався у фоні. - Дізнайтеся, які процеси слухають порти через `netstat -lntp` або `ss -plat` (для TCP; додайте `-u` для UDP). -- Зверніть увагу на `lsof` щоб подивитися відкриті сокети і файли. +- Зверніть увагу на команду `lsof`. Вона допоможе Вам подивитися відкриті сокети і файли. - Команда `uptime` or `w` показує як довго працює система. - Використовуйте `alias`, щоб створити скорочення для часто використовуємих команд. Наприклад, `alias ll='ls -latr'` створить нове скорочення(alias) `ll`. - Збережіть свої синоніми (aliases), налаштування і фунції які ви часто використовуєте у `~/.bashrc`, більш детально [тут](http://superuser.com/a/183980/7106). Це зробить їх доступними в усіх ваших сесіях shell. @@ -139,7 +144,7 @@ - Для роботи з файлами, список яких дала інша команда (наприклад `git`), використовуйте `fpp` ([PathPicker](https://github.com/facebook/PathPicker)). - Щоб швидко підняти веб-сервер в поточній директорії (і піддерикторіях), який доступний для всіх у вашій мережі, використовуйте: `python -m SimpleHTTPServer 7777` (на прту 7777 і для Python 2) або `python -m http.server 7777` (на прту 7777 і для Python 3). -- Щоб виконати команду з привілеями, використовуйте `sudo` (для root) і `sudo -u` (для іншого користувача). Використовуйте `su` або `sudo bash`, щоб запустити шелл від імені цього користувача. Використовуйте `su -`, щоб симулювати свіжий вхід під root або gsl іншим користувачем. +- Щоб виконати команду з привілеями, використовуйте `sudo` (для root) і `sudo -u` (для іншого користувача). Використовуйте `su` або `sudo bash`, щоб запустити шелл від імені цього користувача. Використовуйте `su -`, щоб симулювати свіжий вхід під root або під іншим користувачем. ## Обробка файлів та інформації @@ -147,8 +152,8 @@ - Для того, щоб знайти файл в поточній директорії, виконайте `find. -iname '*something*'`. Для того, щоб шукати файл по всій системі, використовуйте `locate something` (але не забувайте, що `updatedb` міг ще не проіндексувати нещодавно створені файли). - Для пошуку по вмісту або фалах (більш детально зробити пошук допоможе `grep -r`) використовуйте [`ag`](https://github.com/ggreer/the_silver_searcher). - Для конвертації HTML в текст: `lynx -dump -stdin` -- Для конвертації різних типів розмітки (HTML, Markdown та ін.) попроробуйте [`pandoc`](http://pandoc.org/). -- Якщо потрібно працювати з XML, є стара, але хороша утиліта - `xmlstarlet`. +- Для конвертації різних типів розмітки (HTML, Markdown та ін.) спроробуйте утиліту [`pandoc`](http://pandoc.org/). +- Якщо нуобхідно працювати з XML, є стара, але хороша утиліта - `xmlstarlet`. - Для роботи з JSON використовуйте [`jq`](http://stedolan.github.io/jq/). - Для YAML використовуйте [`shyaml`](https://github.com/0k/shyaml). - Для Excel і CSV файлів [csvkit](https://github.com/onyxfish/csvkit) надає `in2csv`, `csvcut`, `csvjoin`, `csvgrep` і т.д. @@ -157,10 +162,10 @@ - Знайте про `cut`, `paste`, і `join` для роботи з текстовими файлами. Багато людей використовують `cut`, забувши про `join`. - Знайте про `wc`: для підрахунку нових рядків (`-l`), символів (`-m`), слів (`-w`) і для байтового підрахунку (`-c`). - Знайте про `tee` для копіювання в файл з stdin і stdout, щось типу `ls -al | tee file.txt`. -- Не забувайте, що ваше місце знаходження (локаль) впливає на багато команд, включаючи порядок сортування, порівняння і продуктивність. Багато дистрибутиви Linux автоматично виставляють `LANG` або будь-яку іншу змінну в підходящу для вашого регіону. Через це результати функцій сортування можуть працювати непередбачувано. Знайте що `i18n` можуть значно знизити продуктивність сортувань. У деяких випадках можна повністю цього уникати (за винятком рідкісних випадків), сортуючи традиційно побайтово, використовуйте `export LC_ALL = C`. +- Не забувайте, що ваші налаштування консолі та мовні/регіональні налаштування (локаль) впливають на багато команд, включаючи порядок сортування, порівняння і продуктивність. Багато дистрибутиви Linux автоматично виставляють `LANG` або будь-яку іншу змінну в підходящу для вашого регіону. Через це результати функцій сортування можуть працювати непередбачувано. Знайте що `i18n` можуть значно знизити продуктивність сортувань. У деяких випадках можна повністю цього уникати (за винятком рідкісних випадків), сортуючи традиційно побайтово, використовуйте `export LC_ALL = C`. - Ви можете встановити спецефічне середовище для команди за допомогогю префікса, а саме: `TZ=Pacific/Fiji date`. - Знайте основи `awk` і `sed` для простих маніпуляцій з даними. Наприклад, щоб отримати суму всіх чисел, які знаходяться в третій колонці текстового файлу, можна використати `awk '{ x += $3 } END { print x }'`. Швидше за все, це вийде в рази 3 швидше і рази в 3 простіше, ніж робити це в Пітоні. -- Щоб замінити всі знаходження підрядка в одному або декількох файлах: +- Щоб замінити всі входження підрядка в одному або декількох файлах: ```sh perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt ``` @@ -198,7 +203,7 @@ - Для інформації про мережу використовуйте `netstat` і `ss`. - Для більш детальної інформації використовуйте [`glances`](https://github.com/nicolargo/glances). Ця програма показує відразу кілька різних статистик в одному вікні терміналу. Корисно, коли стежите за відразу декількома системами. - Для того, щоб стежити за пам'яттю вокористовуйте `free` і `vmstat`. Зокрема, не забувайте, що значення кешування ("cached" value) - Це пам'ять, яку тримає ядро і ці значення є частиною `free`. -- Використовуйте `mtr` для кращого трасування(простежити маршрут), щоб знаходити проблеми мережі. +- Використовуйте `mtr` для збору статистики трасування(простежити маршрут до віддаленого сервера), щоб знаходити проблеми мережі. - Для того, щоб дізнатися, чому диск повністю забитий, використовуйте `ncdu`, це зберігає час у порівнянні з тим же `du -sh *`. - Для того, щоб дізнатися, який сокет або процес використовує інтернет, використовуйте `iftop` або `nethogs`. - Додаток `ab` який поставляється разом з apache, корисний для швидкої і поверхневої перевірки продуктивності веб-сервера. Для більш серйозного лоад-тестінгу використовуйте `siege`. @@ -210,20 +215,20 @@ - Коли дебажите щось, що зламалося в минулому, використовуйте `sar` буває дуже корисно. Показує історію та статистику CPU, пам'яті, мережі і т.д. - Для аналізу більш складних систем і продуктивності використовуйте `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](http://en.wikipedia.org/wiki/ Perf_(Linux)) і [`sysdig`](https://github.com/draios/sysdig). - Дізнайтеся, яка у вас операційна система, через `uname` або `uname -a` (інформація про ядро) або `lsb_release -a` (інформація про дистрибутив Linux). -- Використовуйте `dmesg`, коли щось відбувається зовсім дивне (це можуть бути проблеми із залізом або драйверами). +- Використовуйте `dmesg`, коли щось відбувається зовсім дивне (це можуть бути проблеми із залізом, драйверами, тощо). ## Одним рядком Кілька прикладів склеювання команд: -- Це досить круто, що можна знайти множинні перетину файлів, з'єднати відсортовані файли і подивитися різницю в декількох файлів через `sort`/`uniq`. Це швидкий підхід і працює на файлах будь-якого розміру (включаючи багатогігабайтними файли). (Сортування не обмежено пам'яттю, але можливо вам доведеться додати `-T`, якщо `/tmp` знаходиться на невеликому логічному диску). Ще подивіться на те, що було сказано вище про `LC_ALL`. Прапор сортування `-u` не використовується нижче, щоб було зрозуміліше: +- Це досить круто, що можна знайти множинни перетину файлів, з'єднати відсортовані файли і подивитися різницю декількох файлів через `sort`/`uniq`. Це швидкий підхід і працює на файлах будь-якого розміру (включаючи багатогігабайтні файли). (Сортування не обмежено пам'яттю, але можливо вам доведеться додати `-T`, якщо `/tmp` знаходиться на невеликому логічному диску). Ще подивіться на те, що було сказано вище про `LC_ALL`. Опція сортування `-u` не використовується нижче, щоб було зрозуміліше: ```sh cat a b | sort | uniq > c # c is a union b cat a b | sort | uniq -d > c # c is a intersect b cat a b b | sort | uniq -u > c # c is set difference a - b ``` -- Використовуйте `grep. *` для того, щоб подивитися вміст всіх файлів в директорії. Це може бути корисно для директорій заповнених конфігураціями як ці в `/sys`, `/proc`, `/etc`. -- Просумувати всі числа, які знаходяться в третій колонці текстового файлу (це в 3 рази швидше і 3 рази простіше, ніж робити це в Пітоні): +- Використовуйте `grep . *` для того, щоб подивитися вміст всіх файлів в директорії. Це може бути корисно для директорій заповнених конфігураціями як ці в `/sys`, `/proc`, `/etc`. +- Просумувати всі числа, які знаходяться в третій колонці текстового файлу (це в 3 рази швидше і 3 рази простіше, ніж робити це в Пітоні) можна наступним чином: ```sh awk '{ x += $3 } END { print x }' myfile ``` @@ -256,11 +261,11 @@ - `expr`: для виконання арифметичних і булевих операцій, а також регулярних виразів - `m4`: простий макро-процесор -- `yes`: безкінечно виводить рядок +- `yes`: безкінечно виводить рядок зі словом "yes" - `cal`: хороший календар -- `env`: виводить змінні середовища (корисно в Bash-скриптах) -- `printenv`: показати змінні оточення (корисно в скриптах або при відладці) -- `look`: знайде англійські слова (або рядки у файлі) які починаються із рядках +- `env`: показує змінні середовища (корисно в Bash-скриптах) +- `printenv`: показує змінні оточення (корисно в скриптах або при відладці) +- `look`: виведе рядки у файлі які починаються із заданого слова/підрядка - `cut`, `paste` і `join`: маніпуляції з даними - `fmt`: форматування параграфів у тексті - `pr`: відформатовує текст в сторінки/колонки @@ -280,8 +285,8 @@ - `file`: визначає тип файлу - `tree`: показує директорії і піддиректорії у вигляді дерева, як `ls`, але рекурсивно - `stat`: інформація про файл -- `time`: execute and time a commands -- `timeout`: зупиняє команду після того як завершиться вказаний час в аргументі +- `time`: виведе інформацію про час виконання команди/програми +- `timeout`: зупиняє виконання команди після того як завершиться вказаний час в аргументі - `lockfile`: створює позначку в файлі який може бути видаленим тільки через команду `rm -f` - `logrotate`: змінити, зжати і відправити логи. - `watch`: запустити команду повторно, показуючи результати і/або виділення змін @@ -295,12 +300,12 @@ - `iconv` або `uconv`: конвертація кодувань - `split` і `csplit`: розбити файли - `sponge`: прочитати весь інпут перед тим, як його записати. Корисно, коли читаєш з того ж файлу, куди записуєш. Наприклад, ось так: `grep -v something some-file | sponge some-file` -- `units`: конвертер. Метри в кілометри, версти в п'яді (дивіться `/usr/share/units/definitions.units`) +- `units`: використовується для конвертації одиниць вимірювання (дивіться `/usr/share/units/definitions.units`) - `apg`: генерація паролів - `7z`: архіватор з високим ступенем стиснення - `ldd`: показує залежності програми від системних бібліотек - `nm`: symbols from object files -- `ab`: бенчмаркінг веб-серверів +- `ab`: вбудований в Apache бенчмарк веб-серверів - `strace`: відладка системних викликів - `mtr`: трасування для відладки мережі - `cssh`: паралельне виконання команд в графічному інтерфейсі