Recent Posts
Recent Comments
Link
06-30 12:53
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

리눅스 명령어 요약 본문

DEV&OPS/Linux & Cloud

리눅스 명령어 요약

ALEPH.GEM 2022. 6. 29. 22:35

시스템 종료

  • poweroff
  • shutdown -P now             즉시 Power off                 
  • shutdown -r 22:00             오후 10시 rebooting
  • shutdown -P +10              10분 뒤 종료
  • shutdown -c                   예약된 종료 cancel
  • shutdown -k +15              15분 동안 시스템 종료 메시지를 띄우지만 실제 종료는 안됨
  • halt -p
  • init 0                            런레벨 0번으로 시스템을 전환

 

시스템 재시작

  • shutdown -r now            즉시 재시작
  • reboot
  • init 6                          런레벨 6번으로 시스템을 전환

 

로그아웃

  • logout
  • exit

 

도스 

이전에 입력한 명령어를 화살표 위아래 키로 다시 나타나게 하는 기능

  • history             사용했던 명령어 모두 보기
  • history -c          저장된 명령어 모두 삭제

 

자동완성 기능    

탭키를 이용해 자동으로 단어를 완성, 중복된 파일이 있는 경우 탭키를 한번 더 누르면 자동완성 파일 이름 후보 목록을 표시합니다. 

이 기능을 사용하면 오타를 많이 줄일 수 있습니다

 

VIM(vi) 에디터

  • esc           명령모드로 전환
  • :q            종료
  • :wq          저장하고 종료
  • i              insert
  • a             append
  • :w test2.txt           text2.txt으로 저장하고 종료
  • :q!            변경내용을 무시하고 종료
  • :숫자          해당 숫자 행으로 이동
  • dd            현재 커서의 행을 삭제
  • yy            현재 커서가 있는 행을 복사
  • p            복사한 내용을 현재 행 이후에 붙여 넣기 
  • /문자열         현재 커서 이후 해당 문자열을 찾음
  • n              찾은 문자 중에서 다음 문자로 이동

 

 

 

도움말

  • man 명령어            해당 명령어의 도움말

 

mount

  • mount         기존 마운트 정보 확인
  • unmount /dev/cdrom                 cd/dvd 장치 마운트 해제 바로가기
  • mount /dev/sdb1 /media/usb           sdb1 장치를 /media/usb 폴더로 마운트

 

기본 명령어

  • ls -a       숨김 파일 포함(파일 제일 앞에 . 을 붙이면 자동으로 숨겨짐) 현재 디렉터리 목록
  • ls -l       디렉토리 목록을 자세하게 보여줌
  • pwd          현재 디렉터리 위치 point working directory
  • cd          디렉토리 변경 change directory
  • rm -i 파일이름          파일 삭제(확인 메시지)   remove
  • rm -f 파일이름          파일 삭제(확인 없음)  force
  • rm -r 디렉토리이름         디렉터리 삭제   recursive
  • rm -rf 디렉토리이름         하위 디렉터리 포함 모두 삭제
  • cp 원본파일이름 복사할파일이름                파일 복사
  • cp -r 원본디렉토리이름 복사할디렉토리이름             디렉터리 복사
  • touch 파일이름          빈파일 생성, 기존에 같은 파일이 존재하면 최종 수정시간을 현재 시각으로 변경
  • mv 파일이름1 파일이름2 파일이름3 디렉토리경로           파일1,2,3을 해당 디렉터리로 이동
  • mkdir 디렉토리이름                     디렉터리 생성(make directory)
  • rmdir 디렉토리이름                     디렉터리 삭제(remove directory)
  • cat 파일이름                    파일내용을 화면에 보여줌(concatenate)

 

사용자와 그룹관리

  • useradd newuser              newuser라는 이름의 사용자 생성
  • useradd -u 1111 newuser         newuser라는 사용자를 생성하면서 사용자 ID를 1111으로 지정
  • useradd -g mygroup newuser      newuser라는 사용자를 생성하고 mygroup 에 포함시킴(mygroup은 미리 만들어져있어야 합니다.)
  • useradd -d /newhome newuser       newuser라는 사용자를 생성하고 홈 데렉토리를 /newhome으로 지정
  • useradd -s /bin/csh newuser      newuser라는 사용자를 생성하고 기본 셸을 /bin/csh 으로 지정
  • passwd newuser                   newuser사용자의 비밀번호를 지정
  • usermod                        사용자의 속성을 변경한다. 옵션은 useradd와 동일합니다
  • userdel newuser                 newuser 사용자를 삭제합니다.
  • userdel -r newuser                 newuser 사용자를 홈 디렉토리까지 포함해서 삭제합니다.
  • chage -l newuser            newuser에 설정된 암호 주기 확인
  • chage -m 2 newuser              newuser는 설정한 암호를 최소 2일 사용
  • chage -M 30 newuser            newuser는 암호를 변경후 최대 30일까지 사용할 수 있음
  • chage -E 2019/12/12 newuser          newuser의 설정된 암호의 만료 일자 설정
  • chage -W 10 newuser                newuser의 설정된 암호의 만료일로부터 10일 전부터 메시지가 나감
  • groups                 현재 사용자가 소속된 그룹
  • groups newuser         newuser가 소속된 그룹을 보여줌
  • groupadd newgroup          newgroup 라는 그룹을 생성
  • groupadd -g 2222 newgroup         newgroup 라는 그룹을 2222라는 그룹 ID로 생성
  • groupmod -n newgroup mygroup                newgroup 라는 그룹의 이름을 mygroup으로 변경
  • groupdel newgroup                  newgroup 그룹을 삭제. 단, 해당 그룹을 주요 그룹으로 지정한 사용자가 없어야 함
  • gpasswd newgroup          newgroup 그룹의 암호를 지정
  • gpasswd -A newuser newgroup              newuser 사용자를 newgroup 그룹의 관리자로 지정
  • gpasswd -a user1 newgroup                 user1 사용자를 newgroup 그룹의 사용자로 추가
  • gpasswd -d newuser newgroup                 user1을 newgroup 그룹의 사용자에서 제거

 

홈디렉토리

  • 새로운 사용자(user1)를 생성하면 /home/user1의 디렉터리에 /etc/skel 디렉토리의 내용을 복사하는 작업이 발생합니다. 그래서 생성하는 사용자에게 특정 파일을 배포하고 싶으면 /etc/skel  디렉토리에 넣어두면 됩니다.
  • yum -y install system-config-users         :X윈도우 환경에서 사용자 관리 system-config-users 라는 명령어 설치

 

파일의 소유권(ownership)와 허가권(permission)

  • 소유권과 허가권은 root 권한만이 할 수 있습니다.
  • ls -l 을 수행하면 나오는 정보들
  •  
  • - : 파일
  • d : 디렉터리
  • b : 블록 디바이스(하드디스크 등의 저장장치 등)
  • c : 문자 디바이스(마우스, 키보드 등의 입출력 장치 등)
  • l : 링크(바로가기와 유사한 개념)
  • permission: 3자리씩 user/group/other    에 각각 read, write, excute 권한을 부여한다. 가중치 코드처럼 각 3자리 별로 2진수의 가중치로 표현하면 r의 가중치는 4 w의 가중치는 2 x의 가중치는 1 으로 모두 더하면 7입니다. 그래서 파일에 모든 권한 부여는 777이 되는 것입니다.
  • chmod 숫자 파일이름             해당 파일의 퍼미션(허가권)을 변경하는 명령
  • chmod 숫자 -R 디렉토리경로   하위 폴더 포함 퍼미션을 변경하는 명령
  • chown 사용자 파일이름              해당 파일의 소유권을 해당사용자로 변경하는 명령
  • chgrp 그룹이름 파일이름           해당 파일의 그룹을 해당 그룹이름으로 변경하는 명령

 

파일 링크

  • 하드링크: 원본데이터와 index(inode) 영역을 공유해 실제 데이터에 접근 함, 원본 파일이 위치를 변경해도 연결 유지
    • ln 원본파일 하드링크이름
  • 심볼릭링크(소프트링크): 원본 파일의 포인터(위치)를 연결 inode는 원본 파일과 다름, 원본파일이 위치를 변경하면 연결이 끊어짐
    • ln -s 원본파일(폴더) 심볼릭링크이름
  • ls -il         inode 번호를 제일 왼쪽에 출력

 

RPM(레드햇 패키지 메니저)

  • 패키지이름-버전-릴리즈번호.OS버전.아키텍처.rpm
  • rpm은 다른패키지의 의존성이 있는 경우 설치가 되지 않습니다.
  • 설치
    • rpm -Uvh 패키지이름.rpm
    • U 옵션: 기존 패키지가 설치 되어있지 않으면 설치하고 설치되어 있다면 업그레이드 합니다.
    • v 옵션: 설치과정을 보여줍니다.
    • h 옵션: 설치 진행 과정을 #기호로 화면에 출력합니다.
  • 삭제
    • rpm -e 패키지이름
    • e 옵션: erase 의 약자
  • 조회
    • rpm -qa 패키지이름                 설치 확인
    • rpm -qf 파일의절대경로             이미 설치된 파일이 어느 패키지에 포함 된 것인지 확인
    • rpm -ql 패키지이름                 특정 패키지에 어떤 파일들이 포함되어있는지 확인
    • rpm -qi 패키지이름              설치된 패키지의 상세정보
    • rpm -qlp 패키지이름.rpm          아직 설치되지 않은 패키지 파일에 어떤 파일이 포함되었는지 확인
    • rpm -qip 패키지파일이름.rpm          아직 설치되지 않은 패키지 파일의 상세정보

 

YUM(Yellowdog Updater Modifed)

  • 인터넷을 통해 의존성이 있는 패키지들을 자동으로 다운받아 설치합니다.
  • /etc/yum.repos.d/          인터넷에서 해당 패키지를 검색하는 네트워크 주소가 들어있습니다.
  • yes/no를 묻는 부분에 자동으로 yes를 입력하며 설치
    • yum -y install 패키지이름
  • 로컬에 있는 패키지를 설치
    • yum localinstall rpm파일이름.rpm               
  • 업데이트 가능한 목록보기
    • yum check-update
  • 업데이트
    • yum update 패키지이름
  • 삭제
    • yum remove 패키지이름
  • 정보확인
    • yum info 패키지이름 
  • 패키지 그룹 설치
    • yum groupinstall "패키지그룹이름"
  • 패키지 리스트 확인
    • yum list 패키지이름
  • 특정 파일이 속한 패키지 이름 확인
    • yum provides 파일이름
  • 기존 저장소 목록 지우기
    • yum clean all


# RPM 과 YUM 의 가장 큰 차이점은 YUM 은 의존성 패키지까지 자동 설치 되는 차이입니다.


MariaDB 패키지 그룹 설치하기(패키지 그룹은 "" 으로 묶어줘야 합니다.)

  • yum -y groupinstall "MariaDB Database Server"

 

파일압축

  • xz 파일이름               파일이름.xz 으로 압축파일을 만든다. 기존 파일은 삭제됨
  • xz -d 파일이름.xz            압축해제
  • xz -l 파일이름.xz              파일이름.xz 압축파일에 포함된 파일 목록과 압축률 등을 출력
  • xz -k 파일이름               압축 후에 기존 파일을 삭제 하지 않고 그대로 둠
  • bzip2 파일이름              파일이름.bz2 으로 압축파일을 만듦
  • bzip2 -d 파일이름.bz2             압축해제
  • gzip 파일이름               파일이름.gz 으로 압축파일을 만듦
  • gzip -d 파일이름.gz              압축해제
  • zip 생성할파일이름.zip 압축할파일이름             생성할파일이름.zip 으로 압축 파일을 만듦
  • unzip 압축파일이름.zip               압축해제 

 

파일 묶기(tar)

  • c 새로운 묶음을 만듦
  • x 묶인 파일 해제
  • t 묶음을 풀기전에 묶인 경로를 보여줌
  • C 묶음을 풀 때 지정된 디렉토리에 압축을 해제, 지정하지 않으면 묶을 때와 동일한 디렉토리에 풀림
  • f 옵션(필수) 묶음 파일 이름 지정
  • v 파일이 묶이거나 풀리는 과정을 보여줌
  • J            tar + xz
  • z            tar + gzip
  • j            tar + bzip
  • 사용 예제
    • 묶기: tar cvf my.tar /etc/sysconfig/
    • 묶기+xz 압축: tar cvfJ my.tar.xz /etc/sysconfig/
    • 묶기+gzip 압축: tar cvfz my.tar.gz /etc/sysconfig/
    • 묶기+bzip2 압축: tar cvfj my.tar.bz2 /etc/sysconfig/
    • 파일확인: tar tvf my.tar
    • tar 해제: tar xvf my.tar
    • newdir에 tar 해제: tar Cxvf newdir my.tar
    • xz 압축 해제 + tar 풀기: tar xfJ my.tar.xz
    • gzip 압축 해제 + tar 풀기: tar xfz my.tar.gz
    • bzip 압축 해제 + tar 풀기: tar xfj my.tar.bz2        

 

파일 검색

  • find /etc -name "*.conf"            /etc 디렉토리 하위에 확장자가 conf 인 파일 검색
  • find /home -user root             /home 디록토리 하위에 소유자가 root 인 파일 검색
  • find ~ -perm 777                 /현재 사용자의 홈디렉토리의 하위에 퍼미션이 777 인 파일 검색
  • find /usr -size +10k -size -100k          /usr 디렉토리 하위에 파일 크기가 10kb~100kb 인 파일 검색
  • which 실행파일이름          path에 설정된 디렉토리만 검색
  • whereis 실행파일이름            실행파일,소스, man 페이지 파일까지 검색
  • locate 파일이름      

 

 

 

리다이렉션

표준 입출력은 키보드와 모니터지만 파일로 입출력을 할 때 redirection을 사용 할 수 있습니다.

화면 출력을 파일로 리다이렉션 하는 예제

ls -l > list.txt

파일을 화면으로 리다이렉션 하는 예제

sort < list.txt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



728x90