개발자라고 하면서 리눅스를 제대로 알지 못하면 절름발이나 다름없다.
▲ 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 : 실행 중인 모든 프로세스의 정보를 출력
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]
'Back-end > Linux' 카테고리의 다른 글
Linux : vmstat, sar, top(os 상태조회) (0) | 2023.01.27 |
---|---|
Linux : 파일 압축(gzip, xz, bzip2, tar, zip) (0) | 2023.01.20 |
ln 명령어: link (하드링크, 소프트링크) (0) | 2023.01.18 |
Linux : .bashrc 파일 이용하기(Non-login Shell, Login Shell) (0) | 2023.01.18 |
Systemctl reload vs restart (0) | 2023.01.16 |