
Открытые системы / скрипты
.docДля справки на месте вбивать man имя_команды
1. Определите одной командой: имя хота, тип ОС, дату сборки системы.
uname –a
2. Определите имена пользователей, которые работают в системе на данный момент.
who
3. Определите системное имя вашего терминала.
tty
4. Добавьте в приглашение командной строки: текущую дату, имя системы, путь к текущему каталогу, имя пользователя.
PS1=‘\d \h:\W \u\$ ‘
5. Определите список идентификаторов процессов, запущенных с вашего терминала.
ps -a
6. Определите число процессов с положительными и отрицательными значениями эффективного приоритета, исполняющихся в данный момент в системе.
ps ax -o ni | grep -v '[0|NI]' | wc -l
-
Получите список всех процессов, которые в данный момент находятся в состоянии WAIT
ps ax | grep S
-
Получите список всех процессов, которые в данный момент находятся в состоянии RUN
ps ax | grep R
-
Определите список всех процессов, которые использовали на момент запуска скрипта более 5 минут времени ЦП.
-
Определите список всех процессов, которые использовали на момент запуска скрипта менее 5 минут времени ЦП.
-
Получите список всех обычных файлов текущего каталога, владельцем которых является пользователь web, дата создания позже позавчерашнего числа и они являются исполняемыми для группы web.
find . -type f -newerct '2 days ago' -user web -group web -perm -g=x -print
12. Получите список всех файлов с расширением txt, расположенных в подкаталогах текущего каталога с глубиной вложения 2.
find . –type f -name '*.txt' –depth 2 -print
-
Напишите скрипт, который при останове системы должен проверить наличие, а при необходимости завершить процесс с именем ECHO. Где этот скрипт должен быть расположен?
-
Напишите скрипт, который при старте системы должен проверить наличие, а при необходимости запустить процесс с именем ECHO. Где этот скрипт должен быть расположен?
-
Подсчитайте число строк, содержащих слово mail во всех файлах всех подкаталогах текущего каталога.
find . -exec grep mail {} \; | wc –l
16. Найдите самый “свежий” файл текущего каталога.
ls -lt | tail -n 1
17. Найдите самый “старый” файл текущего каталога.
ls -lrt | tail -n 1
18. Напишите скрипт killall, который завершит все процессы, запущенные пользователем gandy
#!/bin/sh
for n in `ps -u gandy -o pid | grep –v PID`
do
kill -s 9 $n done
19. Переименуйте все файлы текущего каталога с именами date-<yesterday>.txt в date- <today>.txt. Формат даты YYYYMMDD.
mv date-`date -v -1d '+%Y%m%d'`.txt date-`date '+%Y%m%d'`.txt
-
Определите имя процесса, который использовал больше всех других процессов время ЦП за последнюю минуту.
-
Определите тип терминала пользователя tom.
#!/bin/sh
su -tom
echo $TERM
-
Определите тип вашего терминала.
echo $TERM
23. Перенаправьте поток ошибок команды в стандартный поток вывода, а стандартный поток вывода на устройство /dev/null
somecommand 2>&1 1> /dev/null
24. Напишите конвеер, который способен подсчитать и число строк в отчёте команды ls –al и число слов в этом же отчёте.
ls –al | wc -lw
25. Распечатайте первые n строк всех файлов текущего каталога с расширением root.
head -n 5 *.root
26. Распечатайте последние n строк всех файлов текущего каталога с расширением root.
tail -n 5 *.root
27. Определите дату последнего изменения файла.
ls –lt somefile.ext
28. Определите дату последнего обращения к файлу.
ls –lu somefile.ext
29. Подсчитайте число локальных переменных окружения.
set | wc -l
30. Подсчитайте число глобальных переменных окружения.
env | wc -l
31. Получите самое длинное значение из всех значений переменных окружения. выдает длину каждой перем енно й
#!/bin/sh
set | sed -e 's/.*=//' | awk '{print length}'
-
Получите самое короткое значение из всех значений переменных окружения.
-
Получите самую длинную командную строку для процессов, исполняемых в данный момент в системе.
выдает длину каждой перем енно й #!/bin/sh ps ax -o command | grep –v COMMAND | awk '{print length}'
34. Получите самую короткую командную строку для процессов, исполняемых в данный момент в системе.