Faq — различия между версиями
Vaal (обсуждение | вклад) (Новая страница: «Отличие обычного пользователя Linux от профессионала заключается в времени, проведённом з…») |
Vaal (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
<p style="text-align:left">Для получения списка всех процессов, запущенных <span style="color:red">''не текущим пользователем''</span>, выполните команду: | <p style="text-align:left">Для получения списка всех процессов, запущенных <span style="color:red">''не текущим пользователем''</span>, выполните команду: | ||
</p> | </p> | ||
− | <p style="text-align: | + | <p style="text-align:left"><span style="color:green">'''$ps aux | grep -v `whoami`'''</span></p> |
+ | <p style="text-align:left">Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$ps aux --sort=-%cpu | grep -m 11 -v `whoami`'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''2) Замена текста в файлах'''</span></p> | ||
+ | <p style="text-align:left">Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст '''''«Windows»''''' на '''''«Linux»''''' во всех файлах в текущей директории, название которой начинается с «test», введите в консоли('''''необходим интерпретатор perl'''''):</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$perl -i -pe 's/Windows/Linux/;' test*'''</span></p> | ||
+ | <p style="text-align:left">Чтобы провести ту же операцию во всех поддиректориях:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt'''</span></p> | ||
+ | <p style="text-align:left">Есливы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''3) Исправить консоль'''</span></p> | ||
+ | <p style="text-align:left">Если использовать команду [[less]] или [[cat]] для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$reset'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''4) Запуск множественных X-сессий'''</span></p> | ||
+ | <p style="text-align:left">Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (runlevel 5), то, одновременно нажав Ctrl+Alt+<F7>, вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$startx -- :1'''</span></p> | ||
+ | <p style="text-align:left">чтобы воити в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите Ctrl+Alt+<F7>, для еще одного возврата — Ctrl+Alt+<F8>. Вы можете этот трюк: клавиши с F1 по F6 отвечают за 6 сессий консоли, а клавиши с F7 по F12 — за 6 Х-сессий. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.</p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''5) Лёгкое резервное копирование'''</span></p> | ||
+ | <p style="text-align:left">Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''6) Поиск самых больших файлов в текущей директории'''</span></p> | ||
+ | <p style="text-align:left">Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$ls -lSrh'''</span></p> | ||
+ | <p style="text-align:left">Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$ls -lSrh *.mp*'''</span></p> | ||
+ | <p style="text-align:left">Также можно найти самые большие директории:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''$du -kx | egrep -v "\./.+/" | sort -n'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''7) Оптимизация баз данных MySQL'''</span></p> | ||
+ | <p style="text-align:left">При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило: запускать оптимизатор базы при любом изменении базы:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#mysqloptimize -A -u''<username>'' -p''<password>'' '''</span></p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#mysqlcheck --optimize -A -u''<username>'' -p''<password>'' '''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''8) Список откртых портов'''</span></p> | ||
+ | <p style="text-align:left">Получить список открытых портов в состоянии ''Listen'' в Linux очень просто, для этого достаточно выполнить:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#netstat -lnp'''</span></p> | ||
+ | Active Internet connections (only servers) | ||
+ | Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name | ||
+ | tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl | ||
+ | tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp | ||
+ | 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp | ||
+ | 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp | ||
+ | 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp | ||
+ | 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp | ||
+ | 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp | ||
+ | 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp | ||
+ | 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp | ||
+ | 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp | ||
+ | 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw | ||
+ | 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd | ||
+ | <p style="text-align:left">В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.</p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''9) Поиск занятых устройств'''</span></p> | ||
+ | <p style="text-align:left">Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#lsof +D /mnt/windows'''</span></p> | ||
+ | <p style="text-align:left">Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.</p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''10) Поиск изменённых сегодня файлов'''</span></p> | ||
+ | <p style="text-align:left">Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#ls -al --time-style=+%D | grep `date +%D`'''</span></p> | ||
+ | <p style="text-align:left">Параметры команды [[Ls_—_Команда_печати_содержимого_каталога|ls]] требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст [[Ls_—_Команда_печати_содержимого_каталога|ls]], идет на вход [[grep]]. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.</p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''11) Поиск больших файлов в Linux'''</span></p> | ||
+ | <p style="text-align:left">Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории <DIR> (измените <DIR> на директорию в которой Вы хотите запустить поиск):</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#find <DIR> -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}"'''</span></p> | ||
+ | 106 MB /var/lib/mysql/ibdata1 | ||
+ | 94 MB /usr/lib/locale/locale-archive | ||
+ | 41 MB /scripts/20130206-015833.tar.gz | ||
+ | 41 MB /scripts/20130206-004839.tar.gz | ||
+ | 41 MB /scripts/20130206-130400.tar.gz | ||
+ | 41 MB /scripts/20130206-000442.tar.gz | ||
+ | 41 MB /scripts/20130206-132019.tar.gz | ||
+ | 41 MB /root/20130208-133954.tar.gz | ||
+ | 33 MB /var/log/messages-20130303 | ||
+ | 32 MB /var/lib/rpm/Packages | ||
+ | <p style="text-align:left">Найти 10 самых больших фалов, начиная с '/home'</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#find /home -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}"'''</span></p> | ||
+ | 3007 MB /home/user/Desktop/share/linux-65835.iso | ||
+ | 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI | ||
+ | 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI | ||
+ | 173 MB /home/user/Camera/VID_20130909_120713.mp4 | ||
+ | 152 MB /home/user/Camera/VID_20130909_115427.mp4 | ||
+ | 133 MB /home/user/Camera/VID_20130909_210904.mp4 | ||
+ | 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 | ||
+ | 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI | ||
+ | 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI | ||
+ | 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4 | ||
+ | <p style="text-align:left">Сортировка вывода по размеру файлов командой <code>du</code>:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''12) Узнать дату установки Linux'''</span></p> | ||
+ | <p style="text-align:left">Есть несколько вариантов узнать дату и время установки:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }' '''</span></p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#tune2fs -l /dev/sda1 | grep create'''</span></p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#LC_TIME="en_DK" rpm -qia |grep "Install Date"|awk '{print $3}'|uniq |sort -r|tail -n 1'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''13) Очистка КЭШа оперативной памяти в Linux'''</span></p> | ||
+ | <p style="text-align:left">Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой <code>free</code>. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#free -g'''</span></p> | ||
+ | <p style="text-align:left">Для очистки кеша страниц('''pagecache''') использовать команду:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#echo 1 > /proc/sys/vm/drop_caches'''</span></p> | ||
+ | <p style="text-align:left">Для очистки directory entry('''dentries''') и index node('''inode''') использовать команду:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#echo 2 > /proc/sys/vm/drop_caches'''</span></p> | ||
+ | <p style="text-align:left">Для очистки кеша страниц('''pagecache'''), directory entry('''dentries''') и index node('''inode''') использовать команду:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#echo 3 > /proc/sys/vm/drop_caches'''</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''14) Проверка количества открытых файлов для процесса'''</span></p> | ||
+ | <p style="text-align:left">В примере ниже описана команда получения количества открытых процессом файлов, для процесса ''line4'':</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#for pid in `/sbin/pidof line4`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done'''</span></p> | ||
+ | <p style="text-align:left">Вывод представлен на скриншоте ниже:</p> | ||
+ | [[File:Open files.PNG|1200px|center]] | ||
+ | <p style="text-align:center"><span style="color:red"> '''15) Просмотреть краткую информацию по сетевому интерфейсу'''</span></p> | ||
+ | <p style="text-align:left">Для просмотра выполнить команду:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#ip addr show </span><span style="color:blue">''<NIC>''</span><span style="color:green"> | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'</span></p> | ||
+ | <p style="text-align:center"><span style="color:red"> '''16) Подсчитать Количество Файлов в Папке'''</span></p> | ||
+ | <p style="text-align:left">Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.</p> | ||
+ | <p style="text-align:left">Подсчитать количество файлов в текущей папке:</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#ls -f . | wc -l'''</span> — Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым.</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#find . -type f -maxdepth 1 | wc -l'''</span></p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#find . -type f | wc -l'''</span> — Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#find . -type d | wc -l'''</span> — Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях</p> | ||
+ | <p style="text-align:left"><span style="color:green">'''#find . -type f -name "*.txt" | wc -l'''</span> — команда рекурсивно считает количество файлов с расширением ".txt" в текущей директории и всех её поддиректориях. |
Версия 13:48, 11 апреля 2017
Отличие обычного пользователя Linux от профессионала заключается в времени, проведённом за изучением хитростей и приёмов, которые позволяют решать не быстрые задачи в одно мгновение. Если вы хотите увеличить скорость работы без долгого набивания шишек в консоли, здесь приводится список лёгких для изучения приёмов. Они помогут сделать вашу работу эффективной и менее трудозатратной.
1) Список не ваших процессов
Для получения списка всех процессов, запущенных не текущим пользователем, выполните команду:
$ps aux | grep -v `whoami`
Для получения списка из 10 процессов, которые сильнее всего загружают систему, выполните команду:
$ps aux --sort=-%cpu | grep -m 11 -v `whoami`
2) Замена текста в файлах
Если надо заменить текст не в одном файле, то имеется несколько способов. Для того, чтобы заменить текст «Windows» на «Linux» во всех файлах в текущей директории, название которой начинается с «test», введите в консоли(необходим интерпретатор perl):
$perl -i -pe 's/Windows/Linux/;' test*
Чтобы провести ту же операцию во всех поддиректориях:
$find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt
Есливы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):
$find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/
3) Исправить консоль
Если использовать команду less или cat для просмотра файла, в конце которого — бинарные данные, то можно легко испортить консоль. Потому что в бинарных данных могут попасться любые сочетания управляющих кодов: компьютер будет издавать звуки «бип-бип», появятся прикольные символы, странные цветовые сочетания. В конце концов, шрифт изменится на какие-то иероглифы. Bash, очевидно, продолжает работать, но вы ничего не можете прочитать и сделать. Просто наберите в консоли команду инициализации:
$reset
4) Запуск множественных X-сессий
Если надо дать кому-нибудь доступ к Вашему компьютеру, то вы откроете для себя, что это не всегда необходимо. Если предположить, что компьютер стартует в графическом режиме (runlevel 5), то, одновременно нажав Ctrl+Alt+<F7>, вы попадете в консоль. Введите логин и пароль, потом исполните следующий код:
$startx -- :1
чтобы воити в графическое окружение. Чтобы вернуться в предыдущую сессию, нажмите Ctrl+Alt+<F7>, для еще одного возврата — Ctrl+Alt+<F8>. Вы можете этот трюк: клавиши с F1 по F6 отвечают за 6 сессий консоли, а клавиши с F7 по F12 — за 6 Х-сессий. Подводный камень: в разных дистрибутивах могут использоваться разные сочетания клавиш.
5) Лёгкое резервное копирование
Если надо сделать резервную копию папки и скопировать только изменившиеся файлы, то можно использовать для этого rsync (вам нужен аккаунт на удалённом компьютере):
$rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/
6) Поиск самых больших файлов в текущей директории
Можно столкнуться с проблемой, когда надо удалить несколько больших файлов. Их можно найти в текущей директории с помощью команды:
$ls -lSrh
Ключ “r” означает, что большие файлы должны выводиться в конце. Следующей командой можно найти самые большие файлы MP3/MPEG:
$ls -lSrh *.mp*
Также можно найти самые большие директории:
$du -kx | egrep -v "\./.+/" | sort -n
7) Оптимизация баз данных MySQL
При любом изменении структуры базы данных или удалении больших объёмов данных, файлы могут стать фрагментированными, что приводит к потере производительности. Просто запомните простое правило: запускать оптимизатор базы при любом изменении базы:
#mysqloptimize -A -u<username> -p<password>
#mysqlcheck --optimize -A -u<username> -p<password>
8) Список откртых портов
Получить список открытых портов в состоянии Listen в Linux очень просто, для этого достаточно выполнить:
#netstat -lnp
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd tcp 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named tcp 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd udp 0 0 0.0.0.0:32768 0.0.0.0:* 220/named udp 0 0 10.42.3.2:53 0.0.0.0:* 220/named udp 0 0 10.42.4.6:53 0.0.0.0:* 220/named udp 0 0 127.0.0.1:53 0.0.0.0:* 220/named udp 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd raw 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd
В этом примере видно, что процесс с PID'ом 698 — процесс интерпретатора Perl, который слушает порт 5280. Если вы не root в системе, то система не покажет пути к программам.
9) Поиск занятых устройств
Вы наверняка сталкивались с ситуацией, когда надо отмаунтить диск, но система при попытке отключения сообщает о том, что он занят. Одной командой можно узнать, какое приложение использует его:
#lsof +D /mnt/windows
Она показывает PID и команду запуска любого процесса, использующего /mnt/windows.
10) Поиск изменённых сегодня файлов
Например, утром вы создали файл, который именно сейчас очень нужен. Однако, вы не можете вспомнить его название. Вручную перебирать домашнюю директорию бессмысленно, где скопилась не одна тысяча файлов. Но есть небольшой приём, показывающий эффективность пайпов и объединения нескольких команд консоли:
#ls -al --time-style=+%D | grep `date +%D`
Параметры команды ls требуют вывода даты в определенном формате. Хитрость в том: то, что выдаст ls, идет на вход grep. Параметр grep сами по себе команда (заключена в обратные апострофы), которая подставляет текущую дату в шаблон для отсева. Её легко модифицировать для поиска по другим датам, размеру файла и т.д.
11) Поиск больших файлов в Linux
Поиск больших файлов особенно актуален когда на диске заканчивается место и приходится искать кандидатов на удаление. Самый лучший способ чтобы найти все самые большие файлы на хосте с Linux - воспользоваться командной строкой. В принципе не существует простой команды для поиска самых больших файлов в Linux. Однако, можно с лёгкостью получить список самых больших файлов, используя комбинацию нескольких простых команд.Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории <DIR> (измените <DIR> на директорию в которой Вы хотите запустить поиск):
#find <DIR> -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}"
106 MB /var/lib/mysql/ibdata1 94 MB /usr/lib/locale/locale-archive 41 MB /scripts/20130206-015833.tar.gz 41 MB /scripts/20130206-004839.tar.gz 41 MB /scripts/20130206-130400.tar.gz 41 MB /scripts/20130206-000442.tar.gz 41 MB /scripts/20130206-132019.tar.gz 41 MB /root/20130208-133954.tar.gz 33 MB /var/log/messages-20130303 32 MB /var/lib/rpm/Packages
Найти 10 самых больших фалов, начиная с '/home'
#find /home -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}"
3007 MB /home/user/Desktop/share/linux-65835.iso 448 MB /home/user/Pictures/Turkey/SAM_4590.AVI 266 MB /home/user/Pictures/Turkey/SAM_4588.AVI 173 MB /home/user/Camera/VID_20130909_120713.mp4 152 MB /home/user/Camera/VID_20130909_115427.mp4 133 MB /home/user/Camera/VID_20130909_210904.mp4 133 MB /home/user/Pictures/Paris/VID_20130928_182431.mp4 131 MB /home/user/Pictures/Turkey/SAM_4597.AVI 129 MB /home/user/Pictures/Turkey/SAM_4641.AVI 127 MB /home/user/Desktop/tmp/Camera/VID_20130911_164440.mp4
Сортировка вывода по размеру файлов командой du
:
#du -k /opt/ruby_projects/* | sort -nr | cut -f2 | xargs -d '\n' du -sh
12) Узнать дату установки Linux
Есть несколько вариантов узнать дату и время установки:
#ls -clt / | tail -n 1 | awk '{ print $7, $6, $8 }'
#tune2fs -l /dev/sda1 | grep create
#LC_TIME="en_DK" rpm -qia |grep "Install Date"|awk '{print $3}'|uniq |sort -r|tail -n 1
13) Очистка КЭШа оперативной памяти в Linux
Для того, чтобы посмотреть сколько оперативной памяти занято и сколько закешировано в данный момент, можно воспользоваться командой free
. С параметром -g она выведет информацию об использовании памяти в гигабайтах, с параметром -m в мегабайтах:
#free -g
Для очистки кеша страниц(pagecache) использовать команду:
#echo 1 > /proc/sys/vm/drop_caches
Для очистки directory entry(dentries) и index node(inode) использовать команду:
#echo 2 > /proc/sys/vm/drop_caches
Для очистки кеша страниц(pagecache), directory entry(dentries) и index node(inode) использовать команду:
#echo 3 > /proc/sys/vm/drop_caches
14) Проверка количества открытых файлов для процесса
В примере ниже описана команда получения количества открытых процессом файлов, для процесса line4:
#for pid in `/sbin/pidof line4`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done
Вывод представлен на скриншоте ниже:
15) Просмотреть краткую информацию по сетевому интерфейсу
Для просмотра выполнить команду:
#ip addr show <NIC> | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
16) Подсчитать Количество Файлов в Папке
Ниже приведены лучшие способы поиска и подсчета количества файлов и папок в конкретной директории.
Подсчитать количество файлов в текущей папке:
#ls -f . | wc -l — Если Вам необходимо подсчитать довольно большое количество файлов, данный метод является самым быстрым.
#find . -type f -maxdepth 1 | wc -l
#find . -type f | wc -l — Команда рекурсивно считает количество файлов в текущей директории и всех её поддиректориях
#find . -type d | wc -l — Команда рекурсивно считает количество папок в текущей директории и всех её поддиректориях
#find . -type f -name "*.txt" | wc -l — команда рекурсивно считает количество файлов с расширением ".txt" в текущей директории и всех её поддиректориях.