Linux와 커맨드 라인 기초

Linux의 디렉터리 구성과 경로, 하드 링크와 심볼릭 링크, 와일드카드, 파일 권한과 chmod·umask, sudo와 setuid, 리다이렉션과 파이프, grep과 정규 표현식, sort·uniq·cut·sed·awk·find, 시그널과 작업 제어, 종료 상태와 &&·||, 셸 스크립트의 따옴표·인수·조건·반복, PATH와 환경 변수, 패키지 관리, systemd, cron, df와 du, SSH 공개 키 인증, tar, Git의 기본 조작을 객관식 문제로 학습합니다.

10문제 연습하기이 분야에서 무작위 10문제 · 약 5분 이 분야 연습하기이 분야의 모든 문제를 무작위 순서로 풀어요 취약 문제최근에 틀린 문제만 다시 풀어요

Linux와 커맨드 라인 기초: 핵심 정리

서버나 클라우드의 대부분은 Linux로 동작하며, 논리 합성이나 회로 시뮬레이션 같은 EDA 도구도 보통 Linux 서버 위에서 사용합니다. 그곳에서는 화면의 버튼이 아니라 셸에 명령을 입력하여 파일을 조사하고, 로그를 걸러 내고, 긴 처리를 실행시킨 채 접속을 끊는 것과 같은 작업이 매일의 일이 됩니다.

여기서는 디렉터리 구성과 절대 경로·상대 경로, 숨김 파일, 하드 링크와 심볼릭 링크, 와일드카드, 파일 권한의 rwx와 8진수 표기, umask, 디렉터리의 실행 권한, sudo와 setuid를 학습합니다. 이어서 리다이렉션과 파이프, grep과 정규 표현식, sort와 uniq를 조합한 집계, tail -f, cut, sed, awk, find, kill과 시그널, Ctrl+Z와 bg·fg, nohup, 종료 상태와 &&·||, 따옴표와 변수 확장, 스크립트의 인수와 조건과 반복, PATH와 export를 다루고, 마지막으로 패키지 관리, systemctl, cron, df와 du, SSH 키, tar, Git의 add·commit·push와 .gitignore를 확인합니다. 명령의 동작은 bash와 GNU 명령(coreutils, grep, sed, findutils, tar)을 기준으로 하며, 문제의 출력은 Linux에서 실제로 실행하여 확인했습니다. 프로세스나 가상 메모리의 구조는 'OS와 하드웨어', 포트 번호나 DNS는 '네트워크 기초', 접근 제어의 개념은 '정보 보안 기초', Git의 병합이나 개발 진행 방식은 '소프트웨어 개발과 프로젝트 관리' 분야에서 다룹니다.

Linux와 커맨드 라인 기초 전체 문제 (40)

  1. Linux의 표준적인 디렉터리와 그곳에 놓이는 것의 조합으로 올바른 것은?
  2. Linux의 /proc 디렉터리에 대한 설명으로 올바른 것은?
  3. 디렉터리 /home/alice/data가 있고, 현재 디렉터리는 /home/alice/work이다. 'cd ../data'를 실행한 다음 'pwd'를 실행했을 때 표시되는 디렉터리로 올바른 것은?
  4. 홈 디렉터리에서 'ls'를 실행하면 notes.txt만 표시되고, 'ls -a'를 실행하면 '.', '..', '.bashrc', 'notes.txt'가 표시되었다. 이 결과에 대한 설명으로 올바른 것은?
  5. 위의 명령을 순서대로 실행했을 때, 마지막 두 cat의 결과로 올바른 것은?
  6. 어떤 디렉터리에 a1.txt, a2.txt, a10.txt, b1.txt, c1.txt, a1.csv의 6개 파일이 있다. 이 디렉터리에서 'ls [ab]?.txt'를 실행했을 때 표시되는 파일의 수로 올바른 것은?
  7. 파일 run.sh에 'chmod 754 run.sh'를 실행한 후, 'ls -l run.sh' 줄의 맨 앞에 표시되는 권한 표기로 올바른 것은?
  8. touch는 새 파일을 666에서, mkdir는 새 디렉터리를 777에서 umask의 비트를 제거한 권한으로 만든다. umask가 027인 셸(shell)에서 새 파일과 새 디렉터리를 만들었을 때, 각각의 권한의 조합으로 올바른 것은?
  9. 디렉터리 d의 권한이 rwx--x--x(711)이고, 그 안의 파일 f.txt의 권한이 rw-r--r--(644)이다. 소유자도 슈퍼유저도 아닌 사용자가 'ls d'와 'cat d/f.txt'를 실행했을 때의 결과로 올바른 것은?
  10. Linux의 sudo 명령에 대한 설명으로 올바른 것은?
  11. 많은 Linux에서 'ls -l /usr/bin/passwd'를 실행하면 '-rwsr-xr-x 1 root root ...'로 표시된다. 소유자의 실행 위치에 있는 's'의 의미로 올바른 것은?
  12. 위의 명령을 순서대로 실행했을 때, 마지막 cat으로 표시되는 내용으로 올바른 것은?
  13. 위와 같이 a.txt는 있고 nofile은 없는 디렉터리에서 마지막 명령을 실행했다. 결과로 올바른 것은?
  14. 위의 조작에서 마지막 명령이 출력하는 값으로 올바른 것은?
  15. 위의 조작에서 마지막 grep이 출력하는 줄로 올바른 것은?
  16. 선택지에서는 줄 맨 앞의 공백을 빼고 나타낸다. 위의 조작에서 마지막 명령이 출력하는 줄로 올바른 것은?
  17. 서버의 로그 파일 /var/log/app.log에 나중에 추가되는 줄을, 추가될 때마다 화면에 계속 표시하고 싶다. 적절한 명령은?
  18. 쉼표로 구분된 줄에서 열을 꺼내는 위의 명령의 출력으로 올바른 것은?
  19. 문자를 치환하는 위의 sed 명령의 출력으로 올바른 것은?
  20. 위의 조작에서 마지막 awk가 출력하는 내용으로 올바른 것은?
  21. GNU의 find로 'find /data -name "*.log" -mtime +7 -size +100M'을 실행했을 때 찾아지는 파일에 대한 설명으로 올바른 것은?
  22. 응답하지 않게 된 프로세스를 멈출 때, 먼저 'kill 프로세스ID'를 사용하고 그래도 끝나지 않을 때만 'kill -9 프로세스ID'를 사용하는 것이 좋다고 한다. 그 이유로 올바른 것은?
  23. 터미널에서 시간이 걸리는 ./sim.sh를 실행하는 도중에, 같은 터미널에서 다른 명령을 쓰고 싶어졌다. Ctrl+Z를 누른 후 bg를 실행했을 때의 동작으로 올바른 것은?
  24. SSH로 접속한 서버에서 시간이 걸리는 처리를 './run.sh &'로 시작한 다음 접속을 끊었더니 처리도 멈춰 버렸다. 접속을 끊은 후에도 처리를 계속하게 하는 시작 방법으로 가장 적절한 것은?
  25. 위의 두 줄을 셸(shell)에서 실행했을 때 표시되는 문자로 올바른 것은?
  26. 위의 명령을 순서대로 실행했을 때, 두 echo의 출력으로 올바른 것은?
  27. 위와 같이 스크립트 s.sh를 인수를 붙여 실행했을 때의 출력으로 올바른 것은?
  28. 셸 스크립트에서 위의 if 조건이 참이 되는 경우로 올바른 것은?
  29. 위의 조작 후에 디렉터리에 있는 파일로 올바른 것은?
  30. 현재 디렉터리에 있는, 실행 권한이 붙은 스크립트 run.sh를 'run.sh'라고 입력하여 실행하려고 하면 'command not found'가 되고, './run.sh'라고 입력하면 실행할 수 있었다. 이유로 올바른 것은?
  31. 위의 명령을 순서대로 실행했을 때, 두 bash -c의 출력의 조합으로 올바른 것은?
  32. Linux의 패키지 관리 시스템(Debian 계열의 apt, Red Hat 계열의 dnf 등)의 주된 역할로 올바른 것은?
  33. systemd를 사용하는 Linux에서, 서비스 license.service에 대한 'systemctl start license.service'와 'systemctl enable license.service'의 차이로 올바른 것은?
  34. cron에 '30 2 * * 1 /home/alice/backup.sh'를 등록했다. backup.sh가 실행되는 시점으로 올바른 것은?
  35. Linux 서버에서 '디스크 여유 공간이 적다'는 경고가 나왔다. 파일 시스템별 사용량과 여유 용량을 조사하는 명령과, 디렉터리 안의 파일이 사용하는 용량을 합계하여 조사하는 명령의 조합으로 올바른 것은?
  36. 자신의 PC에서 ssh-keygen을 사용하여 공개 키 인증용 키 쌍을 만들고, 서버 server1에 비밀번호 없이 ssh로 접속할 수 있게 하고 싶다. 키를 두는 방법으로 올바른 것은?
  37. 'tar -czf proj.tar.gz proj/'를 실행했을 때의 동작으로 올바른 것은?
  38. Git으로 관리하고 있는 파일 main.c를 편집한 후 'git commit -m "fix"'만 실행했더니, 'no changes added to commit'이라고 표시되고 커밋되지 않았다. 이유로 올바른 것은?
  39. Git에서 git commit을 실행했지만, 팀에서 공유하고 있는 GitHub 저장소에는 그 커밋이 아직 표시되지 않는다. 이유로 올바른 것은?
  40. Git으로 관리하고 있는 프로젝트의 .gitignore에 'build/'라고 썼지만, 이전에 커밋한 build/out.log의 변경이 git status에 계속 표시된다. 이유로 올바른 것은?

컴퓨터 시스템의 다른 분야