Давно хотел создать эту тему. Поехали..
Найти все не полностью удаленные пакеты или другие по статусу
1 2 3 |
dpkg -l | awk ";/^rc/ {print $2}"; |
Найти что либо можно
1 2 3 |
find . -name |
А вот так рекурсивно выполнить что либо. (смена прав на директории)
1 2 3 |
find . -type d -exec chmod 777 {} \; |
Удалить процесс по имени, без NR==1 убьет все
1 2 3 |
export pid=`ps aux | grep name | awk 'NR==1{print $2}'`; kill -9 $pid |
Запусить что-то на фоне с переводом вывода в nohup.out
1 2 3 |
nohup ./miniond --task=asbnoorm1 & |
Запуск xdebug из консоли для netbeans. Предварительно стартовать сессию xdebug в netbeans.
1 2 3 |
export XDEBUG_CONFIG="idekey=netbeans-xdebug" |
Просмотр нагрузки на сервер
1 2 3 |
top |
1 2 3 |
atop |
1 2 3 |
dstat |
1 2 3 |
dstat -c --top-cpu -d --top-bio --top-latency |
Рекурсивный поиск и замена
1 2 3 |
grep -rl 'project' ./modules/* | xargs perl -pi -e 's/razlet.ru/razlet.com/g' |
1 2 3 |
sed -i 's/foo/bar/g' fileName |
Файлы не содержащие строку
1 2 3 |
grep -rIRiL "not contains this" ./ |
Создание iso
1 2 3 |
genisoimage -V win7.iso -r -o /home/USER/Загрузки/win7.iso /media/20101019_0742/ |
Наблюдение за процессом
1 2 3 |
watch --interval=1 'ps aux | grep minion' |
Просмотр процессов
1 2 3 |
ps afx -O vsz,rss | grep apache2 |
1 2 3 |
ps aux | grep minion |
Место на диске с выводом только подпапок в текущей директории (а считает все)
1 2 3 |
du --max-depth=1 -h |
Копировать из одного каталога в другой включая скрытые файлы
1 2 3 |
cp -a /test2/{*,.*} /test1/ |
Число строк в php проекте
1 2 3 |
find . -type f -name "*.php" -exec wc -l {} +; |
1 2 3 |
find ./ -not -wholename '*/_system/*' -type f -exec sloccount {} +; |
1 2 3 |
find . -path ./vendor -prune -o -type f \( -name "*.php" -o -name "*.phtml" \) -exec wc -l {} +; |
bash под пользователем jenkins, например
1 2 3 |
su -s /bin/bash jenkins |
10 наиболее используемых команд
1 2 3 |
history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn |head -n 10 |
Копировать по ssh
1 2 3 |
scp root@11.1.1.111:/srv/site.ru/include/new.php /home/seyfer |
загрузить по ssh
1 2 3 |
scp new.php root@11.1.1.111:/srv/ |
Найти что-то grep исключая директории exclude-dir
1 2 3 |
sudo grep -rl "grub_term_highlight_color" / --exclude-dir={sys,proc,run} |
1 2 3 |
grep 'open source' -R . -il --exclude-dir={var,js,downloader,media} --exclude=*.{png,jpg,gif} --color |
Удалить процессы по имени
1 2 3 |
pkill -f "/*online-ticket*/" |
Посчитать кол-во строк кода git проекта по автору
1 2 3 4 5 |
git log --author="AuthorName" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' - added lines: 42503 removed lines : 19280 total lines: 23223 |
цикл по папкам
1 2 3 |
for file in `ls`; do if [[ `grep 2088 $file` ]]; then echo $file; break; fi; done; |
Порт 80 занят кем?
1 2 3 |
sudo fuser -v 80/tcp |
Вставить строку в начало большого файла
1 2 3 4 5 |
sed -i '1 s/^/my awesome string\n/' f1 #for rexample sed -i '1 s/^/SET FOREIGN_KEY_CHECKS=0;\n/' ~/Downloads/big_dump.sql |
Zip с уровнем сжатия и скрытыми файлами
1 2 3 4 5 6 7 8 |
cd dir/ zip -9 -r var-log-files-9.zip . zip -9 -r 1.zip * .[^.]* zip -9 --exclude=*vendor* -r OA_test.zip . |
Рекурсивно Capitalize first letter
1 2 3 4 5 6 7 |
find . -mindepth 1 -depth -print0 | while IFS= read -r -d '' filename; do b=$(basename "$filename") mv "$filename" "$(dirname "$filename")/${b^}" done |
Рекурсивно поменять кодировку cp1251 -> utf8
1 2 3 4 |
echo 'cat $1 | iconv -f CP1251 -t UTF-8 >> /tmp/$$.cv && mv /tmp/$$.cv $1' > ~/cp1251_to_utf8.sh find /home/ -type f -iname \*.txt -exec ~/cp1251_to_utf8.sh {} \; |
Сколько ядер процессора и инфа о типе оперативной памяти
1 2 3 4 5 |
cat /proc/cpuinfo |grep processor dmidecode -t memory |
Многопоточное скачивание в консоли
1 2 3 4 5 |
axel -a -n 10 http://url aria2c -x 10 -c http://url |
Синхронизация одной папки (раздела) с другой папкой (разделом)
1. Для Android карты
1 2 3 |
rsync -rltzuvXS --exclude='/*/.gvfs' /media/seyfer/data/AndroidCard/ /media/seyfer/phone/ |
2. Для всего остального, например, для электронной книги.
1 2 3 |
rsync -avz --delete --ignore-existing "/home/user/A/" "/home/user/B" |
3. Миграция директории /home с одного ноутбука на другой
1 2 3 |
rsync -av -e ssh user@old_laptop:/home/user /home |
4. миграция директорий с диска на диск
1 2 3 |
rsync -axHAWXS --numeric-ids --info=progress2 /media/seyfer/TERRA_IN/Texts /media/seyfer/TERRA_SSD/TERRA_IN/ |
дерево зависимостей maven
1 2 3 |
mvn dependency:tree -Dverbose |