Командная​ ​строка​ ​Ubuntu: ​команды​ ​bash

Как правило, для управления Unix\Linux веб-сервером, используют бесплатную программу PuTTY, которая через защищенный SSH-протокол передает команду, которая распознается и выполняется сервером. Как подключиться к серверу и передавать команды через командную строку читайте здесь. А мы далее приводим большую часть команд, в зависимости от их направленности.

Эта команда предназначена для удаления объектов. Из всех рассмотренных в нашем курсе команд она наиболее опасна. Файлы удаляются навсегда и в обход Корзины. Восстановить их весьма проблематично. Именно поэтому всегда дважды (а то и трижды) проверяйте введённые вместе с командой rm параметры и аргументы!

Синтаксис у неё ещё проще:

rm -(параметры) (путь к удаляемому объекту)

А вот её параметры:

  • rm -f форсирует удаление без предупреждений
  • rm -i запрашивает подтверждение на стирание каждого объекта
  • rm -v удаляет объекты в подробном режиме

Обратите внимание, что rm, как и cp, не умеет по умолчанию удалять директории. В связи с этим для неё актуален параметр -R (или -r).

Есть у rm и ещё один занятный параметр для конфиденциальной информации:

rm -P

Заглавная P в числе параметров не просто удаляет файл, но и трижды перезаписывает место на диске, где он хранился, сводя вероятность восстановления данных к нулю.

Покажем ещё раз опасность команды rm. Допустим, вы хотели удалить папку Temp в корне диска:

rm -rf /Temp

и случайно опечатались, поставив пробел после слэша:

rm -rf / Temp

Так как у rm есть только один аргумент, она воспримет только то, что находится между параметрами -rf и следующим пробелом. А там у вас / — т.е. всё содержимое диска. А теперь подумайте, что ждёт ваш Мак, если вы выполните эту команду от имени корневого администратора (с приставкой sudo).

В связи с этим, старайтесь не использовать команду rm без параметра -i. Хоть это и нудно, зато обезопасит вас от многих роковых ошибок.

Операции с файлами

Команда Действие
ls показать список файлов и каталогов
ls -al показать все файлы на сервере (даже скрытые) + размер + владельца + права на фалы + дату изменения
cd директория перейти в указанную директорию;
cd перейти в домашний каталог
pwd показать текущую папку
mkdir директория создать папку «директория»
rm имя_файла удалить файл с именем имя_файла
rm -r диретория удалить папку «директория»
cp файл1 файл2 скопировать файл1 в файл2
cp -r папка1 папка2 скопировать папка1 в папка2
touch файл создать файл и с именем «файл»
cat > файл направить стандартный ввод в «файл»
more файл показать содержимое файл
head файл показывает первые 10 строк из файла
tail файл показывает последние 10 строк из файла

Как запустить консоль в Ubuntu

Как вы уже поняли, работа с командной строкой (Ubuntu cmd) выглядит следующим образом:

  1. Вызов командной строки Ubuntu.

  2. Ввод команды.

  3. Интерпретатор считывает команду и выполняет её.

Остановимся на первом шаге. Другое название командной строки — консоль (Ubuntu console) или Терминал. Чтобы его открыть, вы можете:

  • зайти в меню и ввести в поиск Терминал,

  • или нажать сочетание клавиш Ctrl+Alt+T.

После того как консоль откроется, вы можете приступать к вводу нужных команд. Bash список команд приведён ниже.

Обратите внимание, что вызвать командную строку в Linux можно таким же образом, как и в Ubuntu.

Синтаксис и опции команды rm

Команда «rm» имеет множество опций, что позволяет очень тонко управлять процессом удаления файлов. Вы можете изучить все доступные опции если введете в терминал Linux команду «man rm». Здесь же мы будем рассматривать самые простые и часто используемые опции.

Синтаксис команды «rm» выглядит следующим образом:

Синтаксис и опции команды rm

rm [опции] файлы

Разберем основные опции команды rm:

-f, —force Игнорировать несуществующие файлы и не требовать подтверждения перед удалением. -i Требовать подтверждения перед каждым удалением. -I Запрашивать подтверждение один раз перед удалением более трех файлов или при рекурсивном удалении. -r, -R, —recursive Рекурсивное удаление каталогов и их содержимого. -v, —verbose Вывод подробной информации о процессе. —help Вывод справочной информации о команде.

Теперь разберем некоторые опции, которые часто используются при удалении файлов в Linux через терминал. Например, очень часто возникает необходимость удалить папку вместе с всем содержимым. Для этого нужно использовать опцию «-r», которая включает рекурсивный обход папок. Например, для того чтобы удалить папку «folder1» и все ее содержимое нужно выполнить:

Синтаксис и опции команды rm

rm -r folder1/

Если права доступа к файлу разрешают только чтение, то в терминале Linux появится запрос подтверждения, и чтобы продолжить вам нужно будет ввести букву «y» (от англ. «yes»).

Чтобы избежать такой ситуации и удалять все файлы без предупреждения нужно использовать опцию «-f». Например:

rm -f

Синтаксис и опции команды rm

Не редко возникает необходимость удалить папку вместе со всеми файлами и без запросов на подтверждение. В этом случае нужно комбинировать опции «-r» и «-f». В результате команда выглядит вот так:

Читайте также:  10 правил выбора компании-аутсорсера бухгалтерских услуг

rm -rf folder1/

Если вы, наоборот, хотите каждый раз получать запрос подтверждения, то команду «rm» нужно выполнять с опцией «-i». Например, для того чтобы удалить все файлы в текущем каталоге с запросом подтверждения нужно выполнить:

rm -i *

Синтаксис и опции команды rm

Также бывает полезной опция «-v». При ее использовании в терминале будет появляться подробная информация о выполняемых действиях. Например, для того чтобы удалить все файлы в текущем каталоге и вывести информацию в терминал нужно выполнить:

rm -v *

Также вывод информации можно перенаправить в файл. Для этого после команды нужно использовать оператор перенаправления вывода (>) и указать название файла. Например:

rm -v * >

Синтаксис и опции команды rm

Естественно все эти опции можно комбинировать, в зависимости от ваших задач.

Управление печатью (CUPS)

  • lpstat – отображение статуса заданий, классов и принтеров
    • -a printer — отображение текущего статуса принтера printer
    • -c class — отображение текущего статуса класса class
    • -p printer — отображение текущего статуса принтера/очереди (включен или выключен) printer. Если не указан принтер, то отображается информация о всех принтерах.
    • -d — отображение текущих очередей печати.
  • lpr file — печать файла file на принтер по умолчанию (в новых версиях CUPS заменена на lp)
  • lpinfo — отображение доступных устройств принтеров и драйверов
  • lppasswd username — изменение пароля пользователя username в CUPS в файл /etc/cups/
    • -a username — добавление нового пользователя username
    • -x username — удаление пользователя username
  • lpoptions — управление настройками принтера и отображение настроек.
  • lpadmin — настройка CUPS принтеров и класссов
  • accept очередь — включение возможности принятия в очередь заданий
  • reject очередь — отключение возможности приема новых заданий в очередь
  • enable очередь — запуск очереди очередь
  • disable очередь — остановка очереди печати очередь
    • -с очередь — отмена обработки печати всех документов в очереди (аналог «очистить очередь»)
    • -r причина — указание причины очистки

Управление библиотеками с помощью make

Когда вы работаете над большими проектами, часто удобно управлять компиляцией нескольких программных единиц с помощью библиотеки. Библиотеки — это файлы, в соответствии с соглашением имеющие расширение a (archive) и содержащие коллекцию объектных файлов. Для работы с библиотеками у команды make есть специальная синтаксическая запись, которая существенно облегчает управление ими.

Синтаксическая запись lib(file.о) означает объектный файл file.o, хранящийся в библиотеке lib.а. У команды make есть встроенное правило для управления библиотеками, которое обычно эквивалентно приведенному далее фрагменту:

.с.а:

 $(CC) -с $(CFLAGS)

 $< $(AR) $(ARFLAGS) [email protected] $*.о

Макросы $(AR) и $(ARFLAGS) подразумевают команду ar и опции rv соответственно. Довольно краткая синтаксическая запись информирует команду make о том, что для включения файла .с в библиотеку .а следует применить два следующих правила:

Читайте также:  Как использовать историю Bash в терминале Linux или MacOS

□ первое правило говорит о том, что команда make должна откомпилировать исходный файл и сформировать объектный файл;

□ второе правило предписывает применить команду ar для модификации библиотеки, заключающейся в добавлении нового объектного файла.

Итак, если у вас есть библиотека fud, содержащая файл bas.o, в первом правиле $< заменяется именем bas.c. Во втором правиле [email protected] заменяется именем библиотеки fud.а и $* заменяется именем bas.

Выполните упражнение 9.4.

Упражнение 9.4. Управление библиотекой

Правила управления библиотеками очень просто применять на практике. В этом упражнении вы измените свое приложение, сохранив файлы 2.o и 3.o в библиотеке mylib.a. Make-файл потребует лишь нескольких изменений и его новый вариант Makefile5 будет выглядеть следующим образом:

all: myapp

# Какой компилятор

CC = gcc

# Куда установить

INSTDIR = /usr/local/bin

# Где хранятся файлы include

INCLUDE =

# Опции для разработки

CFLAGS = -g -Wall -ansi

# Опции для рабочей версии

# CFLAGS = -O -Wall -ansi

# Локальные библиотеки

MYLIB = mylib.a

myapp: main.o $(MYLIB)

 $(CC) -o myapp main.o $(MYLIB)

$(MYLIB): $(MYLIB)(2.o) $(MYLIB)(3.o)

main.o: main.c a.h

2.o: 2.c a.h b.h

3.o: 3.c b.h c.h

clean:

 -rm main.o 2.o 3.o $(MYLIB)

install: myapp

 @if [ -d $(INSTDIR) ]; \

 then \

  cp myapp $(INSTDIR);\

  chmod a+x $(INSTDIR)/myapp;\

  chmod og-w $(INSTDIR)/myapp;\

  echo «Installed in $(INSTDIR)»;\

 else \

  echo «Sorry, $(INSTDIR) does not exist»;\

 fi

Обратите внимание на то, как вы разрешили правилам по умолчанию выполнить большую часть работы. Теперь проверьте новую версию make-файла:

$ rm -f myapp *.o mylib.a

$ make -f Makefile5

gcc -g -Wall -ansi -с -o main.о main.c

gcc -g -Wall -ansi -с -o 2.о 2.c

ar rv mylib.a 2.o

a — 2.o

gcc -g -Wall -ansi -с -о 3.o 3.c

ar rv mylib.a 3.o

a — 3.о

gcc -o myapp main.о mylib.a

$ touch c.h

$ make -f Makefile5

gcc -g -Wall -ansi -с -о 3.o 3.c

ar rv mylib.a 3.o

r — 3.о

gcc -o myapp main.о mylib.a

Как это работает

Сначала вы удаляете все объектные файлы и библиотеку и разрешаете команде make создать файл myapp, что она и делает, откомпилировав и создав библиотеку перед тем, как компоновать файл main.о с библиотекой для создания исполняемого файла myapp. Далее вы тестируете зависимость для файла 3.o, которая информирует команду make о том, что, если меняется файл c.h, файл 3.c следует заново откомпилировать. Она делает это корректно, откомпилировав файл и обновив библиотеку перед перекомпоновкой, создающей новую версию исполняемого файла myapp.