Базовые команды Linux
mkdir — создание директорий
mkdir [OPTION] DIRECTORY
Создать ДИРЕКТОРИЮ(ии), если они не существуют.
Обязательные аргументы для длинных опций также обязательны для коротких.
-m, —mode=MODE — устанавливает права доступа (как в chmod), а не как umask (rwxrwxrwx)
-p, —parents — устанавливает родительские каталоги. Создает родительские директории, если необходимо.
-v, —verbose — выводит сообщение для каждой созданной директории
—help — выводит подсказку
—version — выводит информацию о версии утилиты
cd — сменить директорию
Используйте cd чтобы переходить по директориям. Наберите cd с последующим указанием имени директории, чтобы перейти в эту директорию. Помните, что вы всегда находитесь в какой-то директории и можете перемещаться по директориям иерархически вверх или вниз.
mv — изменить имя директории
Наберите mv с последующим указанием имени директории и её нового имени.
Пример: mv testdir newnamedir
pwd — вывести имя директории в которой вы сейчас находитесь
Покажет вам полный путь к директории в которой вы сейчас находитесь. Очень полезная команда 🙂
rmdir — удаляет существующую директорию
rm -r, удаляет директории и файлы внутри директории рекурсивно (то есть вместе с поддиректориями). Чтобы система не запрашивала подтверждение удаления каждого файла, добавьте параметры -f.
chown — меняет владельца и группу файла.
chown [OPTION] OWNER[:[GROUP]] FILE
chown [OPTION] :GROUP FILE
chown [OPTION] —reference=RFILE FILE
Изменяет владельца и/или группу каждого файла на указанных владельца и/или группу (OWNER и GROUP). С параметром —reference, меняет владельца и группу каждого файла на таких же, как у указанного файла (RFILE).
-c, —change — выводит дополнительную информацию как verbose, но только после того как изменения уже сделаны,
—dereference — изменяет файл, на который указывает символьная ссылка, а не саму ссылку (по умолчанию)
-h, —no-dereference — изменяет каждую символьную ссылку вместо вместо файлов, на которые они указывают (полезно только в системах, которые могут менять владельца символьной ссылки)
—from=CURRENT_OWNER:CURRENT_GROUP — меняет владельца и/или группу каждого файла только если их текущий владелец и/или группа удовлетворяют тем, которые указаны в параметре. Как группа, так и владелец могут быть опущены, в этом случае совпадение для данного атрибута не обязательно.
—no-preserve-root — не обрабатывать ‘/’ особо (по умолчанию)
—preserve-root — отказываться рекурсивно обрабатывать ‘/’
-f, —silent, —quiet — не выводить большинство сообщений об ошибках
—reference=RFILE использовать владельца и группу указанного файла (RFILE), вместо того чтобы указывать значения Владелец:Группа
-R, -recursive — обрабатывать файлы и директории рекурсивно
-v, —verbose — выводить информацию по каждому обработанному файлу
Следующие опции управляют тем, как проходится иерархия директорий, когда указан параметр -R. Если несколько опций указано, то сработает только последняя.
-H — если аргумент командной строки является символьной ссылкой на директорию, то пройти по ней
-L — перейти по каждой символьной ссылке на директорию
-P — не переходить по символьным ссылкам (по умолчанию)
chmod — изменение прав доступа к файлам
chmod [-R] permissions filenames
-R — меняет права на файлы, которые находятся в поддиректориях той директории, в которой вы сейчас находитесь (то есть меняет права рекурсивно).
permissions — указывает права, которые будут выданы. Ниже можно найти различные наборы прав, которые могут быть выданы в буквенном и цифровом виде.
filenames — файл или директория, для которой происходит смена прав.
Права в буквенном виде задаются строкой типа [ugoa] [rwx], где первый набор символов указывает для кого меняются права, а второй набор — собственно набор прав:
u — пользователь, владеющий файлом,
g — группа, которая владеет файлом,
o — остальные,
a — все,
r — читать файл,
w — писать в файл или править его,
x — запускать или исполнять файл как программу.
Права в числовом виде:
400 — чтение владельцем
040 — чтение группой
004 — чтение кем угодно (прочими)
200 — запись владельцем
020 — запись группой
002 — запись кем угодно (прочими)
100 — запуск владельцем
010 — запуск группой
001 — запуск кем угодно (прочими)
Возможно их сумма, к примеру: 777 — права на чтение, запись и исполнение для владельца, группы и всех остальных, 774 — владелец и группа могут читать, записывать в файл и исполнять его, а все остальные только читать файл.
ls — краткий список содержимого директории
-a, —all — показывать скрытые файлы
-d, —directory — выводить имя текущей директории
-F, —classify — в списке помечать директории значком ‘/’, а исполняемые файлы значком ‘*’
-g — показывать группу файла (но не владельца) в расширенном выводе
-i, —inode — выводить индекс каждого файла
-l — расширенный вывод, показывающий детали о файлах и директориях
-R, —recursive — выводить все найденные поддиректории (рекурсивный вывод)
-t — сортировка по дате изменения, вместо сортировки по имени
cp — копирование файлов
cp myfile yourfile
Скопировать файл «myfile» в файл «yourfile» в текущей рабочей директории. Эта команда создает файл «yourfile», если он не существует. По умолчанию, файл перезаписывается если он существует.
Когда установлен параметр «-i», если файл «yourfile» существует, система выдаст запрос перед тем, как его перезаписать.
cp -i /data/myfile
Копирует файл «/data/myfile» в текущую рабочую директорию и называет его «myfile». Выдаст запрос прежде чем перезаписать файл.
cp -dpr srcdir destdir
Копирует все файлы из директории «srcdir» в директорию «destdir» сохраняя ссылки (-d option), атрибуты файлов (-p option) и копируя рекурсивно (-r option). С этими опциями, вся директория и всё её содержимое могут быть скопированы в другую директорию.
ln — создает символьную ссылку на файл.
ln -s test symlink
Создает символьную ссылку с именем «symlink», которая ведет на файл «test». Команда «ls -i test symlink» покажет два файла отличающиеся значениями индексов (inode). Команда «ls -l test symlink» покажет, что симлинк указывает на файл «test».
locate — быстрый поиск файлов на основе базы данных.
updatedb
Эта команда создает базу данных mlocate. Потребуется некоторое время для выполнения этой команды. Она должна выполняться перед поиском файлов, однако cron выполняет эту команду периодически на большинстве систем.
locate whereis
Выведет все файлы (директории), чьи имена содержат строку «whereis».
more — позволяет организовать постраничный вывод на экран содержимого файла или результата работы команды.
less — организует построчный вывод.
Например: ls —help | less
cat — отправляет содержимое файла на стандартный выход. Это способ вывести содержимое короткого файла на экран. Отлично работает с перенаправлением.
whereis — сообщает все известные экземпляры команды.
wc — печатает число переводов строк, слов и байт для заданного файла.
bg jobs
Переводит текущую задачу (или, используя альтернативную форму, указанные задачи) в фоновое состояние, приостанавливая её выполнение так, что новое приглашение командной строки появляется незамедлительно. Используйте команду jobs чтобы выяснить идентификаторы фоновых задач.
cal month year — выводит календарь для указанного месяца указанного года.
cat files — выводит содержимое указанных файлов.
clear — очищает экран терминала.
cmp file1 file2 — сравнивает два файла, сообщая об отличиях. Похожа на команду diff, но отличается формат вывода.
diff file1 file2 — сравнивает два файла, сообщая об отличиях. Похожа на команду cmp, но отличается формат вывода.
dmesg — выводит сообщения, полученные в ходе последней загрузки системы.
fg jobs — выводит текущую задачу (или указанные задачи) на передний план.
file files — определяет и выводит описание типа каждого указанного файла.
find path -name pattern -print
Ищет по указанному пути файлы с именами удовлетворяющими указанному паттерну (обычно заключенному в одинарные кавычки) и выводит их имена. Команда «find» имеет много других аргументов и функций, используйте «man find».
free — выводит информацию о количестве использованной и свободной системной памяти.
ftp hostname — открывает соединение на указанный хост, разрешая передачу файлов. Программа ftp предоставляет подкоманды для организации передачи файлов, смотри документацию в интернете.
head files — выводит на экран первые несколько строк каждого указанного файла.
ispell files — проверяет орфографию указанных файлов.
kill process_ids
kill -l — убивает указанные процессы, посылает указанным процессам указанные сигналы (в виде номера или имени) или выводит список доступных сигналов.
killall program
Убивает все процессы, которые являются экземплярами указанной программы или отправляет указанный сигнал всем процессам, являющимся экземплярами указанной программы.
mail — запускает простой почтовый клиент, который позволяет отправлять и получать почтовые сообщения.
man section title — выводит заданную страницу системы помощи man.
ping host — отправляет эхо-запрос с помощью TCP/IP на указанный хост. Ответ на запрос подтверждает, что хост в рабочем состоянии.
reboot — перезагружает систему (требуются привилегии суперпользователя).
shutdown minutes
Выключает систему через указанное количество минут (требуются привилегии суперпользователя). Опция «-r» заставляет систему перезагрузиться вместо выключения.
sleep time — заставляет командный интерпретатор приостановить работу на заданное количество секунд.
sort files — сортирует указанные файлы. Команда имеет много полезных аргументов. Смотри документацию в интернете.
split file — делит файл на несколько меньших файлов. Команда имеет много полезных аргументов. Смотри документацию в интернете.
sync — завершает все ожидающие операции ввода/вывода (требуются привилегии суперпользователя).
telnet host — открывает сессию доступа к указанному хосту.
top — выводит информацию о системных процессах, которая постоянно обновляется до тех пор, пока пользователь не нажмет клавишу «q».
traceroute host — использует эхо-запросы для определения и вывода сетевого пути до хоста.
uptime — выводит информацию о том, сколько времени прошло с последней перезагрузки.
w — выводит список пользователей, подключенных к системе в данный момент.
wall — выводит сообщение набранное с клавиатуры каждому пользователю, исключая тех, которые отключили возможность получения сообщений. Нажмите Ctrl-D в конце сообщения. Также возможна отправка содержимого файла.
Источник
Основной синтаксис командной строки Linux
Основой интерфейса командной строки UNIX является командный интерпретатор (КИ), являющийся первой и главной программой, запускаемой в сеансе пользователя.
Двусторонний попеременный диалог с командным интерпретатором начинается с приглашения, в ответ на которое пользователь вводит команду, отправляя ее на выполнение управляющим символом LF 0х0А, получает результат ее исполнения на терминале и новое приглашение, сигнализирующее о готовности КИ к исполнению очередной команды.
$ command -х [-у] -z optarg < — l | —long-option>arg1 arg2 . . .
Многие другие диалоговые программы, например lftp, так же будут придерживаться синтаксиса и соглашений, принятых в языке командного интерпретатора.
Базовый синтаксис (подчиняющийся второй части стандарта W: [POSIX]) языка любого командного интерпретатора на самом деле достаточно прост и напоминает язык, близкий к естественному.
Например, rm -f -R Изображения Музыка переводится на человеческий как «удалить (rm) без шума и пыли (-f) и со всеми потрохами (-R) каталоги Изображения и Музыка».
Принято говорить, что команда состоит из лексем (лексических элементов), разделенных пробельными символами — пробелами SP 0x20 и табуляциями HT 0x09 — в любом количестве и сочетании.
Первая лексема — это название команды, за которой следуют ее параметры: сначала опции (они же — ключи, они же — модификаторы) без аргументов (-х [-у]) и (—long-option) или с аргументами (optarg ), а в конце— аргументы ( arg1 arg2) самой команды.
Название команды — это глагол, указывающий ЧТО делать; опции — это наречия и прочие части речи, объясняющие КАК это делать; и наконец, аргументы задают то, с ЧЕМ это делать. В разнообразной документации при описании синтаксиса команды, ее опций и аргументов принято использовать квадратные скобки для указания необязательности опции или аргумента, фигурные скобки и вертикальную черту для указания выбора из вариантов и многоточие для указания повторяемости.
Получив команду, интерпретатор определяет, является ли она псевдонимом, встроенной в интерпретатор, или реализуется внешней программой, подлежащей запуску.
Утилиты which и type
date является /bin/date
ls является алиасом для ‘ls —color=auto’
ls является /bin/ls
pwd встроена в оболочку
pwd является /bin/pwd
which является /usr/bin/which
type встроена в оболочку
При наличии нескольких вариантов команды наивысший приоритет имеют псевдонимы, наименьший — внешние команды. Подстановку псевдонимов можно увидеть, включив трассировку выполнения команд интерпретатора при помощи команды set.
Подстановка псевдонимов
Is является алиасом для ‘ls —color=auto’
+ ls —color=auto -ASs
итого 36
12 examples.desktop 4 .bashrc 4 .profile 4 .lesshst
4 .cache 4 .bash_history 4 .bash_logout
В примере с командой m лексема -R означает опцию, требующую выполнить рекурсию (recursion), но не аргумент — объект, подлежащий удалению. В примере с командой m лексема -R означает опцию, требующую выполнить рекурсию (recursion), но не аргумент — объект, подлежащий удалению.
Опции командной строки
В истории развития операционной системы UNIX программы использовали разные способы задания своих опций:
♦ односимвольные, например ls -а -l (что эквивалентно ls -l -а или ls -al или ls -la);
♦ многосимвольные, например find /var -xdev;
♦ длинные, например ps —help;
♦ с аргументами, например kill -n 15 1, или kill -n15 1, или du -В M, или du -BM,
или find /etc -type d, или даже ls —sort=slze;
♦ «нестандартные», например set +x, tar czf tar.tgz
или dd if=/dev/dvd of=dvd.iso.
Знак «минус», предваряющий опции, естественно используется для того, чтобы отличать их от аргументов. Среди прочих, он был выбран потому, что редко встречается как первый символ в аргументах команд (в качестве которых зачастую выступают имена файлов).
И еще потому, что на терминале классической UNIX набор более логичного знака «плюс» (что могло бы означать «включить»,«активировать») требовал достаточных усилий по нажатию клавиши SHIFT. В результате получилось, что, например, в команде set опция х (execution trace) в форме -х включает, а +х выключает трассировку выполнения команд.
В тех редких случаях, когда аргумент команды все же начинается с символа «минус» и тем самым похож на опцию (представим, что нужно выполнить действие над файлом с именем -=filenames=-), специальная опция — сигнализирует о конце списка опций, за которым следуют лексемы, обязанные расцениваться как аргументы, вне зависимости от их написания.
Конец списка опций
stat: неверный ключ — «=»
Попробуйте «stat —help» для получения более подробного описания.
Файл: «-=filename=-»
Размер: 0 Блоков: 0 Блок B/B: 4096 пустой обычный файл
Устройство: fc00h/64512d Inode: 26870044 Ссылки: 1
Доступ: (0600/-rw -) Uid: ( 1000/ john) Gid: ( 1000/ john)
Доступ: 2018-08-24 01:37:21.574640275 +0300
Модифицирован: 2018-08-24 01:37:21.574640275 +0300
Изменён: 2018-08-24 01:37:21.574640275 +0300
Короткие, односимвольные опции (например -l -а) без своих аргументов издревле можно было объединять в группы (-lа или -al), однако их в этом случае сложно отличать от многосимвольных (-xdev) или односимвольных, склеенных со своими аргументами (-ВМ).
Поэтому позже появились длинные (в так называемом GNU-стиле) опции, обозначаемые двумя знаками «минус», позволяющие навести некоторый порядок в виде —block-size=M вместо -ВМ или, предположим,
—dont-descent вместо -xdev.
Командный интерфейс Linux
Командный интерфейс Linux, каким бы «страшным» не казался, в реальности удивительно функционален для решения массы разнообразных задач, хотя он и не решает абсолютно все задачи одинаково эффективно. Например, его невероятно сложно и неудобно использовать для обработки графической информации, когда при взаимодействии с пользователем требуется ввести колоссальное количество «графических» данных, например, указать обтравочный контур. В этом случае графический интерфейс с «непосредственным» манипулированием подойдет гораздо лучше.
Для начинающего пользователя интерфейс командной строки действительно является непривычным, что зачастую путают с неудобством, так толком и не разобравшись со всеми его возможностями.
Естественные языки, которые используют люди для взаимодействия между собой, на порядок сложнее формального командного языка операционной системы. Однако использование глаголов (команд), существительных (аргументов) и наречий (опций) родного языка мало у кого вызывает чувство неудобства. Наоборот, странным покажется тот человеческий индивидуум, который попытается в обществе использовать непосредственное манипулирование, например, указывая (щелкая) пальцем в магазине на товары (значки) и мыча что-то нечленораздельное. Скорее всего, мы примем его за иностранца (или это будет ребенок), еще не в полной мере владеющего языком.
Именно командный интерфейс в современном виде — аудиоформе — больше не является уделом художественных фантастических произведений, где капитаны межгалактических кораблей командуют кораблям «включить защитное поле». Теперь мы все можем при помощи командного аудиоинтерфейса смартфона найти ближайшую пиццерию или маршрут к нужному месту. Надеюсь, что и алфавитно-цифровая форма командного интерфейса, доставшаяся «в наследство» от UNIX из 70-х годов прошлого века, вас тоже не особо испугает. Ok, Google?
Источник