Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.10 KB | None | 0 0
  1. -- 03-a-0200
  2.  
  3. Сортирайте /etc/passwd лексикографски по поле UserID.
  4.  
  5. -- 03-a-0201
  6.  
  7. Сортирайте /etc/passwd числово по поле UserID.
  8. (Открийте разликите с лексикографската сортировка)
  9.  
  10. -- 03-a-0210
  11.  
  12. Изведете само 1-ва и 5-та колона на файла /etc/passwd спрямо разделител ":".
  13.  
  14. -- 03-a-0211
  15.  
  16. Изведете съдържанието на файла /etc/passwd от 2-ри до 6-ти символ.
  17.  
  18. -- 03-a-1500
  19.  
  20. Намерете броя на символите в /etc/passwd. А колко реда има в /etc/passwd?
  21.  
  22. -- 03-a-2000
  23.  
  24. Извадете от файл /etc/passwd:
  25. - първите 12 реда
  26. - първите 26 символа
  27. - всички редове, освен последните 4
  28. - последните 17 реда
  29. - 151-я ред (или друг произволен, ако нямате достатъчно редове)
  30. - последните 4 символа от 13-ти ред
  31.  
  32. -- 03-a-2100
  33.  
  34. Отпечатайте потребителските имена и техните home директории от /etc/passwd.
  35.  
  36. -- 03-a-2110
  37.  
  38. Отпечатайте втората колона на /etc/passwd, разделена спрямо символ '/'.
  39.  
  40. -- 03-a-3000
  41.  
  42. Запаметете във файл в своята home директория резултатът от командата ls -l изпълнена за вашата home директорията.
  43. Сортирайте създадения файла по второ поле (numeric, alphabetically).
  44.  
  45. -- 03-a-5000
  46.  
  47. Отпечатайте 2 реда над вашия ред в /etc/passwd и 3 реда под него // може да стане и без пайпове
  48.  
  49. -- 03-a-5001
  50.  
  51. Колко хора не се казват Ivan според /etc/passwd
  52.  
  53. -- 03-a-5002
  54.  
  55. Изведете имената на хората с второ име по-дълго от 7 (>7) символа според /etc/passwd
  56.  
  57. -- 03-a-5003
  58.  
  59. Изведете имената на хората с второ име по-късо от 8 (<=7) символа според /etc/passwd // !(>7) = ?
  60.  
  61. -- 03-a-5004
  62.  
  63. Изведете целите редове от /etc/passwd за хората от 03-a-5003
  64.  
  65. -- 03-b-0300
  66.  
  67. Намерете факултетния си номер във файлa /etc/passwd.
  68.  
  69. -- 03-b-3000
  70.  
  71. Запазете само потребителските имена от /etc/passwd във файл users във вашата home директория.
  72.  
  73. -- 03-b-3400
  74.  
  75. Колко коментара има във файла /etc/services ? Коментарите се маркират със символа #, след който всеки символ на реда се счита за коментар.
  76.  
  77. -- 03-b-3450
  78.  
  79. Вижте man 5 services. Напишете команда, която ви дава името на протокол с порт естествено число N. Командата да не отпечатва нищо, ако търсения порт не съществува (например при порт 1337). Примерно, ако номера на порта N е 69, командата трябва да отпечати tftp.
  80.  
  81. -- 03-b-3500
  82.  
  83. Колко файлове в /bin са shell script? (Колко файлове в дадена директория са ASCII text?)
  84.  
  85. -- 03-b-3600
  86.  
  87. Направете списък с директориите на вашата файлова система, до които нямате достъп. Понеже файловата система може да е много голяма, търсете до 3 нива на дълбочина. А до кои директории имате достъп? Колко на брой са директориите, до които нямате достъп?
  88.  
  89. -- 03-b-4000
  90.  
  91. Създайте следната файлова йерархия.
  92. /home/s...../dir1/file1
  93. /home/s...../dir1/file2
  94. /home/s...../dir1/file3
  95.  
  96. Посредством vi въведете следното съдържание:
  97. file1:
  98. 1
  99. 2
  100. 3
  101.  
  102. file2:
  103. s
  104. a
  105. d
  106. f
  107.  
  108. file3:
  109. 3
  110. 2
  111. 1
  112. 45
  113. 42
  114. 14
  115. 1
  116. 52
  117.  
  118. Изведете на екрана:
  119. * статистика за броя редове, думи и символи за всеки един файл
  120. * статистика за броя редове и символи за всички файлове
  121. * общия брой редове на трите файла
  122.  
  123. -- 03-b-4001
  124.  
  125. Във file2 подменете всички малки букви с главни.
  126.  
  127. -- 03-b-4002
  128.  
  129. Във file3 изтрийте всички "1"-ци.
  130.  
  131. -- 03-b-4003
  132.  
  133. Изведете статистика за най-често срещаните символи в трите файла.
  134.  
  135. -- 03-b-4004
  136.  
  137. Направете нов файл с име по ваш избор, който е конкатенация от file{1,2,3}.
  138. Забележка: съществува решение с едно извикване на определена програма - опитайте да решите задачата чрез него.
  139.  
  140. -- 03-b-4005
  141.  
  142. Прочетете текстов файл file1 и направете всички главни букви малки като запишете резултата във file2.
  143.  
  144. -- 03-b-5200
  145.  
  146. Изтрийте всички срещания на буквата 'a' (lower case) в /etc/passwd и намерете броят на оставащите символи.
  147.  
  148. -- 03-b-5300
  149.  
  150. Намерете броя на уникалните символи, използвани в имената на потребителите от /etc/passwd.
  151.  
  152. -- 03-b-5400
  153.  
  154. Отпечатайте всички редове на файла /etc/passwd, които не съдържат символния низ 'ov'.
  155.  
  156. -- 03-b-6100
  157.  
  158. Отпечатайте последната цифра на UID на всички редове между 28-ми и 46-ред в /etc/passwd.
  159.  
  160. -- 03-b-6700
  161.  
  162. Отпечатайте правата (permissions) и имената на всички файлове, до които имате read достъп, намиращи се в директорията /tmp.
  163.  
  164. -- 03-b-6900
  165.  
  166. Намерете имената на 10-те файла във вашата home директория, чието съдържание е редактирано най-скоро. На първо място трябва да бъде най-скоро редактираният файл. Намерете 10-те най-скоро достъпени файлове. (hint: Unix time)
  167.  
  168. -- 03-b-7000
  169.  
  170. Файловете, които съдържат C код, завършват на `.c`.
  171. Колко на брой са те във файловата система (или в избрана директория)?
  172. Колко реда C код има в тези файлове?
  173.  
  174. -- 03-b-7500
  175.  
  176. Даден ви е ASCII текстов файл (например /etc/services). Отпечатайте хистограма на N-те (например 10) най-често срещани думи.
  177.  
  178. -- 03-b-8000
  179.  
  180. Вземете факултетните номера на студентите от СИ и ги запишете във файл si.txt сортирани.
  181.  
  182. -- 03-b-8500
  183.  
  184. За всеки логнат потребител изпишете "Hello, потребител", като ако това е вашият потребител, напишете "Hello, потребител - this is me!".
  185.  
  186. Пример:
  187.  
  188. hello, human - this is me!
  189. Hello, s63465
  190. Hello, s64898
  191.  
  192. -- 03-b-8520
  193.  
  194. Изпишете имената на студентите от /etc/passwd с главни букви.
  195.  
  196. -- 03-b-8600
  197.  
  198. Shell Script-овете са файлове, които по конвенция имат разширение .sh. Всеки такъв файл започва с "#!<interpreter>" , където <interpreter> указва на операционната система какъв интерпретатор да пусне (пр: "#!/bin/bash", "#!/usr/bin/python3 -u").
  199.  
  200. Намерете всички .sh файлове и проверете кой е най-често използваният интерпретатор.
  201.  
  202. -- 03-b-8700
  203.  
  204. Намерете 5-те най-големи групи подредени по броя на потребителите в тях.
  205.  
  206. -- 03-b-9000
  207.  
  208. Направете файл eternity. Намерете всички файлове, които са били модифицирани в последните 15мин (по възможност изключете .). Запишете във eternity името на файла и часa на последната промяна.
  209.  
  210. -- 03-b-9050
  211.  
  212. Копирайте файл /home/tony/population.csv във вашата home директория.
  213.  
  214. -- 03-b-9051
  215.  
  216. Използвайки файл population.csv, намерете колко е общото население на света през 2008 година. А през 2016?
  217.  
  218. -- 03-b-9052
  219.  
  220. Използвайки файл population.csv, намерете през коя година в България има най-много население.
  221.  
  222. -- 03-b-9053
  223.  
  224. Използвайки файл population.csv, намерете коя държава има най-много население през 2016. А коя е с най-малко население?
  225. (Hint: Погледнете имената на държавите)
  226.  
  227. -- 03-b-9054
  228.  
  229. Използвайки файл population.csv, намерете коя държава е на 42-ро място по население през 1969. Колко е населението й през тази година?
  230.  
  231. -- 03-b-9100
  232.  
  233. В home директорията си изпълнете командата `curl -o songs.tar.gz "http://fangorn.uni-sofia.bg/misc/songs.tar.gz"`
  234.  
  235. -- 03-b-9101
  236.  
  237. Да се разархивира архивът songs.tar.gz в папка songs във вашата home директорията.
  238.  
  239. -- 03-b-9102
  240.  
  241. Да се изведат само имената на песните.
  242.  
  243. -- 03-b-9103
  244.  
  245. Имената на песните да се направят с малки букви, да се заменят спейсовете с долни черти и да се сортират.
  246.  
  247. -- 03-b-9104
  248.  
  249. Да се изведат всички албуми, сортирани по година.
  250.  
  251. -- 03-b-9105
  252.  
  253. Да се преброят/изведат само песните на Beatles и Pink.
  254.  
  255. -- 03-b-9106
  256.  
  257. Да се направят директории с имената на уникалните групи. За улеснение, имената от две думи да се напишат слято:
  258. Beatles, PinkFloyd, Madness
  259.  
  260. -- 03-b-9200
  261.  
  262. Напишете серия от команди, които извеждат детайли за файловете и директориите в текущата директория, които имат същите права за достъп както най-големият файл в /etc директорията.
  263.  
  264. -- 03-b-9300
  265.  
  266. Дадени са ви 2 списъка с email адреси - първият има 12 валидни адреса, а вторията има само невалидни. Филтрирайте всички адреси, така че да останат само валидните. Колко кратък регулярен израз можете да направите за целта?
  267.  
  268. Валидни email адреси (12 на брой):
  269. email@example.com
  270. firstname.lastname@example.com
  271. email@subdomain.example.com
  272. email@123.123.123.123
  273. 1234567890@example.com
  274. email@example-one.com
  275. _______@example.com
  276. email@example.name
  277. email@example.museum
  278. email@example.co.jp
  279. firstname-lastname@example.com
  280. unusually.long.long.name@example.com
  281.  
  282. Невалидни email адреси:
  283. #@%^%#$@#$@#.com
  284. @example.com
  285. myemail
  286. Joe Smith <email@example.com>
  287. email.example.com
  288. email@example@example.com
  289. .email@example.com
  290. email.@example.com
  291. email..email@example.com
  292. email@-example.com
  293. email@example..com
  294. Abc..123@example.com
  295. (),:;<>[\]@example.com
  296. just"not"right@example.com
  297. this\ is"really"not\allowed@example.com
  298.  
  299. -- 03-b-9500
  300.  
  301. Запишете във файл next потребителското име на човека, който е след вас в изхода на who. Намерете в /etc/passwd допълнителната ифнромация (име, специалност...) и също го запишете във файла next. Използвайки файла, изпратете му съобщение "I know who you are, информацията за студента"
  302.  
  303. Hint: можете да използвате командата expr, за да смятате аритметични изрази. Например, ще получим 13, ако изпълним: expr 10 + 3
  304.  
  305. Бонус: "I know who you are, само името му"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement