본문 바로가기
개발 공부 일지

유닉스 커맨드

by yelimu 2024. 7. 8.

컴퓨터에 명령을 내리는 방법 1) CLI 커맨드라인 인터페이스 2) GUI (Graphical User Interface)

 

커맨드 라인에서 하는 작업 ex.

필요한 라이브러리 다운로드, 설치

협업 시 코드 관리

웹 개발 환경설정과 서버 실행

 

유닉스 Unix

1970년대 초반에 개발된 운영체제

소프트웨어를 개발하고 실행할수있는 편리한 플랫폼을 제공하기 위해 개발됨

C언어로 작성되어 수정해서 다른 컴퓨터에 적용하기 편해 인기 (C=고급언어이므로 사람들이 이해하기 쉬움)

POSIX 표준

GNU/Linux

GNU's Not Unix 

 

 

유닉스 에서 파생된 운영체제 

-> 유닉스 운영체제

ex. 맥, 리눅스, 우분투  (즉 윈도우 제외)

-> 사용하는 커맨드가 모두 비슷하다 => 유닉스 커맨드 

용도 : 웹사이트 배포 또는 서버컴퓨터 사용(인공지능 개발 등) 시 필요

 

 윈도우 커맨드 도 있지만 보통 유닉스 커맨드를 보편적으로 사용함


터미널 : 인풋(명령어? 커맨드?)을 받고 아웃풋(결과물)을 출력해주는 프로그램

shell: 커맨드를 해석해주는 프로그램 / 터미널과 shell을 혼용해서 사용하기도 

bash : 가장 보편적인 shell 

코드잇 실행기

커맨드 옵션 아규먼트

 

cal 커맨드 -> 해당 월 달력이 출력된다

 

cal 뒤에 월, 년도를 순서대로 쓰면 원하는 기간의 달력이 출력된다 

-> 인자 또는 아규먼트 argument 라고한다. : 커맨드의 대상

 

옵션 : 커맨드를 어떻게 실행할지 

-j : 그 해 며칠째인지를 알려주는 달력 출력

-y : 그 해 년도 달력이 출력

-yj 이런식으로 여러개 붙여쓸수잇음

 

man + 커맨드 > 해당 커맨드의 매뉴얼을 확인할 수 있음

 

ctrl+ A / E : 입력중인 커맨드 맨 앞/뒤로 커서이동

ctrl + <- / -> : 단어 단위로 커서 이동

 

ctrl+ C : 실행 중단

clear

xx tab키 2번 -> xx로 시작하는 커맨드 알려줌


유닉스 디렉토리 구조 

최장위 디렉토리 = 루트 root

상위/부모 디렉토리 - 하위/자식 디렉토리 

홈 디렉토리

파일 경로 : 루트에서부터 특정 파일이나 디렉토리까지의 경로를 써주면 됨

/user/bin/... (맨 앞 슬래시가 루트를 의미함)

현재 로그인된 유저의 홈 디렉토리는 ~ 로 대체해서 쓸 수 있다.

현재 위치해있는 디렉토리 = 워킹 디렉토리

 

pwd : print working directory

cd : change directory

ls : list (현재 디렉토리에 있는 파일과 디렉토리를 보여줌)

 

ls -a => 숨겨진 파일까지 모두(all) 보여줌

ls -l =>  파일 별 정보도 같이 보여줌 (long format)

ls -al 

https://www.tuwlab.com/ece/11309

 

Linux 루트 디렉토리 구성 - ECE - TUWLAB

제대로 서버를 운영해 보겠다고 처음 리눅스를 설치하고 난 직후, 명령어 연습을 하고 있을 때 유독 눈에 거슬리던것들이 있었다. 바로 루트 디렉토리(/)에 있던 bin, dev, var, ... 이런 디렉토리들

www.tuwlab.com

 


절대 경로 : 루트에서부터 해당 디렉토리까지 적어준 경로 -> 너무 길어진다

상대 경로 : 현재 위치해있는 워킹디렉토리 기준으로 표시 -> 짧고 간결해짐

.현재 디렉토리

..상위 디렉토리

../.. 상위->상위 디렉토리


디렉토리 만들기 mkdir + 디렉토리명

파일 만들기 touch +파일 경로+파일명.확장자

 

CLI 텍스트 에디터 vim

작업을 원하는 경로로 이동한 후에

vim -> 새로운 파일 생성

vim + 파일경로 아규먼트 넣으면 파일 수정 

 

사용모드 (4) 모드 전환은 일반 모드에서만 가능하다 

일반 esc키

입력 i /비주얼 v /명령(커맨드 모드) :

 

커서 옮긴 후에 v(또는 V) 모드로 이동

y 복사

d 잘라내기

p 붙여넣기 (일반모드에서) 

yy dd (줄단위 실행)

 

저장

커맨드 모드에서 :w + 파일 이름.확장자 (최초 파일 생성시에만)

vim 나가기 

:q 

저장하지않고 나가기 

:q!


파일 내용 살펴보기

cat (전체 내용)

less (페이지별로) g, G (맨앞/뒤)

head -n 10 (default: 10, n 옵션의 아규먼트 만큼) 맨 앞 10줄 보여줌

tail : 맨 뒤 10줄 보여줌


파일과 디렉토리 옮기기, 이름 변경하기 mv (move)

mv path1 path2 (작업 대상의 경로 - 이동할 목적지 또는 변경할 이름)

만약 path2 아규먼트로 입력한 값이 이미 존재하면 path2의 내부로 경로가 바뀜

 

같은 이름의 파일있으면 덮어쓰기 되므로 주의 

mv -i 옵션을 쓰면 파일 덮어쓰기 여부를 물어봄(y/n)


파일과 디렉토리 복사. 붙여넣기 cp (copy) 

cp path1 path2 (복사할 대상의 경로 - 복사할 위치)

path2가 존재하면 그 내부에 복사되고 / 그렇지않으면 새로 생성됨 

 

디렉토리를 복사할때는 cp -r 옵션을 사용해 야한다. (재귀 > 모든 하위 디렉토리&파일이 같이 복사됨)


디렉토리와 파일 삭제하기 rm(remove)

삭제할 파일 또는 디렉토리 경로를 아규먼트로 받는다 (여러개도 가능)

 

디렉토리는 지울때도 -r옵션 사용해주기 

-i 옵션 사용하면 디렉토리 내의 파일/디렉토리마다 한번더 삭제할 것인지 물어본다(y/n)

-f 옵션 : 묻지않고 지움 


ubuntu에서 외부 프로그램 설치하기

apt update 업데이트 

sudo 관리자권한 부여(일시적)

 

해당 포스팅의 모든 내용은 코드잇 강의 출처입니다 

'개발 공부 일지' 카테고리의 다른 글

개발 언어와 프레임워크의 발전 과정  (0) 2024.08.01
closure / throttle /debounce  (0) 2024.07.25
변수 이름 표기법case  (0) 2024.07.16
Note : my 1st code review (PR comment)  (0) 2024.07.12
GUI vs CLI 차이점  (0) 2024.07.09