리눅스(linux)는 오픈소스 기반이라 종류도 다양하고, 요즘은 GUI환경이 잘 나와서 예전보다는 쉽게 접근할 수 있을것도 같애요.
하지만 명령어를 모르고서는 리눅스를 제대로 쓴다고 못하겠죠.




 위 그림과 같이 사용자(client)가 명령어를 쉘환경에서 입력하면 리눅스는 입력된 명령어를 처리해서
사용자에게 결과값을 출력하게 됩니다.

리눅스에는 많은 명령어가 있고 처음부터 모든 명령어를 알고 사용하기에는 너무 힘들겁니다.
그래서 그 많은 리눅스 명령어중에 가장 기본이 되고 많이 사용하는 명령어 위주로만 적었습니다.



<파일 디렉토리 관련 명령어>
ls : 현재 디렉토리 안에 있는 파일 보기

-l : 파일 허용여부, 소유자, 그룹, 크기, 날짜등을 출력
-i : inode table 번호 표시.
-lih : 크기의 단위표시
-li : 파일 위치,파일명,퍼미션,등등 상세히 보여주며 inode table 번호도 표시됨
-m : 파일을 쉼표로 구분하여 가로로 출력
-F : 파일의 형태와 함께 출력한다.
-a : 디렉토리 내의 모든 파일 출력
-ld : 디렉토리의 권한 확인
-R : 서브 디렉토리의 내용을 포함하여 출력
-S : 파일 크기가 큰 순서로 출력
-ldi : ld+i


cd(change directory) : 디렉토리 이동

cd /OO : 절대 경로
cd OO : 상대 경로(순차적으로 왔다갔다 가능)
cd . : 현재 디렉토리
cd .. : 상위 디렉토리로 이동
cd + ~ : 홈 디렉토리( = cd )
cd + - : 이전 디렉토리


pwd(print working directory) : 현재 위치 확인

touch [파일명] : 파일생성

cat : 텍스트 파일 내용을 표준 출력장치로 출력
cat > [파일명] : 파일 생성 명령어
cat >> [파일명] : 파일에 내용 추가


mkdir [디렉토리명] : 디렉토리 생성

rm –rf [디렉토리/파일]: 강제로 지움

cp [복사할 원본 경로][목적지경로]
-r : 하위디렉토리 전부 복사

mv [원본경로] [목적지경로] : 파일/디렉토리 이동,이름변경
mv [기존파일명] [변경파일명]


find [찾을위치] -name [찾을파일/디렉토리명] : 찾기
ex) find / -name etc*

du [옵션] [파일 및 디렉토리 명] : 지정된 디렉토리의 디스크 사용량 표시
-h : 경로 및 정보+용량 크기
-s : 사용량의 총 합계만 출력
-S : 하위 디렉토리를 합치지 않고, 각각 나눠 계산
-sh : 현재 디렉토리+용량 크키
-k : 결과 값을 KB단위로 출력 (기본값)
-m : 결과 값을 MB단위로 출력
-a(--all) : 디렉토리가 아닌 모든 파일의 정보를 출력


<퍼미션 관련 명령어>
-rwxr-xr-x.  2 root  root  124 Mar  7 16:00 .bashrc

유형(1자리)+user(3자리)+group(3자리)+others(3자리)
유형 : -(파일), d(디렉토리), ㅣ(링크)
퍼미션 : r(read, 4, 2진수로 100), w(write, 2, 2진수로 10), x(execute, 1, 2진수로 1)

chmod [퍼미션 값][파일] : 파일 권한 변경

chown [사용자명][파일명] : 소유자 변경

chgrp [사용자명][파일명] : 소유자그룹 변경


<압축/풀기 관련 명령어>
tar 압축/해제
압축 : tar -cvf [파일명.tar][폴더명]
해제 : tar -xvf [파일명.tar]

gzip
압축 : gzip [파일명]
해제 : gunzip [파일명.gz]

tar.gz 압축/해제
압축 : tar -zcvf [파일명.tar.gz][폴더명]
해제 : tar -zxvf [파일명.tar.gz]

-v 묶거나 파일을 풀 때 과정을 화면으로 출력
-f 파일 이름을 지정
-c 파일을 tar로 묶음
-x tar 압축을 풂
-z gzip으로 압축하거나 해제함
-p 파일 권한을 저장
-C 경로를 지정


<프로세스/네트워크 관련 명령어>
프로세스 확인/죽이기

확인 : ps -ef | grep [프로세스명]
ex) ps -ef | grep httpd

죽이기 : kill -9 [PID]
ex) kill -9 23960


ifconfig : 컴퓨터의 IP주소 정보, 네트워크 인터페이스 구성
ping : 네트워킹 상태를 확인 (생존유무)
nslookup : 네임서버 관련 조회
route –n : 라우터 연결 정보
traceroute : 목적지에 도착하기 위한 방문 순서
arp : IP 주소를 하드웨어 주소로 사상 검사와 관리
netstat : 네트워크 상태 알아보기


<계정 및 기타 명령어>
who : 현재 접속된 계정 확인
whoami : 현재 계정
id : 해당 id에 대한 정보
su : root로 로긴, su [계정명] : 해당계정으로 로긴
useradd [계정명] : 계정추가
userdel [계정명] : 계정삭제
passwd [계정명] : 계정비밀번호설정 및 변경


clear : 화면지우기
man : 옵션등 메뉴얼보기
tab키 : 자동완성
ctrl+w(word) : 한 단어씩 삭제
ctrl+u(undo) : 전부삭제