Дата изменение файла консоль linux – Изменение метки времени файла в Linux

Содержание

Изменение метки времени файла в Linux

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

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

 

Touch - это команда которая используется для изменения временных меток (время доступа, время модификации и время изменения файла)

 

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

 

1. Создание нового файла используя touch

 

Вы можете создать пустой файл используя команду touch. Представленный ниже пример создаст файл нулевой длины с именем grnd.txt

$ touch grnd.txt

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

$ touch -c abcd.txt

Такие команды как ls и find используют информацию о временных метках для вывода и поиска файлов.

Вы также можете создать более одного файла используя только одну команду touch. Пример показывает создание 4 файлов с именами ab de fj kl

2. Изменение метки времени доступа к файлу  (Access)

 

Мы можем изменить метку о времени доступа к файлу используя ключ -a. По умолчанию установиться текущее системное время.

 

Сначала запустим команду команду stat, чтобы проследить дальнейшее изменение времени.

$ stat grnd.txt
  File: `grnd.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d      Inode: 3408768     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/  alexey)   Gid: (    4/     adm)
Access: 2012-11-20 14:07:44.948481916 +0400
Modify: 2012-11-20 14:07:44.948481916 +0400
Change: 2012-11-20 14:07:44.948481916 +0400
 Birth: - 

Далее touch с ключом -a

$ touch -a grnd.txt

После выполнения команды опять проверим состояние файла:

$ stat grnd.txt
  File: `grnd.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d      Inode: 3408768     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/  alexey)   Gid: (    4/     adm)
Access: 2012-11-20 14:27:29.264508552 +0400
Modify: 2012-11-20 14:07:44.948481916 +0400
Change: 2012-11-20 14:27:29.264508552 +0400
 Birth: -

3. Изменить метку временя модификации (Modify)

Вы можете изменить время модификации используя ключ -m

 

Пример:

$ touch -m *.o

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

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

 

Примечание: Невозможно изменить метку времени изменения файла (Change) командой touch.

 

4. Явно задать время доступа и модификации 

 

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

 

Формат при использовании ключа -t будет - [[CC]YY]MMDDhhmm[.SS] -

 

$ touch -t [[CC]YY]MMDDhhmm[.SS]

 

Обозначения данного формата:

 

CC – Показывает первые две цифры года.

YY – Показывает последние две цифры года. Если значение YY находится между 70 и 99, то значение СС принимается как 19. А если значение YY jn 00 до 37, то СС будет установлено как 20. Невозможно задать дату более 18 Января 2038 года.

MM – Показывает месяц

DD – Указывает дату

hh – час

mm – минуты

SS – секунды

 

Пример:

$ touch -a -m -t 203710141103.24 grnd.txt

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

:~$ stat grnd.txt
  File: `grnd.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d      Inode: 3408768     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/  alexey)   Gid: (    4/     adm)
Access: 2037-10-14 11:03:24.000000000 +0400
Modify: 2037-10-14 11:03:24.000000000 +0400
Change: 2012-11-20 15:08:04.992597671 +0400
 Birth: -

Также интересно:

Рассмотрим другой пример с более удобочитаемой записью даты:

$ touch -d "2012-10-20 13:13:13.000000000 +0400" grnd.txt

Команда touch будет очень полезна для разработчиков, особенно если работать с Makefiles

 

5. Копировать метку времени с другого файла.

 

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

 

Приведем пример, обновим метки времени файлу ab.txt взяв за эталон метки файла grnd.txt

$ touch ab.txt -r grnd.txt
Надеюсь данный материал будет Вам полезен, удачи!

 

greendail.ru

Linux - Изменить Метки Времени Файла (Access, Modify, Change)

Файлы в Linux имеют 3 типа временных меток: время доступа (англ. access time, сокр. atime), время модификации

(англ. modification time, сокр. mtime) и время изменения (англ. change time, сокр. ctime).

Однажды может возникнуть необходимость подделать временные метки какого-либо файла.

atime (время доступа), как и mtime (время модификации) могут быть легко изменены с помощью команды touch, но для подделки метки ctime (времени изменения) стандартного решения не существует.

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

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

Дельный Совет: Чтобы замести следы — очистите историю последних входов в систему. Читать далее →

Узнать Временные Метки Файла

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

$ stat file.txt
  File: ‘file.txt’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 804h/2052d	Inode: 2501536     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     admin)   Gid: ( 1000/     admin)

Access: 2015-02-19 11:43:08.503408793 +0200
Modify: 2015-02-19 11:43:08.503408793 +0200
Change: 2015-02-19 11:43:08.503408793 +0200

Разница Между «atime», «mtime» и «ctime»

Временная меткаКогда она обновляется?
atimeВремя доступа к файлу обновляется когда вы открываете файл либо когда он используется для других операций, например таких как: grep, cat, head и т.д.
mtimeВремя модификации файла обновляется когда вы изменяете его содержимое либо сохраняете файл.
ctimeВремя изменения файла обновляется когда меняются его атрибуты, такие как владелец файла, права, либо он перемещается на другую файловую систему. Также это время обновляется и при изменения времени модификации файла.

Изменить Временя «Доступа» и «Модификации» Файла

Изменить atime к файлу (время доступа):

$ touch -a --date="1988-02-15" file.txt
$ touch -a --date="1988-02-15 01:00" file.txt
$ touch -a --date="1988-02-15 01:00:17.547775198 +0300" file.txt

Изменить mtime файла (время модификации):

$ touch -m --date="2020-01-20" file.txt
$ touch -m --date="2020-01-20 23:05" file.txt
$ touch -m --date="2020-01-20 23:05:43.443117094 +0400" file.txt

Подделать Время «Изменения» Файла

Как я уже говори ранее, не существует стандартного решения для подделки ctime (времени изменения файла).

Тем не менее, если вы готовы рискнуть, это можно сделать.

Для начала необходимо изменить системное время на то, на которое вы хотите поменять ctime.

Затем необходимо использовать команду touch на файле, а потом откатить системное время обратно.

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

Сохраните текущую дату и время в переменную NOW:

$ NOW=$(date)

Установите поддельное системное время (необходим root):

$ date --set "2030-08-15 21:30:11"

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

$ touch file.txt

Откатите время назад (необходим root):

$ date --set "$NOW"

Дельный Совет: Удаляйте историю команд в BASH эффективно! Читать далее →

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

$ NOW=$(date) && date -s "2030-08-15 21:30:11" && touch file.txt && date -s "$NOW"

Заметаем Следы

Чтобы замести следы — очистите значение переменной, а также почистить логи и историю.

Очистите значение переменной NOW:

$ unset NOW

Из файла /var/log/messages удалите строки с информацией об изменении системного времени (необходим root):

Feb 24 06:32:46 centos7 systemd: Time has been changed
Aug 15 14:30:11 centos7 systemd: Time has been changed

Дельный Совет: Хотите сохранить анонимность? Узнайте как использовать ПРОКСИ из командной строки в Linux! Читать далее →

Очистите историю входов в Linux (необходим root):

$ echo > /var/log/wtmp
$ echo > /var/log/btmp
$ echo > /var/log/lastlog

Очистите историю текущей сессии:

$ history -r

www.shellhacks.com

Как узнать время последнего доступа и изменения файла в Debian, Ubuntu, CentOS, Linux ? — inet6.alphasca.net

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

Вот пример проверки на одной из моих машин:

# stat scalextreme-x86_64.deb
  File: `scalextreme-x86_64.deb'
  Size: 5591490         Blocks: 10952      IO Block: 4096   regular file
Device: ca01h/51713d    Inode: 56444919    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-11-12 18:02:39.000000000 +0200
Modify: 2012-11-12 17:49:50.000000000 +0200
Change: 2012-11-12 17:49:50.000000000 +0200

# stat scalextreme-x86_64.deb File: `scalextreme-x86_64.deb' Size: 5591490 Blocks: 10952 IO Block: 4096 regular file Device: ca01h/51713d Inode: 56444919 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2012-11-12 18:02:39.000000000 +0200 Modify: 2012-11-12 17:49:50.000000000 +0200 Change: 2012-11-12 17:49:50.000000000 +0200

Аналогично работает с директориями:

# stat bacula-5.2.12
  File: `bacula-5.2.12'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: ca01h/51713d    Inode: 56442900    Links: 11
Access: (0775/drwxrwxr-x)  Uid: ( 1000/    zale)   Gid: ( 1000/    zale)
Access: 2012-12-14 00:05:04.000000000 +0200
Modify: 2012-10-11 00:31:30.000000000 +0300
Change: 2012-10-11 00:31:30.000000000 +0300

# stat bacula-5.2.12 File: `bacula-5.2.12' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: ca01h/51713d Inode: 56442900 Links: 11 Access: (0775/drwxrwxr-x) Uid: ( 1000/ zale) Gid: ( 1000/ zale) Access: 2012-12-14 00:05:04.000000000 +0200 Modify: 2012-10-11 00:31:30.000000000 +0300 Change: 2012-10-11 00:31:30.000000000 +0300

Эта запись была размещена в CentOS, Debian, Operating systems, stat, Ubuntu и помечено как CentOS, debian, directory, file, Last Access file, Last Change, Last Modify, stat, Ubuntu, время последнего доступа файла, время последнего именения файла по Taras Yanchuk (постоянная ссылка).

inet6.alphasca.net

Консоль Linux - Переходим на Линукс

Переходим на Линукс  »  Консоль Linux

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

Запустить консоль Linux можно запустив терминал (Ctrl+Alt+T зависит от сборки), находится он в
Пуск (Меню) → Администрирование → Терминал (Или слева при раскрытии меню, зависит от оболочки..)
Для KDE: Пуск (Kickoff) → Система → Терминал. Или в файловом менеджере Dolphin он всегда под рукой горячая клавиша F4.

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

Например перейдём в папку и напишем ./start-tor-browser

В Линуксе расширение файла может не быть, исполняемым может быть любой файл у которого стоят разрешения на выполнение (можно выставить правой клавишей в свойствах или chmod +x ./start-tor-browser) в Виндовс обычно исполняемые только .exe и ещё некоторые файлы.


Управление консолью Linux

Часто понадобится запрашивать привилегии суперпользователя root для многих действий связанных с установкой, изменением файлов итп. Для этого предусмотрен механизм предоставления необходимого количества привилегий, но не более - sudo. Эта команда следует перед другими и вводится пароль пользователя для разрешения на запуск, вообще в Линуксе везде где производятся существенные изменения запрашивается пароль.

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

В редких случаях и это не советуется, можно запросить права суперпользователя и что-то сделать под ним не вводя каждый раз sudo, если поставить Debian или разные серверные дистрибутивы, в консоли нужно прописать su, но поскольку в сборках пароль суперпользователя не задан, то можно получить доступ к суперпользователю написав
sudo su

Если ввести любую команду, напрмиер, apt, то можно увидеть описание или apt и 2 раза TAB и увидеть только список функций. Если написать man apt попадаем в описание (мануал) к текущей функции. Ещё помощь можно получить в утилитах, к примеру если ввести ls --help..

При работе в консоли(терминале) в текстовым редактором nano, чтоб сохранить изменения нажмите закрыть Ctrl+X и подтвердите сохранение, отмена Ctrl+C (во многих случаях прервать любое действие эта команды Ctrl+C или q).

Ctrl+D отключиться (отлогиниться) от текущего пользователя, сервера. Повторное нажатие закрывает консоль..

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

Для копирования используется сочетание Ctrl+Shift+C, для вставки Ctrl+Shift+V (альтернатива мышка или Ctrl+Insert с Shift+Insert).

Можно ещё не мучить себя и использовать любой текстовой редактор с графическим режимом:

# решётка/диезик означает, что всё что дальше не выполнять - это комментарий
kate ~/.config/pulse
# открыть под суперпользователем:
kate sudoedit ~/.config/pulse

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

Историю команд можно посмотреть введя history, если нажимать стрелки вверх вниз, будут подставляться прошлые введённые команды. Повторить команду можно введя !! (два восклицательных знака, но стрелку вверх и энтер(ввод) быстрее..)

Команды консоли Linux

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

sudo rm -rf /
# равноценно
echo "text" | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:[email protected][-`{-};`-{/" -;;s;;$_;see'

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

Типичное использование консоли:

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

# Выключить компьютер:
sudo halt или sudo init 0 или telinit 0 или shutdown -h now

# Перезагрузить:
sudo reboot или shutdown -r now

Изменение прав и/или владельца можно осуществить через Действия root (Root Actions Servicemenu). Подробнее права Линукс chmod описаны в соседней статье.. (-R рекурсивно пройти по всем файлам/каталогам внутри)

sudo chmod -R 755 /path/to/dir
sudo chown -R $USER:$USER /path/to/dir
# корректней, но группа может отдаваться пустой и она совпадает с пользователем: 
sudo chown -R $USER:$GROUP /path/to/dir

Иногда нужно выяснить какой дистрибутив, название и прочие данные:

cat /etc/*release
# посмотреть архитектуру:
arch или uname -m

Посмотреть диски в системе:

fdisk -l # покажет названия с отказом в доступе
sudo fdisk -l # выведет полную информацию

Установка, удаление программ:

# уствновить пакет/программу:
sudo apt install -y name

# удалить пакет/программу:
sudo apt remove -y name

# удалить пакет/программу вместе с его конфигурационными файлами:
sudo apt purge -y name

# ещё можно явно указанные неиспользуемые зависимости удалить:
sudo apt -y autoremove

-y - соглашаться со всеми вопросами установщика, он там обычно сообщает всякие глупости, мол нужно дополнительно будет поставить связанные библиотеки или приложение займёт столько то места на диске.. В основном используются install и remove. Можно перечислить сразу несколько пакетов для установки sudo apt install -y name1 name2...

Дописать в конец файла:

echo -e 'my \n text \n info \n' >> ~/.config/my.conf

Если вместо >> поставить >, то файл перезапишется.

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

# перезаписать файл:
echo "значение" | sudo tee /путь/к/файлу/файл.sh
# дописать в конец:
echo "значение" | sudo tee -a /путь/к/файлу/файл.sh
# параметр -i игнорировать ошибки.
#eщё вариантик:
sudo sh -c 'echo 127.0.0.1 localhost >> /etc/hosts'

echo может иметь иметь опции/параметры:

-e - включить поддержку вывода Escape последовательностей
-E - отключить интерпретацию Escape последовательностей
-n - не выводить перевод строки

Если включена -e, Escape последовательности для вставки специальных символов:

\b - удалить предыдущий символ
\c - удалить перевод строки
\n - перевод строки
\r - символ возврата каретки в начало строки
\t - горизонтальная табуляция
\v - вертикальная табуляция

Внутри sh скрипта флаг echo -e не нужен если указан интерпретатор для исполнения сценария(скрипта) #!/bin/sh, консоль использует более новый #!/bin/bash..

Скопировать фалы rsync:

Как-то словил проблему при копировании на диск с 5900 оборотов и меньшей максимальной скоростью диска, на 7200 оборотов (он на порядок быстрее), видимо переполнение буферов идёт или ещё что-то, винт разгоняет копирование свыше 120-160мб/с и принимающий начинает щёлкать головкой, в то время как на 5900 скоростей свыше 90мб/с не замечал. В итоге помогло ограничение скорости копирования. Выставил чуть меньше 90мб/с и вуаля никаких щелчков. Утилита очень полезна если необходимо передать файл на другой сервер или для передачи файлов с ломающегося диска с условием наличия бэкапа.

# rsync [опции] [источник] [приемник]
sudo rsync -a --progress /from/ /to/
sudo rsync -aPv --bwlimit=90000 /media/$USER/disk1/Music/ /media/$USER/disk2/Music/

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

sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/"
# или
sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/"

-a, --archive - работа в режиме архивирования, сохраняются права доступа и информация о владельцах.
--partial - сохранять частично переданные файлы.
--progress - показать % выполнения во время передачи.
-P - эквивалент для --partial --progress (сохранять недокаченные файлы, показывать прогресс).
--ignore-existing - пропускать уже существующие на приёмнике disc2 (так можно немного ускорить, например для видео, они точно не меняются).
--delete - удалять те, которых нет на источнике disc1.
--bwlimit=KBPS - ограничение скорости копирования.
-v - показывать подробности.
-c - сравнивать файлы при помощи подсчёта контрольных сумм (по умолчанию по дате и размеру). Выполняется очень долго..
-n - ничего не делать, только показать что будет скопировано.

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

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

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

  • pwd - показывает директорию в которой находитесь, иногда бывает нужна в случае сокращения в консоли, напрмиер домашняя папка отобразится как ~..
  • cd - переходит в указанную папку, например cd ~ ; cd /home/$USER
  • ls - линейно выводит список папок и файлов в текущей директории или указанной
    ls /home. Чтоб вывести построчно с указанием прав и владельца необходимо добавить аргумент -l. Чтоб увидеть скрытые файлы и папки -a. Отсортировать по размеру -S. Отсортировать по расширению -X.
    В итоге имеем команду ls -la или ls -la /путь/к/каталогу.
  • du * - считает размер директории, например du -hs * или du -hc /путь.
    Аргументы:
    -h - human-readable показывает вес файлов в Кб, Мб итд..
    -с - подсчитывает сумму..
    -s - показать только общий вес файлов..
    А вот как можно вывести в отсортированном виде du -hc * | sort -rn
  • find - Поиск файлов и директорий
    # найти в папке /home файлы по имени абрикос: 
    find /home -name "абрикос"
    
    # найти файлы принадлежащие пользователю user1: 
    find /home -user user1
    
    # найти файлы оканчивающиеся на txt: 
    find /home -name "*.txt"
    
    # найти файлы с правами 000 исключая имя public_ftp и удалить их: 
    find /home/ -perm 000 -not -name "public_ftp" -exec rm -rf {} \;
    
    # найти все папки и назначить права по умолчанию: 
    find /home - type d -exec chmod 755 {} \;
    
    # найти все файлы и назначить права по умолчанию: 
    find /home - type f -exec chmod 644 {} \;
    
    # найти только файлы по имени и выставить права: 
    find /home/ -name "xmlrpc.php" -type f -exec chmod 000 '{}' \;
    
    # скопировать все файлы в текущей директории содержащие в имени только цифры
    # [0-9] - регулярное выражение указывающие на массив из диапазона от 0 до 9: 
    find . -name [0-9] -exec cp {} ~/ todir \;
    
    # удалить пустые файлы: 
    find /home -type f -empty -exec rm {} \;
    
    # удалить пустые папки: 
    find /home -type d -empty -exec rmdir {} \;
    
    # удалить файлы *.gz в папках logs, по неопределённому пути в /home/: 
    find /home/*/logs -type f -name '*.gz' -delete
    
    # удалить файлы старше 365 дней 
    find /home -type f -mtime +365 -exec rm -f {} \;
    
    # вывести список файлов в которых встречается текст:
    grep -rl 'строка' ./
    # или
    find ./ -type f -exec grep -l 'строка' {} +
    
    # заменить текст в файлах: 
    find ./ -type f -readable -writable -exec sed -i "s/старый/новый/g" {} \;
    #g - заменяем не только первое вхождение 
    
    # функция понимает регулярные выражения, заменим все где число вначале: 
    find ./ -type f -readable -writable -exec sed -i "s/\dстарый/новый/g" {} \;
    
    # заменить текст в файле: 
    sed -i 's/старый/новый/g' file.txt
    
    # заменить текст в файле только в строках с 1 по 10: 
    sed -i '1,10 s/старый/новый/g' file.txt
    
    # заменить текст в файле везде кроме строк с 1 по 10: 
    sed -i '1,20 !s/старый/новый/g' file.txt
    

    Думаю примеров достаточно, за остальным в man find..

    Бывает необходимо найти где находится в системных папках та или иная утилита

    whereis find
    # или
    which find
    
  • cat - выводит содержимое файла, например cat /proc/bus/input/devices.

    Ещё можно заниматься извращениями, например, копирование содержимого файла Linux в другой файл cat файл1 > файл2
    Если файл был не пустым, он будет перезаписан, если воспользоваться >> будет дописан в конец файла2. Можно склеить два отдельных файла в один: cat файл1 файл2 > файл3

  • mkdir - создаёт директорию, например mkdir -p /путь/к/папке -p создаст рекурсивно все каталоги, если их нет иначе будет выдавать сообщение об ошибке, мол старшего каталога нет..
  • cp - копирует файл/папку, cp опции файл-источник файл-приемник, cp -r /что /куда
    -r - рекурсивно, все подкаталоги
    -a = -dR --preserve=ALL не будет следовать по ссылкам (копировать от туда все файлы), а только рекурсивно скопирует: ссылки, файлы, папки с сохранением атрибутов.
    # 

fsen.ru

Изменение даты и времени в командной строке Linux

Для начала необходимо отметить, что в Linux-машине есть два типа часов: программные часы (system clock), которые поддерживаются ядром системы, и аппаратные часы (работающие от батарейки), которые работают и в выключенном компьютере. При загрузке ядро выставляет системные часы по аппаратным, и далее они работают независимо друг от друга.

Способ первый: команда Date

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

# date --set='NEW_DATE'

здесь NEW_DATE - строка даты и времени в формате: "Sun, 28 Sep 2014 16:21:42" или "2014-09-29 16:21:42".

Также формат даты можно задать самому:

# date +FORMAT --set='NEW_DATE'

Например:

# date +’%Y%m%d %H%m’ --set='20140928 1518'

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

# date --set='+5 minutes'

# date --set='-2 weeks'

# date --set='+3 months'

# date --set='-3 months +2 weeks -5 minutes'

И в конце установите аппаратные часы по программным:

# hwclock --systohc

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

# hwclock --hctosys

Способ второй: NTP

Другой способ точной установки даты и времени - использование NTP (network time protocol). В Linux команда ntpdate может синхронизировать системные часы с публичными NTP-серверами.

Установить ntpdate можно с помощью следующих команд:

В системах на базе Debian:

# aptitude install ntpdate

В системах на базе Red Hat:

# yum install ntpdate

Для синхронизации времени  введите команды:

# ntpdate -u <имя NTP-сервера или IP-адрес>

# hwclock --systohc

Вместо синхронизации вручную вы можете также установить демон  NTP (ntpd), который будет работать в фоновом режиме и постоянно синхронизировать системные часы.

distrland.blogspot.com

Как переименовать файл Linux | Losst

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

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

Содержание статьи:

Как переименовать файл в Linux с помощью mv

В Linux существует замечательная стандартная утилита mv, которая предназначена для перемещения файлов. Но по своей сути перемещение - это то же самое, что и переименование файла linux, если выполняется в одной папке. Давайте сначала рассмотрим синтаксис этой команды:

$ mv опции файл-источник файл-приемник

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

  • -f - заменять файл, если он уже существует;
  • -i - спрашивать, нужно ли заменять существующие файлы;
  • -n - не заменять существующие файлы;
  • -u - заменять файл только если он был изменен;
  • -v - вывести список обработанных файлов;

Чтобы переименовать файл linux достаточно вызвать утилиту без дополнительных опций. Просто передав ей имя нужного файла и новое имя:

mv file newfile

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

mv /home/sergiy/test/newfile /home/sergiy/test/file1

Обратите внимание, что у вас должны быть права на запись в ту папку, в которой вы собираетесь переименовывать файлы. Если папка принадлежит другому пользователю, возможно, нужно будет запускать программу через sudo. Но в таком случае лучше запускать с опцией -i, чтобы случайно ничего не удалить.

Переименование файлов Linux с помощью rename

В Linux есть еще одна команда, которая позволяет переименовать файл. Это rename. Она специально разработана для этой задачи, поэтому поддерживает такие вещи, как массовое переименование файлов linux и использование регулярных выражений. Синтаксис утилиты тоже сложнее:

$ rename опции 's/старое_имя/новое_имя' файлы

Или:

$ rename опции старое_имя новое_имя файлы

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

Рассмотрим опции утилиты:

  • -v - вывести список обработанных файлов;
  • -n - тестовый режим, на самом деле никакие действия выполнены не будут;
  • -f - принудительно перезаписывать существующие файлы;

Например, переименуем все htm файлы из текущей папки в .html:

rename 's\.htm/\.html/' *.htm

Или для изображений:

rename 's\.jpeg/\.jpg/'*

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

  • g (Global) - применять ко всем найденным вхождениям;
  • i (Case Censitive) - не учитывать регистр.

Модификаторы размещаются в конце регулярного выражения, перед закрывающей кавычкой. Перед тем, как использовать такую конструкцию, желательно ее проверить, чтобы убедиться, что вы не допустили нигде ошибок, тут на помощь приходит опция -n. Заменим все вхождения DSC на photo в именах наших фотографий:

rename -n 's/DSC/photo/gi' *.jpeg

Будут обработаны DSC, DsC и даже dsc, все варианты. Поскольку использовалась опция -n, то утилита только выведет имена изображений, которые будут изменены.

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

rename 'y/A-Z/a-z/'*.jpeg

Из этого примера мы видим, что даже если такой файл уже существует, то он перезаписан по умолчанию не будет. Не забывайте использовать опцию -n чтобы ничего случайно не повредить.

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

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

 sudo apt install pyrenamer

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

Вы можете удалять или добавлять символы, переводить регистр, автоматически удалять пробелы и подчеркивания. У программы есть подсказки, чтобы сделать ее еще проще:

Опытным пользователям понравится возможность pyRenamer для переименования мультимедийных файлов из их метаданных. Кроме того, вы можете переименовать один файл если это нужно. Эта утилита полностью реализует функциональность mv и remove в графическом интерфейсе.

Выводы

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

losst.ru

Как редактировать файлы в Ubuntu

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

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

Содержание статьи:

Как редактировать файлы в Ubuntu

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

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

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

Также вы можете запустить Gedit через терминал. Для этого откройте терминал с помощью сочетания клавиш Ctrl+Alt+T, и выполните:

gedit /путь/к/папке/с_файлом/файл

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

gksu gedit /путь/к/папке/с_файлом/файл

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

Есть еще одной обходной способ, вы можете, добавить пункт открыть от имени администратора в контекстное меню Nautilus. Для этого нужно выполнить несколько команд в терминале. Добавьте PPA в систему:

sudo add-apt-repository ppa:noobslab/apps

Обновите списки пакетов из репозиториев:

sudo apt-get update

Установите пакет nautilus-admin:

sudo apt-get install -y nautilus-admin

Теперь перезагрузите Nautilus, и в меню появится пункт Открыть как администратор:

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

Редактирование файлов в Ubuntu через терминал

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

nano /путь/к/файлу/имя_файла

Если файл нужно открыть от имени администратора:

sudo nano /путь/к/файлу/имя_файла

Редактор nano очень прост, для перемещения по файлу используйте кнопки со стрелками, после того, как закончите редактировать файл ubuntu, нажмите чтобы сохранить Ctrl+O, а для выхода Ctrl+X. Еще поддерживается поиск и замена, но все на очень примитивном уровне, и этого явно недостаточно для того чтобы работать эффективно.

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

Выводы

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

Оцените статью:

Загрузка...

losst.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о