Как прервать застрявшую команду на сервере ubuntu? Ubuntu server команды
Как прервать застрявшую команду на сервере ubuntu? Ubuntu Linux
Я знаю, что есть ctrl + c , но иногда это не работает. На рабочем столе Ubuntu я могу просто закрыть окно терминала и открыть новый, когда это произойдет, но как это будет разрешено с помощью CLI на сервере Ubuntu (без перезапуска окна)?
CTRL + C отправит SIGINT в приложение. Приложение может настроить обработчик для этого сигнала или может игнорировать сигнал. По умолчанию нет обработчика, и SIGINT убьет приложение.
Вы можете использовать CTRL + \, который отправит SIGQUIT . Это также сгенерирует дамп ядра, если основной предел не равен нулю.
Вы можете приостановить процесс и вернуться в оболочку с помощью CTRL + Z , это остановит выполнение процесса и вернется в приглашение оболочки. Процесс будет в памяти, и он будет доступен как работа в текущей оболочке. Затем вы можете использовать kill -SIGNAL %% или kill -SIGNAL %<job_ID> чтобы отправить сигнал на это задание. Например, чтобы убить последнюю работу, используйте kill -9 %%
Если ни один из них не работает, вы всегда можете отправить SIGTERM , а затем, в крайнем случае, SIGKILL который завершит любой процесс. Этот сигнал, как и любые другие сигналы, должен быть отправлен как тот же пользователь, что и процесс, который вы пытаетесь остановить или как root. Чтобы отправить SIGKILL для обработки, сначала найдите процесс с помощью ps aux или ps -edf , затем запустите kill -SIGKILL <process_ID> , где <process_ID> – столбец PID в ps .
Сигналы не могут быть доставлены, если процесс находится в режиме бесперебойного вызова. Бесперебойные вызовы – это функции ядра, которые не могут быть остановлены и обычно происходят из-за плохого драйвера (например, драйвер, который не является реентерабельным ). Процесс, который находится в режиме бесперебойного сна, не может быть остановлен до тех пор, пока вызов не будет завершен или сервер не будет перезагружен.
Если процесс становится зомбиком , он не будет использовать какие-либо ресурсы, только занимая пространство в таблице процессов. Процесс зомби не может получать сигналы.
Список сигналов для текущей архитектуры можно найти с помощью kill -l
См. Страницы man kill , ps и bash . Чтобы увидеть страницу руководства, используйте что-то вроде: man ps
Если у вас есть полный доступ к консоли, вы можете сделать Alt – F1..12 и получить новую консоль.
Оттуда вы можете сделать список процессов следующим образом:
ps aux | grep <process-name>Затем выполните kill на идентификаторе процесса:
kill -9 <pid>Если у вас нет полного доступа к консоли, просто откройте другое окно терминала (возможно, через PuTTY или аналогичное) и выполните описанные выше шаги по перечислению и уничтожению процесса.
Ctrl C отправляет SIGINT вашему запущенному процессу. Если вы не хотите открывать другую консоль, вы можете отправить SIGQUIT с помощью Ctrl \. Это касается большинства повседневных приложений, которые SIGINT не делает.
Я лично хотел, чтобы отправить SIGKILL с помощью ярлыка, но я не знаю, как это сделать.
Я считаю pgrep и pkill проще в использовании, чем kill с явным идентификатором процесса.
Кроме того, вместо того, чтобы начинать с сигнала 9 (SIGKILL), подумайте, начиная с SIGTERM по умолчанию (15). Это даст процессу возможность прекратить изящество (если возможно). pkill -15 thing pkill thing должны быть эквивалентными.
Вот как это будет работать. Предположим, что ntpd висит.
Какие процессы? (Вы можете перейти к pkill, если считаете, что у вас не будет ложных срабатываний).
$ pgrep -fl ntp 1034 /usr/sbin/ntpd 1037 /usr/sbin/ntpdУбейте процессы:
$ pkill ntpdИспользуйте pgrep раз, чтобы узнать, успешно ли он.
Если нет, со временем перейдете к pkill -9 .
Вы должны переключиться на новый терминал, найти PID застрявшего процесса (используя ps ), а затем использовать kill чтобы убить процесс. Я бы сначала использовал kill (PID) . Если это не сработает, я бы использовал kill -9 (PID) . Если это не остановит процесс, необходимо перезагрузить машину.
ubuntu.fliplinux.com
Команды в Linux | Pro-Gram.ru
Вот некоорый список полезных команд
ls – список файлов и каталоговls -al – форматированный список со скрытыми каталогами и файламиcd dir – сменить директорию на dircd – сменить на домашний каталогpwd – показать текущий каталогmkdir dir – создать каталог dirrm file – удалить filerm -r dir – удалить каталог dirrm -f file – удалить форсированно filerm -rf dir – удалить форсированно каталог dircp file1 file2 – скопировать file1 в file2cp -r dir1 dir2 – скопировать dir1 в dir2; создаст каталог dir2, если он не существуетmv file1 file2 – переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2ln -s file link – создать символическую ссылку link к файлу filetouch file – создать filecat > file – направить стандартный ввод в filemore file – вывести содержимое filehead file – вывести первые 10 строк filetail file – вывести последние 10 строк filetail -f file – вывести содержимое file по мере роста, начинает с последних 10 строк
Управление процессами
ps – вывести ваши текущие активные процессыtop – показать все запущенные процессыkill pid – убить процесс с id pidkillall proc – убить все процессы с именем procbg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фонеfg – выносит на передний план последние задачиfg n – вынести задачу n на передний планПрава доступа на файлыchmod octal file – сменить права file на octal, раздельно для пользователя, группы и для всех добавлением:4 – чтение (r)2 – запись (w)1 – исполнение (x)
Примеры:chmod 777 – чтение, запись, исполнение для всехchmod 755 – rwx для владельца, rx для группы и остальных.Дополнительные опции: man chmod.
SSH
ssh user@host – подключится к host как userssh -p port user@host – подключится к host на порт port как userssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам
Поиск
grep pattern files – искать pattern в filesgrep -r pattern dir – искать рекурсивно pattern в dircommand | grep pattern – искать pattern в выводе commandlocate file – найти все файлы с именем file
Системная информация
date – вывести текущую дату и времяcal – вывести календарь на текущий месяцuptime – показать текущий аптаймw – показать пользователей онлайнwhoami – имя, под которым вы залогиненыfinger user – показать информацию о useruname -a – показать информацию о ядреcat /proc/cpuinfo – информация ЦПУcat /proc/meminfo – информация о памятиman command – показать мануал для commanddf – показать инф. о использовании дисковdu – вывести “вес” текущего каталогаfree – использование памяти и swapwhereis app – возможное расположение программы appwhich app – какая app будет запущена по умолчанию
Архивация
tar cf file.tar files – создать tar-архив с именем file.tar содержащий filestar xf file.tar – распаковать file.tartar czf file.tar.gz files – создать архив tar с сжатием Gziptar xzf file.tar.gz – распаковать tar с Gziptar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2tar xjf file.tar.bz2 – распаковать tar с Bzip2gzip file – сжать file и переименовать в file.gzgzip -d file.gz – разжать file.gz в file
Сеть
ping host – пропинговать host и вывести результатwhois domain – получить информацию whois для domaindig domain – получить DNS информацию domaindig -x host – реверсивно искать hostwget file – скачать filewget -c file – продолжить остановленную закачку
Установка пакетов>
Установка из исходников:./configuremakemake installdpkg -i pkg.deb – установить пакет (Debian)rpm -Uvh pkg.rpm – установить пакет (RPM)
Клавиатурные сочетания
Ctrl+C – завершить текущую командуCtrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фонеCtrl+D – разлогиниться, тоже самое, что и exitCtrl+W – удалить одно слово в текущей строкеCtrl+U – удалить строку!! — повторить последнюю командуexit – разлогиниться
Общие команды
arch — вывод архитектуры компьютераДанная команда поможет узнать тип аппаратной платформы, например: i386, i586, i686 и др.
clear — очистка экрана
date — используется для вывода текущей даты. Эта команда может применяться также для установки даты, если запущена от имени администратора.Команда date может вывести дату в указанном вами формате. Для изучения форматов даты введите команду:
man dateecho — выводит текстовую строку, указанную в качестве аргумента, например:
echo "Hello world!"Hello world!
exit — выход из системы
man — вывод справки
passwd — с этой командой я думаю, знаком каждый. Она обеспечивает изменение пароля пользователя, который ее запустил. Суперпользователь root имеет право изменить пароль любого пользователя:
passwd имя_пользователяstartx — запуск графического интерфейса Х.Оrx ( никаких параметров не требуется)
uptime — выводит статистическую информацию о работе системы: сколько времени прошло с момента последней перезагрузки (собственно, это и есть время «uptime»), сколько пользователей в данный момент подключено к системе и среднюю загрузку системы за последние 1, 5 и 15 минут.
users — выводит информацию о пользователях, подключенных к системе на данный момент.
w, who и whoami — эти три родственные команды выводят следующую информацию:— команда w — список пользователей, подключенных к системе: виртуальный терминал, с которого работает пользователь; время входа в систему для каждого пользователя, статистику использования системы (IDLE — время простоя, JCPU — использование процессора), выполняемые каждым пользователем задачи;— команда who — список пользователей, подключенных к системе; время и дату входа каждого пользователя;— команда whoami — имя пользования, который ввел команду.
xf86config — настройка графической подсистемыТекстовый конфигуратор системы X.Org (она же X Window). Использовать его нужно, только если в вашем дистрибутиве нет более удобных графических или псевдографических конфигураторов.
Команды для работы с текстом
diff — сравнение файлов
grep — текстовый фильтрПредположим, что у нас есть файл протокола /var/log/messages, и вы хотите вывести все сообщения, связанные с демоном pppd. Понятно, что вручную выделить все нужные сообщения будет довольно трудно. Но с помощью grep можно автоматизировать данную задачу:
Команда cat /var/log/messages передаст содержимое файла /var/log/messages на стандартный ввод команды grep, которая, в свою очередь, выделит строки, содержащие строку ррр.СОВЕТВообще-то, просматривать журналы удобнее с помощью команды tac, которая выводит строки файла в обратном порядке — ведь сообщения дописываются в конец журнала, следовательно, если выводить строки в обратном порядке, то сначала получим самые новые сообщения, а потом уже все остальные:
tac /var/log/messages | grep pppmore и less — постраничный выводБольшой текстовый файл намного удобнее просматривать с помощью команд less или more. Программа less удобнее, чем more, если она есть в вашей системе:
tac /var/log/messages | grep ppp | lesshead и tail — вывод начала и хвоста файлаКоманда head выводит первые десять строк файла, a tail — последние десять. Количество строк может регулироваться с помощью параметра -n.Пример использования:
head -n 10 /var/log/messages tail -n 15 /var/log/messagesКоманды для работы с Интернетом
ftp — стандартный FTP-клиент
lynx — текстовый браузерEсли графический режим недоступен (например, на сервере), а по сети побродить хочется, командой lynx можно вызвать текстовый браузер lynx. В некоторых дистрибутивах вместо lynx используются браузеры links и elinks, но суть остается та же — просмотр страниц Интернета в текстовом режиме.
mail — чтение почты и отправка сообщений
Команды системного администратора
free и df — информация о системных ресурсахКоманда free выводит информацию об использовании оперативной и виртуальной памяти, a df — об использовании дискового пространства.
md5sum — вычисление контрольного кода MD5Для проверки подлинности некоторых файлов, передаваемых через Интернет, используется алгоритм MD5 (точнее, контрольный код, вычисленный с использованием этого алгоритма). Разработчик программы выкладывает в Интернете пакет с этой программой и на своем сайте публикует контрольный код. Вы скачиваете пакет и вычисляете его контрольный код. Если коды отличаются, то файл при передаче был поврежден (или это другая версия пакета, которая, возможно, была подложена злоумышленником с целью ввода вражеского кода в вашу систему).Использовать программу нужно так:
ssh и telnet — удаленный вход в систему
lspci | grep VGA — показывает какая видеокарта установлена у вас в системе (в помощь таким программам какdmesg
blkid -o value — команда для того бы узнать UUID диска
vbetool — управление подсветкой и состоянием монитораНапример для того что бы потушить монитор:
vbetool dpms offЧто бы отключить в системе поддержку ipv6 следует внести в файл /etc/modprobe.d/blacklist.conf следующие строки и перезагрузить машину:alias net-pf-10 offalias ipv6 offdmidecode -q -общая информацию о установленнгом железе
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Команды в Linux
Пожалуйста оцените эту статьюpro-gram.ru
Настройка сервера Ubuntu
Введение
После установки нового сервера Ubuntu необходимо предпринять несколько шагов по его базовой настройке. Это повысит безопасность и удобство в использовании Вашего сервера и заложит прочную основу для последующих действий.
Логин с рутовой учетной записью
Для того, чтобы осуществить вход на Ваш сервер, Вам необходимо знать публичный IP-адрес сервера и пароль учетной записи пользователя входящего в группу root. Для этого можно воспользоваться программой putty для Windows систем или для Linux систем набрать:
ssh имя_пользователя@ip-адрес-сервераЗавершите процесс входа, приняв предупреждение о подлинности хоста (host authenticity), если оно возникнет, а затем идентифицируя себя как пользователя (с помощью пароля или секретного ключа).
Об учетной записи root
Пользователь root является администратором в среде Linux и имеет очень широкий набор привилегий (прав). Из-за повышенных привилегий root-аккаунта не рекомендуется пользоваться этой учетной записью на регулярной основе. Причиной этого является возможность случайно внести в систему деструктивные изменения.
Работать под правами постоянно, крайне не рекомендуется. Далее я расскажу как получить права root для выполнения необходимой команды.
Привилегии пользователя "root"
Во время установки сервера Ubuntu 15.04 Вы создали пользователя, который имеет права для выполнения команд с повышением прав. Учетная запись root по умолчанию отключена и включение её не рекомендуется.
Так как же выполнить команду с правами "супер-пользователя"? Это очень просто, достаточно перед командой набрать ключевое слово sudo и далее команду, которую Вы хотите выполнить. К примеру Вам нужно перезапустить Apache сервер:
sudo service apache2 restartСоздание нового пользователя в Ubuntu
Если у Вас появилась необходимость создать ещё одного пользователя, и предоставить ему права для выполнения команд с правами "супер-пользователя", это можно сделать следующей командой:
sudo adduser имя-пользователяВам зададут несколько вопросов, первым из которых будет пароль для новой учетной записи.
Задайте надежный пароль и, по желанию, заполните дополнительную информацию. Вводить дополнительную информацию не обязательно, Вы можете просто нажать "ENTER" в любом поле, которое хотите пропустить.
Чтобы добавить привилегии нашей новой учетной записи, необходимо добавить ее в группу "sudo". По умолчанию, в Ubuntu 15.04 пользователи, входящие в группу "sudo", могут использовать команду sudo.
Выполните следующую команду для добавления Вашего нового пользователя в группу "sudo"
sudo gpasswd -a имя-пользователя sudoОбратите внимание, команды необязательно набирать полностью, достаточно набрать несколько первых букв и нажать клавишу TAB и система сама допишет команду, при условии что такая команда одна, если таких команд несколько, то для их просмотра необходимо дважды нажать TAB и система покажет все команды начинающиеся на эти буквы.
Теперь Ваш пользователь сможет выполнять команды с привилегиями супер-пользователя!
Добавление авторизации по публичному ключу (Public Key Authentication)
Следующий шаг в усилении безопасности Вашего сервера - это настройка авторизации по публичному ключу для Вашего нового пользователя. Данная настройка повысит безопасность Вашего сервера, требуя секретный SSH ключ для входа.
Создание пары ключей
Если у Вас ещё нет пары SSH-ключей, которая состоит из публичного (открытого) и секретного (закрытого) ключей, Вам необходимо её создать. Если у Вас уже есть ключ, который Вы хотите использовать, перейдите к подразделу "Копирование публичного ключа".
Чтобы создать новую пару ключей, выполните следующую команду в терминале на Вашей локальной машине (т.е. на Вашем компьютере):
ssh-keygenЕсли Ваш локальный пользователь называется "localuser", Вы увидите вывод следующего вида:
Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):Нажмите "ENTER", чтобы согласиться с адресом и именем файла (или введите другой адрес/имя файла). Далее Вам будет предложено ввести кодовую фразу для защиты ключа. Вы можете ввести кодовую фразу или оставить ее пустой.
Обратите внимание:Если Вы оставите кодовую фразу пустой, Вы сможете использовать приватный ключ для авторизации без ввода кодовой фразы. Если Вы зададите кодовую фразу, Вам потребуется и приватный ключ и кодовая фраза для входа. Добавление кодовой фразы к ключам является более безопасным, но оба метода имеют свои области применения и являются более безопасными, чем базовая авторизация паролем.
В результате этого, в поддиректории .ssh домашней директории пользователя localuser будет создан секретный ключ id_rsa и публичный ключ id_rsa.pub. Не передавайте секретный ключ никому, кто не должен иметь иметь доступ к Вашим серверам!
Копирование публичного ключа
После создания пары SSH-ключей, Вам необходимо скопировать публичный ключ на Ваш новый сервер.
Если Вы создали пару SSH-ключей, как описано в предыдущем пункте, выполните следующую команду в терминале на Вашей локальной машине для печати публичного ключа (id_rsa.pub):
cat ~/.ssh/id_rsa.pubВ результате выполнения данной команды на экран будет выведен Ваш публичный SSH-ключ, выглядящий примерно так:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]Выделите публичный ключ и скопируйте его в буфер обмена.
Добавление публичного ключа к новому удаленному пользователю
Чтобы сделать возможным использование SSH-ключа для авторизации под учетной записью нового удаленного пользователя (remote user), Вам необходимо добавить публичный ключ в специальный файл в домашней директории этого пользователя.
На сервере,осуществив вход с учетной записью пользователя, выполните следующие команды:
nano .ssh/authorized_keysДалее добавьте Ваш публичный ключ (который должен быть в буфере обмена) путем вставки в текстовый редактор.
Нажмите CTRL-X для закрытия файла, затем Y для сохранения внесенных изменений, затем ENTER для подтверждения имени файла.
Теперь Вы можете заходить на сервер по SSH с учетной записью Вашего нового пользователя, используя секретный ключ для авторизации.
Настройка SSH
Теперь мы можем ещё больше обезопасить наш сервер путем изменения конфигурации его SSH (программа для удаленного подключения).
Начните с открытия конфигурационного файла в текстовом редакторе под пользователем root:
sudo nano /etc/ssh/sshd_configСмена SSH-порта (опционально)
Первая настройка, которую Вы вероятно захотите сменить, это порт, на котором работает SSH. Найдите строчку, которая выглядит похожим образом:
Port 22Если мы изменим этот номер на что-нибудь между 1025 и 65536, то SSH на нашем сервере будет ждать соединений на другом порту. Иногда это полезно, поскольку злоумышленники иногда пытаются попасть на сервер путем атаки через SSH. Если вы измените порт SSH, им придется сделать лишний шаг для его определения.
Если Вы изменяете номер порта, Вам придется помнить, что SSH на Вашем сервере работает на новом порту. В этом руководстве мы изменим порт на 4444 для демонстрации. Это означает, что для подключения нам необходимо будет указать SSH клиенту использовать новый порт вместо порта, используемого по умолчанию. Как это сделать, мы рассмотрим чуть позже. Измените порт на значение по Вашему выбору:
Port 4444Запрещение входа под root
Затем нам необходимо найти следующую строчку:
PermitRootLogin yesЭто настройка позволяет отключить возможность входа на сервер с помощью учетной записи root-пользователя через SSH. Это повышает безопасность сервера, поскольку теперь мы можем осуществлять вход на наш сервер с помощью учетной записи обычного пользователя и повышать полномочия, когда это требуется.
Для отключения возможности входа на сервер с помощью учетной записи root измените строчку следующим образом (замените "yes" на "no"):
PermitRootLogin noОтключение возможности удаленного доступа с помощью root-пользователя настоятельно рекомендуется для всех серверов!
После окончания внесения изменений сохраните и закройте файл так же, как мы делали ранее (CTRL-X, затем Y, затем ENTER).
Перезапуск SSH
После внесения изменений необходимо перезапустить сервис SSH, чтобы он начал использовать новую конфигурацию.
Выполните следующую команду для перезапуска SSH:
sudo service ssh restartТеперь, перед тем как выйти с сервера, нам необходимо протестировать новую конфигурацию. Мы ведь не хотим выйти, пока не проверим, что новое соединение может быть успешно установлено.
Откройте новое окно терминала. В новом окне необходимо открыть новое соединение с нашим сервером.
Если Вы изменили номер порта, на котором работает SSH, Вам необходимо сообщить об этом SSH-клиенту. Сделать это можно при помощи синтаксиса -p 4444, где "4444" - заданный Вами номер порта.
Для сервера, который мы настраивали выше, будем использовать следующую команду (замените параметры Вашими, где это необходимо):
ssh -p 4444 имя-пользователя@IP-адресОбратите внимание: Если Вы используете PuTTY для подключения к Вашим серверам, не забудьте изменить номер порта, чтобы он соответствовал текущей конфигурации сервера.
Вас попросят ввести пароль для нового пользователя, который вы задали. После этого, вы осуществите вход на сервер с помощью учетной записью Вашего нового пользователя.
Помните, если Вам необходимо выполнить команду с привилегиями root-пользователя, введите перед ней sudo следующим образом:
sudo command_to_runЕсли все нормально, можно завершить Ваши сессии следующей командой:
exitvkalinin.ru
Ubuntu server первые шаги | Man вики
ОС Ubuntu Server LTS является серверным вариантом ОС Ubuntu (не имеет графического интерфейса). LTS означает, что дистрибутив считается стабильным и с удлиненной поддержкой от производителя. При этом система очень дружественная и качественно русифицированная. Идеология системы заключается в том, чтобы сократить число команд до минимума, в большинстве случаев одной командой ПО скачивается, устанавливается и запускается в работу, что очень удобно для начинающих пользователей. Благодаря отсутствию графического интерфейса по умолчанию, скорость загрузки системы на типовом компьютере составляет всего несколько секунд (10-20 сек), что немаловажно при разработке и отладке новых решений.
Настройка различных решений на базе этой системы по инструкции по сути сводятся к копированию и вставке текста с минимальными правками под свои параметры, а то и один в один. Таким образом скорость настройки типового и хорошо задокументированного решения многократно возрастает в сравнении с графическими методами настройки. Кроме всего прочего настройка системы из командной строки по сети позволяет вести удобную документацию, простым копированием команд, что сокращает время разработки документации в сравнении с методами, при которых необходимо использовать картинки (скриншоты) настройки.
Предварительные условияПравить
- Наличие в сети DHCP сервера
- Подключение к сети Интернет без авторизации для адреса выданного DHCP (нужен для автоматической подгрузки языковых пакетов в процессе установки)
- Скачать и нарезать образ диска [1]
- Выполнить установку системы, можно ознакомиться с видеороликом [2] (на 4:00 при добавлении компонентов, нужно поставить галочку на OpenSSH Server)
С чего начать системному администратору привыкшему работать с Windows и не работавшему ранее с nix системами?
- Скачать и установить бесплатную утилиту удаленного администрирования nix систем с Windows Putty [3]
- Скачать и установить утилиту WinSCP [4] для управления и обмена файлами между Windows и Linux
- Выяснить ip адрес системы, который был выдан при установке (это если есть dhcp, если его не было в процессе установки, то адрес был назначен вручную)
- Создать подключение по протоколу SSH к вашему установленному серверу указав его IP адрес, а так-же установив кодировку юникода (window => translation => UTF-8)
Далее вся настройка сводится к копированию и вставке текста из мануала в консоль putty, с правкой под свои условия.
Администратор в linux по умолчанию называется root. В ubuntu после установки по соображению безопасности учетка root не имеет пароля и соответственно не может быть использована. Настройку удобнее выполнять именно с админскими правами поэтому активируем учетную запись root установив ей пароль.
- Подключаемся в putty к консоли сервера, соглашаемя принять SSL сертификат. На экране появится запрос имени пользователя и пароля. Вводим логин и пароль который вы указали при установке. Внимание логин чувствителен к регистру (большие/маленькие буковки), а пароль не виден при вводе! Если все правильно мы попадаем в консоль сервера и на экране появится коммандная строка типа такой:
- Активируем учетную запись root коммандой
и последовательно вводим текущий пароль на вашу учетную запись, новый пароль для root и повтор нового пароля для подтверждения верности ввода. После установки пароля необходимо выйти из консоли пользователя коммандой:
exitА затем повторить вход в putty но уже под root-ом.
- Русификация консоли
- Установить часовой пояс
- Синхронизировать часы через Интернет
- Посмотреть оборудование
- Автоматическая загрузка после сбоя для ubuntu 12.04
Если по какойто причине сервер не успел загрузится и был выключен или перезагружен (свет рубанули, ресет нажали) то по умолчанию grub будет ждать нажатия кнопки enter бесконечно. Если это шлюз, да еще и на виртуалке, то лучше пусть грузится без подтверждения. На сервере часто и клавиатуры то нету...
nano /etc/grub.d/00_headerИщем (ctrl+w)
if [ "\${recordfail}" = 1 ]; thenследующая строка выглядит так
set timeout=-1 или так: set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}меняем её на
set timeout=20И выполняем
update-grubКонсольные команды [5]
ru.man.wikia.com
Администратор в Ubuntu, или Что такое sudo
В любой Linux-системе обязательно есть один привилегированный пользователь — root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет.
Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su. Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач.
Поэтому в современных дистрибутивах Linux вместо root аккаунта для администрирования используется утилита sudo.
В Ubuntu по умолчанию root аккаунт вообще отключён, т.е. вы никаким способом не сможете попасть под root, не включив его. root именно что отключён, т.е. он присутствует в системе, под него всего лишь нельзя зайти. Если вы хотите вернуть возможность использовать root, смотрите ниже пункт о включении root аккаунта.
Что такое sudo
sudo — это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку sudo.
Где используется sudo
sudo используется всегда, когда вы запускаете что-то из меню Администрирования системы. Например, при запуске Synaptic вас попросят ввести свой пароль. Synaptic - это программа управления установленным ПО, поэтому для её запуска нужны права администратора, которые вы и получаете через sudo вводя свой пароль.
Однако не все программы, требующие административных привилегий, автоматически запускаются через sudo. Обычно запускать программы с правами администратора приходится вручную.
Запуск графических программ с правами администратора
Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt+F2.
Допустим, нам необходимо запустить файловый менеджер Nautilus с правами администратора, чтобы через графический интерфейс как-то изменить содержимое системных папок. Для этого необходимо ввести в диалог запуска приложений команду
gksudo nautilusВместо gksudo можно подставить gksu, кроме того, пользователи KDE должны вместо gksudo писать kdesu. У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска
gksudo <имя_команды>Будьте предельно внимательны при работе в приложениях, запущенных с правами администратора. Вы безо всяких предупреждений со стороны системы сможете выполнить любую операцию, в частности, удалить системные файлы, сделав при этом систему неработоспособной.
Запуск программ с правами администратора в терминале
Для запуска в терминале команды с правами администратора просто наберите перед ней sudo:
sudo <команда>У вас попросят ввести ваш пароль. Будьте внимательны, пароль при вводе никак не отображается, это нормально и сделано в целях безопасности, просто вводите до конца и нажимайте Enter. После ввода пароля указанная команда исполнится от имени root.
Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале
sudo -KКроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды
sudo cat test.txt | grep text > result.txtс правами root исполнится только cat, поэтому файл result.txt может не записаться. Нужно либо писать sudo перед каждой командой, либо временно переходить под суперпользователя.
Получение прав суперпользователя для выполнения нескольких команд
Иногда возникает необходимость выполнить подряд несколько команд с правами администратора. В этом случае можно временно стать суперпользователем одной из следующих команд:
sudo -s sudo -iПосле этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данные команды по действию похожа на su, однако: - sudo -s - не меняет домашний каталог на /root, домашним остается домашний каталог пользователя вызвавшего sudo -s, что обычно очень удобно. - sudo -i - сменит так же и домашний каталог на /root.
Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl+D.
Использование традиционного root аккаунта и команды su
Разблокировка учетной записи root приводит неоправданным рискам (работая постоянно под рутом вы имеете 100500 способов «отстрелить себе ногу»), а также упрощает получение доступа к вашему компьютеру злоумышленником.
Ubuntu 11.04 и младше
Для входа под root достаточно задать ему пароль:
sudo passwd rootПотом на экране входа нажмите Другой… и введите логин (root) и пароль, который вы задали.
Ubuntu 11.10 и старше
Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит немного сложнее.
1. Устанавливаем root пароль. Введите в терминал:
sudo passwd root2. Включаем пункт «Введите логин». Введите в терминал:
gksu gedit /etc/lightdm/lightdm.confВ конце файла допишите:
greeter-show-manual-login=true3. Перезагружаем lightdm. Введите в терминал:
sudo service lightdm restartВсе, на экране входа появится пункт «Логин». В поле логин вводим «root», в поле пароль - пароль, который мы задали на первом этапе.
Для обратной блокировки учетной записи root вам потребуется откатить изменения в настройках lightdm, а также заблокировать учетную запись root командой в терминале:
sudo passwd -l rootНастройка sudo и прав доступа на выполнение различных команд
sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле /etc/sudoers. Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду
sudo visudoПо умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo, о чём говорит строчка
%admin ALL=(ALL) ALLПодробнее о синтаксисе и возможностях настройки этого файла можно почитать выполнив
man sudoersЕсли вы допустите ошибку при редактировании этого файла, то вполне возможно полностью лишитесь доступа к административным функциям. Если такое случилось, то необходимо загрузиться в recovery mode, при этом вы автоматически получите права администратора и сможете всё исправить. Кроме того, отредактировать этот файл можно с LiveCD.
Разрешение пользователю выполнять команду без ввода пароля
Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:
# Cmnd alias specification Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown, /usr/sbin/pm-hibernate, /sbin/rebootИ в конец файла дописать строку
имя_пользователя ALL=(ALL) NOPASSWD: SHUTDOWN_CMDSВнимание! Вышеописанные действия не отменяют необходимости ввода команды sudo перед вашей командой
Создание синонимов (alias`ов)
Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее: откройте файл .bashrc, находящейся в вашем домашнем каталоге
nano ~/bashrcи добавьте в конец файла строки
alias reboot='sudo reboot' alias poweroff='sudo poweroff' alias pm-hibernate='sudo pm-hibernate' alias hibernate='sudo pm-hibernate' alias shutdown='sudo shutdown'Время действия введённого пароля
Возможно, вы хотите изменить промежуток времени, в течение которого sudo действует без ввода пароля. Этого легко добиться добавив в /etc/sudoers (visudo) примерно следующее:
Defaults:foo timestamp_timeout=20Здесь sudo для пользователя foo действует без необходимости ввода пароля в течение 20 минут. Если вы хотите, чтобы sudo всегда требовал ввода пароля, сделайте timestamp_timeout равным 0.
sudo не спрашивает пароль
sudo без пароля — чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно — срочно верните обратно как было.
Однако, в некоторых случаях sudo внезапно перестаёт требовать пароль само по себе. Если сделать visudo, то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял:
ALL ALL=(ALL) NOPASSWD:ALLСкорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:
юзернейм ALL= NOPASSWD: /путь/к/программеЕсть и другие варианты решения проблемы, небольшое обсуждение здесь.
Ссылки
help.ubuntu.ru
расширенный справочник команд Unix / Linux / PuTTY SSH
Большинство UNIX-like систем обладают встроенной справкой, которая подробно описывает все доступные команды. Однако чтобы воспользоваться этой справкой, вы должны знать, по крайней мере, название команды, о которой вы хотите получить информацию. Поскольку большинство пользователей только в общих чертах понимают, что они хотят сделать, то, как правило, встроенная справка мало полезна новичкам.
Этот справочник поможет пользователям, знающим, что они хотят сделать, найти соответствующую команду Linux по краткому описанию.
Системная информация: arch или uname -m — отобразить архитектуру компьютера uname -r — отобразить используемую версию ядра dmidecode -q — показать аппаратные системные компоненты — (SMBIOS / DMI) hdparm -i /dev/hda — вывести характеристики жёсткого диска hdparm -tT /dev/sda — протестировать производительность чтения данных с жёсткого диска cat /proc/cpuinfo — отобразить информацию о процессоре cat /proc/interrupts — показать прерывания cat /proc/meminfo — проверить использование памяти cat /proc/swaps — показать файл(ы) подкачки cat /proc/version — вывести версию ядра cat /proc/net/dev — показать сетевые интерфейсы и статистику по ним cat /proc/mounts — отобразить смонтированные файловые системы lspci -tv — показать в виде дерева PCI устройства lsusb -tv — показать в виде дерева USB устройства date — вывести системную дату cal 2007 — вывести таблицу-календарь 2007-го года date 041217002007.00* — установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды) clock -w — сохранить системное время в BIOS Остановка системы: shutdown -h now или init 0 или telinit 0 — остановить систему shutdown -h hours:minutes & — запланировать остановку системы на указанное время shutdown -c — отменить запланированную по расписанию остановку системы shutdown -r now или reboot — перегрузить систему logout — выйти из системы Файлы и директории: cd /home — перейти в директорию '/home' cd .. — перейти в директорию уровнем выше cd ../.. — перейти в директорию двумя уровнями выше cd — перейти в домашнюю директорию cd ~user — перейти в домашнюю директорию пользователя user cd - — перейти в директорию, в которой находились до перехода в текущую директорию pwd — показать текущую директорию ls — отобразить содержимое текущей директории ls -F — отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип ls -l — показать детализированное представление файлов и директорий в текущей директории ls -a — показать скрытые файлы и директории в текущей директории ls *[0-9]* — показать файлы и директории содержащие в имени цифры tree или lstree — показать дерево файлов и директорий, начиная от корня (/) mkdir dir1 — создать директорию с именем 'dir1' mkdir dir1 dir2 — создать две директории одновременно mkdir -p /tmp/dir1/dir2 — создать дерево директорий rm -f file1 — удалить файл с именем 'file1' rmdir dir1 — удалить директорию с именем 'dir1' rm -rf dir1 — удалить директорию с именем 'dir1' и рекурсивно всё её содержимое rm -rf dir1 dir2 — удалить две директории и рекурсивно их содержимое mv dir1 new_dir — переименовать или переместить файл или директорию cp file1 file2 — скопировать файл file1 в файл file2 cp dir/* . — копировать все файлы директории dir в текущую директорию cp -a /tmp/dir1 . — копировать директорию dir1 со всем содержимым в текущую директорию cp -a dir1 dir2 — копировать директорию dir1 в директорию dir2 ln -s file1 lnk1* — создать символическую ссылку на файл или директорию ln file1 lnk1 — создать «жёсткую» (физическую) ссылку на файл или директорию touch -t 0712250000 fileditest — модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm) Поиск файлов: find / -name file1 — найти файлы и директории с именем file1. Поиск начать с корня (/) find / -user user1 — найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/) find /home/user1 -name "*.bin" — найти все файлы и директории, имена которых оканчиваются на '. bin'. Поиск начать с '/ home/user1'* find /usr/bin -type f -atime +100 — найти все файлы в '/usr/bin', время последнего обращения к которым более 100 дней find /usr/bin -type f -mtime -10 — найти все файлы в '/usr/bin', созданные или изменённые в течении последних 10 дней find / -name *.rpm -exec chmod 755 '{}' \; — найти все фалы и директории, имена которых оканчиваются на '.rpm', и изменить права доступа к ним find / -xdev -name "*.rpm" — найти все фалы и директории, имена которых оканчиваются на '.rpm', игнорируя съёмные носители, такие как cdrom, floppy и т.п. locate "*.ps" — найти все файлы, содержащие в имени '.ps'. Предварительно рекомендуется выполнить команду 'updatedb' whereis halt — показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'halt' which halt — отображает полный путь к файлу 'halt' Монтирование файловых систем: mount /dev/hda2 /mnt/hda2 — монтирует раздел 'hda2' в точку монтирования '/mnt/hda2'. Убедитесь в наличии директории-точки монтирования '/mnt/hda2' umount /dev/hda2 — размонтирует раздел 'hda2'. Перед выполнением, покиньте '/mnt/hda2' fuser -km /mnt/hda2 — принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем umount -n /mnt/hda2 — выполнить размонтирование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске mount /dev/fd0 /mnt/floppy — монтировать флоппи-диск mount /dev/cdrom /mnt/cdrom — монтировать CD или DVD mount /dev/hdc /mnt/cdrecorder — монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-) mount -o loop file.iso /mnt/cdrom — смонтировать ISO-образ mount -t vfat /dev/hda5 /mnt/hda5 — монтировать файловую систему Windows FAT32 mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — монтировать сетевую файловую систему Windows (SMB/CIFS) mount -o bind /home/user/prg /var/ftp/user — «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user Дисковое пространство: df -h — отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим. переводчика. ключ -h работает не во всех *nix системах) ls -lSr |more — выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр du -sh dir1 — подсчитывает и выводит размер, занимаемый директорией 'dir1' (Прим. переводчика. ключ -h работает не во всех *nix системах) du -sk * | sort -rn — отображает размер и имена файлов и директорий, с соритровкой по размеру rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n — показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.) dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n — показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.) Пользователи и группы: groupadd group_name — создать новую группу с именем group_name groupdel group_name — удалить группу group_name groupmod -n new_group_name old_group_name — переименовать группу old_group_name в new_group_name useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 — создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome useradd user1 — создать пользователя user1 userdel -r user1 — удалить пользователя user1 и его домашний каталог usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 — изменить атрибуты пользователя passwd — сменить пароль passwd user1 — сменить пароль пользователя user1 (только root) chage -E 2005-12-31 user1 — установить дату окончания действия учётной записи пользователя user1 pwck — проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow grpck — проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group newgrp [-] group_name — изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd Выставление/изменение полномочий на файлы: ls -lh — просмотр полномочий на файлы и директории в текущей директории ls /tmp | pr -T5 -W$COLUMNS — вывести содержимое директории /tmp и разделить вывод на пять колонок chmod ugo+rwx directory1 — добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) — всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1 chmod go-rwx directory1 — отобрать у группы и всех остальных все полномочия на директорию directory1. chown user1 file1 — назначить владельцем файла file1 пользователя user1 chown -R user1 directory1 — назначить рекурсивно владельцем директории directory1 пользователя user1 chgrp group1 file1 — сменить группу-владельца файла file1 на group1 chown user1:group1 file1 — сменить владельца и группу владельца файла file1 find / -perm -u+s — найти, начиная от корня, все файлы с выставленным SUID chmod u+s /bin/binary_file — назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла. chmod u-s /bin/binary_file — снять SUID-бит с файла /bin/binary_file. chmod g+s /home/public — назначить SGID-бит директории /home/public. chmod g-s /home/public — снять SGID-бит с директории /home/public. chmod o+t /home/public — назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам chmod o-t /home/public — снять STIKY-бит с директории /home/public Специальные атрибуты файлов: chattr +a file1 — позволить открывать файл на запись только в режиме добавления chattr +c file1 — позволяет ядру автоматически сжимать/разжимать содержимое файла. chattr +d file1 — указывает утилите dump игнорировать данный файл во время выполнения backup'а chattr +i file1 — делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него. chattr +s file1 — позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращает возможность восстановления данных. chattr +S file1 — указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync chattr +u file1 — данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить lsattr — показать атрибуты файлов Архивирование и сжатие файлов: bunzip2 file1.bz2 — разжимает файл 'file1.gz' gunzip file1.gz — gzip file1 или bzip2 file1 — сжимает файл 'file1' gzip -9 file1 — сжать файл file1 с максимальным сжатием rar a file1.rar test_file — создать rar-архив 'file1.rar' и включить в него файл test_file rar a file1.rar file1 file2 dir1 — создать rar-архив 'file1.rar' и включить в него file1, file2 и dir1 rar x file1.rar — распаковать rar-архив unrar x file1.rar — tar -cvf archive.tar file1 — создать tar-архив archive.tar, содержащий файл file1 tar -cvf archive.tar file1 file2 dir1 — создать tar-архив archive.tar, содержащий файл file1, file2 и dir1 tar -tf archive.tar — показать содержимое архива tar -xvf archive.tar — распаковать архив tar -xvf archive.tar -C /tmp — распаковать архив в /tmp tar -cvfj archive.tar.bz2 dir1 — создать архив и сжать его с помощью bzip2(Прим. переводчика. ключ -j работает не во всех *nix системах) tar -xvfj archive.tar.bz2 — разжать архив и распаковать его(Прим. переводчика. ключ -j работает не во всех *nix системах) tar -cvfz archive.tar.gz dir1 — создать архив и сжать его с помощью gzip tar -xvfz archive.tar.gz — разжать архив и распаковать его zip file1.zip file1 — создать сжатый zip-архив zip -r file1.zip file1 file2 dir1 — создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий unzip file1.zip — разжать и распаковать zip-архив RPM пакеты (Fedora, Red Hat и тому подобное): rpm -ivh package.rpm — установить пакет с выводом сообщений и прогресс-бара rpm -ivh --nodeps package.rpm — установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей rpm -U package.rpm — обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен rpm -F package.rpm — обновить пакет только если он установлен rpm -e package_name.rpm — удалить пакет rpm -qa — отобразить список всех пакетов, установленных в системе rpm -qa | grep httpd — среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd» rpm -qi package_name — вывести информацию о конкретном пакете rpm -qg "System Environment/Daemons" — отобразить пакеты входящие в группу пакетов rpm -ql package_name — вывести список файлов, входящих в пакет rpm -qc package_name — вывести список конфигурационных файлов, входящих в пакет rpm -q package_name --whatrequires — вывести список пакетов, необходимых для установки конкретного пакета по зависимостям rpm -q package_name --whatprovides — show capability provided by a rpm package rpm -q package_name --scripts — отобразит скрипты, запускаемые при установке/удалении пакета rpm -q package_name --changelog — вывести историю ревизий пакета rpm -qf /etc/httpd/conf/httpd.conf — проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла. rpm -qp package.rpm -l — отображает список файлов, входящих в пакет, но ещё не установленных в систему rpm --import /media/cdrom/RPM-GPG-KEY — импортировать публичный ключ цифровой подписи rpm --checksig package.rpm — проверит подпись пакета rpm -qa gpg-pubkey — проверить целостность установленного содержимого пакета rpm -V package_name — проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета rpm -Va — проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью! rpm -Vp package.rpm — проверить пакет, который ещё не установлен в систему rpm2cpio package.rpm | cpio --extract --make-directories *bin* — извлечь из пакета файлы содержащие в своём имени bin rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm — установить пакет, собранный из исходных кодов rpmbuild --rebuild package_name.src.rpm — собрать пакет из исходных кодов YUM — средство обновления пакетов(Fedora, RedHat и тому подобное): yum install package_name — закачать и установить пакет yum update — обновить все пакеты, установленные в систему yum update package_name — обновить пакет yum remove package_name — удалить пакет yum list — вывести список всех пакетов, установленных в систему yum search package_name — найти пакет в репозиториях yum clean packages — очисть rpm-кэш, удалив закачанные пакеты yum clean headers — удалить все заголовки файлов, которые система использует для разрешения зависимостей yum clean all — очисть rpm-кэш, удалив закачанные пакеты и заголовки DEB пакеты (Debian, Ubuntu и тому подобное): dpkg -i package.deb — установить / обновить пакет dpkg -r package_name — удалить пакет из системы dpkg -l — показать все пакеты, установленные в систему dpkg -l | grep httpd — среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd» dpkg -s package_name — отобразить информацию о конкретном пакете dpkg -L package_name — вывести список файлов, входящих в пакет, установленный в систему dpkg --contents package.deb — отобразить список файлов, входящих в пакет, который ещё не установлен в систему dpkg -S /bin/ping — найти пакет, в который входит указанный файл. APT — средство управление пакетами (Debian, Ubuntu и тому подобное): apt-get update — получить обновлённые списки пакетов apt-get upgrade — обновить пакеты, установленные в систему apt-get install package_name — установить / обновить пакет apt-cdrom install package_name — установить / обновить пакет с cdrom'а apt-get remove package_name — удалить пакет, установленный в систему с сохранением файлов конфигурации apt-get purge package_name — удалить пакет, установленный в систему с удалением файлов конфигурации apt-get check — проверить целостность зависимостей apt-get clean — удалить загруженные архивные файлы пакетов apt-get autoclean — удалить старые загруженные архивные файлы пакетов Pacman — средство управление пакетами (Arch, Frugalware и alike) pacman -S name — install package «name» with dependencies pacman -R name — delete package «name» and all files of it Просмотр содержимого файлов: cat file1 — вывести содержимое файла file1 на стандартное устройство вывода tac file1 — вывести содержимое файла file1 на стандартное устройство вывода в обратном порядке (последняя строка становиться первой и т.д.) more file1 — постраничный вывод содержимого файла file1 на стандартное устройство вывода less file1 — постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п. head -2 file1 — вывести первые две строки файла file1 на стандартное устройство вывода. По умолчанию выводится десять строк tail -2 file1 — вывести последние две строки файла file1 на стандартное устройство вывода. По умолчанию выводится десять строк tail -f /var/log/messages — выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста. Манипуляции с текстом: grep -HR OLDTEXT ./ | awk '{print $1}' | sed 's/:.*$//' | grep -v '~' | sort | uniq | xargs perl -i -pe "s/OLD_TEXT/NEW_TEXT/g;" — Поиск и замена текста OLDTEXT на NEW_TEXT во многих файлах одновременно с рекурсивным обходом директорий. cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt — общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt — общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан grep Aug /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug» grep ^Aug /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug» grep [0-9] /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие цифры grep Aug -R /var/log/* — отобрать и вывести на стандартное устройство вывода строки, содержащие «Augr», во всех файлах, находящихся в директории /var/log и ниже sed 's/stringa1/stringa2/g' example.txt — в файле example.txt заменить «string1» на «string2», результат вывести на стандартное устройство вывода. sed '/^$/d' example.txt — удалить пустые строки из файла example.txt sed '/ *#/d; /^$/d' example.txt — удалить пустые строки и комментарии из файла example.txt echo 'esempio' | tr '[:lower:]' '[:upper:]' — преобразовать символы из нижнего регистра в верхний sed -e '1d' result.txt — удалить первую строку из файла example.txt sed -n '/string1/p' — отобразить только строки, содержащие «string1» sed -e 's/ *$//' example.txt — удалить пустые символы в конце каждой строки sed -e 's/string1//g' example.txt — удалить строку «string1» из текста не изменяя всего остального sed -n '1,8p;5q' example.txt — взять из файла с первой по восьмую строки и из них вывести первые пять sed -n '5p;5q' example.txt — вывести пятую строку sed -e 's/0*/0/g' example.txt — заменить последовательность из любого количества нулей одним нулём cat -n file1 — пронумеровать строки при выводе содержимого файла cat example.txt | awk 'NR%2==1' — при выводе содержимого файла, не выводить чётные строки файла echo a b c | awk '{print $1}' — вывести первую колонку. Разделение, по умолчанию, по пробелу/пробелам или символу/символам табуляции echo a b c | awk '{print $1,$3}' — вывести первую и третью колонки. Разделение, по умолчанию, по проблелу/пробелам или символу/символам табуляции paste file1 file2 — объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m paste -d '+' file1 file2 — объединить содержимое file1 и file2 в виде таблицы с разделителем «+» sort file1 file2 — отсортировать содержимое двух файлов sort file1 file2 | uniq — отсортировать содержимое двух файлов, не отображая повторов sort file1 file2 | uniq -u — отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода) sort file1 file2 | uniq -d — отсортировать содержимое двух файлов, отображая только повторяющиеся строки comm -1 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file1' comm -2 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file2' comm -3 file1 file2 — сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах Преобразование наборов символов и файловых форматов: dos2unix filedos.txt fileunix.txt — конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата каретки) unix2dos fileunix.txt filedos.txt — конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата каретки) recode ..HTML < page.txt > page.html — конвертировать содержимое тестового файла page.txt в html-файл page.html recode -l | more — вывести список доступных форматов Анализ файловых систем: badblocks -v /dev/hda1 — проверить раздел hda1 на наличие bad-блоков fsck /dev/hda1 — проверить/восстановить целостность linux-файловой системы раздела hda1 fsck.ext2 /dev/hda1 или e2fsck /dev/hda1 — проверить/восстановить целостность файловой системы ext2 раздела hda1 e2fsck -j /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же fsck.ext3 /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1 fsck.vfat /dev/hda1 или fsck.msdos /dev/hda1 или dosfsck /dev/hda1 — проверить/восстановить целостность файловой системы fat раздела hda11 Форматирование файловых систем: mkfs /dev/hda1 — создать linux-файловую систему на разделе hda1 mke2fs /dev/hda1 — создать файловую систему ext2 на разделе hda1 mke2fs -j /dev/hda1 — создать журналирующую файловую систему ext3 на разделе hda1 mkfs -t vfat 32 -F /dev/hda1 — создать файловую систему FAT32 на разделе hda1 fdformat -n /dev/fd0 — форматирование флоппи-диска без проверки mkswap /dev/hda3 — создание swap-пространства на разделе hda3 swap-пространство: mkswap /dev/hda3 — создание swap-пространства на разделе hda3 swapon /dev/hda3 — активировать swap-пространство, расположенное на разделе hda3 swapon /dev/hda2 /dev/hdb3 — активировать swap-пространства, расположенные на разделах hda2 и hdb3 Создание резервных копий (backup): dump -0aj -f /tmp/home0.bak /home — создать полную резервную копию директории /home в файл /tmp/home0.bak dump -1aj -f /tmp/home0.bak /home — создать инкрементальную резервную копию директории /home в файл /tmp/home0.bak restore -if /tmp/home0.bak — восстановить из резервной копии /tmp/home0.bak rsync -rogpav --delete /home /tmp — синхронизировать /tmp с /home rsync -rogpav -e ssh --delete /home ip_address:/tmp — синхронизировать через SSH-туннель rsync -az -e ssh --delete ip_addr:/home/public /home/local — синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием rsync -az -e ssh --delete /home/local ip_addr:/home/public — синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' — сделать «слепок» локального диска в файл на удалённом компьютере через ssh-туннель tar -Puf backup.tar /home/user — создать инкрементальную резервную копию директории '/home/user' в файл backup.tar с сохранением полномочий ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' — копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/ ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' — копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup-home tar cf - . | (cd /tmp/backup ; tar xf - ) — копирование одной директории в другую с сохранением полномочий и линков find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents — поиск в /home/user1 всех файлов, имена которых оканчиваются на '.txt', и копирование их в другую директорию find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 — поиск в /var/log всех файлов, имена которых оканчиваются на '.log', и создание bzip-архива из них dd if=/dev/hda of=/dev/fd0 bs=512 count=1 — создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск dd if=/dev/fd0 of=/dev/hda bs=512 count=1 — восстановить MBR с флоппи-диска на /dev/hda CDROM: cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force — clean a rewritable cdrom mkisofs /dev/cdrom > cd.iso — create an iso image of cdrom on disk mkisofs /dev/cdrom | gzip > cd_iso.gz — create a compressed iso image of cdrom on disk mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd — create an iso image of a directory cdrecord -v dev=/dev/cdrom cd.iso — burn an ISO image gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom — burn a compressed ISO image mount -o loop cd.iso /mnt/iso — mount an ISO image cd-paranoia -B — rip audio tracks from a CD to wav files cd-paranoia -- "-3" — rip first three audio tracks from a CD to wav files cdrecord --scanbus — scan bus to identify the channel scsi Сеть (LAN и WiFi): ifconfig eth0 — показать конфигурацию сетевого интерфейса eth0 ifup eth0 — активировать (поднять) интерфейс eth0 ifdown eth0 — деактивировать (опустить) интерфейс eth0 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 — выставить интерфейсу eth0 IP-адрес и маску подсети ifconfig eth0 promisc — перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing) ifconfig eth0 -promisc — отключить promiscuous-режим на интерфейсе eth0 dhclient eth0 — активировать интерфейс eth0 в dhcp-режиме. route -n netstat -rn — вывести локальную таблицу маршрутизации route add -net 0/0 gw IP_Gateway — задать IP-адрес шлюза по умолчанию (default gateway) route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 — добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с IP-адресом 192.168.1.1 route del 0/0 gw IP_gateway — удалить IP-адрес шлюза по умолчанию (default gateway) echo "1" > /proc/sys/net/ipv4/ip_forward — разрешить пересылку пакетов (forwarding) hostname — отобразить имя компьютера host www.example.com или host 192.0.43.10 — разрешить имя www.example.com хоста в IP-адрес и наоборот ip link show — отобразить состояние всех интерфейсов mii-tool eth0 — отобразить статус и тип соединения для интерфейса eth0 ethtool eth0 — отображает статистику интерфейса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения netstat -tupn — отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в IP-адреса и PID'ы и имена процессов, обеспечивающих эти соединения netstat -tupln — отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в IP-адреса и PID'ы и имена процессов, слушающих порты tcpdump tcp port 80 — отобразить весь трафик на TCP-порт 80 (обычно — HTTP) iwlist scan — просканировать эфир на предмет, доступности беспроводных точек доступа iwconfig eth2 — показать конфигурацию беспроводного сетевого интерфейса eth2 Microsoft Windows networks(SAMBA): nbtscan ip_addr nmblookup -A ip_addr — разрешить netbios-имя nbtscan не во всех системах ставится по умолчанию, возможно, придётся доустанавливать вручную. nmblookup включён в пакет samba. smbclient -L ip_addr/hostname — отобразить ресурсы, предоставленные в общий доступ на windows-машине smbget -Rr smb://ip_addr/share — подобно wget может получить файлы с windows-машин через smb-протокол mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему IPTABLES (firewall): iptables -t filter -nL iptables -nL — отобразить все цепочки правил iptables -t nat -L — отобразить все цепочки правил в NAT-таблице iptables -t filter -F или iptables -F — очистить все цепочки правил в filter-таблице iptables -t nat -F — очистить все цепочки правил в NAT-таблице iptables -t filter -X — удалить все пользовательские цепочки правил в filter-таблице iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT — позволить входящее подключение telnet'ом iptables -t filter -A OUTPUT -p tcp --dport http -j DROP — блокировать исходящие HTTP-соединения iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT — позволить «прокидывать» (forward) POP3-соединения iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" — включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса «DROP INPUT» iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE — включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми IP-адресами. iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 — перенаправление пакетов, адресованных одному хосту, на другой хост Мониторинг и отладка: top — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных) ps -eafw — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды) ps -e -o pid,args --forest — вывести PID'ы и процессы в виде дерева pstree — отобразить дерево процессов kill -9 98989 или kill -KILL 98989 — «убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных) kill -TERM 98989 — корректно завершить процесс с PID 98989 kill -1 98989 или kill -HUP 98989 — заставить процесс с PID 98989 перепрочитать файл конфигурации lsof -p 98989 — отобразить список файлов, открытых процессом с PID 98989 lsof /home/user1 — отобразить список открытых файлов из директории /home/user1 strace -c ls >/dev/null — вывести список системных вызовов, созданных и полученных процессом ls strace -f -e open ls >/dev/null — вывести вызовы библиотек watch -n1 'cat /proc/interrupts' — отображать прерывания в режиме реального времени last reboot — отобразить историю перезагрузок системы last user1 — отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней lsmod — вывести загруженные модули ядра free -m — показать состояние оперативной памяти в мегабайтах smartctl -A /dev/hda — контроль состояния жёсткого диска /dev/hda через SMART smartctl -i /dev/hda — проверить доступность SMART на жёстком диске /dev/hda tail /var/log/dmesg — вывести десять последних записей из журнала загрузки ядра tail /var/log/messages — вывести десять последних записей из системного журнала Другие полезные команды: apropos …keyword — выводит список команд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду man ping — вызов руководства по работе с программой, в данном случае, — ping whatis …keyword — отображает описание действий указанной программы mkbootdisk --device /dev/fd0 `uname -r` — создаёт загрузочный флоппи-диск gpg -c file1 — шифрует файл file1 с помощью GNU Privacy Guard gpg file1.gpg — дешифрует файл file1 с помощью GNU Privacy Guard wget -r http://www.example.com — загружает рекурсивно содержимое сайта http://www.example.com wget -c http://www.example.com/file.iso — загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии echo 'wget -c http://www.example.com/files.iso' | at 09:00 — начать закачку в указанное время ldd /usr/bin/ssh — вывести список библиотек, необходимых для работы ssh alias hh='history' — назначить алиас hh команде history Please enable JavaScript© 2009–2018, PuTTY.ORG.RU — При использовании материалов сайта желательно указывать источник. Спасибо!
putty.org.ru
Создать, удалить, копировать в Ubuntu Server
Сегодня мы с вами поговорим о том, как в серверной части Linux | Ubuntu, т.е. в дистрибутивах без графической оболочки организовать вроде такие простые команды как копировать, перемещать, создавать, удалять файлы и директории.
Команда touch
touch — утилита для установки времени доступа/изменения файлов. Но в основном эта команда используется для создания файлов. Чтобы создать файл в директории Вашего пользователя, открываем терминал и набираем следующую команду:
touch /home/user/file.txtДанная команда создаст файл file.txt в директории home/user
Команда rm
rm — является утилитой для удаления файлов и каталогов.
-R — можно удалить каталог в котором уже есть файлы.
-f — игнорирует все ошибки и выполняет удаление, при этом не выдавая в консоль никакой информации.
-i — выдает предупреждение при удалении файла. Нужно подтвердить или отменить удаление.
-v — выводит информацию о выполненных действиях.
Примеры использования команды rm:
rm *.txt — удалит все файлы с расширением txt в каталоге
rm foo* — удалит все файлы, имя которых начинается на foo
Команда cp
cp — утилита для копирования файлов и каталогов. Синтаксис выглядит следующим образом:
cp [OPTIONS] SOURCE DESTINATIONСама команда очень гибкая, имеет множество ключей, однако на практике используются они не часто. Наиболее часто используются ключи -f,-v,-i,-r(-R). Опции которых аналогичны команде rm.
Если в директории куда планируется скопировать файл уже есть файл с таким именем, то он будет перезаписан. Во избежание таких ситуаций желательно использовать ключ -i.
Пример использования команды cp:
cp -v /var/log/messages /home/user/messagesКоманда mv
mv — утилита для перемещения и переименования файлов.
Синтаксис команды mv:
mv [OPTIONS] SOURCE DESTINATION
Таким образом файл источник будет создан в месте назначения с новым именем.
mv -v /var/log/messages /home/user/messages
Команда mkdir
Утилита mkdir используется для создания пустых каталогов. Также можно создавать и подкаталоги, иногда довольно удобно.
Синтаксис команды mkdir:
mkdir [OPTION] DIRECTORY
В качестве опций(ключей) принимает всего 3 ключа:
-m — задает права доступа к директории. Права нужно указывать при помощи маски umask.-p — позволяет создавать подкаталоги.-v — выводит информацию о проделанных действиях.
Использование ключа -p довольно простое, нам всего лишь нужно через слэш указать название подкаталогов, таким образом синтаксис будет иметь следующий вид:
mkdir -p test/test1/test2/test3
После выполнения команды будет создан каталог test в котором будет создан подкаталог test1 и так далее.
Команда rmdir
Утилита для удаления каталогов. Удаляет только пустые каталоги. Также имеет в арсенале ключ -p, для удаления подкаталогов. Подкаталоги соответственно должны быть пустыми.
Потренируйтесь работать с данными командами для закрепления материала. Так как эти команды вы будете использовать наиболее часто, вам нужно довести использование этих команд до автоматизма.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Создать, удалить, копировать в Ubuntu Server
Пожалуйста оцените эту статьюpro-gram.ru