%cd /tmp
/private/tmp
Heeyoung Kim
December 8, 2022
아래 노트북은 MIT에서 제공하는 Missing semester의 연습문제를 풀이한 것입니다. 이번 내용은 셸(Shell) 에 대한 것입니다.
!cd
가 작동하지 않기 때문에, %cd
로 대체하여 사용했습니다.
touch
명령어는 파일이 없을 때 새로운 파일을 만들 수 있는 명령어입니다.
#!/bin/sh
curl –head –silent https://missing.csail.mit.edu
#
, !
등은 shell 내에서 특수한 역할을 하는 문자로, 해당 기능으로 사용하는 것이 아닌 문자로 취급하도록 컴퓨터에 알려 주어야 합니다. 위에서는 작은 따옴표(’)를 활용하여 문장을 감쌉니다.
줄구분은 특수문자인 \n
을 사용했으나, 다른 방법이 있는지 확인해 봐야겠습니다.
Permission denied - 권한이 거부되었습니다. 해당 파일의 권한을 확인하겠습니다.
첫 문자는 해당 객체가 디렉토리인지 아닌지를 의미합니다. 디렉토리인 경우 첫 문자는 d
입니다. 이 객체는 디렉토리가 아닙니다.
r
은 읽기 권한, w
은 쓰기 권한을 나타냅니다. 위에서는 보이지 않으나 x
는 실행 권한을 의미합니다.
세 문자씩 끊어서 파일 소유자의 권한, 소유 그룹의 권한, 다른 모든 사람들의 권한을 의미합니다. ./semester
명령에도 작동하지 않는 이유는 파일 소유자, 소유 그룹, 다른 모든 사람들 중 실행 권한 x
를 가진 사람이 없기 때문입니다.
HTTP/2 200
server: GitHub.com
content-type: text/html; charset=utf-8
last-modified: Mon, 05 Dec 2022 15:59:23 GMT
access-control-allow-origin: *
etag: "638e155b-1f37"
expires: Mon, 05 Dec 2022 17:56:30 GMT
cache-control: max-age=600
x-proxy-cache: MISS
x-github-request-id: 3D04:7A94:4B80:17691:638E2E76
accept-ranges: bytes
date: Thu, 08 Dec 2022 08:07:09 GMT
via: 1.1 varnish
age: 0
x-served-by: cache-nrt-rjtf7700062-NRT
x-cache: HIT
x-cache-hits: 1
x-timer: S1670486829.366512,VS0,VE226
vary: Accept-Encoding
x-fastly-request-id: 4c44fa880a52315bef95222f27f437345312a5ee
content-length: 7991
모든 사용자가 읽기 권한 r
은 가지고 있기 때문에 해당 프로그램을 실행할 수는 있습니다. ./semester
명령은 해당 폴더에 접속 권한 x
가 있어야 하기 때문에 실행되지 않았습니다.
chmod
는 파일의 권한을 수정하는 명령어입니다. 숫자 또는 예약어를 통해 소유자, 소유 그룹, 다른 모든 사람들의 읽기, 쓰기, 실행 권한을 수정할 수 있습니다.
위와 같이 권한이 -rw-r--r--
에서 -rwxr-xr-x
로 수정되었음을 알 수 있습니다. 모든 사용자가 실행 권한을 가지고 있기 때문에, ./semester
을 통한 접속도 가능할 것입니다.
HTTP/2 200
server: GitHub.com
content-type: text/html; charset=utf-8
last-modified: Mon, 05 Dec 2022 15:59:23 GMT
access-control-allow-origin: *
etag: "638e155b-1f37"
expires: Mon, 05 Dec 2022 17:56:30 GMT
cache-control: max-age=600
x-proxy-cache: MISS
x-github-request-id: 3D04:7A94:4B80:17691:638E2E76
accept-ranges: bytes
date: Thu, 08 Dec 2022 08:27:23 GMT
via: 1.1 varnish
age: 0
x-served-by: cache-nrt-rjtf7700029-NRT
x-cache: HIT
x-cache-hits: 1
x-timer: S1670488044.617282,VS0,VE220
vary: Accept-Encoding
x-fastly-request-id: 7da9cf240d64e552531be45064755f40dc65c6bd
content-length: 7991
좋습니다!
grep
은 문자가 존재하는 라인을 추출합니다.
MacOS에서 cut
명령어를 사용할 때는 자를 기준점을 지정해 주어야 합니다. byte, 문자, 구두점 중 선택 가능합니다. 구두점의 경우 -f
옵션을 지정하고 -d
옵션 뒤에 구두점을 적습니다.
아래와 같이 >
를 사용하여 저장합니다. home 디렉토리는 ~
로 접근합니다.