개발 일기

Unix 커맨드라인 다루기 본문

카테고리 없음

Unix 커맨드라인 다루기

flow123 2023. 7. 30. 12:32

팀에서는 파일을 다루는 업무가 많기 때문에, 파일을 읽고, 조회하고, 리눅스 명령어를 다룰 일이 많다. 

리눅스는 유닉스 계열 운영체제이다. 쉘은 유닉스 및 리눅스 시스템에서 사용자가 시스템과 상호작용하게 해준다. 쉘을 통해 파일 시스템을 탐색하고, 파일을 열고, 편집하고, 프로그램을 실행할 수 있다. 

쉘 이란?

쉘은 사용자가 입력한 명령을 해석해 커널에 전달하거나, 커널의 처리 결과를 사용자에게 전달하는 역할을 한다 (쉘 스크립트 프로그래밍 (velog.io)

Shebang 이란?

셔뱅(shebang)은 해시 기호와 느낌표(#!)로 이루어진 문자 시퀀스로, 스크립트의 맨 처음에 온다.

유닉스 계열 운영 체제에서 셔뱅이 있는 스크립트는 프로그램으로서 실행되며, 프로그램 로더가 스크립트의 첫 줄의 나머지 부분을 인터프리터 지시자(interpreter directive)로 구문 분석한다. 즉, 지정된 인터프리터 프로그램이 대신 실행되어 스크립트의 실행을 시도할 때 처음 사용되었던 경로를 인수로서 넘겨주게 된다.이를테면 스크립트의 경로가 ideaProjects/prep/02_commandline/sh_script.sh이고 다음의 줄로 시작한다면:

 

#!/bin/bash

 

*bin/bash 경로의 본 쉘 또는 호환 쉘을 이용하여 파일을 실행한다는 뜻.

내가 사용하려는 명령어 해석기가 무엇인지 알려주는 것.

프로그램 로더는 프로그램 /bin/sh를 대신 실행하되 위의 경로를 첫 번째 인수로 넘겨준다.

변경권한 주기

보통 생성만 했다면, 실행 시 접근 거부되는 경우가 된다. 실행 권한 추가가 필요.

 

권한 확인

ls-al

 

user(사용자),group(그룹) ,other (다른 사용자) 권한

  • 소유권 (Owners) : 특정 파일 또는 디렉터리를 소유하는 권리
  • 허가권 (Permissions) : 특정 파일 또는 디렉터리의 접근 권한을 설정 하는 권리

파일 권한 확인

 

1) [문자모드] 실행 속성 추가

chmod +x sh_script.sh

 

chmod: 파일이나 디렉터리(directory)의 권한 (permission) 을 변경하는 명령어

r은 읽기(read), w는 쓰기(write), x 는 실행(execution)

 

2) [숫자모드]

가능한 경우의 수

r: 4 w: 2 x:1

rwx = 4+2+1 = 7

rw- = 4+2+0 = 6

r-x = 4+0+1= 5

r— = 4+0+0 = 4

-wx = 0+2+1 = 3

-w- = 0+2+0 = 2

—x = 0+0+1 = 1

 

위의 bash_script.sh.txt 의 경우, bash와 sh 파일의 사용자에게 모든 권한 / 그룹과 다른 사용자는 읽기 권한만 

VIM 으로 파일 편집할 때, 유용한 단축키

실행 취소: u

다시 앞으로: ctr + r

백스페이스 대체 삭제

  • 커서 위에서 문자열 삭제: x
  • 전체 라인 삭제: dd

변경 사항 저장

  • Insert → CommandMode: Esc
  • ‘:w’ + Enter

Vim 나가기

  • Esc → command 모드 진입
  • :q + Enter

마우스 대체

  • 파일 내에서 라인의 시작으로 이동: 0
  • 파일 내에서 라인의 끝으로 이동: $
  • 파일 내에서 제일 처음 라인으로 이동: gg
  • 파일 내에서 제일 끝 라인으로 이동: G
  • 한 단어 만큼 앞으로 이동: w
  • 한 단어 만큼 뒤로 이동: b
  • 라인 넘버 표시: :set number
  • 라인 넘버 표시 취소: :set nonu
  • 한 문장 끝으로 이동: ctrl + ->
  • 파일 내에서 단어 검색
    • Esc 로 command mode 진입
    • 검색어 뒤에 ‘/’ + Enter
    • 다음 발생 위치로 넘어가려면 n
    • 다음 발생 위치로 넘어가려면 N

참고

https://ko.wikipedia.org/wiki/셔뱅

https://www.lesstif.com/lpt/linux-chmod-93127208.html

리눅스의 파일 권한 읽는 법

https://tttap.tistory.com/246

https://www.freecodecamp.org/news/bash-scripting-tutorial-linux-shell-script-and-command-line-for-beginners/

Comments