CentOS 및 Redhat 계열에서는 firewalld 을 disable 설정합니다. 이유는 다음과 같습니다.
(통상적으로는 그렇지만 사용하는 환경에 따라 달라질 수 있습니다.)
1) 네트워크 관리 도구 충돌 방지 일부 환경에서는 iptables 또는 서드파티 방화벽 소프트웨어를 사용해야 하는 경우가 많음. firewalld와 동시에 실행되면 방화벽 규칙이 충돌할 가능성이 있음.
2) 자동화 및 스크립트 호환성 일부 자동화 스크립트(Ansible, Puppet, Chef 등)는 firewalld가 활성화된 상태에서 정상 동작하지 않음. 기존 시스템이 iptables 기반 방화벽을 사용하도록 설계된 경우 firewalld를 비활성화해야 함.
3) 고정된 네트워크 설정 유지 firewalld는 동적 방화벽 관리 도구로, 실행 중에도 설정이 변경될 수 있음. 서버 환경에서는 예측 가능한 네트워크 구성이 중요하므로, 고정된 방화벽 설정을 유지하기 위해 비활성화하는 경우가 있음.
4) 성능 최적화 firewalld는 iptables보다 상대적으로 더 많은 시스템 리소스를 사용할 수 있음. 최소한의 서비스만 실행해야 하는 서버에서는 불필요한 프로세스를 줄이기 위해 비활성화할 수 있음.
5) 기존 방화벽 관리 방식 유지 오래된 레거시 시스템이나 특정 네트워크 정책을 따르는 환경에서는 iptables 기반 방화벽을 유지해야 하는 경우가 많음. firewalld를 사용하면 기존 iptables 설정과 충돌할 가능성이 있어, 이를 방지하기 위해 firewalld를 끄는 경우가 있음.
결론적으로, 서버 환경에서는 보통 firewalld를 끄고 iptables 또는 다른 방화벽 솔루션을 직접 설정하여 사용함. 하지만, firewalld는 동적 방화벽 설정과 관리가 쉬운 장점도 있으므로, 환경에 따라 적절히 선택하는 것이 중요함.
1. 상위 내용에 따라 Ubuntu 에서도 ufw (firewall과 같은 용도)를 비활성화 하는 작업이 필요합니다.
# apt install ufw (ufw가 존재하지 않을 시) # ufw disable (방화벽 비활성화)
2. 부팅 시 ' A start job is running for Wait for Network to be configured ... ' 문구가 뜨며 부팅이 늦어질 때 조치 방법
사진과 같이 부팅할 때 해당 잡이 실행되며 느리게 부팅이 되는 경우가 있습니다.
해당 프로세스는 네트워크 인터페이스가 정상적으로 온라인 상태가 될 때까지 기다리는 역할을 합니다.
서버 특성상 스위치에 물려있거나 환경에 따라 연결되는 속도에 차이가 있기 때문에,
정상적으로 온라인이 되는것을 확인하는것은 중요하지만, 저는 해당 기능으로 인해 부팅이 늦어질 수 있어 비활성화를 했습니다.
◆ GPU서버 / 서버(DELL,HPE,ASUS 신품 및 중고) / 워크스테이션 / 스토리지 / 네트워크 하드웨어 견적 문의 ◆ 담당자 : 정지훈 부장 (영업부) / 010-9500-3099 / hoon@einsis.com
안녕하세요. ^^
주식회사 아인시스 아이엔씨 정지훈 부장 입니다.
금일은 우분투에서 많이 사용하는 기본 명령어에 대해 알아 보도록 하겠습니다.
최근 GPU 서버에 UBUNTU 가 많이 탑재되고 있어 기존에 많이 사용하던 레드헷(RHEL) 이나 CentOS 와 많이 다른 부분이 있는 UBUNTU에 대해서도 알고 있어야 합니다.
하기의 기초 명령어만 알고 있어도 기본적인 시스템 운영에는 큰 문제가 없을 것으로 생각 됩니다.
UBUNTU (우분투) 기본 명령어
1. man ( manual )
각 명령어들의 도움말을 상세하게 알고 싶을 때 사용
- ( man Is )라고 명령어를 검색 시 Is에 대한 상세 설명을 보여준다.
- ( man cd ) 라고 명령어를 입력 시 cd에 대한 상세 설명을 보여준다.
2. ls ( list ) + 옵션 + 파일명
현재 디렉터리의 내용을 보여준다.
- ( ls -l ) : 디렉터리 및 파일 리스트를 권한 정보를 포함하여 상세 출력
- ( ls -a ) : 디렉토리 및 파일 리스트의 숨겨진 정보들까지 모두 출력
- ( ls -la ) : 권한 정보와 숨겨진 정보들 모두 상세히 출력
-i : 파일의 아이 노드(inode) 번호를 출력 -h : 파일의 크기를 쉬운 단위로 표시(k: 킬로바이트, m: 메가바이트) -l : 파일의 다양한 정보를 함께 출력(소유자 정보, 권한 정보, 크기, 날짜) -m : 파일을 쉼표로 구분하여 가로로 출력 -s kb : 단위의 파일 크기를 출력 -t : 파일을 최근에 생성된 시간순으로 출력 -f : 파일의 형태와 함께 출력한다('*' : tlfgodvkdlf, '@' : 심볼릭 링크, '/' : 디렉터리) -r : 서브 디렉터리의 내용을 포함하여 출력(즉 하위 디렉터리 내용을 모두 출력) -s : 파일을 크기순으로 출력 --help : 도움말 출력
3. pwd ( print working directory )
현재 작업 중인 디렉터리를 확인할 때 사용하는 명령어다.(절대 경로)
- desktop이란 디렉터리에서 입력하면, ~/desktop이라고 보여준다.
4. cd ( change directory )
해당 디렉터리 경로로 이동, 작업할 디렉터리를 바꿀 때 사용한다.
- smile 디렉터리 경로로 이동 : ( cd /smlies/smile ) 라고 입력하면 된다. (경로는 다를 수가 있어요. 예시일 뿐입니다.)
- smile 디렉터리로 바꾸고 싶음 : ( cd smile )이라고 입력하면 된다.
- ( cd ) : 홈 디렉터리로 이동 - ( cd ~ ),( cd ~/ ) 홈 디렉터리로 이동 - ( cd ~smile )smile의 홈 디렉토리로 이동 - ( cd ~/path/path2 ) 홈 디렉토리 아래 path/paht2로 이동 - ( cd - ) 바로 앞에 작업한 디렉토리로 이동 - ( cd directory ) 지정한 directory로 옮겨진다 - ( cd / ) root directory로 옮겨진다. - ( cd .. )현재 작업 directory의 부모 directory로 옮겨진다.
5. mkdir ( make directory ) + 옵션 + 파일명
새로운 디렉터리를 만드는 명령어이다.
- smlie 디렉터리를 만들고 싶으면 ( mkdir smile )라고 입력하면 된다.
6. find와 locate
특정 파일을 찾을 때 이 두 가지 명령어를 모두 사용해도 된다.
ex) find [검색경로] -name [파일명]
7. cp ( copy ) + 옵션 + 원본 파일명 + 목적 파일명 / 디렉터리명
파일 복사 ( 디렉터리 내부까지 복사하기 위해 -r 을 붙여주면 된다)
- (cp smile sad )라고 입력하면, smile파일의 사본을sad란 이름으로 생성한다. smile파일은 그대로 있다.
-i : 파일 복사 시 동일 파일명이 있을 시에 사용자에게 덮어쓸 것인지를 물어봄 -f : 동일 파일명 발생 시에도 모두 강제적으로 복사함 -p : 원본 파일의 시간 및 소유 권한 보존 -r : 포함된 자식 디렉터리까지 모두 복사
-n : 여기서 n은 숫자를 의미하며, 숫자는 출력 윈도우의 행수를 지정한다. -c : 위에서부터 한 행씩 지운 후 한 행씩 출력한다. 보통은 화면 전체를 지운 후 각 행을 출력하기 시작한다. 특정한 터미널을 위해 사용 -d : 스페이스나 q 키를 누르라는 프롬프트를 출력 -f : 화명의 행이 아닌 논리적인 행 수를 계산한다. 보통은 긴 칼럼의 행은 화면에서 행바꿈을 하여 새로운 행으로 계산된다. -f 옵션을 사용하면 이러한 행은 계산하지 않는다. -s : 여러 개의 빈 공백행은 하나로 취급한다. -p : 스크롤하지 않는다. 대신 화면을 지우고 출력한다. -u : 밑줄 치기를 금지한다.
- /expr expression 검색
- return 한 줄만 스크롤 - d 빈 페이지만 뒤로 이동 - space, Ctrl-d 한 페이지만 뒤로 이동(다음 페이지) - b 한 페이지 앞으로 이동
- enter 화면의 아래쪽 한 줄씩 더 보여줌 - h 도움말을 제공 - v vi 에디터를 부름
- q more 정지 - Q 종료
10. kill
특정 프로세스를 정해서 종료하고 싶을 때 사용, 보통 kill 명령어는 ps 명령어 다음에 사용
10-1 killall
특정 프로세스를 모두 종료
10-2. killall5
모든 프로세스 종료
11. sudo
관리자 권한(=root 사용자)만이 설치나 삭제, 변경을 할 수 있는데 sudo 명령어로 일반 사용자도 root 권한을 임시로 부여
12. passwd
패스워드 입력
13. rm ( remove ) + 옵션 + 파일명
파일이나 디렉터리를 삭제
- f옵션을 주면 사용자에게 삭제 여부를 묻지 않고 바로 삭제한다.
- 디렉터리를 삭제할 때는 -r옵션을 주어야 한다. (디렉터리삭제 시 하위 디렉터리까지 모두 삭제된다.)
-f : 디렉터리 안의 파일을 삭제할 때 사용자에게 확인을 요구하지 않음 -r : 인수 list 에서 지정한 디렉터리 혹은 그 아래의 subdirectory를 삭제 -i : whrite permission 이 없는 파일의 삭제를 위해 대화식으로 확인 -p : 디렉터리 dir-name과 비어있는 부모 디렉터리를 사용자가 제거할 수 있으며, 전체 경로명이 삭제되거나 어떤 이유로 인해 경로명의 일부가 남은 것과 무관하게 표준 출력에 메시지가 출력됨 -s -p : 선택항목 지정 시 표준 오류에 출력되는 메시지를 삭제
13-1. rmdir
비슷한 의미로 디렉터리를 삭제
14. touch + -amc + MMDDhhmmYY + 파일명
파일이나 디렉터리의 최근 업데이트 일자를 현재 시간으로 변경한다.
- 최근 업데이트 일자는 (ls -l )명령으로 확인할 수 있다.
- 파일이나 디렉터리가 존재하지 않으면 빈 파일을 만든다.
-a : 파일의 액세스 시간을 바꿈 -m : 파일의 갱신 시간을 바꿈 -c : 파일명이 존재하지 않는다면 새로운 파일을 만들지 않음
14-1. vi
vi 편집기 상태로 들어감
14-2. cat ( concatenate )
파일의 내용을 출력하거나, 파일들을 합치거나, 새로운 파일을 만들거나, 다른 파일에 내용을 덧붙일 때 사용 가능
15. head + -카운트 + 파일명
파일의 앞부분을 보고 싶은 줄 수만큼 보여준다. ( 옵션 미 지정 시 상위 10줄)
16. tail + -카운트 + 파일명
파일의 뒷부분부터 보고 싶은 줄 수만큼 보여준다. ( 옵션 미 지정 시 하위 10줄)
참고로-F옵션을 주고 실행하면,
파일 내용을 화면에 계속 띄워주고 파일이 변하게 되면 새로운 업데이트된 내용을 갱신해준다.
주로 실시간으로 내용이 추가되는 로그파일을 모니터링할 때 유용하게 사용한다.
17. whereis
소스, 실행파일, 매뉴얼 등의 위치를 알려준다.
18. which
패스가 걸려있는 실행 명령 or 실행 파일의 경로를 출력
- ( which ls )
19. adduser
새로운 사용자 등록, root 권한으로만 실행 가능
- ( sudo adduser localuser ) 입력 시 localuser 이름의 사용자를 신규 등록
20. userdel
유저를 삭제
- ( sudo userdel localuser ) 입력 시 localuser 이름의 사용자를 삭제
21. addgroup
신규 그룹을 등록
- ( sudo addgroup localgroup )localgroup을 신규등록
22. groupdel
그룹을 삭제
- ( sudo groupdel localgroup ) localgroup을 삭제
23. grep + 옵션 + 패턴 + 파일명
파일 내부에 있는 텍스트의 내용으로 파일을 찾을 수 있다
-c : 파일 내에서 패턴과 일치하는 줄의 총수를 구한다. -h : 여러 개의 파일을 검색할 때, 출력에 파일명이 나타나는 것을 방지한다. -i : 대, 소문자를 구별하지 않는다 -n : 일치하는 줄의 줄 번호도 같이 출력한다 -v : 패턴과 일치하지 않는 줄만 출력한다
24. du
사용자 자신의 디스크 사용 상황을 보고해준다
25. diff
diff 두 개의 파일이 일치되도록 변경시키기 위한 정보를 제공해 줌
26. tar, bzip2, gzip + 옵션 + 파일명
파일 압축 형식을 묶거나 푸는 명령어
-tar cvf [파일명(.tar, _tar)] 압축할 파일(또는 디렉터리) : 묶을 때 - tar xvf [파일명(.tar, _tar)] : 풀 때
-c : 새로운 tar파일의 생성 -x : 기존의 tar파일을 푸는 데 사용 -u : 업데이트를 위한 옵션 -t : tar파일을 푸는 것이 아니라 내용을 보는 옵션 -v : 파일을 묶거나 풀 때의 작업을 보여주는 옵션 -z : gzip를 이용해 tar.gz 혹은 .tgz로 묶인 파일을 풀 때 사용하는 옵션
- gzip [파일명] : 압축 시 - gzip -d [파일명] : 해제 시
-d : 압축을 해제하는 옵션 -f : 압축을 하거나 해제할 때 같은 이름의 파일이 존재할 경우 덮어쓰기를 한다. -l : 압축파일의 정보를 보여 준다. -r : 압축 대상의 디렉터리까지 압축을 수행한다.
27. chmod + 옵션 + 파일명, 디렉터리
특정 파일 또는 디렉터리의 퍼미션 수정
-R : 서브 디렉터리까지 모든 파일의 권한을 바꾼다.
28. chown + 옵션 + 파일명
파일이나 디렉터리의 소유자, 소유 그룹 수정
-R : 서브 디렉터리까지 모든 파일의 소유자를 바꾼다.
29. chgrp + 옵션
파일이나 디렉터리의 소유 그룹 수정
-R : 서브 디렉터리까지 모든 파일의 그룹을 바꾼다.
30. umask
파일 생성 시의 퍼미션 값을 변경하는 명령어
31. at
정해진 시간에 작업을 하나만 수행할 수 있는 명령어
32. crontab
반복적인 작업을 수행하는 명령어
33. fg ( foreground )
작업을 전면 작업으로 변환하는 것으로 모니터에 실행되는 모습을 사용자에 직접 보이며 작업하는 것을 말한다.
34. bg ( background )
작업을 후면 작업으로 전화하는 것으로, 사용자의 눈에는 실행되는 모습을 보이지 않으면서도 실제로는 일을 하는 것
- (명령어& )로 명령어 다음에"&"표시를 붙여서 후면 작업으로 전환할 수 있다.
35. jobs
실행되는 job들 나열
-l : 현재 작업하고 있는 디렉터리와 프로세스 그룹 ID를 출력
36. mesg
메시지 응답 가능 및 불가 설정
37. talk
로그인한 사용자끼리 대화
38. wall
시스템에 로그인한 모든 사용자에게 메시지 보내기
39. write
로그인한 사용자에게 메시지 전달
40. dd
블록단위로 파일을 복사하거나 파일의 변환을 할 수 있는 명령어
41. rpm + 옵션 + 파일명
rpm명령어는 redhat 배포본 관련 패키지를 설치 및 업그레이드하는 명령어입니다.
시스템에 설치되어 있는 패키지를 설치하려 한다면-i옵션과-U옵션을 써야 함 만약rpm -e rpm명령을 실해하면rpm은 사라지기 때문에 절대로 하지 말아야 한다. 만약 지웠다면 www.rpm.org에 가서rpm소스를 가져다 설치하는 수밖에 없다.
-l : 파티션 테이블의 목록을 출력 -v : fdisk 버전 출력 -s : partition DOS 파티션이 아니라면 해당 파티션의 크기를 출력 device : device 에는 몇 번째 하드디스크를 파티션 할 것인지 알려주어야 한다.
아래는 리눅스에서 각각의 디바이스들에 대한 이름이다. 첫 번째 설치된 하드 드라이브 : fdisk /dev/hda 두 번째 설치된 하드 드라이브 : fdisk /dev/hdb SCSI의 첫 번째 하드 드라이브 : fdisk /dev/sda SCSI의 두 번째 하드 드라이브 : fdisk /dev/sdb
43. ps
ps명령을 사용하면 어떤 프로세스의 목록과 활동 중까지 알 수 있다. -aux옵션을 사용하면 시스템에서 동작중인 모든 프로세스를 살필 수 있다.
Space : 상황 즉시 갱신 -s : 갱신 시간 지정(초 단위)
CPU 사용률 기준으로 정렬 -M : 메모리 사용률 기준으로 정렬 -u : 지정한 사용자의 프로세스만 나타남 -k : 지정한 프로세스 kill -h : 도움말
44. shutdown 옵션 + 시간 + 메세지
시스템을 종료할 때 사용되는 명령어
-t : n t 옵션 뒤에 n초를 명시해서, 경고 메시지를 보낸후 n초 후에 kill 시그널을 보냄 -h : shutdown시 halt를 실행 -r : 시스템 종료를 완료하고 나서 다시 부팅 과정을 수행(리부팅) -c : 이미 예약되어 있는 shutdown을 취소 -k : 모든 동작을 제대로 수행하지만 시스템을 종료할 시간이 되면 아무것도 하지 않음.
이상 포스팅을 마치겠습니다.
감사 합니다.
◆ GPU서버 / 서버(DELL,HPE,ASUS 신품 및 중고) / 워크스테이션 / 스토리지 / 네트워크 하드웨어 견적 문의 ◆ 담당자 : 정지훈 부장 (영업부) / 010-9500-3099 / hoon@einsis.com