Linux 명령어 정리

Jiyeong·2022년 1월 13일
0

linux

목록 보기
1/6

파일 / 디렉토리 명령어

메타문자(=와일드카드)
: 모든 것 ex)home을 들어가야 하는데 home이 기억 안 나면 h만 적기

: 한 글자 ex)h?? 이렇게도 가능
키 : 자동완성, 사용할 수 있는 목록

pwd : 현재 경러 보기(절대 경로로 표시)
cd : 디렉토리 이동
cd[인수 값]
<인수 값>
- Directory : 이동하기 원하는 디렉토리 (절대 경로, 상대 경로)
- . : 현재 디렉토리
- .. : 상위 디렉토리로 이동할 수 있음
- ~ : 로그인 사용자 홈 디렉토리
- - : 이전 작업 디렉토리

Q1. var로 이동 (절대 경로) : #cd /var
Q2. var -> etc -> init.d(상대 경로) : #cd ../etc/init.d

ls : 파일 내역 출력
ls[옵션][디렉토리/파일] (디렉토리/파일 안 적으면 현재 위치)
<옵션>
  -l : 자세히 나열 (ls -l을 ll이라고도 씀)
  // 파일 종류, 권한, 포함된 파일 수, 소유자, 소유 그룹, 파일 크기, 파일 수정 일자, 파일 이름
  -a : (all) 디렉토리 내의 모든 파일 출력(숨김 파일까지 포함. 앞에 .이 붙음)
  -s : (size) 파일 사이즈 출력
  -S : 파일 사이즈별로 출력
  -r : (reverse) 알파벳순 거꾸로 출력
  -d : 디렉토리 정보 출력
  -n : UID, GID 출력(*UID란? / GID란?)
  -R : (recursive) 하위 디렉토리까지 출력(하위 경로와 모든 파일 나열)
  -h : (human) K,M,G 단위를 사용해 파일 크기를 사람이 보기 좋게 표현
  -F : 파일의 종류별로 파일의 끝에 특수문자 표시
  //일반파일 : 공백
  //실행파일 : *
  //디렉토리 : /
  //심볼릭링크 : @
  //FIFO파일 : |
  //소켓 파일 : =)
  
  #ls -al 
  //. : 현재 디렉토리 의미
  // .. : 상위 디렉토리로 이동
  // .bash_history : 입력한 명령어 내용이 저장되어 있는 파일
  // .bashrc : alias 정보를 가지고 있는 파일
  
  Q. ls 명령어 문제
  #ls -al : 숨김 파일까지 포함해 자세히 나열
  #ls -al/home/ : 출력하고 싶은 디렉토리 이름 지정해서 숨김 파일 포함해서 자세히 나열
  #ls -alSrh : 숨김 파일까지 포함해서 파일 크기 역순으로 보기 좋게 단위 형식으로 나열
  #ls -lSR : 파일/디렉토리 목록을 자세히 파일 사이즈 순으로 하위 디렉토리까지 나열
  #ls h* : h로 시작하는 모든 디렉토리 내에 있는 파일/디렉토리 출력
  #ls h??? : h로 시작하는 4글자 디렉토리 내에 있는 파일/디렉토리 출력
  

  d : 디렉토리
  - : 파일 (링크 파일은 l)
  rxwr-xr-x. 권한
  
  <참고> 리눅스에선 모든 것을 파일로 처리함. (ex. 텍스트, 이미지, 영상 등의 자료, 디렉토리 정보, 네트워크 소켓, 시스템 장치 등 -> 그래픽 환경이 아니더라도 텍스트 환경에서도 시스템 제어 가능)
    
    mkdir : 디렉토리 생성
    mkdir[옵션][디렉토리 이름] 
    <옵션>
      -p : 하위 디렉토리 생성 
      
   	rmdir : 디렉토리 삭제 
    rmdir[옵션][디렉토리 이름]
      
    rm : 파일, 디렉토리 삭제
    rm[옵션][디렉토리/파일]
         
    <옵션>
      -f : 강제 삭제(삭제 확인을 묻지 않고 바로 삭제)
      -r : 디렉토리 삭제시 하위 경로와 파일 삭제
      -v : 파일 삭제 정보를 자세히 보여줌
      -i : 삭제에 대한 실행 여부를 물음(디폴트 값)
      
      cp : 파일, 디렉토리 복사
      cp[옵션][기준 파일][복사 위치]
      
      <옵션>
        -i : 복사에 대한 실행 여부를 물음(복사할 대상이 이미 있으면 사용자에게 물어봄)
        -p : 파일에 내용 뿐만 아니라 속성도 그대로 복사
        -f : 강제 복사(복사할 파일이 존재할 때 삭제하고 복사)
        -r : 하위 디렉토리와 파일 모두 복사 -> 디렉토리 전체 복사
        -R : 디렉터리를 복사할 경우 그 안에 포함된 모든 하위 경로와 파일들을 모두 복사
        -v : 복사 진행 상태 출력
        -a : 원본 파일의 속성, 링크 정보를 유지하면서 복사
        
        mv : 파일, 디렉토라 이동. 파일 이름 변경
        mv[옵션][기준 파일][이동 위치||파일 이름]
        <옵션>
       	-i: 이동에 대한 실행 여부를 물음
        -f : 강제 이동(같은 이름의 파일이나 디렉토리가 있는 경우 덮어쓸 지 묻지 않고 강제 이동)
        -v : 이동 진행 상태 출력
        -b : 대상 파일이 이미 있어 백업 파일 생성
         
        touch : 파일 생성 및 시간 정보 변경 / 파일 사이즈가 '0'인 파일 생성
        touch[옵션][파일 이름] //리눅스는 확장자가 없어서 이름이 겹치면 안 된다
          
        <옵션>
        -t : 지정 시간으로 변경 <MMDDhhmm>
        <ls 옵션  --full-time : 시간 정보를 확인할  있음>
          
        head : 파일 내용 중 처음부터 10줄을 출력
        head[파일 이름]
         
        <옵션>
          -f : 실시간으로 작성되는 내용 보기 (로그 파일 확인 시 유용!>
			// #tail -f /var/log/messages
          	// 프로세스 종료 : Ctrl+C
          
          -n: 마지막 부분의 20행까지 출력
          	// #tail -n 20 /var/log/dmesg
          
          -c: 마지막에서 200byte까지 출력
          // #tail -c 200 /varlog/dmesg
          
          cat : 파일의 내용을 화면에 출력
          cat[파일 이름]
          
          <옵션>
            -n : 줄 번호를 화면 왼쪽에 나타낸다. 
            **// cat -n(파일)**
            
          
            more : 파일 내용을 화면 단위로 출력
            more[파일 이름]
            <Enter> : 한 줄 이동
           	<Space bar> : 한 페이지 이동
            <b> : 이전 화면 출력
            <h> : 도움말
            <q> : 종료
              
            less : 파일의 내용을 출력함. (more 명령어를 더 보완한 명령어)
            less[파일 이름]
              <Enter> : 한 줄 이동
              <Space bar> : 한 페이지 이동
              <방향키> : 위, 아래 이동
              :<num> : 해당 라인으로 이동
              /<문자열> : 해당 문자열 검색
                // 문자열 검색 후 정방향 검색 : n
                //              역방향 검색 : N
               <q> : 종료
                 
              file : 파일 종류 확인
              file[파일 이름]
                 // file /root : diretory
                 // file /etc/password : ASCII text
                 // file /dev/sda : 장치 파일
                 // file /bin/ls : executable
                 
               history : 입력했던 명령어 확인
               history[옵션][숫자]
                 <옵션>
                   -c : 입력했던 명령어 모두 삭제
                   -d : 입력했던 명령어 개별 삭제
               //history하면 쭉 번호 붙여서 실행했던 명령어가 나옴
               //history -d 100하면 100번 삭제
               //history -c하면 올 삭제
               // !2라고 하면 history 안에 있는 2번 명령어 실행.
                   
               Q1. root의 홈 디렉토리에서 시작 : #cd ~
               Q2. /tmp에 abc 파일 생성 : #touch /tmp/abc
               Q3. 생성한 abc 파일을 /root 디렉토리로 복사하면서 test 이름 바꾸기
                   #cp /tmp/abc /root/test
                   
               Q1. root의 홈 디렉토리에 Korea라는 디렉토리 생성 :
                   #mkdir /root/Korea
               Q2. /tmp에 abc 생성 후 파일을 Korea 디렉토리로 복삭해 Korea123으로 이름 변경 : 
                   #touch /tmp/abc
                   #cp /tmp/abc /root/Korea/Korea123
                   
                Q1. /tmp에 Korea 디렉토리 생성
                   : #mkdir /tmp/Korea
                Q2. korea 디렉토리 안에 12345 파일 생성
                   : #touch /tmp/Korea/12345
                Q3. 12345 파일 -> /tmp에 복사
                   : #cp /tmp/Korea/12345/tmp
                Q4. 생성된 디렉토리 및 파일 제거
                   : rm -r Korea, rm abc, rm 1234
                   
                   date : 시스템 시간 조회
                   // 명령어는 단독으로 쓰일 수 있으며, 옵션과 포맷 인자는 때에 따라 추가 사용 가능.
                   
                   date[옵션][포맷인자]
                   <옵션>
                    -s	: 시스템 일시 변경
                            //]# date -s 10:00:00
                            //현재시간을 변경
                            //]# date -s 2019-01-25
                            //날짜만 변경, 시간은 0시 0분 0초
                            //]# date -s '2019-01-25 12:15:10'
                            //날짜와 시간을 같이 변경

                    -d	: 포멧인자 값에 따라 일시를 조정하여 출력
                            > date -d'1 year' 		# 1년 후
                            > date -d'1 year ago' 	# 1년 전
                            > date -d'1 month' 	# 1개월 후
                            > date -d'1 month ago' 	# 1개월 전
                            > date -d'1 week' 		# 1주일 후
                            > date -d'1 week ago' 	# 1주일 전
                            > date -d'yesterday' 	# 어제
                            > date -d'tomorow' 	# 내일
                            > date -d'1 day ago' 	# 1일 전
                            > date -d'2 day' 		# 2일 후
                            > date -d'this monday' 	#이번주 월요일(일요일 시작 기준)
                            > date -d'last wednesday' 	#지나간 최근 수요일
                            > date -d'next friday' 	#다가오는 금요일      

                    -f	: 날짜가 입력된 파일을 라인 단위로 읽어서 출력
                        ※ 파일 내용 : 문자 포멧인자값의 형식으로 기술되어 있어야 한다.

                            > 파일 : testfile.txt
                            1
                            2
                            3
                            4
                            2017-01-01
                            20170101
                            2017-01-01+2 year ago
                            20170101+1 year 1 month

                            > date -f 'textfile.txt'

                    -r	: 파일/디렉토리를 참조하여 수정일시 출력
                        > ls -al test
                        > date -r 'testfile.txt'
                   
               
              	rdate : 타임 서버 시간 조회 및 시스템 시간 변경
                 //리눅스의 시간을 timeserver와 동기화하는 명령어
				 //리눅스는 서버로 운영되는 경우가 많기 때문에 서버 시간은 동작하는 여러 서비스에 영향을 준다.
                 //항상 정확한 시간 정보를 유지하는 게 좋음.
                 //정확한 시간 정보 유지를 위해 타임서버의 시간 정보를 불러와서 시스템 변경 가능
                 //#yum -y install rdate
                     rdate[옵션][타임서버]
                     <옵션>
                       -p : 타임서버 시간 조회
                       -s : 타임서버 시간 시스템 동기화
                       
                      	<타임서버>
                        time.bora.net  //203.248.240.140
                        time.nuri.net
                        time.windows.com
                        ntp.kornet.net
                        time.nist.gov

                        ]# rdate -p time.bora.net	// 타임서버 시간 조회
                        ]# rdate -s time.bora.net	// 타임서버와 시스템 시간을 동기화
                        
                   
           
          			find : 파일 찾기
                    find[디렉토리][옵션][액션]
                          
                    <옵션>
                    -name [filename] : 가장 일반적으로 사용하는 옵션
                    -perm mode : 주어진 액세스 모드를 가진 파일을 찾음.
                    -type c : 지정된 타입에 관한 파일을 찾음.
                    -user name : name에 해당하는 사용자 파일을 찾음.
                      name에는 사용자 id 뿐만 아니라 UID도 들어갈 수 있음.
                    -group group명 : 그룹이 그룹인 명.
                    -size n : 해당되는 사이즈의 파일을 찾음.
                      n은 블록 길이의 파일을 찾고, 한 블록은 512와 같음.
                      +n이란 표시는 n 블록보다 더 긴 파일을 찾는다는 뜻.
                     -atime n : n일 전에 액세스한 파일을 찾음.
                     -mtime n : n일 전에 마지막으로 파일 내용이 수정된 파일들.
                     -ctime n : n일 전에 마지막으로 속성이 바뀌어진 파일들.
                     -newer file : 주어진 file 보다 더 최근에 수정된 파일을 찾음.
                     -exec command : 찾은 파일들을 command로 처리함.
                      command에서 찾은 파일의 경로명을 포함시키려면 중괄호를 사용.
                      {} command 명령을 실행시키고 난 뒤에 반드시 \; 사용.
                      
                      [액션]
                      -print : 찾은 파일리스트를 보여줌.
                      -exec command {} \; : 찾은 파일과 디렉토리에 지정한 명령어 적용.
                      -ok command {} \; : exec와 비슷하나 명령어 시행 전 사용자에게 실행할 것인지를 물어 봄.
                      
                      예시:
                        find / -name perl
                        find /usr -name rdate 	// /usr 디렉토리 하위 모두를 검색하여 rdate 파일 찾음
                        find /usr -name rd*	// /usr 디렉토리 하위 모두를 검색하여 rd로 시작하는 파일 찾음
                        find /bin -name s*		// * 사용시 ' '로 묶어주지 않으면 error 발생하는 경우 있음
                        find /bin -name '[a,s][b,e]*' -print	// 첫글자가 a 또는 s로 시작하고, 두번째 글자가 b 또는 e로 된 파일
                        find /bin -name ‘[s-z]????’ -print	// s~z로 시작하는 5자로 된 파일 출력
                        find /home -name *.bak -exec rm -f {} \;                 
                        find /home -perm 777 -print                 
                        find /home -empty -print                
                        find / -size +102400k -print find /home -user skykim -print         
                        find /home -type d -print		// 일반파일 : f, 디렉토리 : d, 링크파일 : l, 블록/문자디바이스 : b/c
                        find /bin -type l			// bin 디렉토리에서 파일 타입이 심볼릭링크 걸린 파일 찾기
                        find /root -name file1 ?exec ls -al {} \; 

                    
          
          출처 : 시농준
        
      

  
profile
깃스타가 되고 싶은 벨플루언서

0개의 댓글