Общие вопросы > Полезные советы, инструкции

[Советы по Linux]

(1/2) > >>

Zloy_T:
1. Как быстро получить информацию о системе?

Быстро получить информацию о системе можно используя команду procinfo. Если этого недостаточно - смотрите файловую систему /proc.
Например: /proc/interrupts, /proc/cpuinfo...

2. Еще один способ получить полезную информацию о системе

Еще один способ получить полезную информацию о системе - команда vmstat. Она выводит информацию использовании памяти, процессора, областях swap и т.п.
Команда free выдает информацию о памяти и swap.

3. Как получить информацию о ваших загруженных модулях ядра


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

4. Нужно посмотреть параметры и возможные опции для модуля ядра Linux?

Воспользуйтесь командой modinfo. Например, Информация о авторе:

--- Код ---
modinfo -a модуль
--- Конец кода ---
Список возможных параметров:
--- Код ---
modinfo -p модуль
--- Конец кода ---

5. Полезная информация о ядре

Левый или правый CTRL, ALT, или SHIFT + scrollock покажут вам полезную информацию о ядре.

6. Как долго ваша система была запущена?

Чтобы увидеть, как долго ваша система была запущена, наберите uptime.

7. Как посмотреть какие порты открыты?


--- Код ---
netstat -a
--- Конец кода ---
позволит вам увидеть все tcp и udp порты, которые открыты на вашей системе.

8. Нужно узнать какой сокет заняла программа?


--- Код ---
lsof -i -U
fuser port_num/tcp
--- Конец кода ---
а также:

--- Код ---
netstat -pvlA inet
--- Конец кода ---

9.Как посмотреть информацию о запущенных процессах?

Обычно используется "ps -aux", и потом "kill <номер процесса>". Так же есть специальные программы - такие, как top, gtop и ktop.

10. Как посмотреть свободное место на диске?

Чтобы посмотреть свободное место на диске, используйте команду df. Так же в KDE есть программа kdf (KDiskFree).

11. Как узнать размер всех директорий в данном каталоге?

Чтобы узнать размер всех директорий в данном каталоге, выполните команду:


--- Код ---
find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn
--- Конец кода ---


12. Как разбить один большой файл на несколько маленьких?

Чтобы разбить один большой файл на несколько маленьких используйте команду:


--- Код ---
split --bytes=SIZE filename
--- Конец кода ---


13. Как добавить конфигурации по умолчанию для программ?

Если вы хотите добавить конфигурации по умолчанию для своих программ (которые размещаются в каждой домашней директории), копируйте эти конфигурационные файлы в /etc/skel. Каждый раз, когда вы добавляете нового пользователя, эти файлы будут скопированы в домашние директории пользователей.

14. Как убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL?

Убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL можно закомментировав строку


--- Код ---
ca::ctrlaltdel:/sbin/shutdown -t5 -rf now
--- Конец кода ---

в файле /etc/inittab.

15. Быстрый метод завершения перезапускаемого(respawning) процесса?

Очень быстрый метод завершения перезапускаемого(respawning) процесса в вашем /etc/inittab - это переключение уровней исполнения. Например, если вы имеете строку:


--- Код ---
1:1235:respawn:/usr/sbin/mgetty /dev/ttyS1
--- Конец кода ---

переключение на уровень 4 остановит перезапускаемый процесс.

16. Как ограничить потребление ресурсов системы пользователями?

Если вы запустили большую систему с большим количеством пользователей, может быть очень важно ограничить потребление ресурсов системы пользователями. Вы можете контролировать эти ограничения с помощью модуля PAM и файла /etc/pam.d/limits.conf. Большинство современных дистрибутивов используют PAM для аутентификации. Пример ограничений для группы


--- Код ---
@users hard core 0

@users hard nproc 50

@users hard rss 5000
--- Конец кода ---

Это не позволяет создавать файлы core, ограничивает пользователя до 50 процессов и по использованию памяти до 5МБ

17. Как сделать дамп N-консоли?

Команда
--- Код ---
cat /dev/vcsN
--- Конец кода ---
сбрасывает дамп N-консоли.

18. Как запретить вход всех пользователей в систему?

Чтобы запретить вход всех пользователей в систему (кроме root) без перезагрузки создайте файл /etc/nologin. Содержимое этого файла будет отображаться когда пользователь попытается войти в систему.

19. Ограничение на выполнение команды su

Чтобы разрешить определенным пользователям делать su, что лучше чем всем по умолчанию, редактируйте /etc/login.defs и установите строку SU_WHEEL_ONLY в yes. Затем вам нужно добавить пользователей, которым нужно делать su в группу 0, что делается редактированием файла /etc/groups.

20. Как примонтировать директорию из одной части файловой системы в другую?

В linux 2.4.x ядрах:


--- Код ---
mount --bind какую_директорию_монтировать куда_монтировать
--- Конец кода ---

21. Как установить точное время?

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


--- Код ---
ntpdate
--- Конец кода ---


Конечно, нужно иметь установленный пакет ntp и возможность соединения с сервером NTP. Вместо лучше использовать ip-адрес, чтобы избежать преобразования доменного имени в ip-адрес.

22. Как установить время CMOS?

Чтобы установить время CMOS системному используйте hwclock --systohc, а hwclock --hctosys - установит системное время, как время CMOS clock.

23. Как быстро скомпилировать ядро

Самый простой способ скомпилировать ядро это выполнить все команды make на одной строке набрав:


--- Код ---
make dep clean bzImage modules modules_install
--- Конец кода ---

Если вы просто пропатчили свое ядро тогда просто сделайте:


--- Код ---
make oldconfig dep clean bzImage modules modules_install.
--- Конец кода ---


24. System.map

Вешь, о которой иногда забывают упомянуть, когда вы обновляете свое ядро - это файл System.map (обычно располагающийся в каталоге /boot), который не соответствует новому ядру. После перезагрузки вы увидите сообщения о некорректной версии ядра. После построения нового ядра не забудьте скопировать новый файл System.map из каталога /usr/src/linux в загрузочный каталог вашей системы (/boot).

25. Как увидеть сообщения выдаваемы ядром?

Увидеть сообщения, выдаваемые ядром на экран при загрузке системы можно набрав команду
--- Код ---
dmesg.
--- Конец кода ---


26. Как посмотреть вывод команды и одновременно записать его в файл?

Посмотреть вывод команды и одновременно записать его в файл можно с помощью команды:


--- Код ---
tee $ls | tee logfile.txt
--- Конец кода ---


27. Как запретить хранитель экрана в текстовом режиме?

Запретить хранитель экрана в текстовом режиме - напечатайте
--- Код ---
setterm -blank 0.
--- Конец кода ---

28.Средство для более быстрого поиска файлов, чем find

Средство для более быстрого поиска файлов, чем find - команда locate, которая использует базу данных для поиска. Для обновления этой базы часто используется cron. Или вручную - updatedb.

29. Список всех исполняемых файлов в системе, которые присутствуют в вашем $PATH?

Нажмите TAB + scroll-lock или еще проще - два нажатия на клавишу TAB. Результат один и тот же.

30. Как отключить сигнал "beep" в течение автоматического завершения командной строки?

Добавьте либо в ~/.inputrc или в /etc/inputrc для визуального звонка:


--- Код ---
set bell-style visible
--- Конец кода ---

совершенно без сигнала:


--- Код ---
set bell-style none
--- Конец кода ---


31. Как послать данные на желаемый терминал?

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


--- Код ---
tail -f /var/log/messages > /dev/tty12
--- Конец кода ---

Для посылки любых сообщений на tty12.

32. Циклическое переключение через все доступные консоли.

Многие клавиатурные раскладки позволяют циклическое переключение через все доступные консоли используя Alt-RightArrow и Alt-LeftArrow.

33. Как выполнить родную команду системы, если используются алиасы?

Часто используете альясы shell (например, прописанные в ~/.bashrc), но иногда необходимо выполнить родную команду системы? Добавьте обратный слэш перед командой, это игнорирует псевдоним shell.

34. Как найти все файлы в каталоге, которые содержат строку?

Найти все файлы в каталоге, которые содержат строку:


--- Код ---
find . -type f -print | xargs grep -li "search string"
--- Конец кода ---


35. Как сделать чтобы программа ожидала нажатия какой-либо клавиши пользователем?

При написании скриптов shell часто возникает необходимость того, чтобы в процессе выполнения программа ожидала нажатия какой-либо клавиши пользователем. Это можно сделать таким способом:


--- Код ---
stty raw; dd if=$(tty) of=/dev/null bs=1 count=1; stty -raw
--- Конец кода ---

36.Как перенаправить стандартный вывод и поток ошибок в один и тот же файл?

Чтобы перенаправить стандартный вывод и поток ошибок в один и тот же файл, используйте
--- Код ---
`&>'.
--- Конец кода ---


37. Как сохрать man-страницы в текстовый файл?

Самый простой способ сохранения man-страницы в текстовый файл -
--- Код ---
" man name | col -b > name.txt".
--- Конец кода ---

38. Все символы в консоли стали нечитаемыми

Если все символы в консоли стали нечитаемыми, наберите:


--- Код ---
"echo -ne "\017","stty sane" или просто "reset".
--- Конец кода ---


39. Как перевести имена файлов в директории в нижний регистр?

Самый простой способ перевода всех имен файлов из директории в нижний регистр:


--- Код ---
"for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done".
--- Конец кода ---


40. Как быстро переименовать файл?

Чтобы быстро переименовать файл, используйте команду:


--- Код ---
"mv /usr/local/bin/{старое_имя,новое_имя}".
--- Конец кода ---


41. Как удалить всю директорию без лишних запросов?

Чтобы удалить сразу всю директорию без лишних запросов, используйте:


--- Код ---
rm -rf имя_директории
--- Конец кода ---


42. Как создать сразу несколько директорий?

Создание сразу нескольких директорий -
--- Код ---
"mkdir -p dir1/dir2/dir3".
--- Конец кода ---


43. Как правильно выключить компьютер?

Правильное выключение компьютера - команда
--- Код ---
"shutdown -h now"
--- Конец кода ---
.

Перезагрузка -
--- Код ---
"shutdown -r now"
--- Конец кода ---
или просто
--- Код ---
"init 5"
--- Конец кода ---
.

44. Как передать весь вывод одной команды на вход другой команде?

Чтобы передать весь вывод одной команды на вход другой команде, используется символ "|".

Таким образом можно делать сложные конструкции (например,
--- Код ---
"ls | sort -r | less"
--- Конец кода ---
).

45. Как следить за постоянно изменяющимися файлами?

Чтобы следить за постоянно изменяющимися файлами (например, за системными логами), используйте команду tail.

Пример:
--- Код ---
"tail -15 /var/log/syslog"
--- Конец кода ---
- постоянно показывает последние 15 строк.

46. Как следить за списком файлов в реальном времени?

Слежение за списком файлов в реальном времени -
--- Код ---
"watch -n 0 ls -l".
--- Конец кода ---

Команда watch осуществляет периодический запуск других команд.

47. Как искать текст в файлах?

Для поиска текста в файлах используется команда -
--- Код ---
"grep "ваш текст" /where/to/search".
--- Конец кода ---

Если при поиске не нужно учитывать регистр -
--- Код ---
"grep -i "ваш текст" /where/to/search"
--- Конец кода ---


48. Как заменить одно слово на другое во многих файлах?

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

--- Код ---
perl -pi -e 's/oneword/anotherword/g' *.
--- Конец кода ---
Если нужно сделать это же с одним файлом, поставьте его имя вместо " * ".

49. Как перейти из графического режима в текстовую консоль?

Чтобы перейти из графического режима в текстовую консоль, нажмите Ctrl+Alt+F1. (Ctrl+Alt+F2 - на вторую консоль, Ctrl+Alt+F3 - на третью консоль, etc). Для того, чтобы вернуться обратно в Иксы, обычно используется комбинация клавиш Alt+F7.

50. Как увидеть под Linux другой подключенный жесткий диск?

Чтобы увидеть под Linux другой подключенный жесткий диск, надо примонтировать (командой mount) разделы, которые на новом винчестере есть. Для этого надо определить, каким винчестер стоит: hdb, hdc или hdd. Для этого нужно всего лишь сообразить, как он подключен: primary slave - это hdb, secondary master - это hdc, secondary slave - это hdd. Теперь надо просмотреть, какие диски на винте есть. Для этого запускаем cfdisk для того винта, который мы определили на предыдущем шаге, например, для hdb: cfdisk /dev/hdb. Глядим, какие разделы есть. Например есть FAT32 (или он еще обозначается как WIN95) диск /dev/hdb1. Мы хотим его подключить скажем к каталогу /mnt/disk. Тогда: mount -t vfat /dev/hdb1 /mnt/disk. Здесь: параметр "-t" указывает тип файловой системы, в нашем случае это vfat, что соответствует fat32.

51. Работа с CD/R и CD/RW.

Стираем так:
--- Код ---
cdrecord -v blank=fast(или all) dev=<Ваш девайс>.
--- Конец кода ---

Образ делаем так:
--- Код ---
mkisofs -r -J -o <имя_файла_образа.iso> <то_чего_в_образ_загоняем>
--- Конец кода ---


Пишем так:
--- Код ---
cdrecord -v -eject speed=8 dev=<Ваш девайс> file.iso.
--- Конец кода ---


Если надо мультисессионный диск, то добавляем -multi.

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

52. Запись CD диска

Команды cdrecord, полезные при записи CDROM:


--- Код ---
mkisofs -V "volume_ID" -D -l -L -N -J -R -v -o cdrom.iso директория
--- Конец кода ---


--- Код ---
cdrecord -dev=0,1,0 -speed=4 -v cdrom.iso
--- Конец кода ---


Для подключения IDE накопителя добавить в linux lilo append="hdc=ide-scsi"

( hdc - ваш привод?) и включить в ядре поддержку эмуляции SCSI.

-toc -atip -prcap - выдать полную информацию о накопителе.

-scanbus - определить параметры для -dev (можно /proc/scsi/scsi)

-dummy - запись в режие тестирования (без реального прожигания диска).

-fix - исправить недописавшийся диск.

-eject - после записи вытащить CD

-blank=all очистить CR-RW перед записью.

mkisofs -print-size - расчитать сколько потребуется места для записи директории

53. Как смонтировать образ компак-диска?

Смонтировать образ компакт-диска можно таким образом:


--- Код ---
#mkdir /mnt/iso

#mount -t iso9660 -o loop cd-image.iso /mnt/iso
--- Конец кода ---

(Разумеется, для операции монтирования нужно иметь права root). Теперь каталог /mnt/iso доступен для чтения содержимого образа компакт-диска.

54. Как узнать метку компакт-диска?

Узнать метку компакт-диска можно так:


--- Код ---
alias cdlabel='LABEL=`dd if=/dev/cdrom bs=1 count=32 skip=32808 2>/dev/null` && echo $LABEL'
--- Конец кода ---

Удобно использовать альяс в инициализационных скриптах shell.

Советы по “железу”
1. Как получить список устройств на шине PCI?

Получить список устройств на шине PCI можно таким образом:


--- Код ---
/sbin/lspci
--- Конец кода ---

2. Как включить при загрузке клавиши numlock?

Если вы хотите включить все клавиши numlock при загрузке, добавьте следущее в ваши загрузочные скрипты, например в rc.local:


--- Код ---
echo -n "Turning on numlock LEDs: "

for tty in /dev/tty[1-6] /dev/tty1[2]; do

setleds -D +num < $tty &

done

echo "done."
--- Конец кода ---

3. Как посмотреть информацию полученную от мыши на стандартный вывод?

Если у вас трудности с мышью, mev -i сбросит информацию полученную от мыши на стандартный вывод.

4. Раздражают сигналы спикера вашего компьютера когда вы ошиблись?

Попробуйте выполнить следующую команду bash:


--- Код ---
echo -ne '\033[11;0]'
--- Конец кода ---

которая устанавливает продолжительность сигнала для консоли равным 0 секунд. Чтобы сделать это автоматически добавьте эти строки в /etc/profile или ваш~/.profile. Подробную информацию о том, как установить частоту и длительность гудка, читайте в Visual bell mini-Howto.

AZJIO:
Прежде чем создать тему решил поискать нет ли примеров замены текста в файлах и нашёл тут.
Не увидел в теме примера с регулярными выражениями и решил почитать о perl и попробовать.


--- Код ---
perl -pi -e 's/ --class ubuntu/ --class mint/g' /home/user/test/grub.cfg
perl -pi -e 's/(submenu ".+?")\{/\1 --class folder \{/g' /home/user/test/grub.cfg
--- Конец кода ---

реальный пример, "Grub Customizer", а также обновления ядра перезаписывают grub.cfg используя свои файлы настройки, и если в настройках можно найти элементы пунктов меню и их "--class mint" экспортируется из конфигов, то для submenu я не нашёл как элемент в чистом виде. Поэтому решил сделать код чтобы кликнуть и вернуть красивый вариант. То есть ничего не пришлось выдумывать, вместо строки поиска указать обычное регулярное выражение на движке PCRE (perl совместимое), которое используется в AutoIt3 хорошо мной изученного. А в поле замены использовать  ссылку на группу \1 и текст. В итоге результат был получен.

sfs:
В наших дистрах перл не используется (жирный, сложный). Тот же функционал есть в sed (была инфа, что кто-то на sed шахматы написал). Можно усилить grep и awk . Подробнее в вики
В вашем примере даже синтаксис у sed будет такой же

AZJIO:
На grep находил, но не смог заставить работать, вот:

--- Код ---
# grep 'текст_который_нужно_искать' -P -R -I -l  * | xargs sed -i 's/текст_который_нужно_искать/текст_который_нужно_заменить/g'
--- Конец кода ---
надо ещё попробовать. Я пока понял что флаги -P -R надо убрать (пока), так как рег-выр и рекурсия, вместо звёздочки * путь к файлу. С ходу не сработало, но можно ещё попробовать.

sfs:

--- Код ---
echo "111aaa" |sed 's/111/222/'
222aaa
--- Конец кода ---
На sed много чего можно

--- Цитата: AZJIO от 27 Январь 2021, 10:53:26 ---вместо звёздочки * путь к файлу.
--- Конец цитаты ---
Может find

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии