net4me.net

Linux технологии, сети и электроника

Архив. Старые статьи.
Комбинации клавиш и Команды Linux
дата статьи где-то 2004-2005гг.

Archive

Комбинации клавиш и Команды 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 просто набрав имя файла.

Меня спрашивают, как получить сразу все команды OS linux на данной машине?
Посмотреть список всех командных файлов в системе, которые вам доступны, можно вот таким образом:
for X in $(echo $PATH |sed 's/:/\ /g'); do echo "=========== $X =========="; find $X -type f | sort; wait; done | less
Или вручную просмотреть каждую директорию из переменной $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] Просмотр текста выведенного на консольный терминал и ушедшего за приделы экрана. Перемещение в вверх.
[убили в 2020]
[Shift][PgDown] То же что и выше. Перемещение в вниз.
[убили в 2020]
[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) чтобы отключить совсем: stty -ixon в bashrc
[Ctrl+q] Возобновление вывода на терминал. Попробуйте эту комбинацию клавиш, если ваш терминал непонятно почему перестал отвечать на ваши запросы.
[Ctrl+z] Приостановить (Замереть, Suspend) текущий процесс. (см еще: jobs, bg, fg)
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
w
Определить кто из пользователей работает на машине.
last Определение всех пользователей, логинившихся в вашей системе.
lastlog Кто и когда из пользователей системы заходил в последний раз.
finger [имя_пользователя] Системная информация о зарегистрированном пользователе. Попробуйте: finger root
В настоящее время практически нигде не используется.
uptime Количество времени прошедшего с последней перезагрузки.
ps
ps a
ps aux
Список текущих процессов.
Используйте ps --help для справки по параметрам команды.
pstree Дерево текущих процессов (покажет родителя процесса)
pstree -p выведет дерево с PID каждого процесса
Используйте pstree --helpдля справки по параметрам команды.
top
htop
Интерактивный список текущих процессов отсортированных по использованию 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
env
Вывести текущие значения всех переменных окружения и функций.
О работе с переменными окружения см. ниже.
echo $PATH Вывести значение переменной окружения "PATH" Команда echo может использоваться для вывода значений других переменных окружения. Воспользуйтесь командой set, для получения полного списка.

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

netconf (как root) Программа настройки сети, использующая для интерактивной работы с пользованием, текстовое меню. (Во многих современных дистрибутивах уже не используется)
ping [имя_машины] "Проверка на вшивость". Есть или нет контакта с другой машиной (в качестве параметре команде можно передавать сетевое имя машины или IP адрес), нажмите <Ctrl>-C когда вся требуемая информация будет получена.
traceroute [имя_машины]
tracepath [имя_машины]
Получить путь до указаной машины, узнать, сколько и каких серверов между вами и указаным хостом.
route -n Вывести таблицу маршрутизации (the routing table).
lsof -i
netstat -antp
ss -antp
Вывести информацию о текущих сетевых соединениях. [ss - о сокетах]
ifconfig Вывести информацию о текущих сетевых интерфейсах (ethernet, ppp, и т.д.) Ваша первая ethernet плата плата будет показана как eth0, вторая как eth1, первый ppp модем как ppp0 и так далее. "lo" - расшифровывается как "loopback only" сетевой интерфейс, который должен быть постоянно активирован. Используйте соответствующие опции (смотрите результат выполнения ifconfig --help) для настройки сетевых интерфейсов.
iwconfig Вывести информацию о текущих сетевых интерфейсах wifi
ip
ip a
Современная утилита вывода информации, конфигурирования, администрирования сети в linux.
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 рекурсивное скачивание. (будте осторожны с этим параметром, есть риск выкачать всё).
curl команда для отправки запросов по различным протоколам из консоли linux со множеством дополнительных ключей
работает с протоколами http, ftp, https и т.д., поддерживает работу через прокси.

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

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
egrep
fgrep
zgrep
Поиск фрагмента текста в файлах, удовлетворяющего набранной маске. Маска определяется с помощью стандартной системы обозначений называемой "регулярные выражения".
Пример: grep -irs 'eth0' /etc/
Выведет имена файлов и строки в которых встречается сочетание символов "eth0".
tr Утилита обработки текста. Изменение букв в потоке.
Пример: echo 'МАМА мыла РАМУ'|tr М П
ПАПА мыла РАПУ
Если мы хотим заменить слово, то нам понадобится редактор sed
sed Потоковый текстовый редактор. Изменение слов в потоке. И очень многое другое.
Пример: echo 'МАМА мыла РАМУ'|sed s/МА/ПА/g
ПАПА мыла РАМУ
awk
gawk
echo 'МАМА мыла РАМУ'|awk '{print $1, $3}'
МАМА РАМУ
cut Вырезать указанную часть из потока и вывести её. Пример: echo 'МАМА мыла РАМУ долго'|cut -d\ -f2-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 -laH' Создать 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. То же самое можно сделать поставив & после команды
Пример: sleep 20000 & или sleep 20000 + Enter + Ctrl+z + bg 1
jobs Вывести список заданий. Видим, наше задание из предыдущего пункта под номером 1
fg [номер_задания] Вернуть задание [номер_задания] из бэкграунда.
Пример: fg 1 вернёт в foreground наше задание 1 из предыдущих двух примеров. И мы увидим наш top.
Заметка: команда в бэкграунде не прекращает своей работы.
kill %[номер_задания] Убить задание [номер_задания] из списка job.
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

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

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

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

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

#!/bin/sh
echo "hello world!"
мы даём команду chmod u+x имя_файла (расширение не важно. это может быть имя_файла.txt или имя_файла.exe.txt.zip.rar.doc или вощще просто имя_файла и всё. без расширений. как и сделано с "обычными" командами)
после этого мы можем его запустить ./имя_файла
или
/полный_путь/от/корня/до/имя_файла и нажать энтер.
или
Пример второй:
тот же наш файл из двух строк можно запустить дав команду:
sh имя_файла enter
или
bash имя_файла
То есть запустить интерпретатор, и в качестве параметра - задать имя нашего файла.