Українська версія
Windows, Linux та Command Line: питання для співбесіди
Практичні питання українською про Windows Command Prompt, PowerShell, Linux commands, files, logs, permissions, processes, services, networking, resources і troubleshooting для QA/SDET.OS та command lineJuniorOccasionalTheoryЯка практична різниця між Windows Command Prompt і PowerShell?
Відповідь
Command Prompt переважно запускає традиційні console programs і batch commands та передає між командами текст. PowerShell є automation shell і scripting language на основі cmdlets та структурованих .NET objects, тому filtering, вибір properties, error handling і автоматизація зазвичай надійніші, ніж parsing форматованого тексту.
Сильна відповідь включає
- CMD переважно text-oriented і сумісний з batch scripts
- PowerShell pipeline передає структуровані objects між cmdlets
- вибір shell залежить від задачі й доступних tools
Практичний приклад
Щоб знайти Windows process, `tasklist | findstr java` парсить текст, а `Get-Process java | Select-Object Name,Id,CPU` працює з process objects та явними properties.
Джерела
Windows commands referenceMicrosoft · Command Prompt utilities including ipconfig, netstat, tasklist, taskkill, sc, findstr, ping, tracert and nslookupPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingPowerShell Interview QuestionsWeCP · Recurrence signal for PowerShell fundamentals, cmdlets, services, processes, pipelines and troubleshooting questionsOS та command lineJuniorOccasionalPracticalЯк у Windows command line переглянути files, прочитати text file і знайти потрібний text усередині?
Відповідь
У Command Prompt `dir` показує files, `type file.log` друкує text file, а `findstr` шукає текст або прості regular-expression patterns. У PowerShell типовими equivalents є `Get-ChildItem`, `Get-Content` і `Select-String`, які працюють у PowerShell pipeline та з його objects.
Сильна відповідь включає
- dir і Get-ChildItem показують filesystem entries
- type або Get-Content читає text
- findstr або Select-String фільтрує matching lines
Практичний приклад
Після failed Windows test run команда `findstr /i /n "error exception" app.log` швидко знаходить matching lines; у PowerShell `Select-String -Path app.log -Pattern 'error|exception'` повертає richer match objects.
Джерела
Windows commands referenceMicrosoft · Command Prompt utilities including ipconfig, netstat, tasklist, taskkill, sc, findstr, ping, tracert and nslookupPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingPowerShell Interview QuestionsWeCP · Recurrence signal for PowerShell fundamentals, cmdlets, services, processes, pipelines and troubleshooting questionsOS та command lineJuniorOccasionalPracticalУ чому різниця між `find` і `grep` у Linux?
Відповідь
`find` шукає filesystem entries за критеріями на кшталт name, path, type, size або modification time. `grep` шукає matching lines чи patterns у text content. Їх часто комбінують: `find` відбирає files, а `grep` перевіряє content; або застосовують recursive `grep -R`, якщо потрібен саме content search.
Сильна відповідь включає
- find шукає paths і filesystem metadata
- grep шукає content files або streams
- знає, коли безпечно комбінувати ці commands
Практичний приклад
Щоб знайти JSON logs, змінені сьогодні, і перевірити correlation ID, спочатку використайте `find /var/log/app -name '*.json' -mtime 0`, а потім шукайте `grep -n 'abc-123'` у вибраних files.
Джерела
GNU grep manualGNU Project · Text search, matching options, recursive search and grep command semanticsLinux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behavior50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineJuniorOccasionalTroubleshootingЯкі Linux commands корисні для читання великого log file і спостереження за новими lines?
Відповідь
Використовуйте `less` для interactive читання без відкриття всього file в editor, `head` або `tail` для обмеженої кількості lines і `tail -f`, щоб стежити за appended lines. Для services під systemd часто правильніше використати `journalctl -u <service>`, а не очікувати звичайний text log file.
Сильна відповідь включає
- less зручний для великих files
- tail -f показує appended lines
- journalctl доречний для systemd service logs
Практичний приклад
Під час відтворення API failure на Linux host запустіть `tail -f /var/log/app/app.log` в одному terminal, а test — в іншому. Якщо app керується systemd, використайте `journalctl -u app.service -f`.
Джерела
GNU Coreutils manualGNU Project · Linux and Unix-like filesystem, text, disk-usage and shell utility behaviorsystemd manualsystemd project · systemctl, journalctl, service units and systemd operational behavior50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineJuniorOccasionalTheoryЩо роблять pipes і output redirection у command shell?
Відповідь
Pipe передає standard output однієї command у standard input іншої, а redirection направляє standard output або standard error у file чи іншу ціль. У типових Unix shells `>` перезаписує file, `>>` додає в кінець, `2>` redirect-ить stderr, а `|` створює pipeline. У PowerShell semantics відрізняються, бо pipeline зазвичай передає objects.
Сильна відповідь включає
- pipe з'єднує output producer з input consumer
- розрізняє overwrite, append і stderr redirection
- не переносить semantics одного shell на всі інші
Практичний приклад
`grep -i error app.log | tail -n 20 > latest-errors.txt` відбирає matching lines, залишає останні двадцять і записує результат у file замість простого display у terminal.
Джерела
GNU Coreutils manualGNU Project · Linux and Unix-like filesystem, text, disk-usage and shell utility behaviorGNU grep manualGNU Project · Text search, matching options, recursive search and grep command semanticsPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingOS та command lineMiddleOccasionalTheoryЯк працюють Linux file permissions і що змінюють `chmod` та `chown`?
Відповідь
Linux permissions оцінюються окремо для file owner, group та others і мають read, write та execute bits. `chmod` змінює permission bits, а `chown` — ownership. Numeric modes на кшталт 644 і 755 є компактним записом: 644 зазвичай дає owner read/write, іншим read-only; 755 додатково дає execute group та others.
Сильна відповідь включає
- owner, group та others мають окремі permission classes
- chmod змінює mode, chown змінює ownership
- пояснює common numeric modes без поради chmod 777
Практичний приклад
Якщо deployed script існує, але повертає `Permission denied`, спочатку перевірте `ls -l`. Правильним fix може бути `chmod u+x run-tests.sh`; сліпий `chmod -R 777` змінює набагато більше permissions, ніж потрібно.
Джерела
GNU Coreutils manualGNU Project · Linux and Unix-like filesystem, text, disk-usage and shell utility behaviorLinux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behavior50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineJuniorOccasionalTroubleshootingЯк переглядати running processes у Linux?
Відповідь
Використовуйте `ps` для snapshot processes, часто `ps aux` або `ps -ef`, і `top` для interactive змінного view CPU та memory usage. `pgrep` допомагає знайти PID за process name. Для конкретного service треба також перевіряти service manager, бо сам факт існування process ще не доводить health application.
Сильна відповідь включає
- ps дає snapshot, top — interactive view
- може знайти PID через pgrep або filtering ps
- process existence не дорівнює application health
Практичний приклад
Коли test server стає повільним, `top` може показати Java process, що забирає CPU core. Потім `ps -fp <pid>` підтверджує його command line перед restart або kill неправильного process.
Джерела
Linux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behavior50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineMiddleOccasionalTroubleshootingУ чому різниця між звичайним `kill` і `kill -9` у Linux?
Відповідь
`kill <pid>` за замовчуванням надсилає SIGTERM, тобто просить process завершитися і дає йому можливість виконати cleanup handlers. `kill -9 <pid>` надсилає SIGKILL, який process не може перехопити чи ігнорувати. Тому SIGKILL — last resort після невдалого graceful stop, бо cleanup може не завершитися.
Сильна відповідь включає
- default kill надсилає SIGTERM
- SIGKILL не може бути оброблений target process
- force застосовується лише після невдалого graceful termination
Практичний приклад
Якщо local test service завис, спочатку зупиніть його через `systemctl stop` або `kill <pid>` і трохи зачекайте. `kill -9` використовуйте лише якщо process не завершується і наслідки зрозумілі.
Джерела
Linux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behavior50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineJuniorOccasionalPracticalЯк у Windows command line показати й зупинити processes?
Відповідь
У Command Prompt `tasklist` показує processes, а `taskkill` може завершити їх за PID або image name. У PowerShell `Get-Process` повертає process objects, а `Stop-Process` завершує вибрані processes. Перед force termination варто перевірити точний PID та process identity, особливо на shared test machines.
Сильна відповідь включає
- tasklist і taskkill є CMD-native tools
- Get-Process і Stop-Process є PowerShell cmdlets
- перевіряє PID або process identity перед termination
Практичний приклад
Використайте `tasklist /fi "IMAGENAME eq java.exe"`, щоб звузити candidates, а потім `taskkill /PID 4321` для підтвердженого process. У PowerShell `Get-Process java` дає properties перед `Stop-Process -Id 4321`.
Джерела
Windows commands referenceMicrosoft · Command Prompt utilities including ipconfig, netstat, tasklist, taskkill, sc, findstr, ping, tracert and nslookupPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingPowerShell Interview QuestionsWeCP · Recurrence signal for PowerShell fundamentals, cmdlets, services, processes, pipelines and troubleshooting questionsOS та command lineMiddleOccasionalTroubleshootingЯк перевірити й troubleshoot-ити systemd service у Linux?
Відповідь
Почніть із `systemctl status <unit>`, щоб побачити unit state і recent messages. `systemctl start`, `stop` або `restart` використовуйте лише за потреби, а `journalctl -u <unit>` — для service logs. Також треба відрізняти `enable`, який налаштовує start at boot, від `start`, що змінює current runtime state.
Сильна відповідь включає
- спочатку systemctl status, а не blind restart
- journalctl -u для unit logs
- відрізняє start від enable
Практичний приклад
Якщо `api.service` не працює після deployment, `systemctl status api.service` може показати exit code, а `journalctl -u api.service -n 100 --no-pager` дасть startup error без restart, який може стерти корисний evidence.
Джерела
systemd manualsystemd project · systemctl, journalctl, service units and systemd operational behavior50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineMiddleOccasionalTroubleshootingЯк із command line перевіряти й керувати Windows services?
Відповідь
Command Prompt може використати `sc query <service>` для перевірки service state і `sc start` або `sc stop` для керування. PowerShell має `Get-Service`, `Start-Service`, `Stop-Service` та `Restart-Service`. Статус Running — лише один signal: треба ще перевірити process, listener, dependency та application health.
Сильна відповідь включає
- знає sc query та PowerShell service cmdlets
- service state не дорівнює endpoint health
- перевіряє dependencies і logs перед зайвим restart
Практичний приклад
Windows API service має status Running, але tests отримують connection refused. Перевірте service, потім чи process реально listening на expected port, і Event Log або application logs перед restart.
Джерела
Windows commands referenceMicrosoft · Command Prompt utilities including ipconfig, netstat, tasklist, taskkill, sc, findstr, ping, tracert and nslookupPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingPowerShell Interview QuestionsWeCP · Recurrence signal for PowerShell fundamentals, cmdlets, services, processes, pipelines and troubleshooting questionsOS та command lineMiddleOccasionalPracticalЯкі Linux commands допомагають перевірити local network configuration і routes?
Відповідь
`ip addr` показує interface addresses та state, а `ip route` — routing decisions, включно з default route. `hostname` показує local host name. Старі `ifconfig` і `route` ще трапляються, але modern Linux troubleshooting зазвичай використовує family commands `ip` з iproute2.
Сильна відповідь включає
- ip addr для interfaces та addresses
- ip route для routing table і default route
- розуміє, що iproute2 є сучасним default
Практичний приклад
Якщо VM не може reach API subnet, перевірте `ip addr`, щоб підтвердити expected address, і `ip route`, щоб побачити usable route, перш ніж звинувачувати DNS або remote service.
Джерела
Linux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behavior50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineJuniorOccasionalPracticalЯку інформацію показує `ipconfig` у Windows і коли корисний `ipconfig /all`?
Відповідь
`ipconfig` показує core TCP/IP configuration: IPv4/IPv6 addresses, subnet masks та default gateways. `ipconfig /all` додає детальну adapter information, включно з DHCP і DNS configuration. Options `/flushdns`, `/release` та `/renew` змінюють state, тому їх не слід запускати лише для inspection.
Сильна відповідь включає
- basic ipconfig показує address, mask і gateway
- /all додає adapter, DHCP та DNS details
- відрізняє inspection від state-changing options
Практичний приклад
Коли Windows test agent не reach-ить internal service, `ipconfig /all` може показати неправильний DNS server або gateway, що набагато корисніше за повторні application retries.
Джерела
Windows commands referenceMicrosoft · Command Prompt utilities including ipconfig, netstat, tasklist, taskkill, sc, findstr, ping, tracert and nslookupOS та command lineMiddleOccasionalTroubleshootingЯк визначити, який process listening на TCP port у Linux і Windows?
Відповідь
У Linux типовий варіант — `ss -lntp`, який показує listening TCP sockets і пов'язані processes, якщо вистачає permissions; також інколи використовують `lsof -i`. У Windows `netstat -ano` показує connections/listeners із PID, який можна зіставити через `tasklist`; у PowerShell є `Get-NetTCPConnection` плюс process inspection.
Сильна відповідь включає
- Linux ss може пов'язати listeners із processes
- Windows netstat -ano показує PID
- спочатку зіставляє PID з owner process, потім діє
Практичний приклад
Якщо port 8080 неочікувано зайнятий, використайте `ss -lntp | grep ':8080'` у Linux або `netstat -ano | findstr :8080` у Windows, а потім визначте PID перед будь-яким stop.
Джерела
Linux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behaviorWindows commands referenceMicrosoft · Command Prompt utilities including ipconfig, netstat, tasklist, taskkill, sc, findstr, ping, tracert and nslookupPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingOS та command lineMiddleOccasionalTroubleshootingЯкі command-line tools допомагають відрізнити DNS problem від загальної connectivity problem?
Відповідь
Використовуйте `nslookup` або `dig`, щоб query-ити DNS і порівняти resolved address з очікуваним. `ping` дає лише обмежений ICMP reachability signal, бо ICMP може бути blocked. `traceroute` або `tracert` дають clues про path, а `curl` чи Windows `Test-NetConnection -Port` перевіряють саме потрібний protocol і port.
Сильна відповідь включає
- DNS resolution і network reachability перевіряються окремо
- failed ping не доводить, що host unavailable
- перевіряє реальний TCP port або application protocol
Практичний приклад
Якщо `api.internal` падає в test, спочатку resolve-ніть його через `nslookup api.internal`. Якщо address правильний, перевірте TCP 443 через `Test-NetConnection api.internal -Port 443` або URL через `curl`.
Джерела
Windows commands referenceMicrosoft · Command Prompt utilities including ipconfig, netstat, tasklist, taskkill, sc, findstr, ping, tracert and nslookupPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingcurl documentationcurl project · HTTP and network diagnostics with curl, including request, response and verbose connection inspectionLinux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behaviorOS та command lineJuniorOccasionalPracticalЯк `curl` допомагає, коли HTTP service не працює через browser або test framework?
Відповідь
`curl` може зробити direct HTTP request і показати status, headers, redirects, TLS errors та response content без browser UI чи abstractions test framework. Корисні options: `-v` для verbose connection details, `-I` для headers, `-H` для request headers і `-d` для request data. Це diagnostic client, а не доказ повної correctness application.
Сильна відповідь включає
- curl ізолює HTTP від browser або framework behavior
- свідомо використовує verbose output і headers
- не вважає один successful curl повним testing
Практичний приклад
Коли automated API test показує generic connection failure, `curl -v https://service/health` може показати, де перший failure: DNS, TCP/TLS setup, redirect чи сам HTTP response.
Джерела
curl documentationcurl project · HTTP and network diagnostics with curl, including request, response and verbose connection inspection50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineMiddleOccasionalTroubleshootingЯкі command-line checks корисні, коли test machine повільна або закінчуються resources?
Відповідь
У Linux `top` або `ps` допомагають знайти CPU/memory consumers, `free -h` показує memory summary, а `df -h` разом із `du` відрізняють filesystem capacity від directory usage. У Windows PowerShell можна перевірити processes через `Get-Process`, а drives через `Get-PSDrive` або storage cmdlets. Спочатку вимірюйте, а вже потім видаляйте чи kill-те.
Сильна відповідь включає
- окремо досліджує CPU, memory і disk
- df та du відповідають на різні disk questions
- спочатку вимірювання, потім destructive remediation
Практичний приклад
Якщо CI падає з `No space left on device`, `df -h` підтверджує, який filesystem full, а `du -sh` по candidate directories показує, де витрачено space, перш ніж видаляти logs чи artifacts.
Джерела
GNU Coreutils manualGNU Project · Linux and Unix-like filesystem, text, disk-usage and shell utility behaviorLinux man-pages projectman7.org / Linux man-pages project · Linux processes, signals, networking and system-call-facing command behaviorPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handling50 Linux Interview Questions (With Answers)Toolmingo · Recurrence signal for Linux filesystem, permissions, processes, systemd, networking and shell-command interview topicsOS та command lineJuniorOccasionalTheoryЩо таке environment variables і чому `PATH` важливий для command-line tools?
Відповідь
Environment variables — це named values, які бачать processes і які часто використовуються для configuration: endpoints, credential references, modes та tool locations. `PATH` — список directories, у яких shell шукає executable, якщо command викликана без full path. Tool може бути встановлений правильно, але не знаходитися через відсутній directory у PATH або stale shell state.
Сильна відповідь включає
- environment variables є process-visible configuration
- PATH керує executable lookup
- розуміє inheritance між process/session і stale state
Практичний приклад
Якщо `k6` працює в одному terminal, але не в іншому, порівняйте PATH і command resolution перед reinstall. У PowerShell використайте `$env:PATH` та `Get-Command k6`, у Linux — `echo "$PATH"` і `command -v k6`.
Джерела
GNU Coreutils manualGNU Project · Linux and Unix-like filesystem, text, disk-usage and shell utility behaviorPowerShell documentationMicrosoft · PowerShell cmdlets, object pipeline, processes, services, networking, event logs and environment handlingOS та command lineSeniorOccasionalScenarioService має status running, але clients не можуть до нього підключитися. Які command-line checks виконати перед restart?
Відповідь
Рухайтеся від client path усередину: resolve hostname, перевірте intended IP і route, протестуйте потрібний TCP port, переконайтеся, що service listening на expected interface, зіставте listener з правильним process, перевірте service state та logs, а потім local firewall або proxy configuration. Збережіть evidence до restart, бо restart може приховати original failure.
Сильна відповідь включає
- йде від DNS до network, listener, process і application logs
- перевіряє actual port, а не лише ping
- зберігає evidence перед restart або force termination
Практичний приклад
Для HTTPS на port 8443 resolve-ніть host, перевірте TCP 8443, подивіться `ss -lntp` або `netstat -ano`, визначте owner process, а потім `journalctl` чи Windows Event Log. Restart робіть після локалізації failure.