Linux

[1028 linux] 리눅스 기본명령어

 

시스템 버전 확인 버전확인
$uname -a
OS확인
cat /etc/issue
cat /etc/redhat-release
cat /etc/*release*
https://ongal.tistory.com/190
물리 CPU 갯수 확인 grep "physical id" /proc/cpuinfo | sort -u | wc -l      
CPU당 물리 코어 수 확인 grep "cpu cores" /proc/cpuinfo | tail -1    
논리 코어수 확인 grep -c processor /proc/cpuinfo
라우팅 라우팅 여부 확인
$cd /sbin
$route -n
기본 게이트 웨이 추가.

$cd /sbin
$route add default gw 아이피 dev eth0
top shift + p : CPU 사용률 내림차순
shit + m : 메모리 사용률 내림차순
shift + t : 프로세스가 돌아가고 있는 시간 순
k : kill. k 입력 후 PID 번호 작성. signal은 9
f : sort field 선택 화면 -> q 누르면 RES순으로 정렬
a : 메모리 사용량에 따라 정렬
b : Batch 모드로 작동
1 : CPU Core별로 사용량 보여줌
https://zzsza.github.io/development/2018/07/18/linux-top/
du disk usage, 디렉토리 디스크 사용량 확인
du -h 사람보기 좋게 메가 기가단위 공간확인, 서브디렉토리 디스크 사용량도표시
df -sh  요약된 정보도 출력
sudo -h /root  루트권한 필요할때 
https://withcoding.com/104
df disk free : 디스크 여유공간 
df -h 사람보기좋게 메가 기가단위 공간확인

rpm RPM은 Redhat Package Manager
CentOS 에서도. 
yum 으로 설치하기 어려운 상황이나 yum repository에 등록되어 있지 않은 프로그램들을 rpm 파일로 불러와서 다운받는 상황에서 많이 사용. 
rpm -ivh : 패키지 설치
rpm -Uvh : 패키지  업데이트
rpm -qa :  패키지 설치 확인
--nodeps : 의존성 무시
-i 패키지명

https://coconuts.tistory.com/187
네트워크 netstat network statics 
: 전송제어 프로토콜, 라우팅테이블, 네트워크 인터페이스, 프로토콜 통계. 등. 
-상태
LISTEN :서비스 대기중
ESTABLISHED : 다른 PC와 연결 된 상태
SVN_SENT : 클라이언트가 서버에 SYN 패킷 전송후 연결요청상태
SVN_RECV : 서버가 클라이언트의 SYN 패킷 요청 수신 후 ACK패킷전송후 
                 클라이언트에게ACK 수신대기
TIME_WAIT : 연결종료, 소켓열림
CLOSE_WAIT: 원격연결요청 받은상태 연결종료 기다림
LAST_ACK :연결종료, 승인기다림
CLOSE :연결종료. 

netstat -i(nterface) | 인터페이스별 통계값 출력. 

netstat -ai   | all, Interface 모든 인터페이스별 통계값 출력. 

netstat -t(CP) |TCP 프로토콜만 출력

netstat -u(DP) |UDP 프로토콜만 출력

netstat -l(isten) |대기중인 네트워크

netstat -x : Displays NetworkDirect connections, listeners, and shared endpoints

netstat -r(outing)


netstat -an |number :도메인주소 읽어들이지 않고 숫자출력. 

netstat -rn |라우터 번호

netstat -lntp  | 대기상태, 숫자, TCP, PID



https://en.wikipedia.org/wiki/Netstat   << 여기 모든옵션. 
https://run-it.tistory.com/33
링크 심볼릭링크 ln -s 타겟위치 이름

* 자바버전변경예제





마운트  
계정 sudo vs su vs su- sudo : 잠시 root 권한 빌림_ 생성수정삭제시 root가 아닌 유저의 이름남음
         /etc/sudoers 에 등록되어있는 사용자만 사용가능
sudo su : root 계정 반영구적으로 빌릴수 있다  hom 디렉토리 root
sudo -s : root 계정 반영구적으로 빌릴수 있다.  현재사용자 디렉토리
su 계정명 : 현재 로그아웃 않고 다른사용자 계정 전환
su - 계정명 :  환경설정까지 다른사용자계정 전환
https://www.leafcats.com/168
사용자 추가 $useradd 계정
      -u(계정) , -g(그룹), -d(디렉터리), -s(Shell 지정) 
$passwd 계정   
$vi /etc/passwd

아이디:암호:사용자ID:그룹ID:전체이름/홈디렉토리/사용셸 
암호변경 주기 설정 chage
-d, --lastday LAST_DAY 마지막 암호변경일
-E, --expiredate EXPIRE_DATE 계정만료일 (-1 제한없음)
-I, --inactive INACTIVE   암호만료일 후 I일동안 변경물어봄
-l, --list
-m, --mindays MIN_DAYS 해당계정 로그인후 m일후 변경가능
-M, --maxdays MAX_DAYS 암호변경일부터 몇일간 사용일수 
-W, --warndays WARN_DAYS 암호만료 몇일전부터 W일동안 경고
사용자 그룹 추가.  $groupadd 그룹명
$cat /etc/group
groupmod -g(gid), -o 중복허용 -n 이름변경
$gpasswd -a 계정 그룹명   #그룹에 유저 추가. 
$su - 계정 임시보기
$groups  (현재속한그룹)
$exit
$gpasswd -d 계정 그룹명  #그룹에 유저 삭제
사용자 삭제 userdel 계정
   -r : 사용자 디렉터리까지 모두 삭제. 
조회 리눅스 아파치 설정파일 도메인찾기 find /usr/local/ -name '*.conf' 2>/dev/null |xargs grep -n '\-www\.test\.com'
파일찾기.. 처음쓰는사람위해. su - 계정명
sudo
ls -al
ll
find ./-name aaa.txt
grep -r "찾을문자열" ./*
find ./ -name "aaa*.txt" | grep "찾을 문자열"

인증서 찾기 find / -type f -name "*.cer" 2>&1 | grep -v "허가 거부" -> cer파일 찾기
find / -type f -name "*.crt" 2>&1 | grep -v "허가 거부" -> crt파일 찾기
https://ajh322.tistory.com/95
ls : LIST ls
알파벳순 정렬

ls -a(ll)
숨겨진파일까지 다

ls -l(ong)
자세한 내용 출력. : 권한, 포함파일수, 소유자, 그룹, 파일크기, 수정일자, 파일이름


ls -t(ime)
시간이 큰거(최근) 제일위로


ls -ltr


ls -S(ize)
파일크기순 정렬

ls -r(everse) 
(알파벳or 시간) 역순 출력

ls -h(uman)
KMG 사람 보기 좋게 


ls -lu 
접근시간 출력


ls -c
변경시간 출력. 


ls -alSrh 
모든파일, 자세히, 파일크기순,알파벳역순,사람보기좋게



ls *.txt
와일드카드조회



참고 출처 : https://withcoding.com/89
  삭제 rm 삭제
rm -f 파일이름삭제 확인 과정을 거치지 않음  "force"옵션
rm -r 경로/디렉토리 삭제 dictionary remove 
rm -rf directoryremove write-protected regular file>>  remove file & directory 디렉토리 모두 & 파일 모두 삭제
rmdir 빈폴더:  비어있는 디렉토리 삭제
rmdir -r dir : 파일들어 있는 디렉토리 삭제
  cat 옵션 cat 파일명 : 내용출력
cat 파일1 파일2 파일3 :연속적 출력
cat -n 파일 : 행번호 출력
cat 파일  파일> 파일1 : 내용을 입력하고 ctrl +d 눌러 저장 
cat  파일 >> 파일1 : 기존파일 내용 뒤에 연속해서 기록. 
https://withcoding.com/109
  vi 1)기본
vi파일명
ESC              >> 각종 모드 빠져나갈때.
i                  >> 편집모드실행
:q!                >>캐시남기지 않고 닫기
:wq!             >> 작성하고 닫기. 

2) 찾기
/이름            >> 조회
n 다음찾기
N 이전찾기

3) 커서의 이동
H 맨위
M 중간
L 마지막 
gg  문서 첫행
shift g  문서 제일마지막
ctrl +b 이전화면
ctrl +f 다음화면. 

4) 복붙
yy : 한줄 복사
p : 붙여넣기
  mkdir mkdir -m       
--mode=MODE 디렉토리 생성할때 권한 설정. default 755
# mkdir -m 777 -vp t/t/t1
부모폴더 t는  755로 생성
t1은 777로 생성


mkdir -p 
상위경로도 함께 생성
# mkdir -v test/t/test
mkdir: cannot create directory `test/t/test': No such file or directory
# mkdir -vp test/t/test
mkdir: created directory `test/t'
mkdir: created directory `test/t/test'

mkdir -v
--verbose
디렉토리 생성 후 생성된 디렉토리에 대해 메시지 출력. 
# mkdir test2
# mkdir -v test
mkdir: created directory `test'
mkdir --version
버전정보 출력. 
# mkdir --version
mkdir (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
  숨긴파일만들기.  mv tt .tt

http://mwultong.blogspot.com/2006/11/make-hidden-file-linux-unix.html
  리눅스 명령어 안먹을때 PATH=/usr/local/bin:/bin:/usr/bin
  로그  날짜 열기 tail -f httpd_access_log.$(date +"%Y%m%d")
     
     

IP주소, 클래스, 서브넷 마스크, 사용가능 네트워크, 서브네트워킹

 

1. IP 주소의 클래스

8bit +8bit +8bit + 8bit   >> IPv4 는 32bit

8bit --> XXXXXXXX 8자리. 

2^8= 8*8*4 = 64*4=256

2^7= 8*8*2 = 128

2^6 = 64

2^5 = 32

...

 

- 유니캐스트(1:1 메시지 전송가능)

class A   : 네트워크, 첫번째 비트(Octet)가 0  : 00000000 ~ 0111111 

>10진수 (0~2^7-1) : 0.0.0.0 ~ 127.255.255.255 

네트워크 호스트 호스트 호스트

class B : 첫번째 비트 10 : 10000000 ~ 1011111 

>10진수 (2^7~2^7+2^6-1) : 128.0.0.0 ~191.255.255.255

네트워크 네트워크 호스트 호스트

class C : 첫번째 비트 110 : 11000000 ~ 1101111

>10진수 (2^7+2^6~2^7+2^6+2^5-1) :192.0.0.0~223.255.255.255

네트워크 네트워크 네트워크 호스트

- 멀티캐스트

class D : 첫번째 비트 1110  111000000 ~ 1110111

>(2^7+2^6+2^5~2^7+2^6+2^5+2^4-1) :224.0.0.0~239.255.255.255

- IANA 예비용, 연구목적

class E : 첫번째 비트 1111 : 111100000 ~ 1111111

>(2^7+2^6+2^5+2^4~2^8) :240.0.0.0~255.255.255.255

2. 서브넷 마스크

서브넷팅 : 너무 큰 브로드 캐스트 도메인은 성능저하 네트워크 성능 향상위해 자원효율적 분배. 

2단계 주소형식 : 네트워크ID  + 호스트ID

3단계 주소형식 :네트워크 ID + 서브넷ID+ 호스트ID

classA 의 서브넷 : 255.0.0.0 ~ 225.255.255.255 까지 사용가능. 

 Ipv4 전체 2^32   , 255.0.0.0의 사용 경우  2^(32-8) // 2^24개의 아이피 존재. 

                               255.255.0.0 의 사용경우  2^(32-8-8) // 2^ 16개의 아이피 존재

                               255.255.255.0의 사용 경우 2^(32-8-8-8) // 2^8개의 아이피 존재. 

                               255.255.255.255의 사용경우 2^(32-8-8-8-8) // 2^0 , 1개의 아이피 존재. 

                               255.255.255.254의 사용 경우 네트워크아이디  24개, 서브넷아이디 7개 (2^8-1  , 11111110)

                                     2^(32-8-8-8-7)// 2 개의 아이피 존재. 

                               255.255.255.252의 사용 경우 네트워크아이디  24개, 서브네트워크 아이디 6개 ( 11111100)

                                     2^(32-8-8-8-6)// 4 개의 아이피 존재. 

                              255.255.255.248 의 경우 2^(32-8-8-8-5)// 8 개의 아이피 존재. 

                              255.255.255.192 의 경우 2^(32-8-8-8-2)// 64 개의 아이피 존재. 

3. 설정불가능한IP

- class  D  사용O, 설정X

- class E  사용 X, 설정X

- 0.XXX  0.0.0.0~0.255.255.255 사용X, 설정X

- 127.0.0.0~127.255.255.255  Local loopback 사용 O, 설정X

- 네트워크 이름 - 사용X: X.X.X.0   ex)  121.160.42.0   

- 서브넷 브로드케스트 주소- 사용X: X.X.X.255  ex)121.160.42.255

  --> 2번에서 존재하는 아이피에서 -2(네트워크이름, 서브넷브로드케스트주소) or -3(루프백포함) 해야 사용가능한 IP

 

 

 

 

참고 링크 >> youtu.be/Xiv0f0V3CsA

 

 

 

 

[Linux] 라우터(route) 확인/추가/삭제  https://graycha.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%9D%BC%EC%9A%B0%ED%84%B0route-%ED%99%95%EC%9D%B8%EC%B6%94%EA%B0%80%EC%82%AD%EC%A0%9C

20100404 :: 심볼릭 링크에 대하여 https://soooprmx.com/archives/1383