LINUX 명령어

5 minute read

  1. 기본 명령어
  2. 사용자 관련
  3. System 관련
  4. File 관련
  5. Network 관련

파일권한-중요

리눅스 파일권한 상식
리눅스 터미널 접속해서 ls –al 사용시 가장 왼쪽의 -rwxrwxrwx 형식의 문자는 현재파일의 권한 설정된 것 참고 : 맨 앞에 문자가 - 일 경우 파일, d 이면 디렉토리, l 이면 링크를 나타냄

r : 읽기권한 = 4  
w : 쓰기권한 = 2  
x : 실행권한 = 1  

- rwxrwxrwx ( 777 )  
-r--r--r-- ( 444 )  
-rwx--x--x ( 711 )  

2~4필드 : 소유주 ( User ) 권한  
5~7필드 : 그룹 ( Group ) 권한  
8~10필드 : 나머지 ( Others ) 권한  

1. 기본 명령어

history - 내가 터미널에서 사용한 명령어 목록 보기

man - 각 명령어에 대한 옵션기능 설명

clear – 청소
! - 명령어는 지정한 명령어의 마지막 명령을 재실행
  •문법 예시
![사용했던명령어]

pwd - 현재 내가 머물러있는 경로를 절대경로로 보여준다

ls - 현재 내가있는 디렉토리의 있는 파일 또는 디렉토리 보기
 •문법 예시
ls [옵션] [경로]
 •옵션
  -a 숨김 파일을 포함 모든 파일 디렉토리 출력 
  -l 지정한 디렉토리의 내용 자세히 출력 
  -R 하위 경로와 그 안에 있는 파일도 출력 

cd - 디렉토리 경로 이동할 때 사용
 •문법 예시
cd [이동할 디렉토리 명 또는 경로]
 •옵션
  cd  .. 상위 디렉토리로 이동
  cd 또는 cd ~ 어느 곳에서든 자기 홈 디렉토리로 바로 이동 

cat - 파일의 내용 전체를 한번에 보여준다.
 •문법 예시
  cat [파일명]
   ※ 파일 내부의 내용이 적을 때 cat 내용이 많으면 more사용

more - 내가 현재 터미널을 켠 화면만큼 페이지를 나누어 보여준다. 
 •문법 예시
  more [파일명]

tail - 문서 끝부분 출력하기
 •끝을 기준으로 출력 모니터링 가능한 기능
 •옵션 
  tail [n값] 사용자가 n값(+10)을 입력하면 값(+10줄)만큼 출력
  -f 실시간으로 로그 확인 

head - (파일의 앞부분 출력하기) 윗 부분을 기준으로 출력
 •Tail과 동일하나 헤드는 위에서부터 출력
 •주로 tail을 자주사용

alias – 명령어 문법 간소화하기 (바로가기)
 EX) rm -r 을->rm으로 단축해서 명령어를 보다 편리하게 사용 

2. 사용자 관련

useradd - (사용자 계정 만들기)최상위 권한을 가진 계정만 사용
 •PW는 root계정에서 생성된 계정으로 접근해 바꾸거나, 타겟으로 지정해 변경가능 
 •문법예시
useradd [계정명] 또는 Useradd [계정명] –p [패스워드]
•옵션
 -u: uid를 지정
 -g gid그룹 지정
 -s 쉘지정

userdel - (계정 삭제하기)
 •문법예시
userdel [옵션] [계정명]
 •옵션
  -f 삭제중 나는 에러를 무시하고 강제로 삭제

passwd - (암호 변경/입력하기)
 •문법예시
passwd -S [계정명]
 계정명 특정계정의 패스워드 정보를 보여준다. 단 루트만이 사용할 수 있다.
passwd -d 계정명
 유저계정으로 로그인 할 경우 이 역시 패스워드 없이 로그인이 가능해진다

id - (계정 정보 확인)현재 터미널에 Access한 계정 확인

su - (계정 바꾸기)
 •문법예시
su [계정명]
 •옵션
su  – 일반계정에서 루트 계정으로 변환
su – user 이 같이 하면 user의 환경변수를 가져와 사용자 전환 –을 빼면 사용자의 환경변수를 유지하고 user로 전환

3. System 관련

date - (날짜 보기) EX) 2015년 08월 13일 목 오전 xx:xx:xx

cal - 달력 보기

env – PATH(환경변수)목록 출력

help - 도움말 보여주기

df - 파일 시스템의 사용량 보기
 •옵션
 -k kbyte 남은 용량 출력
 -h보기 좋게 출력

time – 명령어 실행시간에 대해 출력
 •real은 걸린 총시간 user는 유저의 걸린시간 sys는 시스템에서 걸린시간
 •문법 예시
  time [옵션] [수행할 값]

exit - 종료하기
 •터미널에서 user명을 open -> simi -> ter 이렇게 접근했다 가정하면 exit를 입력 시 ter에서 simi로 전 단계로 내려감 전부 내려가면 프로그램종료

ps - 프로세스 상태 알기
 •비슷한 문법으로 ps –e | grep 파일명 파일을 포함한 프로세스를 검색할 수 있다.
 •문법예시
ps [옵션] 
 •옵션
  -e 모든 프로세스 출력
  -f 프로세스의 상세정보

kill - 프로세스 죽이기
 •현재 리눅스 내의 작동하는 프로세스를 종료시킨다.
 •문법 예시
  kill [옵션] [시그널번호or 시그널이름]
 •옵션
  -9 강제종료
  -15 작업종료

top - 시스템 상태 확인)cpu상태 등 상세한 상태확인 가능
 •원하는 프로세스만 보기
 •top | grep “프로세스명”

4.File 관련

ln - 링크하기 alias는 명령어 함축, ln은 경로에 대한 함축으로 혼동X
 •문법예시
  ln [옵션] [디렉토리경로] [링크명]
 •옵션
  -s 심볼릭 링크(바로가기 기능과 비슷)본문내용을지우면 링크는 의미가 없어짐
  옵션 선언 안하면 하드링크
  하드링크 = 링크 파일에 대한 파일 내용과 동일하게 복사

mkdir - 디렉토리 만들기
 •문법예시
mkdir [옵션] [디렉토리명]
 •옵션
  -p 디렉토리 생성시 하위 디렉토리까지 함께생성

rmdir - 디렉토리 지우기
 •디렉토리만 지우는데 내부에 파일이 존재할 시 지우지 못함
 •문법예시
  rmdir [디렉토리명]

rm - (파일 지우기) 파일을 삭제할 시 y/n으로 구분해서 지움
 •EX) rm [옵션] [파일명, 디렉토리 위치]
 •옵션
  -r 일반 파일이면 삭제 디렉토리면 디렉토리 포함한 하위 경로와 파일을 모두 삭제
  -f 삭제 하겠냐는 y/n 문구가 없이 바로삭제

mv - 파일이동 또는 이름변경
 •	문법예시
  mv [옵션] [파일원본] [이동할위치] =동일디렉토리경우 파일명변경
  mv [옵션] [파일원본] [디렉토리] = 다른 디렉토리 지정 시 이동
  mv [옵션] [디렉토리] [디렉토리] = 다른 디렉토리 지정 시 이동
  mv [옵션] [디렉토리] [디렉토리] = 동일 디렉토리 경우 디렉토리명 변경
 •	옵션 
  -b 백업 파일 만들기 
  -f 대상 파일 있어도 강제 삭제

touch - 사이즈가 0인 파일 생성
 •문법예시
touch [옵션] [생성할 파일명]
 •옵션
  -c 시스템의 현재시간으로 파일시간을 변경
  -t 특정 파일의 시간정보변경
  -r A파일의 시간정보를 B파일에 동일하게 적용

vi - 파일 내용 수정 및 파일 생성
 •문법 예시
  vi [파일명]을 입력하면 파일의 내용을 확인할 수 있는 설정 창이 뜸

unalias - 명령어 간소화 삭제하기
 •alias로 설정했던 명령어를 삭제한다.
 •문법 예시
  Unalias [설정했던 명령어]

tar - (파일 묶기)
 •문법예시
  tar [옵션] [압축할이름.tar] [압축할파일] [압축할파일]복수선택가능
 •옵션
  -c 파일을 tar로 묶음
  -v 묶거나 풀 때 과정을 출력
  -f 파일이름지정
  -t 압축파일의 목록을 보여줌
  -x  tar압축풀기

cp - 파일 복사하기
 •문법예시
 cp [옵션] [복사할 대상] [복사할 위치]
 •옵션
  -r 디렉토리 복사경우 하위 디렉토리 및 파일을 모두 복사
  -p 원본파일의 모든항목(소유주,그룹,권한,시간정보)그대로복사
  -a 원본파일의 속성, 링크정보를 유지 복사

wc - 문자, 단어, 라인 수 세기 현재 디렉터리내 개수 카운트(자주사용옵션-l)
 •문법예시
wc [옵션] 파일명
 •옵션
  -c 문자개수만 파악
  -w 단어의 개수 파악
  -l 행의 숫자를 알고 싶을 때 사용 혹은 개행문자의 개수를 알고자 할 때 사용

find - (파일 찾기)
 •문법예시
find [옵션] [‘찾을값’] [옵션]
find / -name ‘.bash*’ -ls =전체 하드에서 파일명 .bash로 시작하는 모든 파일 찾기
find –name ‘.bash*’현재 디렉토리에서 bash파일로 시작하는 모든 파일 출력

| - (Pipe) 구분자
 •명령어와 명령어 사이를 구분해준다. 복수의 명령어를 합쳐 쓸 수 있는 구분자 

grep - (특정 문자(열) 검색하기) 사용자가 지정한 문자에 한해서만 결과 출력
 •문법예시
grep [찾을 문자] [특정 파일명]
 •옵션
  -n 문자열이있는 라인과 문장 앞에 라인번호 출력
  grep ‘^b’ [찾을값] 찾을 데이터에서 b로 시작하는 줄을 보여준다.

chmod - (파일 권한 바꾸기) 위의 참조내역 숙지 후 사용
 •상단의 파일권한을 참조하여 해당파일의 권한을 설정할 수 있다.
 •문법예시
  chmod [옵션] [권한설정해줄값] [파일또는디렉토리]
 •옵션
  -R : 하위 폴더까지 권한을 바꿈

chown - (파일 주인 바꾸기) 
 •변경이 되려면 파일에 대한 소유권이 있어야만 가능
 •문법예시
 chown [변경될 소유주명] [파일명]

diff - (두파일에 대해 비교하여 틀린부분만 출력 라인위치도 보여준다.
 •문법예시
  diff [비교할 파일] [비교할 파일]

5.Network 관련

ifconfig - (IP 주소 확인 및 할당)

netstat - (현재 네트웍 상황 보기)
 (해결사례)컨테이너가 조회가 되지 않는 상황에서 네트워크로 추적하여 해결한 사례
 - 넷스테이트는 해당 프로세스의 소유주가 아닐경우 조회가 불가능함.
 - 프로세스목록으로 추적가능 -> 해당 Pid값을 알아내 
 - 해당 pid로 history 검색하여 명령어 추적하여 기동실행가능
 - 인수인계 누락 터득한 방법
 -재기동 랜덤포트 점유 지정포트만쓰자..

ping - (네트웍 확인하기)
 •문법예시
  ping [옵션] [IP주소]
  ctrl + c하면 탈출

hostname - 현재 접근한 서버명 출력

telnet - (서버 원격 접속)
 •문법예시
 •telnet [ IP주소] 
 •접속후 로그인계정 패스워드 입력해서 원격접속

ftp - (서버 원격 파일 전송)
 •	문법예시
 •	ftp [IP주소,도메인주소] ->접속후 계정과 패스워드를 입력
 •	get은 원격접속한 서버의 파일을 다운로드
 •	put은 원격접속서버에 파일을 업로드

리눅스 내 base64 인코딩 디코딩옵션 인코딩 시 csv 또는 각종확장자로 컨버팅가능

스크립트 구성방법 chmod -755 권한 부여하고 .sh 스크립트 구성

Comments