четверг, 9 июля 2015 г.

Основы командной строки в Linux

cd - сменить рабочую директорию
~ - сокращение, обозначает домашнюю директорию пользователя
pwd - выводит на экран текущую рабочую директорию
echo <> - выодит на экран текст <>. Полезно для скриптов, а также для просмотра переменных среды.
time <command> - сколько требуется команде для выполнения

exec <команда> запустить команду, при этом команда заменяет консоль
<команда>& -запустить команду в фоновом режиме

В некоторых случаях, внутренние команды (встроенные в bash) и внешние команды могут выдавать разные результаты для однихи тех же команд и принимать разные опции.
Если директории, где находится программа нет в переменной среды PATH, нужно прописывать полный путь к этой программе (например /home/user/myprog вместо ./myprog)
Следует избегать добавления в PATH для рута директорий с  графическими и другими программами, предназначенными для запуска пользователем, а также не добавлять в PATH рута текущую директорию (./), т.к. это позволяет запустить потенциально опасные программы под видом системных.



История команд: стрелки вверх и вних. Поиск по истории Ctrl+R (назад) и Ctrl+S (вперед). Ctrl+G чтобы прервать поиск. history выводит историю команд. !<номер команды в истории> запускает команду с заданным номером из истории. history -c очищает историю. История хранится в файле .bash_history домашней директории.

Ctrl+A - начало строки, Ctrl+E - конец строки. Ctrl + стрелка вправо или влево - движинеи курсора на одно слово вправо или влево. Ctrl+K - удалить весь текст от курсора до конца строки, Ctrl+U - удалить весть текст от курсора до начала строки. Esc и затем U (L) - перевести текст курсора до конца строки в верхний (нижний) регистр. Cltrl+L - очистить экран

Переменную среды можно задать следующим образом: export  NTPSEVER=ntp.com
env - вывести все переменные среды

Помощь: <команда> --help или man <команда>

В linux существуют такие  типы вывода как стандартный вывод(stdout) и стандартные ошибки (stderr). Таким образом, вывод программы и ошибки можно перенаправить, например ошибки в файл, а вывод программы оставить на экране.
> создать новый файл, содержащий стандартный вывод. если файл существует - перезаписать
>> добавить вывод к существующему файлу. если он не существует создать
2> создать новый файл, содержащий стандартные ошибки. если файл существует - перезаписать
2>> добавить стандартные ошибки к существующему файлу. если он не существует создать
&> создать новый файл содержащий как стандартные ошибки так и стандартный вывод
< использует содержимое файла как стандартный ввод
<< использует следующие строки как стандартный ввод
<> файл исопользуется как стандартный ввод и как стандартный вывод

Иногда удобно перенаправить все ошибки следующей командой: 2> /dev/null чтобы они не отображались.
Чтобы одновременно просматривать вывод программы и сохранять его в файле следует использовать tee: someprog | tee output.exe
С помощью вертикальной черты | можно перенаправлять стандартный вывод одной программы в стандартный ввод другой.

Чтобы создать последовательность команд из вывода программы используется утилит xargs. Например, чтобы найти все файлы с названием содержащим "~" и удалить их:
find ./ -name "*~" | xargs -d "\n" rm

Соединять текстовые файлы можно с помощью команды cat: cat first.txt second.txt > combined.txt Также эта команда часто используется для просмотра коротких файлов.
Сконвертировать символы табуляции в пробелы - expand (наоборот - unexpend)
Отобразить файл в HEX - od
Сортировка содержимого файла - sort
Разбить файл на части - split
Удалить дублирующиеся строки - uniq
Если в файле очень длинные строки, параграфы можно переформатировать с помощью fmt
Пронумеровать строки - nl
Подготовить текст для печати (с заданной длиной строки, заголовками, номерами страниц) pr
Посмотреть начало/конец файла - head/tail
Постраничный вывод текста - less
Извлечение частей текста (начиная с определенных символов или числа байт) и отображение в стандартном выводе - cut Например чтобы получить мак адрес адаптера: ifconfig eth0 | grep HWaddr | cut -d " " -f
Сосчитать слова - wc
Изменить текст (добавить, заменить и т.п.) sed

Регулярные выражения:
[] - любой символ в квадратных скобках, например b[aei]g соответсвует big, beg, bag. a[2-4]z соответствует a2z, a3z,a4z
. - любой символ кроме новой строки
^ - начало строки
$ - конец строки
* - ноль или более совпадений (. - любая подстрока)
+ - одно или более совпадений
? - одно или ни одного совпадения
\ - для спец. символов. например, чтобы найти точку: \. (example\.com)
| - лог. или

grep ищет заданную строку: grep [опции] регулярное выражение [файлы]

Источник: Roderick W. Smith - LPIC study guide, 3d edtition

Комментариев нет:

Отправить комментарий