Обновление:
#apt-get update
Дата/Время в формате YYYY-MM-DD HH:MM
date +"%F %R"
либо
date +"%Y-%m-%d
Поиск стоки в файлах
grep -r 'строка' * grep -r "строка" . --include=*.php find . -name 'файловая маска' -exec grep 'строка' {} \; find . -iname 'файловая маска' -exec grep 'строка' {} \;
Удалить найденные PHP файлы:
find . -type f -name "*.php" -exec rm -f {} \;
Поиск исполняемых файлов:
find / -iname "*pattern*" -perm -u+x -type f
Поиск файлов и сортировка по дате:
find -type f -name "*.php" -printf '%T@ %p\n' | sort -r find -type f -name "*.php" -printf '%T@ %p\n' | sort -r | awk '{print $2}' | xargs | ll
Рекурсивное сравнение каталогов:
diff --recursive --brief dir1/ dir2/
Отправить письмо:
sendmail -t -i -v someaddress@yandex.ru -s < body.txt
,где test.txt в таком формате:
Subject: test mail
first line of my message
[blank line]
посмотреть кто и куда отсылает почту:
sudo tcpdump -i eth0 | grep smtp
сгенерировать 1 пароль длиной 12 символов (sudo apt-get install pwgen):
pwgen 12 1
посмотреть список файлов в архиве:
tar -ztvf file.tar.gz
добавить строку в рутовый файл:
echo 'строка' | sudo tee -a имя-файла
поиск файлов, котоые менялись не позднее 24/48 часов назад:
find . -mmin -1440 find . -type f -mmin -2880
Удаление ssmtp:
sudo aptitude --purge remove ssmtp
разрешить всем чтение:
find . -type d -exec chmod a+rx {} \; find . -type f -exec chmod a+r {} \;
чтобы работала команда ‘ll’ для всех юзеров, нужно в файл /etc/bash.bashrc добавить следующие строчки:
# some more ls aliases alias ll='ls -lh' alias la='ls -A'
замена строки в файлах:
sed -i 's/dog/cat/' *.txt sed -i 's/\/var\/run\/php-fpm\//www-/' *
Переименовать TrackSettingsDialog.* в SelectedTrackSettingsDialog.* (опция -n показывает результат, но не переименовывает):
rename -n 's/TrackSettingsDialog\.([a-z]+)/SelectedTrackSettingsDialog\.$1/' *
Скрипт для дублирования исходников (например a.h, a.cpp в b.h, b.cpp):
src_name=$1 dst_name=$2 unset $1 cp $src_name.* ~/temp/ cd ~/temp/ rename "s/$src_name\.([a-z]+)/$dst_name\.\$1/" * cd - mv ~/temp/$dst_name.* .
Замена в файлах (-i перезаписать файл, s — substitute, g — replace global (not just one))
find ./ -type f -name SelectedTrackSettingsDialog.\* -exec sed -i "s/TrackSettingsDialog/SelectedTrackSettingsDialog/g" {} \;
Добавить юзера в sudoers (/etc/sudoers — конфигурационный файл, который дает права всем юзерам из группы sudo):
sudo usermod -a -G sudo <user>
Посмотреть версию пакета в репозитории:
apt-cache policy <packageName>
Посмотреть список установленных пакетов для Ubuntu 12.04
dpkg -l
Посмотреть список запущенных сервисов/одного сервиса (+ running, — stopped, ? service managed by Upstart):
service --status-all service SERVICENAME status
Завершить процессы grep-ом:
pgrep <pattern> | xargs kill
Посмотреть из какого пакета модуль:
dpkg -S `which gst-launch-1.0`
Количество строк в исходных файлах:
find . -iname "*.h" -or -iname "*.cpp" | xargs wc -l | sort -h find -regex '.*/.*\.\(c\|cpp\|h\)$' -exec wc -l {} \; | sort -h find -regex '.*/.*\.\(c\|cpp\|h\)$' -exec wc -l {} +
Суммарный размер исходных файлов:
find -regex '.*/.*\.\(c\|cpp\|h\)$' -exec wc -c {} + | tail -n 1
Найти символ в библиотеке:
nm -D somelib.so | grep --color SomeSymbol
Информация о процессоре:
lscpu grep CPU /proc/cpuinfo
Размер каталога:
du -sh home/ du -h --max-depth=1
Показать диапазон строк из файла:
sed -n '10000000,10000020p' filename sed -n '10000000,10000020p; 10000021q' filename
Посмотреть список открытых портов:
nmap localhost
Переименовать файлы по шаблону:
for f in *.png; do mv "$f" "$(echo "$f" | sed s/snagit/geoviewer/)"; done