리눅스 기본 명령어 정리

양승현·2022년 8월 3일
0

linux

목록 보기
17/20

절대 경로

  • 루트 디렉터리에서 시작하여 목적지 디렉터리로 향하는 경로
  • 현재 디렉터리가 어디인지 관계없이 해당 파일(디렉터리)를 지정하는 경로는 동일하다.
  • 루트 디렉터리 지정 방법
/
  • 따라서 루트 디렉터리 아래에 있는 usr에 가고 싶다면 다음과 같이 표시한다.
/usr
  • 만약 hyun으로 가고 싶다면 다음과 같이 표시한다.
/yang/seung/hyun

상대 경로

  • 현재 자신의 위치, 즉 현재 디렉터리에서 목적지를 향하는 경로를 나타낸다.
  • 현재 디렉터리가 다르면 목적 디렉터리가 같아도 경로는 달라진다
  • 예를 들어 /yang/seung/hyun일때 usr 디렉터리와 win 파일을 상대 경로로 지정하면 다음과 같다
./../../../usr
./win
  • 맨 앞에 .(닷)은 현재 디렉터리를 의미하고, ..은 1단계 위에 있는 디렉터리(부모 디렉터리)를 의미한다.(./은 생략이 가능하다.)

리눅스 기본

  • 리눅스의 파일 시스템은 트리 형태를 갖는다.
  • 최상단 : /(루트 파일 시스템)
  • root, etc, home, var, usr, boot
root -> root 사용자(super user) 홈 디렉토리
home -> 일반 사용자들의 홈 디렉토리가 있는 공간
etc -> 구성파일들이 존재하는 디렉토리
var -> 시스템 내에서 실시간으로 만들어지는 log와 같은 파일들이 담긴다.
usr -> 주로 실행파일들이 존재한다.
boot -> 부팅을 위한 커널이 존재하는 공간

기본적으로 알아두어야 할 파일

/etc/hosts

PC나 서버는 도메인 이름을 입력했을 경우 1. 캐시 검색, 2. /etc/hosts 파일 검색, 3.DNS 서버에게 Query한다.

/etc/hostname

[root@yang ~]# 
root : 현재 사용자
yang : 서버의 이름
  • ~ : 현재 위치가 root의 홈 디렉토리이다.(/root)
[root@yang ~]# hostnamectl set-hostname websrv
[root@yang ~]# cat /etc/hostname
websrv
[root@yang ~]# su  <-- root로 재 로그인
[root@websrv ~]#
  • DC에서는 /etc/hostname에 DC 내의 서버들의 이름과 IP를 등록해 둔다.
  • 하지만 서버가 너무 많다면 DC내에 사설 DNS를 구축하여 사용할 수 있다.

파일 다루기

ls (파일명 표시)

ls

  • ls는 디렉터리 안에 있는 파일이나 디렉터리를 알아보기 위해 사용하는 명령어이다.

ls -F

  • 파일, 실행파일, 디렉터리를 구분하기 위해 사용
/ 디렉터리
@ 심볼릭 파일
* 실행 가능 파일

ls -a

  • 일반 파일(디렉터리) 외에 닷 파일 표시

ls -l

  • 최종 갱신일 및 파일 소유자, 권한 표시

mkdir (디렉터리 작성)

mkdir

  • 디렉터리 생성

mkdir -p

  • 지정한 디렉터리 경로가 존재하지 않으면 중간에 있는 디렉터리와 새로운 디렉터리를 함께 생성한다.
$ mkdir -p yang1/yang2 -> yang1과 yang2는 없는 디렉토리이므로 둘다 생성

cat (파일 내용 표시)

cat

  • 텍스트 파일의 내용을 표시한다.

cat -n

  • 표시할 파일의 내용에 줄 번호를 추가한다.

cat yang1 > yang2

  • yang1의 파일 내용을 yang2 파일에 저장합니다. (yang2은 없어도 자동으로 생성되며 파일 내용도 함께 저장된다.)

cp (파일 복사)

cp

  • 파일을 복사할때 사용

cp -i

  • 같은 이름의 파일이 있으면 덮어쓰기 여부를 확인한다. (보통 vi ~/.bashrc에 alias 별칭으로 저장해 사용한다.)

cp -r

  • 디렉터리 통채로 복사한다.

cp yang1 yang2

  • yang1의 파일을 yang2로 복사하면서 이름을 yang2로 변경한다. (yang2은 없어도 자동으로 생성되며 파일 내용도 함께 저장된다.)

mv (파일 이동)

mv

  • 파일을 이동할때 사용

mv -i

  • 같은 이름의 파일이 있으면 덮어쓰기 여부를 확인한다. (보통 vi ~/.bashrc에 alias 별칭으로 저장해 사용한다.)

mv yang1 yang2

  • yang1의 이름을 yang2로 이동하면서 이름을 yang2로 변경한다. (yang2은 없어도 자동으로 생성되며 파일 내용도 함께 저장된다.)

rm (파일 삭제)

rm

  • 파일을 삭제한다.

rm -i

  • 삭제 여부를 사용자에게 확인한다. (보통 vi ~/.bashrc에 alias 별칭으로 저장해 사용한다.)

rm -r

  • 비어있지 않은 디렉토리 삭제

rm -f

  • 파일 삭제(force, 물어보지말고 그냥 삭제)

rm yang1 yang2 yang3

  • yang1, yang2, yang3 파일을 한번에 삭제한다.

tree

yum -y install tree

touch (파일 날짜 변경)

touch

  • 파일의 최종 갱신일을 현재 시각으로 변경한다. 파일이 존재하지 않으면 빈 파일을 새롭게 생성한다.

touch -t

  • touch -t 202208031530 yang 형식으로 작성한다면 해당 파일의 최종 갱신일을 2022년 8월 3일 15시 30분으로 변경한다.

pwd, cd (현재 디렉터리 표시, 변경)

pwd

  • 현재 디렉터리를 표시한다.

cd yang

  • yang 디렉터리로 이동한다.

cd

  • 홈 디렉터리로 이동한다.

rmdir, rm -r(디렉터리 삭제)

rmdir

  • 비어 있는 dir 디렉터리를 삭제한다.

rm -rf

  • 해당 디렉터리를 통째로 삭제한다. (-r 지정한 디렉터리를 통째로 삭제, -f 사용자 확인 없이 모두 삭제)

clear (터미널 출력 내용 지우기)

clear

  • 터미널 상 출력 내용을 지운다.

head (파일 앞부분 표시)

head yang

  • yang 파일의 앞부분 10줄을 표시한다.

head -3 yang

  • yang 파일의 앞부분 3줄을 표시한다.

tail (파일 끝부분 표시)

tail yang

  • yang 파일의 끝부분 10줄을 표시한다.

tail -3 yang

  • yang 파일의 끝부분 3줄을 표시한다.

uniq (중복 내용 제거해서 표시)

uniq yang

  • 텍스트 파일 yang 각 줄의 전후로 비교하여 중복을 제거해서 표시한다.

uniq -u

  • 중복되지 않은 줄만 출력한다.

uniq -d

  • 중복되는 줄만 출력한다.

grep (파일 내 문자열 검색)

grep hello yang

  • hello로 지정한 문자열이 yang으로 지정한 파일에 있는지 검색해서 해당하는 문자열을 포함한 줄을 검색한다.

grep ^hello yang

  • yang파일에 hello로 시작하는 줄이 있는지 검색하여 표시한다.

grep -n hello yang

  • yang파일에 hello라는 문자열을 포함하는 줄과 줄 번호를 표시한다.

ls | grep a

  • 현재 디렉터리에서 a 라는 이름의 디렉토리나 파일이 있다면 화면에 보여달라.

chown, chgrp(파일 소유자, 소유 그룹 변경)

chmod -R

  • 서브 디렉터리 이하도 한꺼번에 변경된다.

chmod u+x yang

  • yang 파일의 권한을 소유자가 쓰기 가능하도록 변경한다. (연산자를 사용한 방식)

chmod 777 yang

  • yang 파일의 권한을 소유자가 읽고, 쓰고, 실행 가능하도록 변경한다. (8진수를 사용한 방식)

권한 설정

[연산자 사용 방식]

- 대상 : 소유자(u), 소속 그룹(g), 기타(o), 모두(a)
- 설정 방법 : 추가(+), 삭제(-), 새로 설정(=)
- 허가 조건 : 읽기(r), 쓰기(w), 실행(x)

[8진수 사용 방식]

- 소유자(0~7) + 소속 그룹(0~7) + 기타(0~7)

gzip, ungzip (파일 압축 및 풀기)

gzip yang

  • yang파일을 gzip형식으로 압축한다.

ungizp yang.gz

  • gzip형식의 yang.gz파일을 압축 해제한다.


프로그램 관리하기

ps (프로세스 상태 표시)

ps

  • 현재 실행중인 프로세스 상태를 표시한다.
   PID TTY          TIME CMD
  2704 pts/0    00:00:02 bash
 18124 pts/0    00:00:00 ps
  • PID는 프로세스 ID, TTY는 프로세스가 실행된 터미널, TIME은 CPU 시간, CMD는 실행한 명령어 이다.

ps 1000

  • 프로세스 ID가 1000인 프로세스 상태를 표시한다.

Kill (프로그램 종료)

kill 100

  • 프로세스 ID가 100인 프로세스를 종료한다.

kill %1

  • 작업 번호 1인 프로세슷를 종료한다.

sleep (특정 시간만큼 재우기)

sleep 3

  • 3초간 정지후 다시 동작한다.

sleep 1m 30s

  • 1분 30초간 정지후 다시 동작한다.(d일h시m분s초)


사용자 & 시스템 정보 표시,변경하기

date(현재 시각 표시,변경)

date

  • 현재 시각을 표시한다.

date 080316002022

  • 현재 시각을 8월 3일 06시 00분 2022년으로 설정한다.

cal (달력 표시)

cal

  • 오늘 날짜의 달력을 표시한다

cal 4 2022

  • 22년 4월 달력을 표시한다

whoiam, groups, id (사용자 정보 표시)

whoiam

  • 자신의 사용자 명을 표시한다.

groups

  • 자신이 소속된 그룹명을 표시한다.
  • groups user - user 사용자가 소속된 그룹명을 표시한다.

id

  • 자신의 사용자 정보를 상세히 표시한다.
  • id user - user의 사용자 정보를 상세히 표시한다.

w (로그인한 사용자 정보를 표시)

w

  • w 명령어를 실행하면 다음과 같은 사용자 정보를 보여준다.

passwd (암호 변경)

passwd

  • 자신의 암호를 변경해준다.

passwd yang

  • 일반 사용자의 비밀번호를 잊어 버렸다면 슈퍼 사용자 root로 비밀번호를 변경 할 수 있다.

df (디스크 용량, 사용량 표시)

df

  • 애플리케이션 설치나 큰 파일을 작성할 때 여유 공간이 충분한지 확인하기 위한 명령어 이다.

df -h

  • 사람이 읽기 쉬운단위로 표시한다.

uname (시스템 정보 표시)

uname

  • 시스템 명을 표시한다.

uname -a

  • 모든 시스템 정보를 표시한다.
Linux -> 시스템 명 
kvm1 -> 호스트 명
5.18.15-1.el7.elrepo.x86_64 -> Os 릴리스 번호
#1 SMP PREEMPT_DYNAMIC Thu Jul 28 09:26:15 EDT 2022 -> 커널 컴파일 정보
x86_64 -> 머신 타입
x86_64 -> 프로세서 타입
x86_64 -> 파드웨어 플랫폼
GNU/Linux -> Os

다음 내용은 추후에 다시 정리 하겠습니다. 215

0개의 댓글