본문 바로가기
Back-end/Linux

linux 기초 feat.시니어코딩

by somlang_bba 2023. 1. 13.
728x90

개발자라고 하면서 리눅스를 제대로 알지 못하면 절름발이나 다름없다.

 

 

▲ Linus Torvalds

리눅스는 1991년 Linus Tovrvalds라는 필란드 개발자가 Unix 기반으로 만든 Kernel을 가진 OS이다.

 

Kernel이란?

Infra(H/W)와 가장 가까이 붙어있는 소프트웨어로 어찌보면 펌웨어(하드웨어에 포함되어 하드웨어를 조작하기 위한 소프트웨어)라고 볼 수도 있다. 커널 위에는 Command(명령어)를 가진 Shell을 두어서 사용자가 kernel을 통해 H/W의 데이터를 제어할 수 있다.

 

Linux Shell 이란?

리눅스 커널을 쉽게 조작할 수 있도록 해주는 소프트웨어.

sh -> bash -> csh -> tcsh -> ksh -> zsh 순으로 배포 되었음.

-sh(Bourn shell, super shell) : Unix Shell -> 가장 처음 나온 쉘

-bash: Super shell in Linux -> 이거만 공부하면 나머지는 필요에 의해 배워도 됨.

-csh : C기반 쉘(C언어 문법과 비슷함)

-tcsh: csh의 개정판

-ksh: korn shell

-zsh: Unix/GNU shell 

 

Linux 내부 File System Directories

/bin : 기본 명령어

/boot : for booting

/dev : device file, cd-rom

/etc : config, passwd, rc.d

/home : user home dir

/lib : shared library

/media : ssd (마운트해서 쓰는거 : ssd, 외장하드 등)

/opt : application software package

/proc : process info

/root : root home dir

/sbin : 관리자용 명령어, ifconfig

/srv : system data

/tmp : temporary dir

/usr : source or programs(/usr/local 에 설치를 하는 편)

/var : logs, ftp, spool(print관련), mail (큰 파일을 주로 이 폴더에 넣는다)

/lost+found : 휴지통 개념

cf.inode : 리눅스가 가진 파일을 트리형태로 메모리에 올려둔 인덱스(파일을 찾을때 활용)

 

 

Linux에서 사용하는 Port

20    FTP (data) : 실제 데이터는 20번 포트를 통해 이동한다.

21    FTP (Control) : 명령어를 전송하기 위해 21번 포트를 이용한다.

22    SSH(Telnet의 Secure 버전)

23    Telnet

25    SMTP (Simple Mail Transfer) : 메일 발송

465  SMTPS

43    whois

53    DNS

80    HTTP

443  HTTPS

110  POP3  : 메일 수신

995  POP3S

123  NTP (Network Time Protocol)

143  IMAP2/4 : 메일 수신

993  IMAPS

514  SysLog

 

Command Line Tip

tab                             => 자동완성기능

Arrow UP & DOWN   => 이전에 썼던 명령어

history                        => 내가 썼던 명령어를 기억해둔 리스트

!                                  => 내가 쳤던 명령어를 담아둔 history에서 검색

Ctrl + A, Ctrl + E         => 명령줄에서 home키와 end키 역할

man                            => 설명(manual)

 

 

user 추가하는 명령어

adduser : home에 계정에 대한 폴더구조까지 함께 생성해주면서 계정을 추가

useradd : home에 계정에 대한 폴더구조는 생성해주지 않고 계정만 추가

 

한글 설정 방법 locale 명령어 이용

locale : 현재 언어 설정값 보기

locale -a : 적용 가능한 언어 보기

$> apt-get install locales (Ubuntu는 apt, Centos는 yum)
$> cat /usr/share/i18n/SUPPORTED

$> localedef -f UTF-8 -i ko_KR ko_KR.UTF-8
$> locale-gen ko_KR.UTF-8
$> locale -a
$> LC_ALL=ko_KR.UTF-8 bash

# 혹은 ~/.profile에 추가
LC_ALL=ko_KR.UTF-8 bash
export LANGUAGE=ko

 

 

 

현재 실행중인 프로세스 보기

ps : 현재 실행중인 프로세스의 목록을 보는 명령어 이다.

* 옵션

-e : 실행중인 모든 프로세스의 정보를 출력한다.

-f : 프로세스에 대한 자세한 정보룰 출력한다.( PPID 확인 가능 )

-u [사용자이름] : 특정 사용자에 대한 모든 프로세스의 정보를 출력

-p pid : pid로 지정한 프로세스의 정보를 출력

 

u : 프로세스 소유자의 이름, CPU 사용량, 메모리 사용량 등 상세 정보를 출력

a : 터미널에서 실행한 프로세스의 정보를 출력

x : 실행 중인 모든 프로세스의 정보를 출력

ps -ef를 실행하고 출력된 화면

UID : 프로세스를 실행한 user의 ID

PID : 실행중인 프로세스 고유의 ID

PPID : 실행중인 프로세스 부모의 고유ID

TTY : 터미널 번호

 

기본명령어

cat : 파일의 내용을 보는 명령어 

echo : print와 같음(화면에 출력해줌) 꺽쇠(>)(attatch기능), 꺽쇠두개(>>)(append기능)와 함께 사용해서 text파일에 내용 추가하는 명령어

touch : 파일 만드는 명령어

apt : yarn 같은거

head : -숫자 와 함께 사용 => 파일의 윗부분으로 부터 숫자만큼의 줄만 보는 명령어

tail : -숫자 와 함께 사용 => 파일의 아랫부분으로 부터 숫자만큼의 줄만 보는 명령

pwd : 현재 디렉토리 위치 (present work directory)

which : path(환경변수)에 등록되어 있는 명령어의 위치를 알려줌.

cp : 복사 => cp 복사될파일 복사할디렉토리 (-a 옵션으로 덮어쓰기 가)

mv : 이동 => mv 이동할파일 들어갈디렉토리 (rename의 역할도 함)
find : 현재폴더에서 원하는 파일의 위치를 알려줌. 보통 -name 옵션과 함께 씀

passwd : 현재 접속한 유저의 비밀번호를 변경하는 명령어

du : 특정 디렉토리를 기준으로 디스크 사용량 확인 (-s 옵션으로 sum을 볼 수 있음 -m 메가바이트 -k 키로바이트)

df : 시스템 전체의 디스크 공간 확인

free : 메모리 사용

top : 시스템의 상태를 전반적으로 가장 빠르게 파악 가능(CPU, Memory, Process)한 명령

vmstat : 시스템의 전체적인 상태를 한눈에 볼 수 있도록 출력하는 명령

chmod : 권한변경 (소유자 그룹 others로 구분 / 읽기 쓰기 실행의 권한을 줄 수 있음. 2진수임)

ln : link 바로가기 만들기 (옵션 -s와 함께 사용해서 symbolic link로 만들 수 있음)

 

grep : 정규식

get <찾을단어> <file-name> [-io]

728x90