Навигация в терминале linux (pwd, cd, ls)

ls Linux

Одно дело знать, где мы находимся. Другое дело знать содержание. Команда для этой задачи — ls . Это сокращение для списка.

В то время как pwd просто запускается без аргументов, ls гораздо мощнее. Мы запустили его здесь без аргументов, и в этом случае он просто отобразит наше текущее местоположение. Однако мы можем сделать больше с Ls.

Схема использования:

ls

В приведенном выше примере квадратные скобки ([]) означают, что эти элементы являются необязательными, мы можем запустить команду с ними или без них. В терминале ниже я запустил ls несколькими различными способами для демонстрации.

Давайте разберемся с этим:

Строка 1 — Мы запустили ls в самой простой форме. В нем перечислены содержимое нашего текущего каталога.

Строка 2 — Мы запустили ls с одним параметром командной строки (-l), который указывает, что мы собираемся сделать длинный список.

Строка 3 — мы запустили ls с аргументом командной строки (/etc). Когда мы делаем это, он говорит ls не перечислять наш текущий каталог, а вместо этого перечислять содержимое этих каталогов.

Строка 4 — Мы запустили ls с параметром командной строки и аргументом. Как таковой он сделал длинный список каталога / и т.д.

Ссылки на файл в Linux

Большинство пользователей компьютеров хотя бы раз сталкивались с работой в платформе Windows. Там указателями на файлы выступают ярлыки. После обращения к такому объекту происходит автоматическое перенаправление на оригинальный файл. В Linux это выполняют специальные ссылки, создающиеся юзером вручную. Было разработано два типа таких элементов — символические и жесткие. Они имеют значительные отличия, поэтому стоит рассмотреть каждый тип более детально.

Символические ссылки

Символическая ссылка — файл определенного типа, который выступает в роли линка на другой объект — файл любого формата или определенный каталог. Обычно такие объекты называют целевыми. Иногда вы можете заметить, что такой тип ссылок называют soft links или sym-link. Такой элемент не содержит в себе данных цели, а лишь выступает указателем, то есть является полной копией ярлыка из Виндовс. Внутри symbolic link находится только путь. Никто не запрещает вам создать множество подобных линков с разными именами, но одним и тем же целевым объектом. Связь между двумя составляющими называется мягкой, поскольку при удалении ссылки целевой файл никаким образом не страдает. Однако при удалении файла ссылка становится нерабочей. Она сохраняется на диске, но указанный в ней путь ведет уже к несуществующему объекту.

На изображении выше вы видите схематическое представление работы такой цепи. Ссылка обращается к файлу, а тот уже предоставляет доступ к хранящимся в нем данным

Важно понимать, что эту ссылку можно перемещать в любое место на компьютере, от этого не зависит ее работоспособность, ведь она будет переходить по тому же пути, который был указан при создании

Жесткие ссылки

С жесткими ссылками дела обстоят немного сложнее. Они, по сути, синонимы файла, но при этом не его копии. При создании жесткой ссылки будет сгенерирован еще один указатель на элемент. В файловой системе такие объекты определяются как еще один файл, поэтому при создании их в одной и той же директории с целью нельзя указывать одинаковое с ней имя. Все жесткие линки на файл должны находиться в одной ФС и не могут быть присвоены каталогу или несуществующему элементу. На скриншоте ниже вы видите схематическое взаимодействие такой цепи.

Важно отметить, что линк будет иметь точно такой же идентификатор (inode), как и целевой файл. Как известно, у всех объектов свои уникальные номера

Из-за этого между ними будет различие только в именах. Все права, владелец и даты изменений сохраняются. Можно сказать, что жесткая ссылка — еще одно название для объекта. При удалении целевого файла линк все равно будет хранить информацию, которая находилась в нем, поскольку на содержимое остается еще один указатель.

Как запустить скрипт в Linux

Мы уже говорили, что программы делятся на бинарные и интерпретируемые. Раньше мы говорили только про бинарные программы. Для запуска интерпретируемых нужен непосредственно интерпретатор, к таким программам относятся написанные на таких языках, как Java, Python, Perl, Ruby, PHP, NodeJS и многих других. Синтаксис запуска такой программы отличается:

интерпретатор /путь/к/файлу/программы параметры

Разные интерпретаторы ведут себя по разному, поэтому лучше сразу указывать полный путь к программе. Python обычно подхватывает скрипты из текущей папки без указания полного пути:

А Java программы нужно запускать так:

Для файлов интерпретируемых программ флаг исполняемости необязательный, поскольку они передаются в виде параметра основной программе. Только Bash скрипты составляют исключение. Вы можете запустить скрипт интерпретатором:

Или же просто набрать путь к скрипту:

Оболочка сама определяет свои скрипты по флагу исполняемости и выполняет их. Если флаг исполняемости не установлен, то его стоит добавить:

Поэтому то и для большинства интерпретируемых программ созданы простые sh скрипты которыми их можно быстро запустить.

Прочее

Это бонус для развлечения. Шутка от разработчиков Linux, не несущая пользы.

cowsay — заставляет цифровую корову повторить текст, который вы ей передали. Как echo, только от лица коровы.

fortune | cowsay — награждает корову философским интеллектом и дает ей возможность делиться с вами умными цитатами.

cowsay -l — демонстрирует всех животных, которые могут с вами пообщаться в том случае, если вам почему-то не приглянулась корова.

sudo название менеджера пакетов install fortunes fortune-mod fortunes-min fortunes-ru — учит животных говорить на русском.

Здесь, пожалуй, и остановимся. Ключевые SSH-команды сервера мы рассмотрели. Их хватит для навигации и выполнения базовых операций. Остальное уже на ваших плечах и полностью зависит от проекта, над которым вы работаете.

Работа с текстом

Парочка полезных команд для взаимодействия с любыми видами текстов на сервере через SSH.

cat — показывает текст из выбранного файла. В качестве аргумента передаем этой утилите текстовый документ, и cat выведет в консоль его содержимое. Синтаксис:

cat путь до файла, содержимое которого надо осмотреть

Чтобы взглянуть на содержимое файла timeweb.txt, который лежит на рабочем столе, напишем в терминал:

cat ~/Desktop/timeweb.txt

head — это «голова». Она работает по схожему с cat принципу. Отображает текст из файлов, где он имеется. Разница заключается в количестве отображаемого контента. Пользователь сам выбирает, сколько строчек текста вывести на экран, поставив аргумент -n. Команда head -n 4 ~/Documents/timeweb.txt покажет только первые четыре строки документа timeweb.txt из папки Documents.

tail — это «хвост». Работает, как head, но с противоположной стороны. Команда tail -n 8 ~/Documents/timeweb.txt покажет только первые восемь строк документа timeweb.txt из папки Documents.

touch — одна из множества команд для SSH, которую используют не по назначению. У нее весьма специфичная задача по изменению времени последнего открытия отдельных элементов файловой системы. Но ее быстро перепрофилировали чуть ли не в стандартный метод создания файлов. touch ~/Desktop/timeweb.html создаст HTML-документ с именем Timeweb на рабочем столе.

vi — используя с дополнительными аргументами, можно создавать новые текстовые файлы. Например vi /путь до директории, где нужно создать новый текстовый файл/. Или же редактировать уже существующие. Чтобы изменить содержимое какого-нибудь файла в домашней папке, надо ввести: vi /home/имя учетной записи/kakoy-to-tekstoviy-file.txt. Альтернативой vi может служить nano. Более современный и лояльный к новичкам редактор. К сожалению, может отсутствовать в системе по умолчанию и требовать установки.

wc путь до файла — показывает количество символов, количество строк и слов в выбранном текстовом документе.

grep — ищет конкретный кусочек текста в большом документе или распечатке из консоли. Чтобы дать понять, как он работает, покажу пример. Буду искать слово «немного» в файле timeweb.txt, лежащем у меня на рабочем столе. Сделаю это одной командой cat ~/Desktop/timeweb.txt | grep немного. Перед grep я использовал cat, чтобы вывести содержимое документа в консоль, а потом отфильтровать.

diff — сравнивает два файла и наглядно показывает строки, в которых обнаружились различия. Синтаксис: diff название первого файла название второго файла. Это может выглядеть так:

diff timeweb-1.html timeweb-2.html

Создание, перемещение и удаление

Используйте команду mkdir для создания директории. Не забудьте указать имя:

mkdir dir1

Новая директория будет создана в той директории, где вы находитесь в данный момент, но вы также можете прописать какой-то другой путь для создания новой директории:

mkdir /home/users/dir1

Для создания файла вам нужно ввести команду touch и название будущего файла:

touch file1

В этом случае прописать путь, где нужно создать файл, тоже возможно:

touch /home/users/dir1/file1

Для перемещения директорий и файлов используется команда mv, после которой вы пишете название директории или файла, который хотите переместить, а затем место, куда хотите переместить:

mv file2 /home/users/dir2

mv dir1 /home/users/dir3

Обратите внимание, что команда mv также используется для переименования, поэтому если при отсутствии директории dir2 вы напишете такую команду:

mv dir1 dir2

то директория dir1 будет переименована в директорию dir2. Этот пример справедлив и для файлов, которым вы можете давать другие названия при помощи команды mv.

Для удаления файлов следует использовать команду rm, а для удаления директорий rmdir. Если вы хотите удалить каталог, используйте команду rm с ключами -rf:

rm -rf /home/users/

Еще одно действие, которое вы можете использовать, — это копирование при помощи команды cp. Синтаксис у этой команды такой же, как и у предыдущих, — вы просто пишете, что и куда хотите скопировать. Для копирования директории обязательно нужно использовать ключ -r, при этом если конечная директория (dir2) не существует, то она будет создана при копировании:

cp -r dir1 dir2

Получение информации о команде

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

У большинства команд есть опция , которая выводит короткое сообщение о том, как использовать команду, и завершает работу:

Команда

Почти все команды Linux распространяются вместе со страницами руководства. Справочная или справочная страница — это форма документации, в которой объясняется, что делает команда, примеры того, как вы запускаете команду, и какие аргументы она принимает.

Команда используется для отображения справочной страницы данной команды.

Например, чтобы открыть справочную страницу команды , введите:

Для навигации по страницам руководства используйте клавиши со , и . Вы также можете нажать для перемещения на одну строку за один раз, то бар , чтобы перейти к следующему экрану, и кнопку для перехода на один экран назад. Чтобы закрыть страницу руководства, нажмите клавишу .

FTP соединение

FTP клиент входит в большинство дистрибутивов Linux. Начнем с запуска программы и ftp соединением и, конечно, рассмотрим основные команды для скачивания с фтп-сервера и загрузки на фтп, создание директорий, удаление файлов и т.п. В этой статье опишем лишь основные команды, а в конце статьи приведем хелп и мануал из консоли — Вы всегда можете узнать о назначении команды и ее синтаксисе, а также обо всех доступных командах на конкретном ftp-сервере.

Для начала фтп соединения достаточно ввести команду ftp <сервер> например:

После нажатия клавиши enter вывод команды будет следующим:

Другой способ для соединения — это запуск ftp из консоли, а после этого соединение с ftp-сервером с помощью команды open:

Кроме того, возможно соединиться и по ip:

Или с таким обращением ftp user@ftp.site.com, то есть:

Далее необходимо ввести логин и пароль ftp-соединения.

После успешной авторизации будет сообщение такого вида:

Из сообщения видно, что для передачи файлов используется двоичный (бинарный) тип передачи. Двоичный режим передачи файлов — это передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только текстовых файлов. Вы можете вводить команды ascii или binary для переключения между режимами передачи. Бинарный режим (binary) необходимо использовать для всех нетекстовых типов файлов — изображения, архивы, программы и т.д.

Основные команды PuTTY

Как говорилось ранее, для использования удаленного компьютера нам необходимо вводить различный набор команд. Их огромное множество, но для первоначального изучения достаточно знать лишь их небольшую часть. 

ls — предназначена для вывода файлов, содержит в себе набор команд:

  • ls -la — выводит различные документы и показывает права доступа, включая имя создателя и владельца;
  • ls -lha — также выводит файлы, но показывает размер файла в байтах;
  • ls -lha | less — используется для постраничного просмотра документов.

cd — необходима для перемещения между директориями, например, cd перенаправляет пользователя в указанную папку, cd../ перемещает в верхний уровень, cd ~ открывает корневую папку.

echo — позволяет перемещать текст в файл. Например, если нам требуется создать новый текстовый документ или добавить текст в уже созданный файл, достаточно ввести «echo Привет, мир! >> new.txt».

sudo — наиболее используемая команда, означающая «SuperUser Do». Она позволяет выполнять любые команды от имени администратора.

df — дает возможность увидеть доступное дисковое пространство в каждом из разделов операционной системы. Синтаксис: df .

mv — используются для переименования файлов и перемещения их в другую директорию. Синтаксис: mv .

rm — если нужно удалить файлы или директорию целиком, то используйте эту команду. Синтаксис: rm .

cp — для копирования файлов и целых директорий воспользуйтесь этой строчкой. Синтаксис: cp .

mc — предназначена для запуска файлового менеджера Midnight Commander, который позволяет работать с файлами по FTP внутри консольного окна.

cat — наиболее популярная команда в Linux, позволяющая считывать данные из файлов и выводить их содержимое. Наиболее простой способ отображения содержимого в командной строке. Синтаксис: cat .

mkdir — позволяет создать одну или несколько директорий с указанным именем. Например, mkdir mdir1 mdir2 mdir3 добавит сразу 3 директории.

chmod — изменяет права доступа к файлам и каталогам. Синтаксис: chmod .

pwd — при первом запуске терминала мы оказываемся в домашнем каталоге пользователя. Если вдруг каталог был изменен, то проверить это можно с помощью данной команды.

touch — используется для создания любого типа файлов: от пустого txt до пустого zip. Синтаксис: touch .

man и —help — нужны для того, чтобы узнать информацию о команде и о том, как ее можно использовать (man). Например, «man cat» покажет доступную информацию о команде cat. Ввод имени команды и аргумента помогает показать, каким образом можно использовать команду, например, cd –help.

locate — предназначена для поиска файла в системе Linux.

Это была лишь небольшая часть команд, которые можно использовать при подключении по SSH. Если вы только начинаете изучать основы администрирования серверов, то этого списка будет достаточно.

Навигация по файловой системе

В Linux каждый файл и каталог находится в корневом каталоге, первом или самом верхнем каталоге в дереве каталогов. Корневой каталог обозначается одинарной косой чертой .

При навигации по файловой системе при работе с файлами вы можете использовать абсолютный или относительный путь к ресурсу.

Абсолютный или полный путь начинается с системного корня , а относительный путь начинается с вашего текущего каталога.

Текущий рабочий каталог (команда )

Текущий рабочий каталог — это каталог, в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.

Используйте команду чтобы узнать, в каком каталоге вы сейчас находитесь:

Команда отображает путь к вашему текущему рабочему каталогу:

Смена каталога (команда )

Команды Linux окружения пользователя

29. su / sudo

Su и sudo — это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +»%j %V», выведет день в году и номер недели в формате ISO.

31. alias

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить. Здесь собрано несколько полезных алиасов.

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Право собственности на файлы и разрешения

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

В Linux каждый файл связан с владельцем и группой и имеет права доступа для трех разных классов пользователей:

  • Владелец файла.
  • Члены группы.
  • Все остальные.

К каждому классу применяются три типа разрешений:

  • Разрешение на чтение.
  • Разрешение на запись.
  • Разрешение на выполнение.

Эта концепция позволяет указать, какие пользователи могут читать файл, записывать в файл или выполнять файл.

Чтобы просмотреть владельца файла и разрешения, используйте команду .

Изменение разрешений (команда )

Команда позволяет вам изменять права доступа к файлу. Он работает в двух режимах: символьном и числовом.

При использовании числового режима вы можете установить разрешения для владельца, группы и всех остальных. Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:

  • (читать) = 4
  • (написать) = 2
  • (выполнить) = 1
  • нет разрешений = 0

Число разрешений для определенного класса пользователей представлено суммой значений разрешений для этой группы.

Например, чтобы предоставить владельцу файла разрешения на чтение и запись и только на чтение для членов группы и всех других пользователей, вы должны запустить:

Только root, владелец файла или пользователь с привилегиями sudo могут изменять права доступа к файлу.

Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте команду с параметром -R, (–recursive):

Будьте особенно осторожны при рекурсивном изменении разрешений файлов.

Смена владельца (команда )

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

Чтобы изменить владельца файла, используйте команду за которой следует имя пользователя нового владельца и целевой файл:

Для того, чтобы изменить владельца и группу файла, вызовите команду с последующим новым владельцем и группой , разделенных двоеточием ( ) без пробелов и целевого файла:

Используйте параметр ( ), чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге:

Повышение привилегий (команда )

Команда позволяет запускать программы от имени другого пользователя, по умолчанию root. Если вы проводите много времени в командной строке, — одна из команд, которую вы будете использовать довольно часто.

Использование вместо входа в систему с правами root более безопасно, поскольку вы можете предоставлять ограниченные административные привилегии отдельным пользователям, не зная их пароля root.

Чтобы использовать , просто добавьте к команде префикс :

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: