개발 공부 일지

유닉스 커맨드

yelimu 2024. 7. 8. 16:30

컴퓨터에 명령을 내리는 방법 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 관리자권한 부여(일시적)

 

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