Команды, вводимые пользователем в консоли терминала, выполняются командной оболочкой bash. Пользователь вводит команду, bash ищет программу, соответствующую команде, в нужных каталогах, запускает ее и передает ей введенные параметры. Количество их, потому, огромно. В статье будут описаны лишь те команды linux терминала, которые я использую чаще всего.
Итак, после того как Вы арендовали виртуальный сервер...
...Вы можете пользоваться консолью, предоставляемой сайтом...
...или SSH-клиентом Вашего компьютера.
В любом случае будет полезно знать несколько команд linux терминала.
user@my-desktop:/root$ ls -la /src | | | | | | | 1 2 3 4 5 6 7 где: 1 - имя пользователя 2 - имя компьютера 3 - текущая директория 4 - приглашение системы к введению команды 5 - имя команды 6 - ключи команды 7 - содержательный параметр (показать содержимое src)
Эта команда синхронизирует внутреннюю базу данных о пакетах с их источниками, т.е. по сути, ищет их обновления. Может выручить, если что-то вчера еще работало, а сегодня уже нет.
Обновляет указанный пакет. Без параметров обновляет все установленные пакеты.
Программа apt ищет указанный пакет, читает служебную информацию о нем, при необходимости решает зависимости (т.е. устанавливает все другие пакеты, необходимые для работы программ, устанавливаемого пакета), а затем устанавливает сам пакет.
Переместить file в директорию dir. Этой же командой можно переименовать файл.
Перейти в директорию dir, без аргументов - в домашнюю директорию.
Перейти в корневую директорию.
Перейти в директорию на один уровень выше.
Вернуться (в ту директорию, из которой пришел).
Создать директорию dir.
Удалить file.
Удалить директорию и все ее содержимое. Проходит по директории рекурсивно и удаляет все файлы (в linux директории тоже являются файлами).
Показать список файлов и каталогов (содержимое текущей территории).
--all однословный ключ -a однобуквенный ключ
Вывести вывести скрытые файлы.
ls -l total 28 drwxr-xr-x 5 root root 4096 Mar 25 22:43 images -rw-r--r-- 1 root root 1372 Mar 25 22:43 index.jsp -rw-r--r-- 1 root root 2156 Mar 25 22:43 style.css
Отобразить подробно.
ls -a . .. ico images index.jsp style.css .settings
Вывести скрытые файлы (.settings).
ls -la total 28 drwxrwxr-x 7 root root 4096 мар 20 22:41 . drwxrwxr-x 9 root root 4096 мар 23 22:19 .. drwxr-xr-x 5 root root 4096 Mar 25 22:43 images -rw-r--r-- 1 root root 1372 Mar 25 22:43 index.jsp -rw-r--r-- 1 root root 2156 Mar 25 22:43 style.css drwxrwxr-x 2 root root 4096 фев 28 21:14 .settings
Короткие ключи можно "склеивать" (команда выведет как открытые, так и скрытые файлы).
ls -l обычный ключ ls --color=none параметрический
Ключи могут быть обычные и параметрические. К последним можно передать параметры (--color=none убрать раскраску).
Возвращает полный путь к тому месту, где мы находимся. Полный путь работает из любого места.
cd /opt полный путь cd srs относительный cd ./bin относительный
Если путь начинается с /, то используется полный путь (перейдем в директорию opt, находящуюся в корневом каталоге), иначе ( . ) - относительный.
Скопировать file в директорию dir.
file1 будет скопирован в file2. При этом, если file2 существует, программа попросит разрешения на его перезапись.
Указывает на текущий каталог.
Указывает на каталог уровнем выше.
Обозначает домашнюю директорию пользователя.
Выводит историю введенных пользователем команд. Как правило, пользуются стрелками вверх и вниз, чтобы не вводить длинную команду заново, а просто вызвать ее из истории.
Создать файл с именем file. Если такой файл уже существует, то изменяет дату его создания.
Вывести содержимое файла с именем file в стандартный поток вывода (на экран). Прочитать file1 и дописать его содержимое в конец file2.
Прочитать файл. Используется для постраничного вывода текста.
Вывести последние 10 строк файла.
tail -f /var/log/auth.log
Выведет последние 10 строк файла, при этом файл не закрывается и обновляет информацию, показывая изменения в нем.
Выведет первые 10 строк file1 (по умолчанию) и первые три строки file2.
Команда для поиска файлов в linux. Имеет много параметров и столько же возможностей.
find src -name *.java
Найти в директории src все java-файлы.
find . -size 0c
В текущей директории найти все файлы с нулевым размером.
find . -name *.tmp -ok rm {} \;
Удалить все временные файлы в текущей директории.
Команда echo выводит значение переданного ей аргумента на экран.
В данном случае будет выведено значение переменной PATH: список директорий, в которых будет производиться поиск бинарного файла для его выполнению по умолчанию (все команды, такие как ls, cd, echo являются скомпилированными программами, которые выполняются при их вызове).
echo first second echo "one parameter"
Параметры, принимаемые командой, разделяются пробелами (first second). С помощью "кавычек" можно передать несколько слов как один параметр ("one parameter").
Открыть файл file в текстовом редакторе vim, либо создать его, если он не существует.
Перенаправление потока вывода.
date > file.txt cat file.txt
Записать ( > ) текущую дату (date) в файл vile.txt (создать его при необходимости), прочитать (cat) содержимое файла и вывести на экран (стандартный поток вывода). При перенаправлении с помощью ( > ) предыдущие данные в файле file.txt будут стерты.
Читаем содержимое несуществующего файла file.txt cat file.txt нет такого файла выводится в консоль cat file.txt 2> note.txt записывается в файл note.txt Номера потоков данных: 0: stdin ввод 1: stdout вывод (по умолчанию 2: stderr вывод ошибок в консоль)
Перенаправление ( > ) по умолчанию работает с первым потоком ( > и 1> одно и то же).
Одинарное перенаправление ( > ) перезаписывает файл, двойное ( >> ) - дописывает в конец.
С помощью каналов можно перенаправить вывод одной команды в ввод другой команды. Это позволяет комбинировать простые команды для выполнения сложных задач.
alexandr@HONOR:~/jackartaEEWebSite$ find "src" | grep "java" src/main/ROOT/WEB-INF/classes/HomeServlet.java src/main/ROOT/WEB-INF/classes/ProjectsServlet.java src/main/ROOT/WEB-INF/classes/BlogServlet.java src/main/ROOT/WEB-INF/classes/DevopsServlet.java
Например, с помощью команды find ищем все файлы в директории src и не выводим их на экран, а передаем в программу grep. Уже с ее помощью выводим на экран только java файлы.
Первая буква означает тип файла:
-rw-r--r-- 1 root root 1150 Mar 25 22:43 file.java (файл) drwxr-xr-x 5 root root 4096 Mar 25 22:43 dir (директория) lrwxrwxrwx 2 root root 1096 Mar 25 22:43 link (ссылка)
Последующие буквы разделены на три части по три символа и означают права доступа:
drwxrwxrwx root root 4096 Mar 25 22:43 dir | | | | | 1 2 3 4 5 права: 1 - владельца (тот кто создал файл) 2 - группы владельца 3 - всех остальных 4 - имя владельца 5 - название группы владельца
где:
drwxr-xr-- || | | 12 3 4 права: 1 - на чтение (r) 2 - на запись (w) 3 - на исполнение (x - открыть директорию, запустить файл) 4 - нет прав (-)
Изменить владельца файла.
ls -l -rwxr-xr-x 1 user user 1150 Mar 25 22:43 file.class chown root:root file.class ls -l -rwxr-xr-x 1 root root 1150 Mar 25 22:43 file.class
Меняем владельца файла с user на root.
Изменение прав пользователя.
-rw-r--r-- 1 root root 1150 Mar 25 22:43 file.class chmod u+rwx,g+rw,o-rwx file.class | | | 1 2 3 Назначить права: 1 - пользователю (u) 2 - группе (g) 3 - и всем остальным (o) -rwxrw---- 1 root root 1150 Mar 25 22:43 file.class + - добавить права - - убрать права r - на чтение w - на запись x - на исполнение
Изменение прав символьным способом.
chmod 764 file.class изменяем права файла -rwxrw-r-- ... file.class символы 111110100 биты |<- 111 = 4+2+1 = 7 |<- 110 = 4+2+0 = 6 -> 764 права в числовом виде |<- 100 = 4+0+0 = 4
Символы (-rwxrw-r--) на самом деле обозначают биты (111110100). Три группы по три бита можно преобразовать в трехзначное число (764), которым обозначают права в числовом виде (абсолютный способ укащания прав доступа).
Наиболее популярные права доступа:
ls -l -rwxr-xr-x 1 root root 1150 Mar 25 22:43 file.class | | | ---------------------есть право на выполнение файла chmod -x file.class отобрать право (-x) ls -l -rw-r--r-- 1 root root 1150 Mar 25 22:43 file.class | | | ---------------------нет прав на выполнение файла chmod +x file.class вернуть право (+x)
Иногда символьный метод использовать проще. Например, изменение прав у всех сразу.