Самые азы работы в Линукс. консольные команды linux. что такое команда. список команд OS Linux. команды терминала


Комбинации клавиш и Команды Linux

Кое-какие горячие комбинации клавиш и команды, которые
следует знать каждому при работе с Linux.


что такое команда?

— Что такое команда (в любой OS)?
— Это маленькая программка, которая выполняет какое-то действие в системе.
— Где в linux находятся эти программки-команды?
— Как правило, они находятся в следующих директориях:

доступные всем пользователям в системе.
/bin
/usr/bin
/usr/local/bin

доступные администратору системы (пользователю root).
/sbin
/usr/sbin
/usr/local/sbin

Также файлы «команд» могут находится в других каталогах, но для того,
чтобы команды оттуда запускались автоматически, надо эти каталоги указать в переменной $PATH.
Таким образом, можно узнать какие каталоги команд вам доступны в системе, выполнив

$ echo $PATH

Если вы хотите добавить какой-то каталог с запускаемыми файлами, например,
/home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/bin , то сделать это можно сказав:

$ export PATH=$PATH:/home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/bin

И если после этого дать

$ echo $PATH

То вы увидите, что переменная окружения $PATH изменилась.
И теперь вы сможете запустить любой запускаемый файл из /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/bin просто набрав имя файла.

Добавление от Ben-Ja:
Меня часто спрашивают, как получить сразу все команды OS linux на данной машине?
Получить список всех командных файлов в системе, которые вам доступны, можно вот таким образом:

for x in `echo $PATH |sed s/:/\ /g`; do echo "=========== $x =========="; find $x -type f |sort ;wait; done

Или вручную просмотреть каждую директорию из переменной $PATH

А теперь по подробней о командах linux:


Комбинации клавиш и Команды Linux:
Содержание:


Комбинации клавиш и Команды Linux:

ВНИМАНИЕ: ПОМНИТЕ ЧТО КОМАНДЫ LINUX ЧУСТИТЕЛЬНЫ К РЕГИСТРУ, В КОТОРОМ ИХ НАБИРАЮТ. Например: Команды Netscape, NETSCAPE и nEtscape это три различные команды, точно также my_filE, my_file, и my_FILE это три различных файла.

Естественные сочетания клавиш и обозначения

[Ctrl][Alt][F1] Переключение в первый консольный терминал
[Ctrl][Alt][F#] Переключение в #ый консольный терминал (#=1..6)
[Ctrl][Alt][F7] Переключение в графический терминал (если таковой запущен)
[Tab] Дополнение текущей последовательности символов, набранной в консоли, до исполняемой команды. Эта особенность сильно облегчает жизнь при наборе команд! Это работает также и при загрузке компьютера. Это снижает вероятность сделать ошибку! Короче, юзайте кнопку tab!
[ArrowUp] — стрелка вверх Просмотр и редактирование буфера истории команд. Для исполнения команды нажмите [Enter].
[Ctrl + r] Начало_строки В bash — поиск по истории команд.
[Shift][PgUp] Просмотр текста выведенного на консольный терминал и ушедшего за приделы экрана. Перемещение в вверх.
[Shift][PgDown] То же что и выше. Перемещение в вниз.
[Ctrl][Alt][+] (в X-windows) Изменение разрешения. Переключение к следующей конфигурации.
[Ctrl][Alt][-] (В X-windows) Изменение разрешения. Возврат к предыдущей конфигурации.
[Ctrl][Alt][BkSpc] (в X-windows) Убить текущий сервер X-windows (выйти из графической оболочки уничтожив все процессы).
[Ctrl][Alt][Del] Перезагрузка компьютера.
[Ctrl+c] Убить текущий процесс.
[Ctrl+d] Выход из текущего терминала. (В некоторых shell — дописывание фразы как tab, что очень не удобно)
[Ctrl+d] Посылка текущему процессу сигнала [Конец-файла] (конец файла). Например, в команде cat.
[Ctrl+s] Остановка вывода на терминал.
[Ctrl+q] Возобновление вывода на терминал. Попробуйте эту комбинацию клавиш, если ваш терминал непонятно почему перестал отвечать на ваши запросы.
[Ctrl+z] Послать текущий процесс в background. (см еще: jobs — список bg процессов. fg номер — вывод процесса из бэкграунда в foreground)
reset Восстановление значений по умолчанию для «запорченного» терминала (терминал показывает странные символы и неадекватно реагирует на нажатие клавиш). Используйте эту команду если вы попытались вывести на экран бинарный файл. Вероятно вы не сможете увидеть эту команду в процессе ее набора.
[Правая кнопка мыши] Вставка выделенного курсором текста.
Для того, чтобы мышь работала в консольном терминале (не графическом) следует установить пакет gpm.
~ Моя домашняя директория. Например cd ~ перенесет вас в вашу домашнюю директорию.
. (точка) Текущая директория.
.. (две точки) Родительская директория для текущего каталога. Например: cd ../ перенесёт вас «выше».

Стандартные команды и команды, дающие информацию по системе

Команды (всегда набираются в одной строке) Описание команд
pwd Вывести текущую директорию. Текущий путь
hostname Вывести или изменить сетевое имя машины.
whoami Ввести имя под которым я зарегистрирован.
date Вывести или изменить дату и время. Например, чтобы установить дату и время равную 2000-12-31 23:57, следует выполнить команду:
date 123123572000
см. ниже hwclock
hwclock Изменения сделанные командой date будут действительны только до перезагрузки машины.
Для того, чтобы синхронизировать (изменить) дату системных часов, надо от рута выполнить команду: hwclock —set
Для получения других ключей — см. hwclock —help
time Получить информацию о времени, нужного для выполнения процесса + еще кое-какую информацию. Не путайте эту команду с date. Например: Я могу определить как много времени требуется для вывода списка файлов в директории, набрав последовательность:
time ls
who Определить кто из пользователей работает на машине.
last Определение всех пользователей, логинившихся в вашей системе.
lastlog Кто и когда из пользователей системы заходил в последний раз.
finger [имя_пользователя] Системная информация о зарегистрированном пользователе. Попробуйте: finger root
В настоящее время практически нигде не используется.
uptime Количество времени прошедшего с последней перезагрузки.
ps
ps a
ps aux
Список текущих процессов.
Используйте ps —helpдля справки по параметрам команды.
pstree Дерево текущих процессов (покажет родителя процесса)
pstree -p выведет дерево с PID каждого процесса
Используйте pstree —helpдля справки по параметрам команды.
top Интерактивный список текущих процессов отсортированных по использованию cpu.
uname Вывести системную информацию.
uname -a Получить полную инфу о версии linux и ядра
free Вывести информацию о памяти компьютера.
df
df -h
Место на диске. Вывести информацию о свободном и используемом месте на дисках (в читабельном виде).
du
du -h
Вывод информации о размере файлов директории.
du -h ./[директория] — вывести размеры файлов данной директории и размер директории.
cat /proc/cpuinfo Системная информация о процессоре. Заметьте, что файла в /proc директории — не настоящие файлы. Они используются для получения информации, известной системе.
cat /proc/interrupts Используемые прерывания.
cat /proc/version Версия ядра Linux и другая информация.
cat /proc/filesystems Вывести используемые в данный момент типы файловых систем.
cat /etc/printcap Вывести настройки принтера.
lsmod (как root) Вывести информацию о загруженных в данный момент модулях ядра.
lshw (как root) Вывести информацию о компьютере (о железе)
set|less Вывести текущие значения всех переменных окружения и функций.
О работе с переменными окружения см. ниже.
echo $PATH Вывести значение переменной окружения «PATH» Команда echo может использоваться для вывода значений других переменных окружения. Воспользуйтесь командой set, для получения полного списка.

Работа с сетью в linux.

netconf (как root) Очень хорошая программа настройки сети, использующая для интерактивной работы с пользованием, текстовое меню. (Во многих современных дистрибутивах уже не используется)
ping [имя_машины] «Проверка на вшивость». Есть или нет контакта с другой машиной (в качестве параметре команде можно передавать сетевое имя машины или IP адрес), нажмите <Ctrl>-C когда вся требуемая информация будет получена.
traceroute [имя_машины]
tracepath [имя_машины]
Получить путь до указаной машины, узнать, сколько и каких серверов между вами и указаным хостом.
route -n Вывести таблицу маршрутизации (the routing table).
lsof -i Вывести информацию о текущих сетевых соединениях.
ifconfig (как root) Вывести информацию о текущих сетевых интерфейсах (ethernet, ppp, и т.д.) Ваша первая ethernet плата плата будет показана как eth0, вторая как eth1, первый ppp модем как ppp0 и так далее. «lo» — расшифровывается как «loopback only» сетевой интерфейс, который должен быть постоянно активирован. Используйте соответствующие опции (смотрите результат выполнения ifconfig —help) для настройки сетевых интерфейсов.
ipfwadm -F -p m Настроить firewall ipfw (но это больше к *BSD системам).
iptables iptables -L покажет настройки фаервола iptables на машине.
Подробнее: man iptables или в разделе документации о серверах.
ifup [имя_сетевого_интерфейса] (/sbin/ifup при работе под обычным пользователем) Активизация соответствующего сетевого интерфейса. Например:
ifup eth0
ifup ppp0
Пользователь может активизировать и выключить сетевой интерфейс только когда установлены соответствующие права доступа (права можно установить в процессе настройки ppp через «netconf»)
ifdown [имя_сетевого_интерфейса] (/sbin/ifdown при работе под обычным пользователем). Диактивизация соответствующего сетевого интерфейса.
wget команда для скачивания файлов из консоли linux со множеством дополнительных ключей
работает с протоколами http, ftp, https, поддерживает работу через прокси.
wget -c продолжение прерванной закачки (очень удобно для больших файлов при нестабильной связи.)
wget -r рекурсивное скачивание. (будте осторожны с этим параметром, есть риск выкачать всё).

Простейшие действия

shutdown Остановка, перезагрузка, отключение системы в зависимости от переданых параметров.
может срабатывать через указанное время.
Пример перезагрузки: shurdown -r now
reboot Перезагрузка системы.
Производная от shutdown.
halt Остановка системы.
Производная от shutdown.
poweroff Сигнал на выключение машины.

Работа с файлами и папками.

ls Список файлов в текущей директории. Команда выполнении команды dir выполняется команда ls.
cd [директория] Сменить директорию.
cp [что копировать][куда копировать] Копировать файлы.
mv [что перемещать][куда перемещать] Переместить или переименовать файл.
touch [опции] [имя_файла] Создать файл или изменить данные о нем (напр, дату создания файла или дату модификации).
см. touch —help для доп. параметровВообще, создать файл в линукс можно разными путями:
echo «test» > test.txt создаст файл test.txt в текущей директории и запишет с него слово test.
mcedit test.txt — создание и редактирование файла при помощи внутреннего редактора mc
vim test.txt — создание и редактирование файла в редакторе vim
cat > test.txt — тоже позволяет создать файл и записать туда данные построчно. Для прекращения записи в файл нажмите [Ctrl + d]
chmod [права_доступа][файл] change mode. Изменить права доступа файлов, чьим владельцем вы являетесь (если вы root, то вы можете изменить права доступа для любого файла).
Есть три способа доступа к файлу:
чтение — read (r), запись — write (w), исполнение — execute (x)
и три типа пользователей:
хозяин файла — owner (u), члены той же группы, что и хозяин файла (g) и все остальные (o).Поверить текущие права доступа можно следующим способом:
ls -l имя_файла Если файл доступен всеми способами всем пользователям, то напротив имени файла будет следующая комбинация букв: rwxrwxrwx
Первые три буквы — это права доступа для хозяина файла,
второй триплет — права доступа для его группы,
следующая тройка — права доступа для остальных.
Отсутствие права доступа показывается как «-«.;
Например: Эта команда позволит вам изменить права доступа на чтение для файла «test» для всех (all=user+group+others): chmod a+r test
Эта команда отнимет право доступа на исполнение файла у всех кроме владельца и его группы: chmod o-x testТак же есть числовой вариант прав:
Например: chmod 711 test.txt — сделает файл text.txt запускаемым для всех, но читать и писать в него сможет только его владелец.
Для получение дополнительной информации наберите chmod —help или man chmod или почитайте любое руководство по Linux.

Вы можете установить права доступа по умолчанию для создаваемых вами файлов с помощью команды umask (наберите man umask).

chown [новый_хозяин][файлы]
chgrp [новая_группа][файлы]
Изменить хозяина и группу для файла или файлов
Вы можете использовать эти две команды, после того как сделали копию файла для кого- либо.
но гораздо удобнее менять сразу и владельца и группу файлов одной лишь командой chown
Например: chown -R apache:web /var/log/www/
сменит владельца папки /var/log/www/ и всех подпапок и файлов (рекурсивно) на юзера «apache» и группу «web»
ln -s [на что сделать ссылку][имя ссылки] Создать символическую ссылку.
mkdir [директория] Создать новую директорию.
rm [файлы] Удалить файлы. -r рекурсивно. -f форсировать (не взирая на препятствия).
rm -r [файлы и/или директории] (рекурсивное удаление) Удалить файлы, директории и их поддиректории. ОСТОРОЖНЕЙ с этой командой если у вас права суперпользователя! В Linux нет системы полного восстановления удаленных файлов (если вы не пользуетесь специальными программами для помещения удаленных файлов в специальный каталог — а ля корзинка в windows ).
Для удаления директории вместе со всеми вложенными папками и файлами применяется команда rm -rf ИМЯ_ПАПКИ
rmdir [директория] Удалить пустую директорию.
more [имя_файла] Просмотр содержимого текстового файла по одной странице.
less [имя_файла] Просмотр содержимого текстового файла с возможностью вернуться к предыдущим страницам. Нажмите q когда захотите выйти из программы. «Less» — аналог команды DOS «more», хотя очень часто «less» бывает более удобной чем «more».
Поиск по файлу — /ФРАЗА.
vim [имя файла] или vi [имя файла]
Если установлен mc, то
mcedit [имя_файла]
Редактировать текстовый файл. При помощи редактора vi или vim или внутреннего редактора mc
Подробнее см. Как редактировать файл в linux.
lynx [html файл или ссылка] Просмотр файла html или WWW ссылки с помощью текстового браузера Lynx.
В последнее время активнее используется links2
tar -zcvf [имя будущего архива].tar.gz [файлы] Заспаковать в архив tgz или tar.gz файлы.
tar -zxvf [файлы] Распаковать архив tgz или tar.gz.
man страницы документации. (от manual)
подробнее см. man man
apropos Поиск слова по всем man страницам.
Пример: apropos shell
grep Поиск фрагмента текста в файлах, удовлетворяющего набранной маске. Маска определяется с помощью стандартной системы обозначений называемой «регулярные выражения».
Пример: grep -irs ‘eth0’ /etc/
Выведет имена файлов и строки в которых встречается сочетание символов «eth0».
tr Утилита обработки текста. Изменение букв в потоке.
Пример: echo ‘МАМА мыла РАМУ’|tr М П
ПАПА мыла РАПУ
Если мы хотим заменить слово, то нам понадобится редактор sed
sed Потоковый текстовый редактор. Изменение слов в потоке. И очень многое другое.
Пример: echo ‘МАМА мыла РАМУ’|sed s/МА/ПА/g
ПАПА мыла РАМУ
awk
gawk
echo ‘МАМА мыла РАМУ’|awk ‘{print $1, $3}’
МАМА РАМУ
find / -name «имя_файла» Найти файл с именем «имя файла». Поиск начинается с директории /
имя файла может содержать маску для поиска.
pine,
mutt
Хорошая текстово-ориентированная программа для чтения электронной почты, ньюсов и фидошных эх.
mc Запустить программу управления файлами «Midnight Commander» (Выглядит как «Norton Commander», но по своим возможностям ближе к far или dn).
telnet [имя_пользователя@сервер]
ssh [имя_пользователя@сервер]
Связаться по telnet с другой машиной. Используйте имя машины или ее IP адрес. Войдите с помощью вашего пароля (вы должны быть зарегистрированы на этой удаленной машине). Это позволит вам войти на другую машину и работать на ней, как будто вы сидите за ее клавиатурой (почти никаких отличий).
В настоящее время используется «шифрованый telnet» ssh.
ftp [пароль:имя_пользователя@сервер] Связаться по ftp с удаленным компьютером. Этот тип связи хорош для копирования файлов с/на удаленную машину.
ftp пароль не шифруется и передается в открытом виде. Если информация ценная — лучше воспользоваться sftp.
minicom Minicom — программа эмулятор терминала, настройка модема, работа с COM портом и LPT портом. Применяется для того-же что и Hiper terminal в винде.
./Имя_запускаемого_файла Запустить исполняемый файл в текущей директории.
startx Запустить X-windows сервер и установленный по умолчанию оконный менеджер. Похоже на то как вы набирали «win» под DOS с Win3.1 (если вы набирали =))))
xterm (в X терминале) Запустить простой терминал в графической оболочке X-windows. Для того чтобы выйти из него наберите «exit».
gimp (в X терминале) Очень мощный графический редактор (по возможностям близок к Photoshop). Требует некоторого времени для обучения — очень хорош для художников. Для доступа к локальному меню воспользуйтесь правой кнопкой мыши.
firefox,
opera,
links,
links2,
и т.п.
(в X терминале) Запустить браузер (требуется отдельная установка этого продукта).

Команды управления и работы с переменными окружения:

alias ll=’ls -laG’ Создать alias — псевдоним для того чтобы одной командой можно было запустить более сложную комбинацию команд. Поместите создание alias в файл /etc/bashrc если вы хотите, чтобы эти псевдонимы были доступны всем пользователям вашей системы.
adduser [имя_пользователя]
useradd [имя_пользователя]
Зарегистрировать нового пользователя (у вас должны быть права root).
(Раньше это была одна и та же программа. Теперь — они разные, но суть та же)
Пример:
adduser pupkin
Не забудьте следующим делом настроить пароль пользователя. Обычно директория пользователя находится в каталоге /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ.
passwd Изменить пароль. (Задать пароль) Если вы суперпользователь (root), то вы можете изменить пароль любого зарегистрированного пользователя набрав команду:
passwd имя_пользователя.
userdel [имя_пользователя] Удалить пользователя из системы (вы должны зайти как root). С пользовательским каталогом и не прочитанными письмами удаленного пользователя нужно разбираться отдельно.
groupadd [имя_группы] Создать новую группу пользователей в вашей системе.
(см. файл /etc/group).
su
или
su [имя_пользователя]
Без параметров команда su спросит у вас пароль пользователя root и даст права рута, но основные переменные окружения и home останутся вашими, так как шелл перезапущен не будет..
Если задано имя пользователя, то спросит пароль этого пользователя и предоставит действовать от его имени в системе. Но опять-таки заменит лишь несколько ваших переменных окружения.Если вы даете команду su [имя_пользователя] будучи с правами рута, то вас ни о каких паролях никто спрашивать не будет.
su —
или
su [имя_пользователя] —
команда su с параметром «-» спросит пароль пользователя root и даст права рута, домашняя директория сменится на /root/, все переменные окружения возьмутся от пользователя root. Так как будет перезапущен shell
То же самое касается и случая, когда введено имя другого пользователя.
sudo [команда] Даёт возможность запустить команду с правами рута.
Если установлена утилита sudo и настроен конфиг /etc/sudoers
Подробнее: man sudo, man sudoers, man visudo
bg [номер_задания] Сделать процесс фоновым. Т.е. отправить процесс в background. То же самое можно сделать комбинацией клавиш [Ctrl+z]
Пример: Запускаем top и нажимаем Ctrl+z
jobs Вывести список заданий. Видим, наше задание из предыдущего пункта под номером 1
fg [номер_задания] Вернуть задание [номер_задания] из бэкграунда.
Пример: fg 1 вернёт в foreground наше задание 1 из предыдущих двух примеров. И мы увидим наш top.
Заметка: команда в бэкграунде не прекращает своей работы.
kill [PID] Послать управляющий сигнал процессу. kill -9 «Убить» процесс. Для начала определите PID «убиваемого» процесса при помощи ps.
см. man kill на список передаваемых процессу сигналов.
killall [имя_программы] «Убить» все процессы по имени программы.
xkill (в терминале X window) «Убить» процесс, на окно которого укажите курсором.
env Вывести текущие значения переменных окружения.
set Вывести текущие значения всех переменных окружения и функций.
[имя_переменной]=[значение] Установить значение переменной
export [имя_переменной] Предоставить переменную другим приложениям.
Пример полный вариант: MYVAR=123; export MYVAR
После этого можно посмотреть значение переменной: echo $MYVAR
Пример укороченый вариант: export MYVAR=123
Используются и первый и второй варианты.
подробнее смотри man bash или русский перевод bash tutorial.

Команды работы с принтером

lpr Распечатать текстовый файл. cat test.txt | lpr
lpc (как root) Проверить очередь принтера.
lpq Вывести список очереди заданий на печать.
lprm [Номер Задания] Удалить задание из очереди на печать.

Как запустить файл в линукс?

В Линукс нет такого понятия, как расширение .exe которое должно запускаться автоматически.
Зато в linux есть такое понятие как «запускаемый файл»
запустить можно любой, даже текстовый файл. достаточно дать ему права на запуск (chmod +x имя_файла), или запустить через интерпретатор (bash, sh, ksh, csh,):
пример 1. у нас есть текстовый файл со следующим содержанием:

#!/bin/sh
echo "hello world!"

мы даём команду chmod +x имя_файла (расширение не важно. это может быть имя_файла.txt или имя_файла.exe.txt.zip.rar.doc или вощще просто имя_файла и всё. без расширений.)
после этого мы можем его запустить ./имя_файла
или
/полный_путь/от/корня/до/имя_файла и нажать энтер.

или

пример второй:
тот же наш файл из двух строк можно запустить дав команду:
sh имя_файла enter
или
bash имя_файла
То есть мы должны дать команду запустить инрерпретатор, и в качестве параметра — задать имя нашего файла.

Подробные примеры использования команд linux вы можете посмотреть в разделе shell скриптов.
Там же вы найдете много полезной информации по линукс командам в документации к bash.