С в linux работа с файлами: C: Работа с файлами — Linux FAQ

Содержание

Работа с файлами и каталогами в Linux – Vscale Community

 

В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.

  • сервер с Ubuntu 16.04

Все команды, описанные ниже, будут работать и в других дистрибутивах Linux.

При входе на сервер, вы, как правило, попадаете в домашний каталог вашей учетной записи, отведенный для хранения файлов и создания директорий.

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

pwd

Результат выполнения команды выглядит следующим образом:

/home/demo

Домашний каталог располагается после имени учетной записи пользователя, в приведенном примере он называется /demo. Этот каталог находится в каталоге с именем  /home и в каталоге верхнего уровня, который называется «root» или корневой каталог, поэтому представлен одной косой чертой «/».

Для просмотра содержимого каталога используется команда 

ls. Название этой команды является сокращением слов list files.

Просмотреть содержимое любой директории можно следующими способами:

ls имя_директории

Либо введя команду:

ls /путь _к _директории

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

dir1 file1  file2  file3

К команде ls можно добавлять дополнительные флаги, например, чтобы показать детализированное представление (права, список владельцев файлов или папок, размер, дату последнего модифицирования) файлов и директорий в текущей директории, можно использовать флаг -l:

ls -l

Результат выполнения команды:

total 16
drwxr-xr-x 2 home demo 4096 Nov  3 17:40 dir1
-rw-r--r-- 1 home demo   13 Nov  8 17:17 file1
-rw-r--r-- 1 home demo   42 Nov  9 13:04 file2
-rw-r--r-- 1 home demo  42 Nov  10 13:04 file3

Для просмотра списка всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a:

ls -a

Результат выполнения команды:

.        dir1        file1           .mysql_history  .ssh
..      .bash_history  file2   file3  .nan

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

ls -F

Результат выполнения команды:

dir1/   file1  file2  file3

Для перехода в домашний каталог используется команда cd. Название этой команды является сокращением слов change directory.

Для перехода в домашний каталог пользователя user используется команда:

cd ~user

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

Управление файлами и директориями / Хабр

Продолжение перевода первой части руководства. Начало тут.

В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.

Использование команд Linux


Знакомство с ls

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

$ cd /usr
$ ls
X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 include libexec portage share tmp distfiles i686-linux info local portage.old src

Указав опцию -a, вы можете увидеть полный список, включая скрытые файлы и директории, начинающиеся с «.». Как видно в следующем примере, ls -a выводит также особые связывающие директории «.» и «..»:

$ ls -a
. bin gentoo-x86 include libexec portage share tmp .. distfiles i686-linux info local portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl

Развернутые списки директорий

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

Если вы укажите файл, то ls покажет вам только этот файл. А если зададите директорию, то ls выдаст ее содержимое. Опция -l очень удобна, когда необходимо посмотреть права доступа, владельца, время последнего изменения и размер в списке содержимого директории.

В следующем примере мы использовали опцию -l чтобы отобразить содержимое моей директории /usr:

$ ls -l /usr
drwxr-xr-x 7 root root 168 Nov 24 14:02 X11R6 drwxr-xr-x 2 root root 14576 Dec 27 08:56 bin drwxr-xr-x 2 root root 8856 Dec 26 12:47 distfiles lrwxrwxrwx 1 root root 9 Dec 22 20:57 doc -> share/doc drwxr-xr-x 62 root root 1856 Dec 27 15:54 gentoo-x86 drwxr-xr-x 4 root root 152 Dec 12 23:10 i686-linux drwxr-xr-x 4 root root 96 Nov 24 13:17 i686-pc-linux-gnu drwxr-xr-x 54 root root 5992 Dec 24 22:30 include lrwxrwxrwx 1 root root 10 Dec 22 20:57 info -> share/info drwxr-xr-x 28 root root 13552 Dec 26 00:31 lib drwxr-xr-x 3 root root 72 Nov 25 00:34 libexec drwxr-xr-x 8 root root 240 Dec 22 20:57 local lrwxrwxrwx 1 root root 9 Dec 22 20:57 man -> share/man lrwxrwxrwx 1 root root 11 Dec 8 07:59 portage -> gentoo-x86/ drwxr-xr-x 60 root root 1864 Dec 8 07:55 portage.
old drwxr-xr-x 3 root root 3096 Dec 22 20:57 sbin drwxr-xr-x 46 root root 1144 Dec 24 15:32 share drwxr-xr-x 8 root root 328 Dec 26 00:07 src drwxr-xr-x 6 root root 176 Nov 24 14:25 ssl lrwxrwxrwx 1 root root 10 Dec 22 20:57 tmp -> ../var/tmp

Первая колонка показывает информацию о правах доступа для каждого элемента. Чуть позже я объясню, как её интерпретировать. Следующая колонка содержит числа ссылок на каждый элемент файловой системы, позже мы вернемся к этому. Третья и четвертая колонки — это список владельцев и групп, соответственно. Пятая колонка — размер объекта. Шестая — время последнего изменения (mtime) объекта. И наконец, последняя колонка с именами объектов. Если файлы являются символическими ссылками, то вы увидите стрелку -> и путь, куда указывает эта символическая ссылка.

Смотрим на директории

Иногда вы захотите взглянуть на директорию, а не внутрь нее. В этом случае вы можете указать опцию -d, которая скажет ls рассматривать любую директорию, как внутреннюю:

$ ls -dl /usr /usr/bin /usr/X11R6/bin ../share
drwxr-xr-x 4 root root 96 Dec 18 18:17 ../share drwxr-xr-x 17 root root 576 Dec 24 09:03 /usr drwxr-xr-x 2 root root 3192 Dec 26 12:52 /usr/X11R6/bin drwxr-xr-x 2 root root 14576 Dec 27 08:56 /usr/bin

Рекурсивный и инодный списки

Так вы можете использовать -d чтобы смотреть на директорию, но также можно использовать -R для противоположного: не только лишь глянуть внутрь директории, но и рекурсивно посмотреть все директории с файлами внутри нее! Мы не включим в руководство никакого примера вывода для этой опции (поскольку обычно он очень объемный), но возможно вы захотите попробовать несколько команд ls -R и ls -Rl, чтобы почувствовать как это работает.

Наконец, опция -i может использоваться для отображения числа инодов для объектов в списке файловой системы:

$ ls -i /usr
1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 1513 i686-pc-linux-gnu 5120 local 13408 share 8316 distfiles 1517 include 776 man 23779 src 43 doc 1386 info 93892 portage 36737 ssl 70744 gentoo-x86 1585 lib 5132 portage. old 784 tmp

Понятие инода

Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки «.» и «..», которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория «..», мы сперва взглянем на номер инода у

/usr/local:

$ ls -id /usr/local
5120 /usr/local

У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:

$ ls -id /usr/local/bin/..
5120 /usr/local/bin/..

Как видно, директория /usr/local/bin/.. имеет такой же номер, как у /usr/local! Посмотрим, как можно справиться с этим шокирующим откровением. В прошлом мы полагали, что /usr/local сама является директорией. Теперь же, мы обнаружили, что фактически директория — это инод с номером 5120, и нашли, по меньшей мере, два элемента (называемых «ссылками»), которые указывают на данный инод.

И /usr/local, и /usr/local/bin/.. — ссылки на 5120-ый инод. Хотя этот инод и существует только в одном месте на диске, тем не менее на него может быть множество ссылок.

На самом деле, мы даже можем увидеть общее количество ссылок ведущих на этот, 5120 инод, используя команду ls -dl:

$ ls -dl /usr/local
drwxr-xr-x 8 root root 240 Dec 22 20:57 /usr/local

Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:

/usr/local
/usr/local/.
/usr/local/bin/..
/usr/local/games/..
/usr/local/lib/..
/usr/local/sbin/..
/usr/local/share/..

/usr/local/src/..

mkdir

Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:

$ cd /tmp
$ mkdir tic tac toe

По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:

$ mkdir won/der/ful
mkdir: cannot create directory `won/der/ful': No such file or directory
$ mkdir won
$ mkdir won/der
$ mkdir won/der/ful

Однако, у mkdir есть очень удобная опция -p, которая говорит mkdir создавать любые отсутствующие родительские директории, как можете увидеть тут:

$ mkdir -p easy/as/pie

В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.

touch

Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:

$ cd /tmp
$ touch copyme

Команда touch обновляет «mtime» (время последней модификации — прим. пер.) файла, если тот существует (вспомните шестую колонку в выводе ls -l). Если файл не существует, то новый, пустой файл будет создан. Сейчас у вас должен быть файл /tmp/copyme с нулевым размером.

echo

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

$ echo "firstfile"
firstfile

А сейчас, та же команда echo, но с перенаправлением вывода:

$ echo "firstfile" > copyme

Знак «больше» сообщает оболочке записывать вывод echo в файл по имени copyme. Этот файл будет создан, если не существовал, или перезаписан, если существует. Набрав ls -l, увидим, что файл copyme имеет размер в 10 байт, так как содержит слово firstfile и символ новой строки:

$ ls -l copyme
-rw-r--r-- 1 root root 10 Dec 28 14:13 copyme

cat и cp

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

$ cat copyme
firstfile

Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:

$ cp copyme copiedme

Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:

$ ls -i copyme copiedme
648284 copiedme 650704 copyme

mv

А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.

$ mv copiedme movedme
$ ls -i movedme
648284 movedme

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

Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться ~ — прим. пер.):

$ mv /var/tmp/myfile.txt /home/drobbins

После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile. txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.

Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:

$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins

Продолжение…



Об авторах


Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Основные команды для терминала Linux

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

Базовые команды для работы с терминалом

То, что поможет при работе с консолью в целом.

  • clear — очищает всю выведенную в консоль информацию. Пригодится на тот случай, если терминал будет забит выводом других команд или содержимом ранее открытых документов. Помогает «начать с чистого листа».
  • history — отображает ранее введенные команды. По умолчанию показывает 10 последних, но при желании это значение можно изменить, добавив в качестве параметра любое число. Например, history 17, чтобы показать 17 последних выполненных операций.
  • whatis — вкратце описывает любую установленную программу. Вводим whatis и скармливаем ей в качестве аргумента название интересующей утилиты. Чтобы узнать, что такое wget, напишем whatis wget и получим краткую справку одной строкой.
  • man — демонстрирует подробное руководство по выбранной программе или команде. Чтобы выяснить, как работает wget и какие опции для него доступны, введем man wget. Получим массивное полотно со всей документацией для выбранной утилиты. P.S. Выйти из нее можно нажав на клавишу Q.

Команды для управления правами на файлы и директории

Все, что нужно для разрешения проблем, связанных с правами в Linux.

  • sudo — выдает права суперпользователя. Используется перед любой другой командой в терминале, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt-get update. При этом система запросит пароль администратора.
  • sudo su — переводит терминал в режим суперпользователя. В нем каждая введенная команда будет восприниматься системой так, будто перед ней ввели sudo. Помогает запускать несколько скриптов и утилит, требующих права администратора, без необходимости постоянно корректировать их или вводить пароль от учетной записи.
  • sudo gksudo — используется для запуска графических утилит от имени администратора. В Windows для этого есть специальная кнопка в контекстном меню, а в Linux — префикс. Синтаксис такой:

​sudo gksudo название приложения, нуждающееся в запуске от имени администратора
  • sudo !! — запускает предыдущую команду от имени администратора. Используется, если до этого была неудачная попытка запустить программу. Помогает не тратить время на повторный ввод большого количества символов.
  • chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором аргументов, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
  • chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий:

chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать

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

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

  • useradd — создает новую учетную запись. Например, мы хотим добавить пользователя с именем Timeweb. Для этого вводим: useradd Timeweb. Но свежесозданному аккаунту нужен не только логин, но и пароль. С помощью опций можно задать дополнительные характеристики новому пользователю.
  • passwd — задает пароль для учетной записи, работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем: passwd Timeweb (в вашем случае может быть любой другой пользователь). После этого система попросит придумать и указать пароль для новой учетной записи. По ходу набора пароля в терминале не будут отображаться даже звездочки, но он все равно учитывает каждую нажатую клавишу. Продолжайте набирать пароль вслепую.
  • userdel — удаляет выбранную учетную запись. Синтаксис простейший:

userdel имя учетной записи, которую нужно стереть

Установка, удаление и обновление пакетов

Для установки программ в Linux используются менеджеры пакетов. Они разнятся от дистрибутива к дистрибутиву, поэтому команды для управления ими тоже отличаются. Рассмотрим наиболее популярные.

Debian/Ubuntu

  • sudo apt-get install название пакета — устанавливает программу на выбор. Главное знать, как она называется.
  • sudo apt remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
  • sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключенных репозиториях.
  • sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

Red Hat Linux/CentOS

  • sudo dnf install название пакета — устанавливает программу на выбор.
  • sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
  • sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.

Команды для навигации и базовой работы с файлами

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

  • ls — покажет содержимое директории, в которой вы находитесь. Если после команды ввести адрес конкретной папки, то она покажет то, что хранится в ней. При добавлении аргумента -R в выводе команды появятся файлы из поддиректорий.
  • cd — change directory, что в переводе означает «сменить директорию». Из названия понятно, что с помощью этой команды можно перемещаться между папками. Вписываем ее, а потом адрес: cd /user/test/dir/111. Есть сокращенные варианты: cd- для перемещения в предыдущую директорию или cd (без аргументов) для прыжка в домашнюю папку.
  • pwd — укажет полный путь до директории, в которой вы находитесь. Если вы перепрыгнули на рабочий стол с помощью cd, то pwd покажет что-то в духе /home/Polzovatel/Desktop.
  • file — расскажет, что перед вами изображение, директория или текстовый документ, а также предоставит информацию о них (для изображений, например, это данные EXIF).
  • mv — mv применяется для перемещения файлов из одной папки в другую. Перенесем файл timeweb.txt из домашней директории на рабочий стол: mv timeweb.txt /home/имя учетной записи/Desktop. Эту же команду используют, чтобы поменять имя файла. Для этого надо не указывать папку для перемещения, а просто ввести новое название для документа:

mv timeweb.txt timeweb-2.txt
  • cp — используем, если нужно не переместить файл, а создать его копию в другой директории. Работает так же, как и mv. Указываем путь до файла, который нужно скопировать, и путь до директории, куда копируем:

cp timeweb-file.txt /home/Webmaster/Desktop
  • dd — мощная утилита для взаимодействия с разделами. С ее помощью можно делать копии разделов, перемещать их, удалять без возможности восстановления. 
  • rm — опасная команда для удаления директорий и их содержимого. Затирает все данные, которые обнаружит в указанной папке. То есть все субдиректории и файлы будут уничтожены. И восстановить их не получится. Про корзину этой команде ничего неизвестно. Синтаксис такой rm путь до директории, которую нужно стереть с компьютера. Чтобы удалить каталог Timeweb и все его содержимое из домашней папки пользователя, введем: rm ~/Timeweb.
  • mkdir — создает новую директорию. Допустим, мы хотим создать папку под новый проект на рабочем столе. Для этого введем команду: mkdir ~/Desktop/Timeweb. При желании можно разместить новую папку в промежутке между двумя уже существующими. К примеру: mkdir -p /home/New_Project/Newest_Project создаст папку New_Project в домашней директории и станет родителям для существующей папки Newest_Project.
  • rmdir — удаляет пустую папку. Акцентируем внимание на слове «пустую». В отличие от rm, rmdir не трогает другие файлы и субдиректории.
  • cat — показывает содержимое документов. Можно скормить этой утилите любой текстовый файл, и она прямо в терминале отобразит все, что в нем записано. Пишем: cat путь до файла, содержимое которого надо осмотреть.
  • head — «голова», как и cat, показывает содержимое документов, но не всё, а только первые 10 строк. При желании количество строк можно увеличить или сократить, добавив параметр -n. Команда: head -n 2 ~/Desktop/timeweb.txt покажет только первые две строчки документа timeweb.
  • touch — эта команда создавалась для изменения времени последнего открытия файла или директории, но используют ее, в основном, для создания новых файлов. Например, для создания HTML-документа в домашней директории пользователя надо ввести в терминал: touch /home/имя учетной записи/test-site.html.
  • nano — запускает программу для редактирования текста nano. Используя дополнительные аргументы, можно создавать новые текстовые файлы. Например nano /путь до директории, где нужно создать новый текстовый файл/название документа. Или же редактировать уже существующие. Альтернативой nano может служить vi. Продвинутый редактор 1976 года выпуска с бесконечными возможностями расширения, но с крайне специфичным управлением.
  • wc — считает количество строк, слов, знаков и байтов. В терминале надо ввести: wc ~/Desktop/timeweb.txt и все.
  • wget — загружает из интернета документы, картинки, целые страницы и прочий контент. Допустим, нам надо скачать скриншот панели управления Timeweb с официального сайта. Для этого воспользуемся командой 

wget https://timeweb.com/upload/resize_cache/iblock/2ae/400_400_2/xscreen_2.jpg.pagespeed.ic.L3c0Gicmgq.jpg

  • zip — упаковывает файлы в архив в формате .zip. Синтаксис для создания zip-архива такой: zip название архива.zip путь до файла, который надо упаковать. К примеру:

zip new-archive.zip /home/me/file-for-archive.txt
  • unzip — напрямую связан с zip, но выполняет противоположную функцию. Извлекает файлы из архива. Работает по тому же принципу – вводим команду, а потом путь до архива, который надо распаковать.
  • find — продвинутая команда по поиску объектов в файловой системе Linux. Можно искать элементы как по названию, так и по иным характеристикам. Например, указать тип файла: find -type d -name Timeweb. Такая команда покажет все директории с именем Timeweb.
  • grep — find ищет файлы и директории, а grep ищет текст в их содержимом. Как вариант, можно отыскать слово «тест» в документе «test.txt». Для этого введем следующую команду: cat test.txt | grep тест. cat перед grep необходим, чтобы вывести найденную информацию в консоль. В противном случае grep найдет искомый контент, но не покажет его.

Вот, что написано в тестовом документе

Что в терминал выводит cat

И что выводит grep

  • diff — сокращение от слово difference. Показывает разницу между двумя текстовыми файлами. Для сравнения используется такой синтаксис: diff название первого файла название второго файла. К примеру, diff text-1.txt text-2.txt
  • mount — монтирует образ или раздел диска. Для использования нужно лишь указать путь к разделу или образу, который нужно смонтировать.
  • unmount — выполняет противоположную задачу.

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

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

  • df — показывает, сколько пространства занято на подключенных дисках и разделах. По умолчанию отображает данные в килобайтах. Можно переключиться на мегабайт, добавив параметр -m. Это выглядит так: df -m.
  • du — расскажет, сколько места занимает конкретный файл или папка. Чтобы узнать, насколько тяжелая директория Desktop, введем: du ~/Desktop. du отображает информацию в блоках. Но это неудобно, поэтому обычно к ней добавляют опцию -h, чтобы появились привычные мегабайты, килобайты и байты.
  • free — тоже связана с памятью, только с оперативной. Показывает, сколько занято, а сколько свободно. Чтобы включить отображение в мегабайтах, надо так же добавить аргумент -h.
  • uname — вывод информации о системе и сервере. Аргумент -a показывает имя компьютера, версию ядра, текущую дату и время, разрядность системы и ее тип. Можно запрашивать отдельные фрагменты данных через дополнительные опции: -s — только имя ядра; -n — имя компьютера (ноды) в сети; -o — название операционной системы; -p — тип процессора; -s — версия ядра.
  • whoami — покажет, кто вы есть. Имя учетной записи, через которую вы зашли в систему или подключились к серверу.
  • date — из названия ясно, что команда отображает текущее время и дату. 
  • sleep — задерживает запуск скриптов на выбранный период времени. Единица времени указывается через опции: -s — секунды; -m — минуты; -h — часы; d — дни.

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

Список основных команд оболочки bash в Linux 🅱️

Команды оболочки bash в Linux Ubuntu бывают 2 типов: встроенными и внешними. Последние расширяют базовую функциональность Ubuntu.

Основные термины

  • Интерфейс — совокупность программных средств, обеспечивающих взаимодействие пользователя с аппаратной частью компьютера.
  • Консоль — вид интерфейса, который позволяет управлять пользователями, файловой системой, протоколами и другими объектами операционной системы.
  • Эмулятор консоли — специальная программа или совокупность программных средств, позволяющих представить консоль в виде окна операционной системы.
  • Консольное окружение — совокупность консолей Ubuntu.
  • Объекты операционной системы — логические единицы, с которыми осуществляется диалог на программном и пользовательском уровнях (аппаратная и программная части). Объектами операционной системы являются логические диски, каталоги, окна и т. д.
  • Полное имя файла — путь к файлу с указанием логического диска и каталогов, в которых он находится, а также его название.

Активация консоли

После загрузки операционной системы создается 7 виртуальных консолей с текстовым интерфейсом (консольное окружение). Для навигации и их активации используется сочетание клавиш — Ctrl+Alt+F(1-7), где «F(1-7)» — соответствующие номера консолей.

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

Работа в терминале

Новичкам рекомендуется начинать работу в терминале, который является эмулятором консоли.

В него можно зайти 2 способами:

  1. при помощи сочетания — Ctrl+Alt+T
  2. через контекстное меню — щелкнуть правой кнопкой мыши на пустой области рабочего стола и выбрать пункт «Открыть терминал».

Формат и правила набора

Общие правила

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

При вводе команды вручную или копирования из источника необходимо активировать ее нажатием клавиши «Enter». Если работа в терминале только начинается, то нужно указать пароль, который при вводе не отображается.

При наборе команды требуется соблюдать общий формат: file_name_program_or_comand_name -key value («file_name_program_or_comand_name» — имя файла программы или команды, «key» — ключ и «value» — значение).

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

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

  1. открыть новый текстовый файл;
  2. указать в первой строке #!/bin/bash;
  3. ввести список команд в столбик, а затем сохранить изменения.

После этого в свойствах файла необходимо активировать флажок «Разрешить выполнение файла как программы» и закрыть окно.

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

Вышеописанный bash-скрипт создает папку «~/.archive» и перемещает в нее файлы, указывая в начале имени дату удаления.

Пакетный файл

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

  1. открыть новый текстовый файл;
  2. указать в первой строке #!/bin/bash;
  3. ввести список команд в столбик, а затем сохранить изменения.

После этого в свойствах файла необходимо активировать флажок «Разрешить выполнение файла как программы» и закрыть окно.

При двойном нажатии левой кнопкой мыши произойдет активация скрипта. Пример пакетного файла, который

Очень полезные команды Linux на одном листе [Записки на полях]

Команда Описание
Системная информация
arch отобразить архитектуру компьютера
uname -m
uname -r отобразить используемую версию ядра
dmidecode -q показать аппаратные системные компоненты — (SMBIOS / DMI)
hdparm -i /dev/hda вывести характеристики жесткого диска
hdparm -tT /dev/sda протестировать производительность чтения данных с жесткого диска
cat /proc/cpuinfo отобразить информацию о процессоре
cat /proc/interrupts показать прерывания
cat /proc/meminfo проверить использование памяти
cat /proc/swaps показать файл(ы) подкачки
cat /proc/version вывести версию ядра
cat /proc/net/dev показать сетевые интерфейсы и статистику по ним
cat /proc/mounts отобразить смонтированные файловые системы
lspci -tv показать в виде дерева PCI устройства
lsusb -tv показать в виде дерева USB устройства
date вывести системную дату
cal 2007 вывести таблицу-календарь 2007-го года
date 041217002007.00 установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
clock -w
сохранить системное время в BIOS
Остановка системы
shutdown -h now Остановить систему
init 0
telinit 0
shutdown -h hours:minutes & запланировать остановку системы на указанное время
shutdown -c отменить запланированную по расписанию остановку системы
shutdown -r now перегрузить систему
reboot
logout выйти из системы
Файлы и директории
cd /home перейти в директорию ‘/home’
cd .. перейти в директорию уровнем выше
cd ../.. перейти в директорию двумя уровнями выше
cd перейти в домашнюю директорию
cd ~user перейти в домашнюю директорию пользователя user
cd — перейти в директорию, в которой находились до перехода в текущую директорию
pwd показать текущую директорию
ls отобразить содержимое текущей директории
ls -F отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип
ls -l показать детализированое представление файлов и директорий в текущей директории
ls -a показать скрытые файлы и директории в текущей директории
ls *[0-9]* показать файлы и директории содержащие в имени цифры
tree показать дерево файлов и директорий, начиная от корня (/)
lstree
mkdir dir1 создать директорию с именем ‘dir1’
mkdir dir1 dir2 создать две директории одновременно
mkdir -p /tmp/dir1/dir2 создать дерево директорий
rm -f file1 удалить файл с именем ‘file1’
rmdir dir1 удалить директорию с именем ‘dir1’
rm -rf dir1 удалить директорию с именем ‘dir1’ и рекурсивно всё её содержимое
rm -rf dir1 dir2 удалить две директории и рекурсивно их содержимое
mv dir1 new_dir переименовать или переместить файл или директорию
cp file1 file2 сопировать файл file1 в файл file2
cp dir/* . копировать все файлы директории dir в текущую директорию
cp -a /tmp/dir1 . копировать директорию dir1 со всем содержимым в текущую директорию
cp -a dir1 dir2 копировать директорию dir1 в директорию dir2
ln -s file1 lnk1 создать символическую ссылку на файл или директорию
ln file1 lnk1 создать «жёсткую» (физическую) ссылку на файл или директорию
touch -t 0712250000 fileditest модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)
Поиск файлов
find / -name file1 найти файлы и директории с именем file1. Поиск начать с корня (/)
find / -user user1 найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)
find /home/user1 -name «*.bin» Найти все файлы и директории, имена которых оканчиваются на ‘. bin’. Поиск начать с ‘/ home/user1’
find /usr/bin -type f -atime +100 найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней
find /usr/bin -type f -mtime -10 найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней
find / -name *.rpm -exec chmod 755 ‘{}’ \; найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, и изменить права доступа к ним
find / -xdev -name «*.rpm» найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, игнорируя съёмные носители, такие как cdrom, floppy и т.п.
locate «*.ps» найти все файлы, сожержащие в имени ‘.ps’. Предварительно рекомендуется выполнить команду ‘updatedb’
whereis halt показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу ‘halt’
which halt отображает полный путь к файлу ‘halt’
Монтирование файловых систем
mount /dev/hda2 /mnt/hda2 монтирует раздел ‘hda2’ в точку монтирования ‘/mnt/hda2’. Убедитесь в наличии директории-точки монтирования ‘/mnt/hda2’
umount /dev/hda2 размонтирует раздел ‘hda2’. Перед выполнением, покиньте ‘/mnt/hda2’
fuser -km /mnt/hda2 принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем
umount -n /mnt/hda2 выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске
mount /dev/fd0 /mnt/floppy монтировать флоппи-диск
mount /dev/cdrom /mnt/cdrom монтировать CD или DVD
mount /dev/hdc /mnt/cdrecorder монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)
mount -o loop file.iso /mnt/cdrom смонтировать ISO-образ
mount -t vfat /dev/hda5 /mnt/hda5 монтировать файловую систему Windows FAT32
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share монтировать сетевую файловую систему Windows (SMB/CIFS)
mount -o bind /home/user/prg /var/ftp/user «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно.
Дисковое пространство
df -h отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах)
ls -lSr |more выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр
du -sh dir1 подсчитывает и выводит размер, занимаемый директорией ‘dir1’ (Прим.переводчика. ключ -h работает не во всех *nix системах)
du -sk * | sort -rn отображает размер и имена файлов и директорий, с соритровкой по размеру
rpm -q -a --qf ‘%10{SIZE}\t%{NAME}\n’ | sort -k1,1n показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.)
dpkg-query -W -f=’${Installed-Size;10}\t${Package}\n’ | sort -k1,1n показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.)
Пользователи и группы
groupadd group_name создать новую группу с именем group_name
groupdel group_name удалить группу group_name
groupmod -n new_group_name old_group_name переименовать группу old_group_name в new_group_name
useradd -c «Nome Cognome» -g admin -d /home/user1 -s /bin/bash user1 создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome
useradd user1 создать пользователя user1
userdel -r user1 удалить пользователя user1 и его домашний каталог
usermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin user1 изменить атрибуты пользователя
passwd сменить пароль
passwd user1 сменить пароль пользователя user1 (только root)
chage -E 2005-12-31 user1 установить дату окончания действия учётной записи пользователя user1
pwck проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
grpck проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group
newgrp [-] group_name изменяет первичную группу текущего пользователя. Если указать «-«, ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd
Выставление/изменение полномочий на файлы
ls -lh просмотр полномочий на файлы и директории в текущей директории
ls /tmp | pr -T5 -W$COLUMNS вывести содержимое директории /tmp и разделить вывод на пять колонок
chmod ugo+rwx directory1 добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) — всем полные права. Аналогичное можно сделать таким образом «chmod 777 directory1»
chmod go-rwx directory1 отобрать у группы и всех остальных все полномочия на директорию directory1.
chown user1 file1 назначить владельцем файла file1 пользователя user1
chown -R user1 directory1 назначить рекурсивно владельцем директории directory1 пользователя user1
chgrp group1 file1 сменить группу-владельца файла file1 на group1
chown user1:group1 file1 сменить владельца и группу владельца файла file1
find / -perm -u+s найти, начиная от корня, все файлы с выставленным SUID
chmod u+s /bin/binary_file назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.
chmod u-s /bin/binary_file снять SUID-бит с файла /bin/binary_file.
chmod g+s /home/public назначить SGID-бит директории /home/public.
chmod g-s /home/public снять SGID-бит с директории /home/public.
chmod o+t /home/public назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам
chmod o-t /home/public снять STIKY-бит с директории /home/public
Специальные атрибуты файлов
chattr +a file1 позволить открывать файл на запись только в режиме добавления
chattr +c file1 позволяет ядру автоматически сжимать/разжимать содержимое файла.
chattr +d file1 указавет утилите dump игнорировать данный файл во время выполнения backup’а
chattr +i file1 делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.
chattr +s file1 позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.
chattr +S file1 указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync
chattr +u file1 данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить
lsattr показать атрибуты файлов
Архивирование и сжатие файлов
bunzip2 file1.bz2 разжимает файл ‘file1.gz’
gunzip file1.gz
gzip file1 сжимает файл ‘file1’
bzip2 file1
gzip -9 file1 сжать файл file1 с максимальным сжатием
rar a file1.rar test_file создать rar-архив ‘file1.rar’ и включить в него файл test_file
rar a file1.rar file1 file2 dir1 создать rar-архив ‘file1.rar’ и включить в него file1, file2 и dir1
unrar x file1.rar распаковать rar-архив
tar -cvf archive.tar file1 создать tar-архив archive.tar, содержащий файл file1
tar -cvf archive.tar file1 file2 dir1 создать tar-архив archive.tar, содержащий файл file1, file2 и dir1
tar -tf archive.tar показать содержимое архива
tar -xvf archive.tar распаковать архив
tar -xvf archive.tar -C /tmp распаковать архив в /tmp
tar -cvfj archive.tar.bz2 dir1 создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах)
tar -xvfj archive.tar.bz2 разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)
tar -cvfz archive.tar.gz dir1 создать архив и сжать его с помощью gzip
tar -xvfz archive.tar.gz разжать архив и распаковать его
zip file1.zip file1 создать сжатый zip-архив
zip -r file1.zip file1 file2 dir1 создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий
unzip file1.zip разжать и распаковать zip-архив
RPM пакеты (Fedora, Red Hat и тому подобное)
rpm -ivh package.rpm установить пакет с выводом сообщений и прогресс-бара
rpm -ivh --nodeps package.rpm установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей
rpm -U package.rpm обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен
rpm -F package.rpm обновить пакет только если он установлен
rpm -e package_name.rpm удалить пакет
rpm -qa отобразить список всех пакетов, установленных в системе
rpm -qa | grep httpd среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd»
rpm -qi package_name вывести информацию о конкрентном пакете
rpm -qg «System Environment/Daemons» отобразить пакеты входящие в группу пакетов
rpm -ql package_name вывести список файлов, входящих в пакет
rpm -qc package_name вывести список конфигурационных файлов, входящих в пакет
rpm -q package_name --whatrequires вывести список пакетов, необходимых для установки конкретного пакета по зависимостям
rpm -q package_name --whatprovides show capability provided by a rpm package
rpm -q package_name --scripts отобразит скрипты, запускаемые при установке/удалении пакета
rpm -q package_name --changelog вывести историю ревизий пакета
rpm -qf /etc/httpd/conf/httpd.conf проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла.
rpm -qp package.rpm -l отображает список файлов, входящих в пакет, но ещё не установленных в систему
rpm --import /media/cdrom/RPM-GPG-KEY ипортировать публичный ключ цифровой подписи
rpm --checksig package.rpm проверит подпись пакета
rpm -qa gpg-pubkey проверить целостность установленного содержимого пакета
rpm -V package_name проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета
rpm -Va проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!
rpm -Vp package.rpm проверить пакет, который ещё не установлен в систему
rpm2cpio package.rpm | cpio --extract --make-directories *bin* извлечь из пакета файлы содержащие в своём имени bin
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm установить пакет, собранный из исходных кодов
rpmbuild --rebuild package_name.src.rpm собрать пакет из исходных кодов
YUM — средство обновления пакетов(Fedora, RedHat и тому подобное)
yum install package_name закачать и установать пакет
yum update обновить все пакеты, установленные в систему
yum update package_name обновить пакет
yum remove package_name удалить пакет
yum list вывести список всех пакетов, установленных в систему
yum search package_name найти пакет в репозитории
yum clean packages очисть rpm-кэш, удалив закачанные пакеты
yum clean headers удалить все заголовки файлов, которые система использует для разрешения зависимостей
yum clean all очисть rpm-кэш, удалив закачанные пакеты и заголовки
DEB пакеты (Debian, Ubuntu и тому подобное)
dpkg -i package.deb установить / обновить пакет
dpkg -r package_name удалить пакет из системы
dpkg -l показать все пакеты, установленные в систему
dpkg -l | grep httpd среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd»
dpkg -s package_name отобразить инфрмацию о конкретном пакете
dpkg -L package_name вывести список файлов, входящих в пакет, установленный в систему
dpkg --contents package.deb отобразить список файлов, входящих в пакет, который ешё не установлен в систему
dpkg -S /bin/ping найти пакет, в который входит указанный файл.
APT — средство управление пакетами (Debian, Ubuntu и тому подобное)
apt-get install package_name установить / обновить пакет
apt-cdrom install package_name установить / обновить пакет с cdrom’а
apt-get update получить обновлённые списки пакетов
apt-get upgrade обновить пакеты, установленные в систему
apt-get remove package_name удалить пакет, установленный в систему с сохранением файлов конфигурации
apt-get purge package_name удалить пакет, установленный в систему с удалением файлов конфигурации
apt-get check проверить целостность зависимостей
apt-get clean удалить загруженные архивные файлы пакетов
apt-get autoclean удалить старые загруженные архивные файлы пакетов
Просмотр содержимого файлов
cat file1 вывести содержимое файла file1 на стандартное устройсво вывода
tac file1 вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т.д.)
more file1 постраничный вывод содержимого файла file1 на стандартное устройство вывода
less file1 постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п.
head -2 file1 вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
tail -2 file1 вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
tail -f /var/log/messages выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста.
Манипуляции с текстом
cat file | grep -i «Criteria» > result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
cat file | grep -i «Criteria» >> result.$/d’ example.txt удалить пустые строки и комментарии из файла example.txt
echo ‘test’ | tr ‘[:lower:]’ ‘[:upper:]’ преобразовать символы из нижнего регистра в верхний
sed -e ‘1d’ result.txt удалить первую строку из файла example.txt
sed -n ‘/string1/p’ отобразить только строки содержашие «string1»
sed -e ‘s/ *$//‘ example.txt удалить пустые символы в в конце каждой строки
sed -e ‘s/string1//g’ example.txt удалить строку «string1» из текста не изменяя всего остального
sed -n ‘1,8p;5q’ example.txt взять из файла с первой по восьмую строки и из них вывести первые пять
sed -n ‘5p;5q’ example.txt вывести пятую строку
sed -e ‘s/0*/0/g’ example.txt заменить последовательность из любого количества нулей одним нулём
cat -n file1 пронумеровать строки при выводе содержимого файла
cat example.txt | awk ‘NR%2==1’ при выводе содержимого файла, не выводить чётные строки файла
echo a b c | awk ‘{print $1}’ вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
echo a b c | awk ‘{print $1,$3}’ вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
paste file1 file2 объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
paste -d ‘+’ file1 file2 объединить содержимое file1 и file2 в виде таблицы с разделителем «+»
sort file1 file2 отсортировать содержимое двух файлов
sort file1 file2 | uniq отсортировать содержимое двух файлов, не отображая повторов
sort file1 file2 | uniq -u отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
sort file1 file2 | uniq -d отсортировать содержимое двух файлов, отображая только повторяющиеся строки
comm -1 file1 file2 сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file1’
comm -2 file1 file2 сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file2’
comm -3 file1 file2 сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
Преобразование наборов символов и файловых форматов
dos2unix filedos.txt fileunix.txt конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки)
unix2dos fileunix.txt filedos.txt конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки)
recode ..HTML < page.txt > page.html конвертировать содержимое тестового файла page.txt в html-файл page.html
recode -l | more вывести список доступных форматов
Анализ файловых систем
badblocks -v /dev/hda1 проверить раздел hda1 на наличие bad-блоков
fsck /dev/hda1 проверить/восстановить целостность linux-файловой системы раздела hda1
fsck.ext2 /dev/hda1 проверить/восстановить целостность файловой системы ext2 раздела hda1
e2fsck /dev/hda1
e2fsck -j /dev/hda1 проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же
fsck.ext3 /dev/hda1 проверить/восстановить целостность файловой системы ext3 раздела hda1
fsck.vfat /dev/hda1 проверить/восстановить целостность файловой системы fat раздела hda1
fsck.msdos /dev/hda1
dosfsck /dev/hda1
Форматирование файловых систем
mkfs /dev/hda1 создать linux-файловую систему на разделе hda1
mke2fs /dev/hda1 создать файловую систему ext2 на разделе hda1
mke2fs -j /dev/hda1 создать журналирующую файловую систему ext3 на разделе hda1
mkfs -t vfat 32 -F /dev/hda1 создать файловую систему FAT32 на разделе hda1
fdformat -n /dev/fd0 форматирование флоппи-диска без проверки
mkswap /dev/hda3 создание swap-пространства на разделе hda3
swap-пространство
mkswap /dev/hda3 создание swap-пространства на разделе hda3
swapon /dev/hda3 активировать swap-пространство, расположенное на разделе hda3
swapon /dev/hda2 /dev/hdb3 активировать swap-пространства, расположенные на разделах hda2 и hdb3
Создание резервных копий (backup)
dump -0aj -f /tmp/home0.bak /home создать полную резервную копию директории /home в файл /tmp/home0.bak
dump -1aj -f /tmp/home0.bak /home создать инкрементальную резервную копию директории /home в файл /tmp/home0.bak
restore -if /tmp/home0.bak восстановить из резервной копии /tmp/home0.bak
rsync -rogpav --delete /home /tmp синхронизировать /tmp с /home
rsync -rogpav -e ssh --delete /home ip_address:/tmp синхронизировать через SSH-туннель
rsync -az -e ssh --delete ip_addr:/home/public /home/local синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием
rsync -az -e ssh --delete /home/local ip_addr:/home/public синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием
dd bs=1M if=/dev/hda | gzip | ssh [email protected]_addr ‘dd of=hda.gz’ сделать «слепок» локального диска в файл на удалённом компьютере через ssh-туннель
tar -Puf backup.tar /home/user создать инкрементальную резервную копию директории ‘/home/user’ в файл backup.tar с сохранением полномочий
( cd /tmp/local/ && tar c . ) | ssh -C [email protected]_addr ‘cd /home/share/ && tar x -p’ копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/
( tar c /home ) | ssh -C [email protected]_addr ‘cd /home/backup-home && tar x -p’ копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup-home
tar cf — . | (cd /tmp/backup ; tar xf — ) копирование одной директории в другую с сохранением полномочий и линков
find /home/user1 -name ‘*.txt’ | \
xargs cp -av --target-directory=/home/backup/ --parents
поиск в /home/user1 всех файлов, имена которых оканчиваются на ‘.txt’, и копирование их в другую директорию
find /var/log -name ‘*.log’ | tar cv --files-from=- | bzip2 > log.tar.bz2 поиск в /var/log всех файлов, имена которых оканчиваются на ‘.log’, и создание bzip-архива из них
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 создать копию MBR (Maste

Управление файлами и каталогами Linux

Каталоги Дерево каталогов

Дерево каталогов в Linux начинается с корневого каталога /. Указывать диск, например С:, в Linux не только невозможно, но и бессмысленно. В этой книге все остальные каталоги считаются подчиненными. Таким образом, если представить дерево каталогов наглядно, то корневой каталог расположен на самой его верхушке. В некоторых книгах используется прямо противоположная номенклатура, которая больше напоминает дерево (корни внизу, ветви вверху), но не соответствует обычному значению терминов.

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

Личный каталог

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

Личный каталог обычно находится в дереве каталогов Linux по адресу /home/ loginname/ (только личный каталог администратора называется / root). Поскольку было бы неудобно каждый раз писать /home/loginname/, название собственного домашнего каталога сокращается до символа тильды (~). Кроме того, доступ к личным каталогам других пользователей возможен через запись ~loginname.

Каталоги.и..

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

Обе следующие команды копирования показывают, как можно использовать эти каталоги (другие ср-примеры даются в следующем разделе). Первая команда копирует файл /etc/fstab в актуальный каталог. Если каталог называется /home/ name, то новый файл будет иметь имя /home/name/fstab.

user$ cp /etc/fstab .

Во втором примере мы сначала активизируем с помощью команды cd каталог ~/linux8. Затем команда копирования ср создает резервную копию файла fileuse. tex (в котором содержится текст этой главы). Резервная копия имеет имя ~/fileuse. tex.bak.

<code>
user$ cd ~/linux8

user$ cp fileuse.tex ../fileuse.tex.bak
</code>

Если домашний каталог называется / home/name, то вы сейчас создали резервную копию /home/name/linux8/fileuse.tex. Следовательно, полное название резервной копии: /home/name/fileuse.tex.bak.

Простейшие команды для работы с каталогами

Хотя при работе с KDE и Gnome в вашем распоряжении есть современные файловые менеджеры, опытные пользователи Linux охотнее работают с текстовыми командами. Ниже приведены самые важные из таких команд.

Команды для работы с каталогами

cd — Смена актуального каталога

ср — Копирование файлов

less — Постраничный показ текстовых файлов

Is — Показ всех файлов каталога

mkdir — Создание нового каталога

mv — Перемещение файлов или изменение их имен

rm — Удаление файлов

rmdir — Удаление каталогов

Перечисление файлов

Команда ls возвращает список всех файлов данного каталога. Если вы также хотите увидеть скрытые файлы, то задайте дополнительный параметр -a. Если вас интересует не только имя файла, но и другая информация о нем, например размер, владелец и т. д., то вам поможет параметр -l. По умолчанию вывод информации по ls производится в алфавитном порядке. Чтобы сортировать файлы по времени внесения изменений, размеру или расширению, используйте параметры -t, -S или -X. Параметр -r позволяет отсортировать информацию в обратном порядке. Следующая команда показывает все файлы с расширением ТЕХ в каталоге linuxbuch, расположенные в порядке уменьшения размера:

user$ ls -l -S linuxbuch/*.tex

-rw-r—r— 1 kofler kofler 30113 2009-05-11 09:09 linuxbuch/intro.tex -rw-r—r— 1 kofler kofler 63173 2009-01-29 08:05 linuxbuch/kde.tex -rw-r—r— 1 kofler kofler 76498 2009-06-08 15:43 linuxbuch/kernel.tex

Несколько замечаний по интерпретации вывода команды ls: десять первых символов в начале строки указывают тип файла и биты доступа. В описание типа файла входят дефис (-) для обычного файла, d для каталога (directory), b или с для файла устройства (block или char) или l для символьной ссылки. Три следующих символа (rwx) указывают, что пользователи могут делать с файлом: читать, записывать в него информацию или выполнять его. Кроме того, сообщается аналогичная информация для членов группы, а также для других пользователей системы. Число, следующее за десятью символами, означающими тип и уровень доступа, обозначает, сколько жестких ссылок указывает на файл. В следующих столбцах задано, к какой группе относится файл и кто его владелец (здесь в обоих случаях kofler), размер файла, дата его последнего изменения и, наконец, имя файла.

В большинстве дистрибутивов команда ls конфигурирована так, что файлы и каталоги распределяются по типу и окрашиваются разными цветами в зависимости от типа. Если в вашем дистрибутиве это не так, подобного эффекта можно достичь добавлением дополнительного параметра — -color.

Обычно ls учитывает только файлы, находящиеся в каталоге, открытом в настоящий момент. Если вы хотите учесть также те файлы, которые находятся в подкаталогах, используйте параметр -R. Он, кстати, используется и со многими другими командами.

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

user$ ls -lR | less

Копирование файлов

Команда ср имя! имя2 копирует файл имя1. Копия называется имя2. Чтобы скопировать несколько файлов, вызовите команду вида ср имя! имя2… целевой каталог. Следующие команды сначала переводят в активное состояние каталог linuxbuch, затем создают подкаталог bak, а потом копируют туда все текстовые ТЕХ-файлы.

user$ cd linuxbuch user$ mkdir bak user$ cp *.tex bak/

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

user$ cd (Активизировать домашний каталог) user$ cp -a linuxbuch linuxbuch-bak

Удаление файлов и каталогов

Команда rm позволяет безвозвратно удалить указанный файл. Как правило, rm применяется для удаления файлов, а не каталогов. Для удаления каталогов предусмотрена команда rmdir каталог, которая, правда, работает лишь в том случае, если указанный каталог пуст. На практике для удаления каталогов обычно применяется команда rm с параметром -rf. Это означает, что все каталоги и находящиеся в них подкаталоги и файлы рекурсивно удаляются без запроса о подтверждении удаления. Понятно, что команда rm -rf очень опасна! Следующая команда удаляет созданную выше резервную копию каталога linuxbuch.

user$ rm -rf linuxbuch-bak/

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

С помощью команды ls -l невозможно узнать, насколько велик файл. Однако зачастую требуется знать, сколько места занимают все файлы, находящиеся в каталоге, сколько свободного места еще есть на диске и т. д. Для этого вам пригодятся две команды: df и du.

Узнаем, сколько свободного места на диске

Команда df показывает для всех сегментов файловой системы, или носителей данных, сколько всего места есть на этих носителях и сколько еще свободно. Параметр -h позволяет показать все данные о доступном дисковом пространстве в удобочитаемых числах, в килобайтах, мегабайтах или гигабайтах (а не блоками по 1 Кбайт, как это задано по умолчанию). /home</code>

Установление размера каталога

Команда du дает возможность установить, сколько дискового пространства требует данный каталог, в том числе все содержащиеся в нем подкаталоги. Параметр -h опять же позволяет вывести результат в удобочитаемой форме, а не в виде блоков по одному килобайту. Параметров для сортировки результатов команды du не существует (однако в Gnome имеется программа baobag, позволяющая графически представлять размер каталогов; в KDE подобная наглядная возможность предусмотрена в файловом менеджере Konqueror).

<code>user$ du -h fotos/2008

74M fotos/2008/2008-03-ostern

162M fotos/2008/2008-08-korsika

66M fotos/2008/2008-ll-diverse

2.0G fotos/2008
</code>

Джокерные символы

При ежедневном обращении с файлами часто требуется обработать целые группы файлов, например все файлы с расширением ТЕХ. Чтобы такие операции были возможны, при вводе команд Linux предусмотрены так называемые джокерные символы.

Символы *и?

Символ? служит для указания любого символа, а символ * — для указания любого количества символов (в том числе ни одного). Пользователи, которые умеют работать с MS-DOS, на первый взгляд могут решить, что отличий от этой системы нет. Однако это впечатление обманчиво.

Символ * включает практически любые символы, в том числе точки (кроме точек, с которых начинается имя файла). Если вы хотите обработать все файлы, то в Linux потребуется указать * ане*.*!

Если указать много джокерных символов, это никак не повлияет на работу Linux. Например, можно искать с помощью выражения *graf* все файлы, в имени которых содержится graf, — в том числе grafik.doc, apfelgraf и README.graf.

Символы [] и [!]

Если указания символов * и? недостаточно, можно ужесточить ограничение, добавив квадратные скобки. Например, [abc] — это подстановочный символ для одной из трех букв: a, b или c. Если в квадратных скобках между двумя буквами или цифрами стоит дефис, то имеется в виду символ «между». Таким образом, [a-f]* охватывает все файлы, начинающиеся с любой из букв между a и f включительно.

Выражение *[ _.-]* означает все файлы, в названии которых содержится минимум одна точка, нижнее подчеркивание или специальный символ, а * .[hc] означает все файлы, которые заканчиваются на .c или .h.

Джокерные символы можно применять и при работе с каталогами. Выражение */*.tex означает все ТЕХ-файлы, которые находятся в подкаталогах текущего каталога (только на один уровень ниже, то есть не включая подкаталоги подкаталогов актуального каталога). Выражение /usr/ * bin/* означает все файлы, находящиеся в каталогах /usr/bin и /usr/sbin.

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

Сложности при использовании джокерных символов


Работа с джокерными символами на первый взгляд кажется проще, чем она есть на самом деле. Если у вас возникают сложности с джокерными символами, проведите несколько экспериментов с командой echo jokerzeichen. Она показывает все имена файлов, охватываемые комбинацией с джокерным символом, и выводит эти имена на экран, не изменяя при этом имен файлов.

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

Обработка каталогов с помощью */

Если вы хотите обработать все каталоги (но не файлы), вам поможет джокерная комбинация */. Она охватывает все «файлы», которые содержат ссылку на самих себя как на подкаталог (а такая ситуация возможна только с каталогами). Внутри системы каталоги считаются особой разновидностью файлов, поэтому я ставлю в данном случае кавычки..окончанием

Тот факт, что обработкой джокерных символов занимается не какая-либо программа, а сама оболочка, таит в себе не только преимущества, но и недостатки. Например, как оказывается, невозможно произвести поиск ТЕХ-файлов в подкаталогах с помощью команды Is -R *.tex (параметр -R для команды ls вызывает рекурсивный поиск по подкаталогам).

Причина этого проста: оболочка расширяет схему *.tex для текущего каталога и передает список найденных файлов к ls. Эта команда выводит информацию по данным файлам. Если у вас нет каталогов с окончанием *.tex, то команда ls завершает работу. В данном случае не поможет даже параметр -R. Рекурсивный поиск будет применен только к тем каталогам, имена которых были переданы в качестве параметра.

В Linux для поиска по файлам предусмотрена гораздо более гибкая команда find. В следующем примере показан список всех ТЕХ-файлов в текущем каталоге и во всех его подкаталогах.

user$ find. -name ‘*.tex’

Переименование файлов

К сожалению, в Linux нельзя переименовать все файлы *.x в файлы *.y с помощью команды mv *.x *.y. Причина такого ограничения такая же, как и в вышеописанных случаях: оболочка заменяет запись *.x списком всех файлов, соответствующих данной схеме. Для *.y соответствующие имена файлов отсутствуют. При этом команде mv передается список из нескольких файлов и выражение *.y — в этом случае mv «не знает», что делать с такими аргументами.

Вот конкретный пример: предположим, что в текущем каталоге находятся только файлы markus.x, peter.x и ulrike.x. Если выполнить в данном случае команду mv *.x *.y, то оболочка заменит схему *.x тремя файлами, указанными выше. Кроме того, оболочка не найдет файлов, подходящих для *.y, и передаст схему в неизменном виде. Только сейчас будет запущена команда mv. Она получит следующие параметры, с которыми, как и следовало ожидать, будет невозможна любая работа.

user$ mv markus.x peter.x ulrike.x *.y

Даже если передать команде в качестве списка параметров запись markus.x peter.x ulrike.x markus.y peter.y ulrike.y, мы получим не тот результат, который нужен. Команда mv в принципе не может переименовать сразу несколько файлов. В таком случае или несколько файлов будут перемещены в другой каталог, или будет переименован только один файл.

Переименование с помощью sed

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

Коротко опишу принцип работы: команда ls возвращает список файлов, которые необходимо переименовать, и передает их sed. Редактор sed образует вместе с командой s (регулярное нахождение и замена) список cp-команд и, в свою очередь, передает этот список новой оболочке sh, которая, наконец, выполняет команды. Строка, показанная ниже, позволяет скопировать все файлы *.xxx в *.yyy.

user$ ls *.xxx | sed 's/\(.*\)\.xxx$/cp & \1.yyy/' | sh

Еще одна альтернатива — написать небольшой цикл. С помощью приведенной ниже команды делаются копии всех файлов с расширением *.tex. Эти копии получают окончание tex ~ (окончание ~ часто применяется для обозначения резервных копий).

user$ for i in *.tex; do cp $i $i~; done

Скрытые файлы

Файлы, имя которых начинается с точки, в Linux являются скрытыми, поэтому символ * не позволяет учесть все файлы, находящиеся в каталоге: скрытые файлы (часто ими являются файлы конфигурации, которые должны оставаться невидимыми) игнорируются.

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

Эту проблему можно обойти, задав схему поиска .[!.]* Она охватывает все имена файлов, первым символом в которых является точка, далее следует минимум один символ, не являющийся точкой, а затем любое количество символов (в том числе ни одного).

user$ echo .[!.]*

С командой ls можно использовать параметр -a, который позволяет найти все файлы в данном каталоге (включая скрытые). Такой метод не допускает использования масок (например, *rc*). Параметр -a работает только в том случае, когда ls сама ищет себе файлы, а не передает выполнение этой задачи оболочке.

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

user$ find . -name '.*'

Особые виды файлов (файлы-ссылки, файлы-устройства)

Кроме обычных в Linux различается ряд специфических видов файлов, например каталоги, ссылки, файлы устройств для доступа к компонентам аппаратного обеспечения и т. д. В команде ls -F такие специфические файлы обозначаются дополнительным символом.

<code>user$ ls -lF

... 13. Apr 11:31 bak/

... 11. Apr 12:21 grepalltex*</code>

Читайте так же другие статьи:
Linux

Глава 9. Работа с файлами

Глава 9. Работа с файлами

В этой главе мы узнаем, как распознавать, создавать, удалять, копировать и перемещать файлы с помощью таких команд, как file, touch, rm, cp, mv и переименовать .

все файлы чувствительны к регистру

Файлы в Linux (или любой Unix) чувствительны к регистру . Это означает, что FILE1 отличается от file1 , а / etc / hosts отличается от / etc / Hosts (последний не существует на типичном компьютере с Linux).

На этом снимке экрана показана разница между двумя файлами, один с верхним регистром W , другой с нижним регистром w .

 paul @ laika: ~ / Linux $  ls 
winter.txt Winter.txt
paul @ laika: ~ / Linux $  cat winter.txt 
Холодно.
paul @ laika: ~ / Linux $  cat Winter.txt 
Очень холодно! 

Каталог — это особый вид файла , но он по-прежнему (с учетом регистра!) Файл . Каждое окно терминала (например, / dev / pts / 4 ), любой жесткий диск или раздел (например, / dev / sdb1 ) и любой процесс представлены где-то в файловой системе как файл .В ходе этого курса станет ясно, что все в Linux представляет собой файл .

Утилита file определяет тип файла. Linux не использует расширения для определения типа файла. Командной строке не важно, заканчивается ли файл на .txt или .pdf. Как системный администратор, вы должны использовать команду file для определения типа файла. Вот несколько примеров типичной системы Linux.

 paul @ laika: ~ $  файл pic33.png 
рис33.png: данные изображения PNG, 3840 x 1200, 8-битный / цветной RGBA, без чересстрочной развертки
paul @ laika: файл ~ $  / etc / passwd 
/ etc / passwd: текст ASCII
paul @ laika: ~ $  файл HelloWorld.c 
HelloWorld.c: текст программы ASCII C 

Команда file использует волшебный файл, содержащий шаблоны для распознавания типов файлов. Волшебный файл находится в / usr / share / file / magic . Для получения дополнительной информации введите man 5 magic .

Интересно отметить file -s для специальных файлов, таких как / dev и / proc .

 root @ debian6 ~ #  файл / dev / sda 
/ dev / sda: специальный блок
root @ debian6 ~ #  файл -s / dev / sda 
/ dev / sda: загрузочный сектор x86; раздел 1: ID = 0x83, активный, начальный ...
root @ debian6 ~ #  файл / proc / cpuinfo 
/ proc / cpuinfo: пусто
root @ debian6 ~ #  файл -s / proc / cpuinfo 
/ proc / cpuinfo: текст программы ASCII C ++ 

Один простой способ создать пустой файл — использовать touch . (Позже в этой книге мы увидим много других способов создания файлов.)

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

 paul @ debian7: ~  $ ls -l 
всего 0
paul @ debian7: ~ $  touch file42 
paul @ debian7: ~ $  touch file33 
paul @ debian7: ~ $  ls -l 
всего 0
-rw-r - r-- 1 пол Павел 0 15 окт 08:57 file33
-rw-r - r-- 1 пол Павел 0 15 окт 08:56 file42
paul @ debian7: ~ $ 

Команда touch может устанавливать некоторые свойства при создании пустых файлов.Можете ли вы определить, что установлено, посмотрев на следующий снимок экрана? Если нет, проверьте руководство для touch .

 paul @ debian7: ~  долларов США touch -t 200505050000 SinkoDeMayo 
paul @ debian7: ~ $  touch -t 130207111630 BigBattle.txt 
paul @ debian7: ~ $  ls -l 
всего 0
-rw-r - r-- 1 пол Поль 0 11 июля 1302 BigBattle.txt
-rw-r - r-- 1 пол Павел 0 15 окт 08:57 file33
-rw-r - r-- 1 пол Павел 0 15 окт 08:56 file42
-rw-r - r-- 1 пол Поль 0 5 мая 2005 SinkoDeMayo
paul @ debian7: ~ $ 

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

 paul @ debian7: ~  долларов США 
Файл BigBattle.txt33 файл42 SinkoDeMayo
paul @ debian7: ~  долл. США, BigBattle.txt 
paul @ debian7: ~ $  ls 
файл33 файл42 SinkoDeMayo
paul @ debian7: ~ $ 

Чтобы предотвратить случайное удаление файла, введите rm -i .

 paul @ debian7: ~  долларов США 
файл33 файл42 SinkoDeMayo
paul @ debian7: ~ $  RM -i file33 
rm: удалить обычный пустой файл `file33 '? да
paul @ debian7: ~  долл. США -i SinkoDeMayo 
rm: удалить обычный пустой файл `SinkoDeMayo '? п
paul @ debian7: ~ $  ls 
file42 SinkoDeMayo
paul @ debian7: ~ $ 

По умолчанию rm -r не удаляет непустые каталоги. Однако rm принимает несколько параметров, которые позволят вам удалить любой каталог.Оператор rm -rf известен тем, что стирает все, что угодно (при условии, что у вас есть на это права). Когда вы вошли в систему как root, будьте очень осторожны с rm -rf ( f означает force , а r означает рекурсивный ), поскольку root подразумевает, что разрешения к вам не применяются. Вы можете буквально случайно стереть всю файловую систему.

 paul @ debian7: ~  долларов mkdir test 
paul @ debian7: ~  долларов, тестовая версия 
rm: невозможно удалить `test ': это каталог
paul @ debian7: ~  долларов rm -rf test 
paul @ debian7: ~ $  ls test 
ls: нет доступа к тесту: нет такого файла или каталога
paul @ debian7: ~ $ 

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

 paul @ debian7: ~  долларов США 
file42 SinkoDeMayo
paul @ debian7: ~ $  cp file42 file42.copy 
paul @ debian7: ~ $  ls 
file42 file42.copy SinkoDeMayo 

скопировать в другой каталог

Если целью является каталог, то исходные файлы копируются в этот целевой каталог.

 paul @ debian7: ~  долларов mkdir dir42 
paul @ debian7: ~ $  cp SinkoDeMayo dir42 
paul @ debian7: ~ $  ls dir42 / 
SinkoDeMayo 

Чтобы скопировать полные каталоги, используйте cp -r (опция -r заставляет рекурсивное копирование всех файлов во всех подкаталогах).

 paul @ debian7: ~  долларов США 
dir42 file42 file42.copy SinkoDeMayo
paul @ debian7: ~ $  cp -r dir42 / dir33 
paul @ debian7: ~ $  ls 
dir33 dir42 file42 file42.copy SinkoDeMayo
paul @ debian7: ~ $  ls dir33 / 
SinkoDeMayo 

копировать несколько файлов в каталог

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

 paul @ debian7: ~ $  cp file42 file42.копировать SinkoDeMayo dir42 / 
paul @ debian7: ~ $  ls dir42 / 
file42 file42.copy SinkoDeMayo 

Чтобы предотвратить перезапись cp существующих файлов, используйте параметр -i (для интерактивного).

 paul @ debian7: ~  долл. США за копирование SinkoDeMayo file42 
paul @ debian7: ~ $  cp SinkoDeMayo file42 
paul @ debian7: ~ $  cp -i SinkoDeMayo file42 
cp: перезаписать `file42 '?  п 
paul @ debian7: ~ $ 

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

 paul @ debian7: ~  долларов США 
dir33 dir42 file42 file42.copy SinkoDeMayo
paul @ debian7: ~ $  mv file42 file33 
paul @ debian7: ~ $  ls 
dir33 dir42 file33 file42.copy SinkoDeMayo
paul @ debian7: ~ $ 

Если вам нужно переименовать только один файл, предпочтительнее использовать команду mv .

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

Для переименования каталогов можно использовать ту же команду mv .

 paul @ debian7: ~  $ ls -l 
всего 8
drwxr-xr-x 2 paul paul 4096 15 окт 09:36 dir33
drwxr-xr-x 2 paul paul 4096 15 окт 09:36 dir42
-rw-r - r-- 1 пол Павел 0 15 окт 09:38 file33
-rw-r - r-- 1 paul paul 0 15 окт, 09:16 file42.копировать
-rw-r - r-- 1 пол Поль 0 5 мая 2005 SinkoDeMayo
paul @ debian7: ~ $  mv dir33 backup 
paul @ debian7: ~ $  ls -l 
всего 8
drwxr-xr-x 2 paul paul 4096 15 октября 09:36 резервное копирование
drwxr-xr-x 2 paul paul 4096 15 окт 09:36 dir42
-rw-r - r-- 1 пол Павел 0 15 окт 09:38 file33
-rw-r - r-- 1 пол Поль 0 15 окт 09:16 file42.copy
-rw-r - r-- 1 пол Поль 0 5 мая 2005 SinkoDeMayo
paul @ debian7: ~ $ 

mv также имеет переключатель -i , аналогичный cp и rm .

этот снимок экрана показывает, что mv -i запросит разрешение на перезапись существующего файла.

 paul @ debian7: ~ $  mv -i file33 SinkoDeMayo 
mv: перезаписать `SinkoDeMayo '? 
paul @ debian7: ~ $ 

Команда rename — один из тех редких случаев, когда в книге «Основы Linux» проводится различие между дистрибутивами Linux. Почти каждая команда в части Fundamentals этой книги работает почти на каждом компьютере Linux.Но переименовать в другое.

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

Команда rename в Debian использует регулярные выражения (регулярное выражение или короткое регулярное выражение объясняется в следующей главе) для одновременного переименования нескольких файлов.

Ниже пример переименования , который заменяет все вхождения txt на png для всех имен файлов, оканчивающихся на .txt.

 paul @ debian7: ~ / test42 $  ls 
Файл abc.txt 33.txt file42.txt
paul @ debian7: ~ / test42 $  переименовать 's / \. txt / \. png /' * .txt 
paul @ debian7: ~ / test42 $  ls 
abc.png file33.png file42.png 

В этом втором примере все (первые) вхождения файла заменяются на документ для всех имен файлов, заканчивающихся на .png.

 paul @ debian7: ~ / test42 $  ls 
abc.png file33.png file42.png
paul @ debian7: ~ / test42 $  переименовать s / file / document / '* .png 
paul @ debian7: ~ / test42 $  ls 
abc.png document33.png document42.png
paul @ debian7: ~ / test42 $ 

переименовать в CentOS / RHEL / Fedora

В Red Hat Enterprise Linux синтаксис переименовать немного отличается. В первом примере ниже все файлы * .conf переименовываются, заменяя любое вхождение .conf на .backup.

 [paul @ centos7 ~] $  touch one.conf two.conf three.conf 
[paul @ centos7 ~] $  переименовать .conf .backup * .conf 
[paul @ centos7 ~]  латов  долларов
одна резервная копия три резервная копия две резервная копия
[paul @ centos7 ~] $ 

Второй пример переименовывает все (*) файлы, заменяя один на ОДИН.

 [paul @ centos7 ~] $  LV 
одна резервная копия три резервная копия две резервная копия
[paul @ centos7 ~] $  переименовать в ONE * 
[paul @ centos7 ~]  латов  долларов
ОДИН. Резервное копирование три. Резервное копирование два. Резервное копирование
[paul @ centos7 ~] $ 

Практика: работа с файлами

1. Перечислите файлы в каталоге / bin

2. Отобразите тип файла / bin / cat, / etc / passwd и / usr / bin / passwd.

3а. Загрузите wolf.jpg и LinuxFun.pdf с http://linux-training.be (wget http: // linux-training.be / files / studentfiles / wolf.jpg и wget http://linux-training.be/files/books/LinuxFun.pdf)

 wget http://linux-training.be/files/studentfiles/wolf.jpg
wget http://linux-training.be/files/studentfiles/wolf.png
wget http://linux-training.be/files/books/LinuxFun.pdf 

3b. Отобразите тип файла wolf.jpg и LinuxFun.pdf

3c. Переименуйте wolf.jpg в wolf.pdf (используйте mv).

3д. Отобразите тип файла wolf.pdf и LinuxFun.pdf.

4. Создайте каталог, которого коснулся ~ /, и войдите в него.

5. Создайте файлы today.txt и вчера.txt в затронутом.

6. Измените дату в файле вчера.txt, чтобы она соответствовала вчерашней дате.

7. Скопируйте вчера.txt в copy.yesterday.txt

8. Переименуйте copy.yesterday.txt в kim

9. Создайте каталог с именем ~ / testbackup и скопируйте в него все файлы из ~ /, которых коснулись.

10. Используйте одну команду, чтобы удалить каталог ~ / testbackup и все файлы в нем.

11. Создайте каталог ~ / etcbackup и скопируйте все *.conf файлы из / etc в него. Вы включили все подкаталоги / etc?

12. Используйте rename, чтобы переименовать все файлы * .conf в * .backup. (если у вас есть несколько дистрибутивов, попробуйте их на всех!)

решение: работа с файлами

1. Перечислите файлы в каталоге / bin

 ls / bin 

2. Отобразите тип файла / bin / cat, / etc / passwd и / usr / bin / passwd.

 файл / bin / cat / etc / passwd / usr / bin / passwd 

3a. Загрузите wolf.jpg и LinuxFun.pdf с http://linux-training.be (wget http://linux-training.be/files/studentfiles/wolf.jpg и wget http://linux-training.be/files/books/LinuxFun.pdf)

 wget http://linux-training.be/files/studentfiles/wolf.jpg
wget http://linux-training.be/files/studentfiles/wolf.png
wget http://linux-training.be/files/books/LinuxFun.pdf 

3b. Отобразите тип файла wolf.jpg и LinuxFun.pdf

 файл wolf.jpg LinuxFun.pdf 

3c. Переименуйте wolf.jpg в wolf.pdf (используйте mv).

 mv wolf.jpg wolf.pdf 

3d. Отобразите тип файла wolf.pdf и LinuxFun.pdf.

 файл wolf.pdf LinuxFun.pdf 

4. Создайте каталог ~ /, которого коснулись, и войдите в него.

 мкдир ~ / тронулся; cd ~ / touch 

5. Создайте файлы today.txt и вчера.txt в touch.

 touch today.txt вчера.txt 

6. Измените дату в файлеterday.txt, чтобы она соответствовала вчерашней дате.

 touch -t 200810251405 вчера.txt (замените 20081025 на вчера) 

7.Скопируйте вчера.txt в copy.yesterday.txt

 cpterday.txt copy.yesterday.txt 

8. Переименуйте copy.yesterday.txt в kim

 mv copy.yesterday.txt kim 

9. Создайте каталог с именем ~ / testbackup и скопируйте все файлы из ~ /, которые в него коснулись.

 мкдир ~ / testbackup; cp -r ~ / touch ~ / testbackup / 

10. Используйте одну команду, чтобы удалить каталог ~ / testbackup и все файлы в нем.

 rm -rf ~ / testbackup 

11. Создайте каталог ~ / etcbackup и скопируйте все *.conf файлы из / etc в него. Вы включили все подкаталоги / etc?

 cp -r /etc/*.conf ~ / etcbackup 
 Копируются только файлы * .conf, которые находятся непосредственно в / etc /. 

12. Используйте rename, чтобы переименовать все файлы * .conf в * .backup. (если у вас доступно более одного дистрибутива, попробуйте его на всех!)

 В RHEL: коснитесь 1.conf 2.conf; переименовать резервную копию conf * .conf 
 В Debian: коснитесь 1.conf 2.conf; переименуйте 's / conf / backup /' * .conf 

Команды Linux — Работа с файлами и каталогами — Справочник Linux — DYclassroom

Программирование на C Ява PHP Python

Контроль версий

Git

База данных

MongoDB MySQL

Unix / Linux

Программирование оболочки Unix Vim

Тестирование

Мокко Мокко Чай PHPUnit

Код

Программирование Код JavaScript

Дизайн

Эскиз Фотошоп

Подробнее…

Apache ActiveMQ Зеркалка Деньги

Веб-разработчик

CSS HTML JavaScript jQuery

База данных

СУБД Redis SQL

Язык программирования

Программирование на C PHP Символы ASCII База данных Греческие буквы HTML-объекты JavaScript Linux Математические символы Римские цифры Сервер Интернет YouTube Больше… Mac

Понимание путей к файлам и их использования в Linux

Путь к файлу — это удобочитаемое представление местоположения файла или папки в компьютерной системе. Вы видели пути к файлам в Интернете, хотя вы можете этого не осознавать: URL-адрес в Интернете, несмотря на древние битвы, которые велись проприетарными компаниями, такими как AOL и CompuServe, на самом деле представляет собой просто путь к (иногда динамически создаваемому) файлу на чужом компьютер.Например, когда вы переходите на example.com/index.html, вы фактически просматриваете HTML-файл index.html, который, вероятно, находится в каталоге var на сервере example.com. У файлов на вашем компьютере тоже есть пути к файлам, и в этой статье объясняется, как их понимать и почему они важны.

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

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

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

Файлам и папкам в Linux даются имена, содержащие обычные компоненты, такие как буквы, числа и другие символы на клавиатуре.Но когда файл находится внутри папки или папка находится внутри другой папки, символ / показывает связь между ними. Вот почему вы часто видите файлы, перечисленные в формате / usr / bin / python3 или / etc / os-release . Косые черты указывают, что один элемент хранится внутри элемента, предшествующего ему.

Каждый файл и папка в системе POSIX можно указать как путь. Если у меня есть файл penguin.jpg в папке Pictures в моем домашнем каталоге, а мое имя пользователя — seth , то путь к файлу может быть выражен как / home / seth / Pictures / penguin.jpg .

Большинство пользователей взаимодействуют в основном со своим домашним каталогом, поэтому символ тильды ( ~ ) используется в качестве сокращения. Этот факт означает, что я могу выразить свой пример изображения пингвина как /home/seth/Pictures/penguin.jpg или как ~ / Pictures / penguin.jpg .

Практика ведет к совершенству

Компьютеры используют пути к файлам независимо от того, задумываетесь ли вы о том, что это за путь или нет. Не обязательно думать о файлах с точки зрения пути.Однако пути к файлам являются частью полезной структуры для понимания того, как работают компьютеры, и научиться думать о файлах на пути может быть полезно, если вы хотите стать разработчиком (вам необходимо понимать пути к поддержке библиотек), веб-дизайнер (пути к файлам гарантируют, что вы указываете HTML-код на соответствующий CSS), системный администратор или просто опытный пользователь.

Если есть сомнения, перетащите

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

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

Не тратьте время на догадки. Просто перетащите.

Вкладка ваш друг

В системе, известной тем, что отказываются от трехбуквенных команд, когда подойдут двух- или даже однобуквенные команды, будьте уверены, что ни один опытный пользователь POSIX и не напечатает все. В оболочке Bash клавиша Tab означает автозаполнение , а автозаполнение никогда не лжет.Например, чтобы ввести пример расположения файла penguin.jpg , вы можете начать с:

 

, а затем нажмите клавишу Tab . Пока есть только один элемент, начинающийся с Pi, папка Pictures автоматически заполняется за вас.

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

Предположим, что вы в припадке ночной реорганизации перемещаете penguin.jpg из папки ~ / Pictures в каталог ~ / Spheniscidae .Вы засыпаете и просыпаетесь отдохнувшими, но без памяти, которую вы реорганизовали, поэтому вы пытаетесь скопировать ~ / Pictures / penguin.jpg на свой веб-сервер в терминале, используя автозаполнение.

Независимо от того, сколько вы нажимаете на клавишу Tab , Bash отказывается от автозаполнения. Нужный файл просто не существует в том месте, где, по вашему мнению, он существует. Эта функция может быть полезна, когда вы пытаетесь указать на своей веб-странице шрифт или файл CSS , который вы были уверены, вы загрузили, или когда вы указываете компилятор на библиотеку, вы положительно на 100% вы уже скомпилировали.

Это не автозаполнение вашей бабушки

Если вам нравится автозаполнение Bash, вы придете к насмешкам, как только попробуете автозаполнение в Zsh. Оболочка Z вместе с сайтом Oh My Zsh обеспечивает динамичный опыт, наполненный плагинами для определенных языков и сред программирования, визуальными темами с полезными отзывами и динамичным сообществом страстных пользователей оболочки:

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

Больше практики

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

30+ Найти команду в Linux с примерами

В Linux и всех Unix-подобных операционных системах « find » — это служебная программа командной строки, которая находит файлы в одном или нескольких деревьях каталогов. Более того, с помощью команды пользователи могут устанавливать определенные критерии поиска и действия с файлами, которые соответствуют условиям поиска. Следовательно, это утилита для иерархии файлов, где пользователь может не только использовать ее для поиска данных, но и выполнять с ними последовательные операции.

Команды поиска в Linux

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

Содержание

Примеры команды file в Linux

Существует несколько способов использования команды file для упрощения задач.Ниже приведены примеры команды «find» в Linux :

Поиск файлов по имени с помощью команды find

1. Найти в текущем каталоге

Команда ищет в текущем рабочем каталоге имя файла «putty.txt». Однако, если пользователь хочет, чтобы «команда поиска» возвращала только файлы, а не каталоги, то нужно добавить -type f в конец команды.

найти. -name putty.txt

2.Ищите файлы в домашнем каталоге

Команда проверяет каталог / home. Например, команда ниже предназначена для поиска имени «putty.txt».

find / home -name tecmint.txt

3. Поиск файлов в / домашнем каталоге независимо от регистра

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

find / home -iname putty.txt

4. Искать во всех каталогах определенный файл

Команда ищет каталоги с определенным именем, например «puttygen» в корневой папке. Например, название для поиска — «puttygen», тогда пользователь должен ввести следующую команду.

find / -type d -name puttygen

5. Найдите файлы PHP по имени

Команда позволит пользователям находить все файлы PHP с определенным именем, таким как «ask», в рабочем каталоге.

найти. -type f -name ask.php

6. Проверить файлы во временном каталоге

Проверяет файлы «tmp» с именем «file.php».

find / -type f -name tmp.php

Поиск файлов / папок по разрешениям

7. Поиск файлов / папок по разрешениям 777

Команда вернет все файлы с разрешениями 777. В этом случае он проверит все данные с именем «пробная версия».php ’и имеет 777 разрешений.

find / -perm 777 -name test.php

8. Найдите файл SUID с разрешениями 755

SUID (Установить идентификатор пользователя владельца при выполнении) — это временный набор разрешений для файла, который позволяет пользователю запускать исполняемый файл путем наследования прав доступа владельца исполняемого файла. Приведенная ниже команда будет искать файлы с разрешением SUID 755

.

найти / -перма 4755

9. Найдите файл SGID с разрешением 644

Подобно SUID, SGID (Установить идентификатор группы при выполнении) также является временным разрешением, предоставляемым пользователю для запуска файла или исполняемого файла.Основное отличие состоит в том, что при запуске файла он наследует разрешение группы, а не человека, вошедшего в систему. Можно искать файлы SGID в Linux, используя следующую команду

найти / -перма 2644

10. Прикрепленные битовые файлы с разрешениями 755

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

Таким образом, пользователи включают липкий бит, чтобы никто не мог удалить папку или содержимое. Помимо удаления, у пользователей есть другие полные права. Ниже можно использовать команду find в Linux для поиска файлов с разрешением 755:

.

найти / -пер. 1755

Пользовательские и групповые команды

11. Пользовательская команда

Приведенная выше команда будет искать файлы с «putty.txt», принадлежащие определенному пользователю или группе.Например, в этом случае имя пользователя — «пробная версия». Молли является владельцем файла или папки.

найти / пробное имя пользователя molly.txt

12. Групповая команда

В случае группы, если имя группы — «колледж», команда будет иметь следующий вид:

find / -group название-колледжа molly.txt

Поиск по временному параметру

13. Ищите файлы, измененные после 90 дней

Команда вернет все файлы, которые были изменены по истечении 90 дней.

найти / -ctime +90 molly.txt

14. Поиск файла, измененного точно через 90 дней

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

найти / -mtime 90

15. Поиск файлов, измененных за 90 дней

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

найти / время -90

16.Измененные файлы во временном диапазоне

Если пользователь хочет найти файл, который был изменен в заданном временном диапазоне, например, более 30 дней и менее 90 дней, используйте следующую команду:

найти / -mtime +30 -mtime -90

17. Файлы, превышающие фиксированное время

Искать файлы, измененные менее определенного времени

найти / -cmin -30

18. Файлы изменены точно ниже заданного времени

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

найти / -ммин 30

19.Файлы, измененные до 30 мин.

С помощью следующей команды можно просмотреть файлы, измененные более чем на 30 минут назад

найти / -амин +30

20. Файл в заданном диапазоне времени (часы / минуты)

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

найти / -ммин +5 -ммин -25

21.Проверить файлы созданы

Для проверки вновь созданных файлов пользователь должен ввести простую команду поиска в Linux.

find / -newer test.txt

Поиск по размеру файла с помощью команд

22. Найдите файл размером более 15 байт

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

найти / размер + 15c

23. Файл или папка размером более 40 КБ

Пользователь может использовать следующую команду для поиска файлов размером более 40 КБ в любой из папок:

find / tmp -размер 40k

24.Поиск файла размером менее 20 МБ

Пользователи могут использовать «команду поиска» для поиска файлов размером менее 20 МБ в папке

find / tmp -размер -20M

25. Поиск файлов размером более 1 ГБ

Приведенная ниже команда вернет все файлы или папки, размер которых превышает 1 ГБ.

найти / размер + 1G

26. Пустые файлы на сервере

Поиск пустого файла очень прост, и это можно сделать, выполнив приведенную ниже команду find на

.

найти / -размер 0c

27.Поиск файлов по размеру

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

find / fast -size + 100M -size -300M -user molly -iname trial.txt

В приведенном выше примере Молли является владельцем файла, а «пробная версия» — это имя файла.

Выполнить команду «Выполнить» для файлов, возвращаемых с помощью команды «Найти»

Перед использованием исполняемой команды пользователи должны быть осторожны, поскольку она может изменить все.Команда «Выполнить команду» (-exec) позволяет пользователям выполнять действия с файлами, найденными с помощью «команды поиска».

28. Поиск в папке / Tmp

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

find / tmp -iname * trial. * -Exec ls -ld {};

29. Смена собственника

Это интересный пример того, насколько пользователь может использовать команду execute.Следующая команда вернет файл trial.txt, владельцем которого является Молли, в папке / home. Затем команда -exec изменит право собственности на Сэма, запустив команду chown.

find / home -user Molly -name trial.txt -exec chown Sam.Sam {};

30. Изменить разрешение с помощью -Exec

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

find / var / named -user Molly -name trial.txt.db -exec chmod 755 {};

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

Команда

cvs в Linux с примерами

cvs (Система одновременных версий) в Linux используется для хранения истории файла. Когда файл поврежден или что-то пойдет не так, cvs поможет нам вернуться к предыдущей версии и восстановить наш файл.

Синтаксис:

cvs [cvs_options] cvs_command [command_options] [command_args]
 

Параметры политики:

  • –allow-root = rootdir: Укажите репозиторий в командной строке. Он также указывает допустимый каталог cvsroot. См. «Сервер аутентификации по паролю» в руководстве по CVS.
  • -d, cvs_root_directory: Он использует cvs_root_directory в качестве имени пути к каталогу репозитория. Он также переопределяет переменную среды $ CVSROOT .
  • -e, команда-редактора: Использует указанную команду редактора для ввода информации журнала. Он также переопределяет переменные среды $ CVSEDITOR и $ EDITOR .
  • -f: Он не читает файл ~ / .cvsrc .
  • -H: Отображает справку по команде CVS.
  • -n: Он не вносит никаких изменений в корневой репозиторий, а также распечатывает, что произошло бы, если бы флаг «-n» не использовался.
  • -Q: Тихий режим. Менее подробный, чем обычно.
  • -q: Слегка тихий режим. Сообщения о рекурсии подавляются.
  • -v: Показать версию программного обеспечения CVS и информацию об авторских правах.
  • -w: Сделать новые рабочие файлы для чтения-записи. Заменяет значение переменной среды $ CVSREAD .

Команды CVS:

  • добавить: Добавить новый файл / каталог в репозиторий.
  • admin: Интерфейс администрирования для RCS.
  • annotate: Показывает последнюю ревизию, в которой была изменена каждая строка.
  • касса: Источники кассы для редактирования.
  • фиксация: Проверить файлы в репозиторий.
  • diff: Показать различия между версиями.
  • edit: Будьте готовы редактировать наблюдаемый файл.
  • редакторов: Посмотрите, кто редактирует просматриваемый файл.
  • export: Экспорт исходных файлов из CVS, аналогично checkout.
  • история: Показать историю доступа к репозиторию.
  • import: Импортируйте источники в CVS, используя ветки поставщика.
  • init: Создает репозиторий CVS, если он не существует.
  • журнал: Распечатать информацию истории для файлов.
  • rdiff: Создание различий в формате «patch» между ревизиями.
  • status: Отображение информации о статусе извлеченных файлов.
  • tag: Добавляет символический тег к извлеченной версии файлов.
  • unedit: Отменить команду редактирования.
  • обновление: Синхронизировать дерево работ с репозиторием.
  • версия: Показать текущую версию (-и) CS.
  • часы: Установить часы.

Настройка среды для CVS:



  • Задайте переменные среды: (для добавления в файл .bashrc )

    Синтаксис:

    export CVSROOT = '/ home / linux / cvs_root' - каталог для репозитория исходного кода CVS
    экспорт CVSEDITOR = / bin / vi
     

  • Задайте переменные среды: (чтобы добавить в свой .cshrc файл) (для пользователей csh)

    Синтаксис:

    setenv CVSROOT '/ главная / Linux / cvs_root'
    setenv CVSEDITOR / bin / vi
     

Примеры:

Примечание:

  • Чтобы проверить страницу руководства по команде cvs, используйте следующую команду:
     человек CVS 
  • Чтобы проверить страницу справки по команде cvs, используйте следующую команду:
     cvs --help имя_команды 


Начало работы с Linux и Ubuntu

Это руководство доступно для скачивания в виде бесплатного PDF-файла.Загрузите этот файл сейчас. Не стесняйтесь копировать и делиться этим со своими друзьями и семьей.

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

Я тебя слышу, и я здесь, чтобы помочь.

Что такое Linux?

Если вы новичок в Linux, вы можете сделать общее предположение, что это операционная система.Это не совсем так. На самом деле Linux — это просто ядро ​​ , ядро ​​операционной системы. Ядро позволяет программному обеспечению (то, что вы видите на экране) взаимодействовать с оборудованием (тем, что вы касаетесь руками). Без ядра ваша система не может работать.

Поэтому, когда вы говорите Linux, вы чаще всего имеете в виду любую из операционных систем, основанных на ядре Linux, например Ubuntu или Fedora.Linux как ядро ​​ничего не делает сам по себе. Ему нужен кто-то, чтобы связать и распространить со всем программным обеспечением, необходимым для обеспечения полноценной работы. Когда это происходит, результирующая операционная система Linux известна как дистрибутив (или «дистрибутив»).

Чем отличается Linux?

Чем отличается ядро ​​Linux? Как и большинство приложений, работающих на нем, ядро ​​активно поддерживается сообществом свободного программного обеспечения с открытым исходным кодом (FOSS).

Программное обеспечение с открытым исходным кодом не стоит денег, и каждый может свободно просматривать исходный код и изменять его по своему усмотрению.Это означает, что опытные разработчики со всего мира вносят свою работу бесплатно или через спонсорство таких компаний, как Canonical или Red Hat. Но вы можете улучшить и программное обеспечение.

Напротив, исходный код Windows недоступен никому, кроме сотрудников Microsoft, и его декомпиляция или обратный инжиниринг является уголовным преступлением.Вы не можете собрать собственное ядро ​​Windows, исправить ошибки или распространить созданную вами улучшенную версию Windows.

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

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

В конце концов, хотя использование Linux очень похоже на Windows и macOS, есть аспекты, которые вам придется изучить впервые.По мере продвижения мы встретим их больше.

Вдыхая жизнь в старый компьютер

Одна из частых причин, по которой люди переходят на Linux, — это продолжать использовать компьютер, который больше не поддерживает последнюю версию Windows или macOS.Насколько хорош Linux для этой работы и почему?

  • Linux эффективен: Многие дистрибутивы Linux основаны на многолетнем опыте работы в серверных комнатах.Системные администраторы часто ценят гладкий, компактный код, который выполняет свою работу без потери вычислительной мощности. Дополнительные пять секунд для включения — это то, с чем многие системные администраторы не готовы мириться. Такая суровая и требовательная среда сделала дистрибутивы Linux лучшими в своем классе. Несмотря на то, что программное обеспечение поступает из множества различных источников, не все программы могут наилучшим образом использовать системные ресурсы.
  • Linux настраивается: Linux позволяет пользователям настраивать каждый аспект функциональности машины.Некоторые дистрибутивы предлагают вам выбрать разные компоненты и собрать свою собственную систему. Большинство из них обеспечивают полностью рабочий процесс, но позволяют вам менять или изменять части по вашему желанию. Многие дистрибутивы рекомендуют вам вносить свои собственные настройки, в то время как настройка других (например, Elementary OS) может потребовать более специализированных знаний.
  • Linux не требует вложений: Подавляющее большинство программного обеспечения Linux можно загрузить и установить бесплатно.Эти программы, как правило, достаточно просты в использовании, поэтому вам не нужно тратить деньги на учебные курсы или книги. Все, что вам нужно потратить, чтобы оживить старый ПК с помощью Linux, — это время.
  • Linux является модульным и специализированным: Вы можете настроить машину, специально разработанную в соответствии с вашими потребностями: удаленный видеонаблюдение, база данных рецептов блюд, панель управления для потрясающего лазерного проектора, который меняет интенсивность синхронно с ритмом музыки.Вы можете построить все, что захотите. Свидетельством модульной конструкции Linux является то, что вариант Red Hat Linux используется для управления электромагнитами внутри Большого адронного коллайдера. Вы можете быть удивлены, сколько всего еще может делать ваш старый компьютер.

Начало работы

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

Выбор распределения

Напомним, что дистрибутив — это операционная система Linux, которая поставляется со всем программным обеспечением, необходимым для обеспечения полноценной работы.Они предоставляют ядро ​​вместе с драйверами оборудования и приложениями.

Распределения бывают всех форм и размеров.Некоторые из них нацелены на новичков, а другие — на самых стойких фанатов командной строки. (Вы также найдете дистрибутивы, которые упрощают переход с macOS на Linux!) Ubuntu, Fedora и openSUSE — три универсальных дистрибутива, подходящие для людей с любым уровнем подготовки.

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

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

Вы можете посетить Distrowatch, чтобы увидеть сотни дистрибутивов Linux.С правой стороны вы увидите список 100 самых популярных дистрибутивов. Обратите внимание: сложно точно определить, сколько людей используют Linux. Базы Distrowatch ранжируются в зависимости от популярности веб-сайтов каждого дистрибутива. Это дает представление о том, чем интересуются люди, но вряд ли это представление о том, какие дистрибутивы используются наиболее широко. Ubuntu, например, в настоящее время не занимает первое место, но широко считается самой популярной версией настольного Linux.

Для менее сложного изложения просмотрите наш список лучших дистрибутивов Linux.

Выбор среды рабочего стола

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

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

GNOME

GNOME — это среда рабочего стола по умолчанию в Ubuntu, Fedora и Debian.В то время как Windows, macOS и большинство сред рабочего стола Linux отображают открытые окна на панели или в доке, GNOME этого не делает.

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

KDE

Рабочий стол KDE Plasma является средой по умолчанию в KDE Neon, Kubuntu и Chakra.Это также популярный выбор среди пользователей openSUSE.

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

Корица

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

Если вы не хотите заново учиться пользоваться компьютером, переход с корицы может избавить вас от головной боли.Это среда рабочего стола по умолчанию в Linux Mint.

Xfce

Хотя Linux — отличный способ возродить старый ПК, не каждая среда рабочего стола будет работать на устаревшем оборудовании.Возможно, вам придется использовать один, специально разработанный для использования меньшего количества системных ресурсов.

Xfce — один из наиболее популярных вариантов, который хорошо подходит для этой задачи.Это среда рабочего стола по умолчанию в Xubuntu.

Резервное копирование данных

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

Резервное копирование несложно, но может быть утомительным, если у вас разбросано много данных.Самый простой способ сохранить файлы — это подключить внешний жесткий диск к USB-порту.

Для пользователей Windows:

  1. Двойной щелчок по значку «Мой компьютер» на рабочем столе или в меню «Пуск» откроет окно, содержащее дерево файлов внешнего жесткого диска.
  2. Найдите и скопируйте необходимые файлы, выбрав их и нажав Ctrl + C , активируя дерево файлов внешнего жесткого диска, щелкнув внутри окна, которое мы открыли ранее, и нажав Ctrl + V . Кроме того, вы можете выбрать файлы и перетащить их в окно внешнего жесткого диска.

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

Проверка технических характеристик оборудования

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

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

Допустим, у вас или очень редкая карта Ethernet.Вы можете использовать инструмент System Profiler, чтобы узнать спецификации после того, как мы закончим установку операционной системы.

Если вы используете Windows, msinfo32 — это небольшая программа, включенная в Windows 2000, Me, XP и более поздние версии.Эта программа дает вам полное представление обо всем оборудовании, имеющемся в вашей системе. Вы можете найти его, открыв меню «Пуск» и введя msinfo32 в поле поиска. В более старых версиях Windows вам может потребоваться выбрать опцию Run в меню «Пуск» и ввести там msinfo32 .

Установка Linux

Хорошо, вы выбрали дистрибутив Linux, сделали резервную копию своих файлов и знаете, какое оборудование составляет ваш компьютер.Пора запачкать руки.

Есть три основных способа установить большинство дистрибутивов Linux на ваш компьютер:

  1. Замените существующую ОС на Linux
  2. Установите Linux вместе с существующей ОС
  3. Запускаем Linux с USB-накопителя

Вот подробные инструкции по установке Ubuntu на существующий компьютер с Windows или macOS.Из трех вышеперечисленных вариантов замена существующей операционной системы будет работать на вашем компьютере наиболее быстро и плавно.

Установка Linux без отказа от существующей операционной системы называется двойной загрузкой.Каждый раз, когда вы запускаете свой компьютер, у вас будет возможность выбрать операционную систему, которую вы используете. Это избавляет вас от необходимости оставлять старую ОС, но есть риски, о которых следует помнить.

Хранение копии Linux на USB-накопителе позволяет загружать вашу копию Linux на компьютер друга, в лаборатории или в библиотеке.Этот метод требует минимальных усилий от вас и вашего компьютера, поскольку вы не касаетесь своей копии Windows или macOS.

Использование рабочего стола Linux

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

Это рабочий стол Ubuntu.Хотя Canonical добавила несколько собственных элементов очарования, интерфейс, который вы видите, не является эксклюзивным для Ubuntu. Это GNOME.

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

Поиск дополнительных программ

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

Программы, созданные для Windows, работают только в Windows.То же самое и с программным обеспечением для macOS. Вам нужно будет найти приложения, предназначенные для Linux.

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

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

Хотя загрузка установщиков непосредственно с веб-сайтов не является предпочтительным способом получения программного обеспечения Linux, бывают случаи, когда это единственный вариант.Вот как вы, например, получаете Google Chrome. Это также распространенный способ установки коммерческих игр из интернет-магазинов, таких как Humble Bundle и GOG. Просто знайте, что вы не будете искать EXE. Вместо этого вы с большей вероятностью найдете файлы, упакованные как DEB, RPM, SH или один из многих других форматов для Linux.

Теперь, когда вы знаете, как устанавливать приложения, какие из них вам следует взять? Чтобы получить представление, ознакомьтесь с нашим списком лучших программ для Linux.

Установка обновлений

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

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

В Linux вы не только получаете бесплатные обновления для своих приложений, но и можете обновляться с одной версии дистрибутива до другой, не платя ни копейки.Это не ограниченное по времени предложение или сделка, на которую распространяются особые условия. Обновления, как и обновления, всегда бесплатны.

Загрузка мультимедийных кодеков

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

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

Законы меняются от страны к стране.Это одна из причин, почему кодеки доступны для бесплатной загрузки во многих дистрибутивах Linux, таких как Ubuntu и Linux Mint. Но есть также платная версия, которую вы можете скачать, если вам нужна четкая лицензия на воспроизведение этих файлов.

Поиск дополнительных драйверов

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

Если вы испытываете графические сбои или не можете просматривать сети Wi-Fi, возможно, вам потребуется установить проприетарный драйвер.Это программное обеспечение, которое дистрибутивы Linux не могут предустановить, поэтому вам придется сделать это самостоятельно. Как вы это делаете, может зависеть от того, какой дистрибутив вы используете. Если вы использовали Ubuntu, вы можете найти раздел для установки драйверов в приложении «Программное обеспечение и обновления».

Что делать, если вам нужно определенное программное обеспечение?

Один из первых вопросов, который задают люди при переходе на Linux, — смогут ли они запустить конкретную программу.Когда мы когда-либо использовали только одну операционную систему, мы склонны рассматривать приложения как компоненты, которые должен запускать любой компьютер. Но в большинстве случаев приложение на самом деле предназначено для работы только в одной операционной системе. Чтобы использовать другую, разработчики должны создать отдельную версию. Версия Steam для Windows не работает на macOS, и наоборот. Linux тоже нужна своя версия.

Поскольку не так много людей используют Linux на своих компьютерах, как Windows или macOS, разработчики часто предпочитают не создавать версию программного обеспечения для Linux.Достаточно часто есть бесплатная альтернатива с открытым исходным кодом, которая выполняет ту же работу. Но бывают случаи, когда люди хотят использовать программу, которая не работает в Linux и для которой не существует альтернативы. Хотя это может быть причиной не переходить на Linux, это не обязательно. Возможно, еще есть способы заставить эту программу работать.

Эмуляция

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

Самый известный способ эмулировать программное обеспечение Windows в Linux — использовать Wine.Хотя это не всегда работает, в лучшем случае приложение Windows будет работать вместе с вашим обычным программным обеспечением Linux без каких-либо дополнительных проблем.

Поскольку настройка Wine может быть сложной, существуют программы, которые пытаются сделать всю тяжелую работу за вас.Два популярных примера — это PlayOnLinux и Crossover Linux. Последнее — платное приложение, которое также существует для Windows и macOS.

Виртуальные машины

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

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

Все готово!

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

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

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

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

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

Найти полезные веб-сайты сложно.Их буквально миллиарды. Некоторые из них полезны, некоторые не очень. Некоторые из полезных веб-сайтов довольно популярны, и это правильно — такой инструмент, как Canva, — это жизнь …

Об авторе Бертель Кинг (Опубликовано 324 статей)

Бертел — цифровой минималист, который пишет с ноутбука с физическими переключателями конфиденциальности и ОС, одобренной Free Software Foundation.Он ценит этику выше функций и помогает другим контролировать свою цифровую жизнь.

Ещё от Bertel King
Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *