[클라우드 With리눅스/리눅스 기본명령어(1)]

SooYeon Yeon·2022년 8월 18일

리눅스 실습에 필요한 기본 명령어

=, echo 변수 & 출력

# 변수 만들기
# 띄어쓰기 하면 안됨
a="hello"

a = $(date) # 괄호 안의 문자열을 명령으로 처리하여 결과를 a에 넣음

# 변수 출력
echo $a # hello 출력

# 변수 출력
echo ${a}님 반갑습니다
 # 출력 : hello님 반갑습니다

date

  • 현재 날짜, 시간 정보 출력
# 현재 날짜, 시간 정보 출력
date 
# 출력 : Fri Jul 15 11:21:40 KST 2022

a = $(date)
echo $a
# 출력 : Fri Jul 15 11:21:40 KST 2022

a=$(date +%y%m%d)
echo $a
# 출력 : 220715

echo $?

  • 명령 실행 결과 코드에서 “0”을 제외한 나머지는 모두 error
echo $?

>

  • 해당 명령어를 > 오른쪽에 있는 곳에 저장
# date를 출력하지 않고, result.txt에 저장함
date > result.txt

# txt파일 내용 보기
cat result.txt

일반 부등호는 정상 실행에 대한 결과값을 전달 하는 것

표준 입력 코드 : 0

표준 출력 코드 : 1

표춘 에러 코드 : 2

ping www.google.com -c 1 > result.txt # 정상적으로 저장

pin www.google.com -c 1 > result.txt # 아무것도 저장되지 않음

pin www.google.com -c 1 2 > result.txt # 오류에 대해서만 에러를 저장하겠다는 뜻

Linux 기본

리눅스의 파일 시스템은 트리형태를 갖는다.

최상단 : / (루트 파일 시스템)

root(디렉토리), etc, home, var, usr …

root

  • root 사용자 (super user) 홈 디렉토리
[root@localhost ~]# ls /root
123              check.sh   Downloads             Pictures   Videos
anaconda-ks.cfg  Desktop    initial-setup-ks.cfg  Public     yang
a.txt            Documents  Music                 Templates

home

  • 일반 사용자들의 home 디렉토리가 있는 공간
[root@localhost ~]# cd
[root@localhost ~]# ls /home
user1

etc

  • 구성 파일들이 존재하는 디렉토리
[root@localhost ~]# ls /etc
abrt                        hosts.deny                printcap
adjtime                     hp                        profile
aliases                     httpd                     profile.d
aliases.db                  idmapd.conf               protocols
alsa                        init.d                    pulse
alternatives                inittab                   purple
anacrontab                  inputrc                   python
...

var

  • 시스템 내에서 실시간으로 만들어지는 로그와 같은 파일들이 담긴다.
[root@localhost ~]# ls /var
account  cache  db     games   kerberos  local  log   nis  preserve  spool  www
adm      crash  empty  gopher  lib       lock   mail  opt  run       tmp    yp

usr

  • 주로 실행파일들이 존재
  • /usr/bin/zip -d … 을 해야하지만, $PATH 변수 안에 zip만 입력해서 사용할 수 있게 함
ls /usr/bin
touch hello # hello 파일 만들기
ls

gedit hello # hello 파일편집기로 열기
#!/bin/bash

echo "hello all"

저장 후 닫기

# 실행 권한 부여
chmod +x hello

# 실행하기 위한 두가지 방법
[root@localhost ~]# /bin/bash hello
hello all

[root@localhost ~]# ./hello
hello all

# 파일 이동
mv hello /usr/bin

# 이제 hello 파일은 실행파일이므로 hello 라고만 쳐도 실행할 수 있다. PATH 변수에서 명령어를 확인
[root@localhost ~]# hello
hello all

boot

  • 부팅을 위한 커널이 존재하는 공간

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

  1. /etc/hosts

    # cat : 파일 보기
    [root@localhost ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    • PC나 서버는 도메인 이름을 입력했을 경우
    1. 캐시 검색
    2. /etc/hosts 파일 검색
    3. DNS 서버에게 query
    # 파일편집기 열기
    gedit /etc/hosts
    
    # 마지막에 해당라인 추가 후 저장
    211.183.3.1 myhome
    
    # ping 보내기
    ping -c 3 myhome
  1. etc/hostname

    • 서버의 이름을 정의하는 파일
    root@testserver ~]# cat /etc/hostname
    testserver

    root : 현재 사용자

    testserver : 서버의 이름

    ~ : 현재 위치가 root의 홈 디렉토리이다. (/root)

    서버의 이름 수정하는 방법 두가지

    1. 해당 파일의 내용을 직접 바꿔서 저장 후 재로그인

    2. 쉘 이용 후 재로그인

      # 파일 수정
      hostnamectl set-hostname websrv
      # root로 재로그인
      su

    데이터 센터에서는 /etc/hostname에 DC 내의 서버들의 이름과 IP를 등록해 둔다.

    하지만, 서버가 너무 많다면 DC 내에 사설 DNS를 구축하여 사용할 수 있다.

    srv1.mycompany.pri 이런식으로 접속할 수 있다.

    CD를 이용하여 경로 이동하기

    • 리눅스는 트리형태이므로 다른 디렉토리로 직접 이동하는 것은 불가능하다.
    • 반드시 트리를 따라 이동해야한다.
    • 이동하는 방법은
      1. 절대 경로
        • 일반적으로 / (루트 파일시스템)부터 시작하여 최종 목적지까지의 디렉토리를 순차적으로 작성한다.
        • 현재 사용자의 위치와 관계없이 어느 곳에서든 동일한 경로로 이동할 수 있다.
        • /etc/sysconfig
      2. 상대 경로
        • 주로 .과 ..을 이용하여 경로를 작성한다. 현재 사용자의 위치에 따라 이동하는 경로가 달라진다.
        • 상위 디렉토리를 의미하는 것은 .. 이다
        • .은 현재
        • user1의 상위 디렉토리인 home을 빠져나오려면 .. 을하면 root로 오게되고, 그 후로 진행 가능
        • ../etc/sysconfig

    GUI 환경에서 애플리케이션을 이용한 IP 변경, wireless 연결 등은 NetworkManager을 이용한다.

    만약 파일을 직접 변경하면 적용은 바로 되지 않는다. 반드시 서비스를 갱신시켜주어야 한다.

    파일변경 후에는 서비스를 갱신하면 서비스가 설정파일을 읽어들이고 이를 서비스 환경에 반영한다.

0개의 댓글