В этой статье объясняется, как использовать команды терминала для получения информации о некоторых командах и их функциях.
В ней также приводятся примеры, иллюстрирующие этот процесс.
Командная строка — это мощный инструмент. Существуют инструменты, позволяющие выполнять громоздкие и монотонные задачи графического интерфейса пользователя (UI) всего за несколько секунд. Удаление последних четырех строк в каждом абзаце большого файла займет длительное время в приложении интерфейса пользователя. Однако эта задача может быть автоматизирована при использовании командной строки.
Самые распространенные способы открытия окна терминала Ubuntu Linux:
Существует множество команд, связанных с оболочкой терминала в Ubuntu Linux. В статье ниже перечислены наиболее часто используемые команды по группам, которые они затрагивают.
Можно использовать три основные команды, чтобы получить всю информацию, необходимую для использования различных команд терминала.
Команда man выводит руководство для любой команды, используемой в терминале.
Большинство команд оболочки используются с разнообразными параметрами. Для получения дополнительной информации о команде и доступных параметрах используйте команду man
— сокращение от «manual». Задайте имя команды, о которой вы хотите узнать больше в качестве ее аргумента. Это команда, с которой работает команда man
.
Пример. При вводе команды man who
отображается следующее сообщение:
WHO(1) User Commands WHO(1)
NAME
who - show who is logged on
SYNOPSIS
who [OPTION}... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-a, --all
same as -b -d --login -p -r -t -T -u
-b, --boot
time of last system boot
-d, --dead
print dead processes
-H, --heading
print line of column headings
-i, --idle
add idle time as HOURS:MINUTES, . or old (deprecated, use -u)
-l, --login
print system login processes
--lookup
attempt to canonicalize hostnames via DNS
-m, only hostname and user associated with stdin
Manual page who(1) line 1
Многие руководства занимают несколько экранов. Используйте курсор, клавиши ARROW
или клавиши Page Up и Page Down для навигации по тексту. При нажатии клавиши пробел отображается следующая строка текста. При нажатии клавиши q происходит выход из руководства и возврат к оболочке.
На странице man видно, что можно использовать параметр -a
для отображения дополнительной информации об активных сеансах пользователя.
user@3[user]$ who -a
|
|
|
|
Nov 14 13:47 |
|
10 |
id=si |
term=0 |
exit=0 |
|
|
|
system boot |
Nov 14 13:47 |
|
|
|
|
|
|
|
|
run-level 5 |
Nov 14 13:47 |
|
|
Last=S |
|
|
|
|
|
|
Nov 14 13:47 |
|
835 |
id=15 |
term=0 |
exit=0 |
LOGIN |
|
|
tty1 |
Nov 14 13:47 |
|
958 |
id=1 |
|
|
root |
|
- |
tty2 |
Nov 14 19:15 |
00:19 |
959 |
|
|
|
user |
|
- |
tty3 |
Nov 14 19:28 |
00:06 |
960 |
|
|
|
LOGIN |
|
|
tty4 |
Nov 14 13:47 |
|
961 |
id=4 |
|
|
LOGIN |
|
|
tty5 |
Nov 14 13:47 |
|
962 |
id=5 |
|
|
LOGIN |
|
|
tty6 |
Nov 14 13:47 |
|
963 |
id=6 |
|
|
user |
|
? |
:0 |
Nov 14 13:47 |
? |
965 |
|
|
|
|
|
|
pts/3 |
Nov 14 16:29 |
|
1746 |
id=/3 |
term=0 |
exit=0 |
user@3[user]$
Кроме того, он может прочитать справочные файлы для программ, команда man
также может предоставлять информацию об оболочках, функциях и библиотеках.
Если вы не уверены, как использовать определенную команду, выполните команду с параметром -h
или –help
. Вы увидите информацию об использовании и список параметров, которые можно использовать с командой.
Пример. Если вы хотите узнать, как использовать команду wget
, введите wget –help
или wget -h
.
User@Ubuntu@#$ wget --help
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
Это часто приводит к выводу большого количества информации в терминале. Она может быть неудобочитаемой. Чтобы упростить чтение выходных данных, можно pipe
их с помощью команды less. Это позволит прокручивать информацию с помощью курсора или стрелок на клавиатуре.
Пример. wget -help | less
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
:
Нажмите клавишу q, чтобы закрыть утилиту less по завершении.
Чтобы найти конкретный вариант, можно pipe
вывод с помощью команды grep
. (Например, используйте следующую команду для поиска параметров, содержащих слово proxy.
)
wget -help | grep proxy
User@ubuntu:~$ wget --help | grep proxy
--no-proxy explicitly turn off proxy.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
User@Ubuntu:~$
Документация на некоторые команды содержится также внутри системы info
. Приведенные здесь сведения дополняют информацию, которую отображает команда man
.
Пример. Введите команду info ls,
отображаются следующие выходные данные.
[support@support]$" info ls
Теперь можно просмотреть руководство с важной информацией о команде ls
.
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
'ls': List directory contents
=============================
The 'ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default 'ls' lists the contents of directories, not recursively, and
omitting files with name beginning with '.'. For other non-option
arguments, be default 'ls' lists just the file name. If no non-option
argument is specified, 'ls' operates on the current directory, acting
as if it had been invoked with a single argument of '.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top------------------
Welcome to info version 4.3 Type C-h for help, m for menu item.
Страницы можно прокручивать вниз, нажимая клавишу пробел или используя курсор/клавишиARROW
.
help
нажмите Hquit
нажмите Q
Практически все, что можно выполнить интерфейсе пользователя, можно сделать и через терминал.
Как говорилось выше, многие команды были разработаны для работы в терминале, а теперь поверх них располагается интерфейс пользователя. Вот почему некоторые команды в графическом интерфейсе пользователя могут выглядеть неуклюже: они появились позже, поскольку в большинстве сборок Linux Server были не нужны.
Программа терминала, которая открывается из меню, находится в домашней папке пользователя. Известен как ~
Оператор .
позволяет найти текущий каталог. Большинство команд, работающих с текущей папкой, командами, местоположениями и файлами, чувствительны к регистру. /home
не то же самое, что /HOME
или /Home
.
Используйте клавишу TAB для заполнения имен файлов, если у вас длинное имя драйвера. driver-128947232jaseu.sh
например, введите: dri
и оставшаяся часть будет заполнена автоматически. При условии, что у вас нет двух имен, начинающихся с dri
, но если такие есть, добавьте еще один символ, чтобы получилось driv
, и повторите попытку. Убедитесь, что автозаполнение соответствует отображаемому значению.
Практически любую команду можно прочитать полностью с помощью страницы man
или введя -h
или --help
после записи начальной команды. Синтаксис выглядит следующим образом: man command_name
, command_name -h
или command_name --help
.
Для получения дополнительной информации можно использовать info. Поиск команды можно выполнить с помощью info command_name
. Для большинства команд, входящих в пакет coreutils. Можно также найти info
, используя запуск info coreutils command_name
, где искомая команда заменяет command_name
.
Практически любая команда может точно показать, что происходит, шаг за шагом. Обычно это -v
или --verbose
.
Для получения дополнительной информации можно одновременно указать несколько флагов команд. См. ls -al
пример ниже.
Имена команд не всегда очевидны. Из-за ограничения места на заре появления UNIX они были сокращены и эти соглашения используются до сих пор.
cd
- перемещает вас обратно в home, как и cd ~
cd..
- возвращает на каталог выше. Начиная с /home/user/Desktop
, cd..
переносит вас в /home/user
. Расширив команду до cd ../../
можно переместиться на два каталога выше, в /home
.
cd foldername/
- перемещает вперед к указанной папке в текущей папке.
/
— это существенное упущение. При нахождении в /home/user
и необходимости перейти в Desktop
. Необходимо ввести cd Desktop/
без /
до Desktop
. Ввод команды /
перед этим параметром переместит вас в корень файловой системы, что не является целью данного действия.
cd /some/other/path
- перемещает к указанной папке. Если путь введен верно. Не забудьте, что можно использовать клавишу TAB
для автоматического заполнения.
ls
- выводит список всех файлов в текущей папке.
ls -l
- предоставляет более длинный список, включающий владельцев, разрешения, размер и дату изменения.
ls -a
- отображает скрытые файлы и папки, а также обычный список.
ls -al
- объединяет два параметра для отображения скрытых файлов и папок и вывода их в длинном формате.
ls -h
- Отображает размеры файлов в формате, доступном для чтения человеком KB, MB, GB,
размер файлов вместо байтов. Чаще всего он используется с флагом -l
.
Можно просматривать файлы в каталогах, даже не находясь в них. Если вы находитесь в /home/user/Desktop
и хотите просмотреть файл в /home/user
, можно выполнить команду ls ../
, которая выводит список файлов из предыдущего каталога.
cp file /path/to/folder
- копирует указанный файл по указанному пути.
cp -r folder /path/to/folder
- регулярно копирует содержимое папки в другую папку.
cp *.extension /path/to/folder
- копирует файлы с указанным расширением в новую папку. Для копирования всех файлов .doc используется команда cp *.doc /path/to/folder
и папка должна существовать.
cp name* /path/to/folder
- копирует все файлы, начинающиеся с name
в указанную папку. Чтобы скопировать все файлы, начинающиеся с example
, используется команда cp example* /path/to/folder
и папка должна существовать.
Синтаксис mv
аналогичен приведенному выше примеру cp
за исключением примера 2. mv
не принимает флаг -r
, так как перемещение папки также перемещает ее содержимое. Синтаксис не является совершенно одинаковым во всех случаях, но работает с указанными выше примерами. Для получения дополнительной информации обратитесь к руководству пользователя.
Удаление файлов с помощью rm
окончательное. Корзина не используется. Используйте эту команду с осторожностью и убедитесь, что вы удаляете именно то, что хотите, прежде чем нажать Enter
. Если вы слишком усложните команды удаления, то это может закончиться не очень хорошо.
rm file
- удаляет конкретный файл с компьютера.
rm -r folder
- удаляет конкретную папку с компьютера.
rm -rf folder
- принудительно удаляет конкретную папку с компьютера. Эта команда может привести к путанице, если используется неправильно.
Файлы можно редактировать с помощью nano
в терминале для быстрого изменения конфигурации. Это может быть полезно, но обрабатываются только простые текстовые файлы и файлы команд, а документы Microsoft Word не открываются должным образом.
Если файлом владеет пользователь root, обычный пользователь не может его редактировать. nano
должна предшествовать команда sudo
; для сохранения изменений. В противном случае он откроется в режиме только для чтения.
nano newfile.whatever
с указанным именем и открывает его для редактирования.
nano existing_file
- открывает существующий файл для редактирования.
Изнутри nano
Сохраните файл, нажав клавиши CTRL+O
и либо измените имя, либо нажмите клавишу Enter
, чтобы сохранить то же имя. При этом файл будет сохранен.
Выйдите из nano
, нажав клавиши CTRL+X
одновременно. Если у вас есть несохраненные изменения, появится запрос на их сохранение.
mkdir folder_name
- создает папку с указанным именем
mkdir -p /path/to/folder/name
- при необходимости создает каждую папку. Для создания папки /home/user/1stfolder/2ndfolder
, и только /home/user
существует, использование mkdir -p
делает оба каталога 1stfolder,
и 2ndfolder
.
ps aux
- выводит подробный список всех процессов, запущенных на компьютере. В этот список включены пользователь, идентификатор процесса PID,
и название процесса. С помощью этой функции можно просмотреть список процессов и при необходимости завершить ненужные или зависшие процессы.
kill PID
- PID представляет собой число, обозначающее нарушающий работу процесс. Необходимо получить PID, запустив команду, например ps aux
. Если не получается завершить процесс, можно также указать kill -9 PID
что гарантированно прервет его.
killall program
- Killall
завершает работу by name
всех экземпляров listed program
. Если, например, открыто 3 сеанса браузера Firefox, killall Firefox
выполняет именно это, завершает все сеансы Firefox. kill
возьмет указанный PID процесса Firefox, который нарушает работу и который нужно закрыть, и закроет его.
xkill
это способ интерфейса пользователя, который позволяет закрывать окна нажатием кнопки мыши. При вводе xkill
на экране должен появиться значок с черепом и костями. Окно, на которое вы нажмете, будет закрыто.
Pipes
отображаются как straight bar,
известная также, как клавиша |
.
Это редко используемый ключ в Windows. Он находится обычно на клавише с обратной косой чертой.
Они используются для соединения команд. Pipes
берут вывод одной команды и направляют ее для использования в качестве ввода для второй команды, когда они соединены.
См. онлайн-ресурсы для получения дополнительных сведений о pipes
так как этой команде посвящены целые тома документации.
>
используется для overwrite
содержимого существующих файлов путем замены их содержимого выводом из новой команды.
>>
используется для append
информации в существующие файлы. Это полезно для регистрации действий.
Example:
ps aux > processes.log
отправляет выходные данные ps aux
в файл processes.log
для просмотра выходных данных команды в текстовом редакторе и перезаписывает текущее содержимое файла.
tee
используется вместе с |
для того, чтобы взять выходные данные команды и отправить их куда-то еще. Это полезно, если вы пропустили какие-либо ошибки. Таким образом, все, что отображается на экране, также записывается в файл.
Пример. dmesg
| tee boot.txt
выполнит команду dmesg
, которая отображает информацию о начальной загрузке. В строке |
отправляет выходные данные dmesg
на tee
, который затем выполняет свою работу, отправляя их на терминал и в файл журнала boot.txt
.
Требуется запустить файл в текущем каталоге после того, как он помечен как исполняемый? Оператор ./
может запустить файл от имени обычного пользователя, для этого вам не нужны права root. ./
буквально означает in the current directory
так что он не работает с файлами за пределами текущего каталога.
Если необходимо запустить файл не из текущего каталога, нужно передать путь к соответствующей программе запуска. Если это программный код на языке Python, то это python /path/to/file
а если это файл оболочки, то это sh /path/to/file
в качестве примера. Есть и другие программы, но эти являются самыми распространенными.
Если необходимо запустить файл с правами root из-за получения сообщения operation not permitted?
. С командой необходимо использовать префикс sudo
. Как и в приведенном выше примере, sudo python /path/to/file
запускает сценарий с правами root.
Если вы хотите запустить программу с пользовательским интерфейсом из терминала, введите имя программы — case sensitive!
и она запускается. При этом текущий терминал использовать будет нельзя. Закрытие терминала, когда программа открыта, также приводит к завершению работы программы. Лучше поместить программу в фоновый режим с помощью program_name
и введя после этого слово exit
на терминале, чтобы закрыть его и продолжить процесс.
Если вам необходимо запустить программу интерфейса пользователя с правами root из терминала, используйте префикс gksudo
или gksu
, но не sudo
. Использование sudo
для запуска приложений с интерфейсом пользователя — это плохая привычка, и ее следует избегать.
Не not
используйте sudo
только из-за сообщения Operation not permitted.
Помните, что можно нарушить destroy
компьютеров, запуская команды в неправильном месте с правами root. Убедитесь, что ваши файлы поступают из надежных источников.
Не знаете, в каком каталоге находитесь? Введите pwd
для печати рабочего каталога.
Хотите рассчитать объем дискового пространства? df -h
может дать вам информацию.
Хотите рассчитать размер папки или файла? du -cksh target_name
делает именно это. Хотите рассчитать размер текущей папки? du -cksh
.
Хотите сделать файл исполняемым? chmod +x filename
делает это.
Вам нужно смонтировать образ ISO? В Linux встроена эта функция. Создайте каталог где-нибудь, например /home/user/isomount
и выполните команду mount -o loop /path/to/myisofile.iso /home/user/isomount
и все содержимое монтируется внутри этой папки.
После выполнения команды необходимо перезапустить ее, но вы не можете точно вспомнить написание? Введите history
в терминале, и он распечатает историю команд. Хотите очистить историю? history -c
стирает информацию.