개발 기록/LINUX

개발 기록/LINUX

[LINUX] 네트워크 MAC 주소, IP 주소 | 전공역량강화

1) MAC (Media Access Control) 이 맥 주소를 확인하기 위해 # ifconfig 라는 명령어를 사용한다. (Interface) enp0s3 : 물리적 랜 카드(LAN Card)/NIC(Network Interface Card)의 이름 lo : loopback(늘 나 자신을 가리키는 주소) 위에서 ether 항목이 MAC Address에 해당한다. MAC Address는 우리가 임의로 정하는 것이 아닌, 랜카드의 본체에 하드코딩되어 이미 정해진 주소이다. MAC Address는 Hex(16진수) 12자리로 이루어져 있는데, 앞의 6자리는 LAN 제조사를 의미하고, 뒤 6자리는 고유식별번호를 의미한다. (LAN 제조사는 IEEE.org에서 알 수 있다.) 데이터에는 소스의 주소(MAC)..

개발 기록/LINUX

[LINUX] 리눅스 작업 예약 AUTOMATION | at, cron | 전공역량강화

작업 예약 (Automation) : 정해진 시간에 작업이 자동으로 수행 작업 예약 명령어 1) at : 일회용 (한 번 수행 후 반복하지 않음) (실제 사용 빈도 10%) 2) cron : 주기적인 반복 작업을 자동으로 수행 (실제 사용 빈도 90%, 시스템 엔지니어, 소프트웨어 엔지니어 모두 많이 사용함) at은 서비스 형태로 제공되기 때문에, 가동 여부를 확인해야 한다. (atd) 지금부터 10분 뒤에 그 아래 명시한 작업이 이루어진다는 의미이다. ( 2 hours, 2 days 등도 가능하다. ) Ctrl + D 키를 눌러 작업 완료 작업 예약은 /var/spool/cron/atjobs/a00..... 에 저장된다. # at -l # atq 이러한 명령어로 대기중인 작업 목록을 볼 수 있고 # a..

개발 기록/LINUX

[LINUX] 리눅스의 역사와 우분투 리눅스의 등장 | Linux Ubuntu |전공역량강화

컴퓨터 OS 커널의 일종인 리눅스 커널, 또는 리눅스 커널을 사용하는 운영체제를 가리키는 말이기도 하다. GNU쪽 사람들은 리눅스는 커널일 뿐이고, 이 커널을 가져다가 GNU 프로그램들을 올려 만든 운영체제는 GNU/Linux라고 이야기하며 이런 명칭에 민감하게 반응하는 경우도 있다. 소스 코드가 공개되어 있는 대표적인 오픈 소스 소프트웨어다. 컴퓨터 역사상 가장 많은 참여자가 관여하고 있는 오픈 소스 프로젝트다. 모바일 운영체제로 유명한 안드로이드 역시 리눅스 커널을 가져다 쓰고 있다. OS(운영체제)는 하드웨어를 제어하기 위해 만들어진 소프트웨어이다. 일상생활에서 MS워드에 내용을 작성하고 저장하기를 누르면, OS가 디스크에서 빈 공간을 찾아 저장해준다. OS를 Kernel로도 부른다. (Kernel..

개발 기록/LINUX

[LINUX] 리눅스 프로세스 우선순위 | Priority, Nice | 전공역량강화

연산장치인 CPU(core)는 한 번에 하나의 프로세스밖에 실행하지 못한다. 그러한 환경에서 좀 더 효율적인 일을 위해 프로세스 스케줄링이라는 것이 필요하다. 리눅스에서는 프로세스 스케줄링 종류 중에 우선순위 기반 라운드 로빈 스케줄링을 사용한다. 우선순위는 말 그대로 우선 실행할 순위인데, 0에 가까울수록 좋고 39에 가까울수록 나쁘다. 리눅스에서, 우선 순위로 정렬한 다음 첫 번째 오는 프로세스를 타임 퀀텀(일정 시간)동안 실행하고, 다시 정렬하여 타임 퀀텀동안 실행하는 과정을 반복한다. 우선순위(priority)는 nice값에 의해 정해진다. (priority 값을 사용자가 직접 설정할 수는 없지만, nice 값을 설정하여 priority를 설정할 수 있다.) priority(우선순위) = 20 +..

개발 기록/LINUX

[LINUX] 리눅스 프로세스 관리 | FG, BG, PS, KILL | 전공역량강화

프로세스는 Program in execution(실행 중인 프로그램)이다. 이 프로세스는 Memory(주기억장치)에 위치한다. 부모 프로세스(Parent proc) 자식 프로세스(Child proc) --> 프로세스 간에 계층적인 구조로 이루어져 있다. --> 확인하기 위해 #pstree -p 라는 명령어를 사용한다. (p 옵션은 중복된 프로세스의 숫자를 출력하지 않는 것) 프로세스의 종류 1) 데몬(daemon) 프로세스 : daemon은 유령, 도깨비를 뜻함 --> 메모리에 상주하면서 서비스 요청을 대기하는 프로세스, 요청이 들어오면 처리 2) 고아(orphan) 프로세스 : 부모 프로세스가 자식 프로세스가 먼저 종료, 자식 프로세스의 정상 종료가 어려움 3) 좀비(zombie) 프로세스 : 자식 프..

개발 기록/LINUX

[LINUX] 리눅스 파일 시스템, 디스크 관리 | 디스크 추가 설치, 디바이스 파일, 하드파티션, LVM, 포맷, 마운트 | 전공역량강화

시스템 관련 운영을 해야 한다면 가장 많이 하는 것이 '디스크 관리'. 하드 디스크 추가 설치 절차 (아주 아주 중요) 1) 사용하지 않는 데이터를 삭제한다. 2) 새 디스크를 장착한다. 디스크 장착 확인 방법 # cat /proc/scsi/scsi (스카시 : 디스크가 연결되는 인터페이스(구멍)의 종류) # lsscsi (더 깔끔하게 보여줌) # lsblk (트리 구조처럼 더 깔끔하게 보여줌) 3) 파티션을 생성한다. - 하드파티션 - LVM 4) 파일 시스템을 생성(포멧)한다. 5) 파일 시스템을 마운트한다. cat /proc/scsi/scsi 명령어 결과 lsscsi 명령어 결과 lsblk 명령어 결과 * device file * : 장치에 대한 접근 정보를 가지고 있는 핸들러, 이 장치 파일을 씀..

개발 기록/LINUX

[LINUX] 리눅스 기타 명령어 | id, groups, whoami, who, users, w, last, lastb | 전공역량강화

id (identifier) : 사용자의 식별 정보 출력 groups : 사용자가 포함된 그룹들의 이름을 보여주는 명령어 whoami : 현재 사용자가 누군지 who : 현재 시스템에 로그인된 모든 사용자 users : 현재 시스템에 로그인된 모든 사용자 (who와 비슷하지만 users는 이름만 보여준다.) w : (what) 현재 시스템에 로그인된 사용자가 무슨 일을 하는지 출력 (who, users와 비슷하지만 더 상세하게 출력) last : 현재가 아닌 과거 사용자들의 로그인 이력을 보여주는 명령어 ( 원래 로그 이력은 /var/log/wtmp에 data 형식으로 기록되는데, 이를 보기 좋게 정제하여 보여주는 명령어 ) ( wtmp에 text 형식으로 기록하면 누군가가 임의로 수정할 수 있기 때문에..

개발 기록/LINUX

[LINUX] 리눅스 사용자와 그룹 명령어 | 전공역량강화

사용자 관련 명령어 useradd : 유저 추가 # useradd -u 1100 -G sudo -c "Daegu SW" -d /home/daegu -m -s /bin/bash daegu : uid를 1100으로, 추가 그룹을 sudo로, Daegu SW라는 설명을 추가, /home/daegu에 추가(-m은 없으면 추가하라는 옵션), 쉘을 bash로 설정, 유저의 이름 daegu (계정의 실제 사용을 위해서는 암호 설정 과정이 필요하다.(passwd 명령어 사용)) (/etc/default/useradd에 기본 내용이 들어가있기 때문에 옵션을 적지 않아도 계정 정보의 자동 정의) usermod : 유저 수정 # usermod -c "I love daegu" daegu : 계정 이름이 daegu인 계정의 설..

개발 기록/LINUX

[LINUX] 리눅스 사용자 계정 관리, 운영 | passwd, shadow, group |전공역량강화

웹 개발자, 오퍼레이터 등의 사람들은 각자 다른 사용자 계정을 가져야 한다. 계정에 대한 정보를 관리하고 운영하는 몇 가지를 알아보겠다. 사용자 계정과 관련된 파일 (반드시 기억해야 됨) 1) /etc/passwd : 사용자 계정에 대한 정보 포함 (id 등), 삭제하면 정상부팅 되지 않음 2) /etc/shadow : 사용자의 암호가 저장된 파일 3) /etc/group : 사용자의 그룹에 대한 정의가 되어있는 파일 /etc/passwd를 열어 내용을 보자. 위에서 라인 한 개당 사용자 계정 1개이다. 라인의 컬럼을 콜론(:)으로 구분했을 때 무조건 7개이다. 1번째 컬럼 : 이름 2번째 컬럼 : 암호화된 패스워드 3번째 컬럼 : 사용자 번호 (uid) 4번째 컬럼 : 소속된 그룹 번호 (gid) 5번..

개발 기록/LINUX

[LINUX] 리눅스 프롬프트 PS1 | 전공역량강화

프롬프트의 모양을 변경하려면 PS1이라는 변수를 변경해주면 된다. (변수이기 때문에 프롬프트 창을 끄면 초기화된다.) # PS1="# " 이러한 형식으로 사용할 수 있다 (공백도 포함하기 위해 ""로 묶음) PS1=*^^* 이렇게도 사용 가능하다. 그럼 이러한 프롬프트 설정을 영구적으로 만들 순 없을까? 가능하다. # cd # vi .bashrc 으로 들어가서 PS1 = "# " 이렇게 한 문장 적어주고 저장해주면 된다.

개발 기록/LINUX

[LINUX] 리눅스 SSH | 전공역량강화

SSH : Secure Shell의 약자, 원격지 호스트(서버)에 접근하기 위한 서비스 SSH는 패킷을 암호화하여 전송한다. 또한 보안 수준이 높은 서비스여서 root 사용자로의 로그인이 막혀있다. (모든 서버에 root 계정이 존재하고, 권한의 제한이 없기 때문에 root는 해킹에 위험함) SSH 전에는 Telnet을 사용했었다. 하지만 Telnet은 패킷의 암호화가 없어 스니핑(Snipping)의 위험이 있다. 그리하여 SSH를 쓰게 되었다. #은 vi 편집기에서 주석 처리이다. vi 편집기에서 :set nu 라고 하면 라인 번호를 볼 수 있다. (해제는 :set nonu) PermitRootLogin을 yes로 설정한다. 이러한 과정으로 root로 바로 로그인할 수 있도록 설정을 변경한다. 재시작하..

개발 기록/LINUX

[LINUX] 리눅스 문서 편집기의 이유와 사용법 | vi, vim | 전공역량강화

리눅스의 vi 편집기, 문서 편집기는 윈도우 메모장 수준의 문서 편집기이다. 이는 무조건 알아야 한다. (기본적인 기능 손에 달달 외워질 때까지 숙지) 빈도가 정말 높고 사용 가능성 많기 때문이다. vi는 visual 이라는 단어에서 유래되었다. (당시에는 정말 비쥬얼한 문서 편집기여서 그랬나보다) vi는 UNIX 기반이다. 유닉스에서는 여전히 vi라는 것을 쓴다. 리눅스에서의 vi는 정확히 vim(vi improved)이다. vim은 기존 vi 기능을 100% 호환하고, 사용자 편의 추가 기능 제공한다. (vim은 화살표와 키패드, 기능키 모두 지원) 그럼 이러한 vi가 어려운(까다로운) 이유는 무엇일까? 1) 텍스트 기반 문서 편집기 -> 단축키를 써야 함 (키를 모르면 편집 불가) 2) 모드가 존재..

개발 기록/LINUX

[LINUX] 리눅스 grep, cat, less, head, tail, touch | 전공역량강화

리눅스의 명령어는 직접 작성하며 아웃풋을 봐야 나중에 쓸 수 있다. 책만 읽으며 암기하면 실제로 하나도 사용하지 못한다. grep : global regular expression print ( 정규표현식 / 패턴 ) grep을 사용하여 일정 단어/패턴을 가진 파일을 보여준다. 파일의 내용을 보는 명령어 - cat : 파일 내용 전체를 한번 출력하고, 한 화면을 넘어가지 않는 짧은 파일들에 주로 사용한다. - less : 파일의 내용이 길 때 사용하고, 스크린의 단위로 끊어서 출력하고 스크롤할 수 있다. 많이 쓰인다. q 누르면 종료. - head : 빈도가 많지는 않고, 파일의 앞부분 출력한다. - tail : 압도적으로 많은 빈도로 사용되고, 파일의 뒷부분 출력한다. -f (follow) : 로그 파..

개발 기록/LINUX

[LINUX] REDIRECTION, 표준입력, 표준출력, 표준오류 | 전공역량강화

redirection (리다이렉션, 리디렉션) : 방향을 바꾸다 ps (process show, process status) : 실행중인 프로세스 확인 -e (every) : 시스템 전체의 실행 중인 모든 프로세스 bash (bourne again shell) == shell user --> input --> shell --> hernel 으로 출력하면 기본적으로 오버라이팅(overwriting, 덮어쓰기) 되는데, >> 으로 출력하면 덮어쓰기하지 않고 그 뒤에 이어 출력할 수 있다. 이런 식으로도 쓸 수 있다.

개발 기록/LINUX

[LINUX] 파이프 PIPE, 파이프라인 | 전공역량강화

파이프라인은 앞의 표준 출력을 뒤의 표준 입력으로 연결해주는 것이다. wc (word count) : 라인, 단어, 글자의 수를 세어주는 명령어 ps -e : 전체 프로세스의 목록 시스템의 전체 프로세스 수를 확인하는 명령어 라인을 짜보았다. 이 예제는 위의 명령어 라인들을 대폭 줄인 것이다. 이처럼 ps -e의 표준 출력을 wc -l의 표준 입력으로 연결해주는 것이 파이프라인이다. /etc 디렉토리 하위의 파일과 디렉토리의 수가 몇 개인지 이렇게도 구할 수 있다.

우준성
'개발 기록/LINUX' 카테고리의 글 목록