Как управлять файлами в терминале Linux и на рабочем столе

Шпаргалка популярных консольных команд для Linux.

ls — просмотр содержимого папки

Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:

  • Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
  • ls -R
  • Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
  • ls /home

Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:

ls — просмотр содержимого папки

ls -l /home/

2. cd — изменить папку

Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:

cd Desktop

Вы также можете указать полный путь к папке:

ls — просмотр содержимого папки

cd /usr/share/

Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:

cd ..

Вы также можете вернуться в предыдущую рабочую папку:

cd —

ls — просмотр содержимого папки

3. rm — удалить файлы

Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:

rm file

Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:

  1. rm /usr/share/file
  2. Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
  3. rm -r /home/user/photo/
  4. Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
ls — просмотр содержимого папки

4. rmdir — удалить папку

Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:

rmdir directory

Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.

5. mv — перемещение файлов

ls — просмотр содержимого папки

Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:

mv file newfile

Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/

mv file /home/user/tmp/

6. cp — копирование файлов

ls — просмотр содержимого папки

Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.

cp file newfile

Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:

cp -r /etc /etc_back

7. mkdir — создать папку

ls — просмотр содержимого папки
  • Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
  • mkdir test
  • Если нужно создать папку в другом каталоге, укажите полный путь к нему:
  • mkdir /home/user/test

8. ln — создание ссылок

  1. ln -s /home/user/Downloads/ /home/user/test/
  2. Для создания жесткой ссылки никаких опций задавать не нужно:
  3. ln /home/user/Downloads/ /home/user/test/
Читайте также:  Как обновить Айпад 2 до iOS 10 без компьютера: подробная инструкция

9. chmod — изменить права

chmod позволяет изменить права доступа к файлам. Например, chmod +x добавляет флаг исполняемости к файлу :

ls — просмотр содержимого папки
  • chmod +x  
  • Чтобы убрать флаг исполняемый используйте опцию -x:
  • chmod -x
  • Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.

10. touch — создать файл

  1. Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
  2. touch file
  3. Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.

11. mc

Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие.

ls — просмотр содержимого папки

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

Для установки mc в Ubuntu выполните:

  • sudo apt install mc
  • После завершения установки достаточно выполнить команду mc:
  • mc
  • Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
  • Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.

Выводы

В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в х!

ls — просмотр содержимого папки

Имена файлов

В большинстве файловых систем Linux длина имен файлов может составлять до 255 символов. Имена файлов могут содержать любые символы, за исключением сле­шей (/) и символа с нулевым кодом (\0). Но желательно использовать только буквы и цифры, а также символы точки (.), подчеркивания (_) и дефиса (-). Этот 65-сим­вольный набор, [-._a-zA-Z0-9], в SUSv3 называется портируемым набором символов для имен файлов.

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

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

Путевые имена

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

Читайте также:  Основные команды текстовой строки в linux

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

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

  • Абсолютное путевое имя начинается со слеша и указывает на местоположение файла относительно корневого каталога. Примеры абсолютного путевого имени для файлов, показанных на рис. 1: /home/mtk/.bashrc, /usr/include и / (путевое имя корневого каталога).
  • Относительное путевое имя указывает местоположение файла относительно рабочего каталога текущего запущенного процесса (см. ниже) и отличается от абсолютного путевого имени отсутствием начального слеша. На рис. 1 из каталога usr на файл types.h можно указать, используя относительное путевое имя include/sys/types.h, а из каталога avr доступ к файлу .bashrc можно получить с помощью относительного путевого имени ../mtk/.bashrc.

Как настроить обмен файлами между nix-машинами по сети.

В предыдущей статье о сетевом обмене файлами между windows-windows и windows-linux машинами, я обещался поведать любознательному читателю о способах переброски файлов в linux, и любых других nix-системах. Поскольку перед начинающими администраторами linux и unix(solaris, freebsd, aix, hp-ux) зачастую встает такой вопрос. Здесь рассмотренные основные способы, как это сделать.

Способ 1. Перекачка файла напрямую по ссх, командой из консоли.

Как пользоваться? Описано в мануале, да и в интернетах гуглится на раз.

для папок, с рекурсивным копированием всего содержимого лишь добавить опцию

Способ 2. Доступ к файловой системе через nautilus.

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

Посему, спешу вас обрадовать, что файловый менеджер nautilus поддерживает любые необходимые протоколы, будь то smb, ftp или sftp. Причем последний наиболее интересен тем, что нет надобности настраивать и каким то образом расшаривать нужные ресурсы.

Достаточно набирать в консоли sftp://IP-address , ввести логин и пароль и вуаля! мы в файловой системе nix-компьютера без всякого бубна и шаманства. Если же нет — значит в целевом хосте отсутствует демон sshd (ssh-сервер). Но в этом случае нам вообще по ssh на хост не попасть.

Admin

IT-cпециалист с высшим техническим образованием и 8-летним опытом системного администрирования. Подробней об авторе и контакты. Даю бесплатные консультации по информационным технологиям, работе компьютеров и других устройств, программ, сервисов и сайтов в интернете. Если вы не нашли нужную информацию, то задайте свой вопрос!

Источник

Действия

Команда find дает вам результаты поиска, а затем возможность выполнить действия над ними. Вот несколько предопределенных действий:

Действие Описание
-delete Удаляет файлы, соответствующие критериям поиска
-ls Показывает подробный вывод ls с размерами файлов и количеством inode
-print Показывает полный путь к соответствующим файлам. Это действие по умолчанию, если не указано другое действие.
-exec Выполняет следующую команду в каждой строке результатов поиска.

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

$ find . -empty -delete

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

Действие -exec является особенным. Это позволяет вам выполнить команду по вашему выбору в результатах поиска:

Читайте также:  Как удалить правило iptables

-exec command {} \;

где:

  • command — это команда, которую вы хотите выполнить для результатов поиска, например rm, mv или cp.
  • {} представляет результаты поиска.
  • Команда заканчивается точкой с запятой после обратной косой черты.

Итак, команду поиска и удаления всех пустых файлов можно записать так:

$ find . -empty -exec rm {} \;

Вот еще один пример использования действия -exec. Следующая команда копирует все .png изображения в каталог backup/images:

$ find . -name "*.png" -exec cp {} /backups/images \;

Немного чёрной магии

Помните, я говорил, что права задаются тремя числами? Для владельца, для группы и для остальных? Это не вся правда. Есть ещё одно число, которое творит настоящую чертовщину в мозгу неопытных пользователей. По умолчанию этот блок не затрагивается (как будто там стоит 0), но если указать явно, то вот что значит тот самый блок:

SUID (4000, “u+s”) – если этот бит назначен на исполняемом файле, то файл запустится от имени владельца файла (а не того пользователя, кто этот файл запустил).

Допустим, у нас есть скрипт, добавляющий новое правило в файрволл. Само-собой, операция требует повышенных прав (root) и обычный пользователь запустив такой скрипт получит отказ в доступе. Но если назначить скрипту SUID-бит и владелец скрипта будет root, то пользователь сможет его запускать от имени root соответственно. Это круто, но в то же время может быть опасно.

Если SUID назначен на каталог – то файл запустится от имени владельца каталога.

SGID (2000, “g+s”) – практически то же самое, только вместо владельца – берётся группа владельца.

Немного чёрной магии

Sticky (1000, “t”) – вот тут начинается самая жесть. Если у нас есть каталог, на котором установлен t-бит, то удалить из этого каталога файлы может только владелец, несмотря на то, что на каталоге может стоять право 777.

Поясню. Допустим, у нас есть каталог /tmp. В него может писать кто угодно. Сделаем там права 777 – т.е. полная помойка. Но вам бы не хотелось, чтобы я мог удалять ваши файлы? А мне бы не хотелось, чтобы вы удаляли мои. Поэтому на каталог вешаем бит “t” и всё. Сохранять в каталог могут все, а удалять – только своё.

Установка Sticky-бита на файл не имеет смысла сейчас, современные версии ОС его игнорируют. Раньше он использовался для запрета выгрузки файла из памяти.

Вам так же понравится: Владение файлами на FreeBSD Квесты админа: #2. Права пользователей в Linux Как расшарить папку в Linux? Файлы с настройками сети в Red Hat Linux Сетевая файловая система NFS в Linux Прокачиваем наш SVN-сервер

Сделать каталоги в терминале с помощью mkdir

Создать новый каталог в Терминале также очень просто, благодаря команде mkdir (которую вы, вероятно, догадались, сокращает термин «make directory»).

mkdir newdirectory

… создаст новый каталог с таким именем в текущем местоположении.

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

mkdir /home/mydirectory/newdirectory

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