File Managment
Работа с файлами и директориями
(Навигация, создание, копирование, удаление, перемещение)
ls - список файлов в директории, где ты находишься. (-a = включить скрытые; -l = подробно и права; -h = читаемые размеры)
Пример: ls -lah
pwd - показать путь до директории, где ты находишься
Пример: pwd
cd - переход в другую директорию
Пример: cd ~/my_directory
mkdir - создание директории
Пример: mkdir new_directory
rmdir - удаление пустой директории
Пример: rmdir new_directory
rm - удаление файла или директории. (-r = рекурсивно; -f = без подтверждения)
Пример: rm -rf new_directory
touch - создание пустого файла
Пример: touch new_file.txt
nano - текстовый редактор в консоли
Пример: nano my_file.txt
less - просмотр файла (без редактирования)
Пример: less my_file.txt
cp - копирование файлов/директорий. (-r = рекурсивно; -p = сохраняет права доступа, временные метки)
Пример: cp -rp ~/Projects/new_directory ~/Documents/my_directory
mv - перемещение или переименование
Пример с перемещением: mv ~/Projects/file.txt ~/Documents/
Пример с переименованием: mv old_name.txt new_name.txt
ln - создание жесткой или символической ссылки. (-s = символическая)
Пример: ln -s /Users/k.mmax/my_file.txt new_link.txt
readlink - показать, куда указывает символическая ссылка
Пример: readlink my_link
cat - показать содержимое файла в консоли (-n = нумеровать все строки; -b = нумеровать непустые строки)
Пример: cat -b my_file.txt
head - первые строки файла, по умолчанию 10. (-n = указать количество)
Пример: head -n 20 my_file.txt
tail - последние строки файла, по умолчанию 10. (-n = указать количество; -f = обновлять в реальном времени)
Пример: tail -n 30 -f my_file.txt
echo - вывод текста в терминал или в файл (-n = не добавлять перенос строки)
Пример: echo -n "interesting text" >> my_file.txt
tee - копирование данных из stdin в stdout и в файл. (-a = дописывать в файл, не перезаписывая)
(Примечание: часто используется с pipe, так как pipe передает вывод предыдущей команды в stdin tee)
Пример: echo "interesting text" | tee -a my_file.txt
(допишет "interesting text" в my_file.txt и выведет "interesting text" в терминал)
xargs - получение данных из stdin и передача их как аргументов другой команде. (-t = выводить выполняемую команду перед запуском;
-n = указать количество аргументов, передаваемых команде за один запуск)
(Примечание: пробелы, табуляции и переносы считаются разделителями между аргументами)
Пример: echo "file1.txt file2.txt file3.txt" | xargs -n 1 rm
find - поиск файлов и директорий в указанной директории. (-name = поиск по имени; -type = поиск по типу;
-iname = поиск по имени без учета регистра; -exec = указываемое действие для каждого найденного файла или директории)
Пример 1: find /bin -type f -name "*.txt" 2>/dev/null
(ищет в bin и глубже все файлы с расширением txt, stderr не выводим)
Пример 2: find /bin/ -type d -iname "some_directory" 2>/dev/null
(ищет в bin все директории с именем "some_directory" без учета регистра, stderr не выводим)
Синтаксис для find с exec:
{} Подстановка имени найденного файла
\; Конец команды (выполнять для каждого файла)
\+ Конец команды (передать все файлы одной командой)
grep - поиск текста внутри файла или директории. (-i = без учета регистра; -r = рекурсивно, для директории;
-n = добавляет номера строк; -H = показать имя файла; -v = reverse, "найти все кроме"; -w = только цельные слова;
-E = расширенные регулярные выражения: |, +, ?, ( ), { })
Пример: grep -rnHi "error" ~/Projects/logs
wc - подсчет строк, слов и байтов в файле. (-l = количество строк; -w = количество слов;
-c = количество байт; -m = количество символов; -L = длина самой длинной строки)
Пример 1: wc -c my_file.txt
Пример 2: find ~/Projects/logs -type f -name "*.log" -exec wc -l {} \; 2>/dev/null
sort - сортировка строк в тексте или в выводе команды (-n = числовая сортировка; -r = обратный порядок сортировки;
-u = убрать повторяющиеся строки; -t = указание разделителя столбцов: символа, определяющего границы между столбцами;
-k = указание ключа сортировки: столбца или диапазона столбцов; -o запись результата в файл)
(Примечание: по умолчанию диапазон столбцов - все столбцы, разделитель столбцов - пробелы и табуляция)
Пример 1: sort names.txt
(отсортирует строки в алфавитном порядке)
Пример 2: sort -r names.txt
(отсортирует строки в обратном алфавитном порядке)
Пример 3: sort -n numbers.txt
(отсортирует строки численно по возрастанию)
Пример 4: sort -nr numbers.txt
(отсортирует строки численно по убыванию)
Пример 5: sort -u names.txt
(отсортирует строки в алфавитном порядке и уберет все повторяющиеся строки)
Пример 6: sort -k3 -nr numbers.txt
(отсортирует строки по третьему и последующим столбцам численно по убыванию)
Пример 7: sort -k2 -u names.txt
(отсортирует строки по второму и последующим столбцам в алфавитном порядке и уберет все повторяющиеся строки;
повторяющимися считаются строки, у которых совпадает содержимое начиная со второго столбца и до конца строки)
Пример 8: sort -k2,2 -u names.txt -o new.txt
(отсортирует строки по второму столбцу в алфавитном порядке, уберет все повторяющиеся строки и запишет результат в new.txt;
повторяющимися считаются строки, у которых совпадает содержимое второго столбца)
Пример 9: sort -t":" -k2,3 names.txt
(отсортирует строки по второму и третьему столбцу в алфавитном порядке, используя символ ":" в качестве разделителя столбцов)
which - показать полный путь к исполняемому файлу команды. (-a = показать все пути к команде)
Пример: which -a ls
file - определение типа файла по содержимому. (-b = только тип без имени; -i = MIME-тип; -L = идти по символическим ссылкам)
Пример 1: file -bi example.png
(выведет MIME-тип файла example.png без имени файла)
Пример 2: file -biL my_link
(выведет MIME-тип файла, на который указывает символическая ссылка my_link, без имени файла)
mc - консольный файловый менеджер (Midnight Commander)
Пример: mc