Red Hat Enterprise Linux 에서 명령줄 액세스

Red Hat Enterprise LinuxBeginner
지금 연습하기

소개

이 랩에서는 Red Hat Enterprise Linux (RHEL) 환경 내에서 Linux 명령줄 작업의 기본 세계로의 여정을 시작합니다. 사용자 및 시스템 정보를 식별하고, 사용자 비밀번호를 관리하며, 다양한 파일 유형을 검사하는 데 필요한 필수 명령에 대한 실질적인 경험을 얻게 됩니다.

실습을 통해 cat, head, tail을 사용하여 파일 내용을 보고, 파일 통계를 계산하며, 명령 기록을 효율적으로 탐색하는 방법을 배우게 됩니다. 또한, 중요한 명령줄 편집 단축키를 익혀 Linux 시스템 관리의 생산성과 숙련도를 향상시킬 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 53%입니다.학습자들로부터 99%의 긍정적인 리뷰율을 받았습니다.

사용자 및 시스템 시간 확인

이 단계에서는 시스템에 로그인된 현재 사용자를 식별하는 방법과 기본 Linux 명령을 사용하여 시스템의 현재 날짜 및 시간을 표시하는 방법을 배웁니다. 이러한 기본 명령을 이해하는 것은 모든 Linux 환경을 탐색하고 관리하는 데 매우 중요합니다.

먼저 현재 로그인된 사용자가 누구인지 알아보겠습니다. whoami 명령이 이 목적으로 사용됩니다. 이 명령은 현재 사용자의 유효 사용자 이름을 출력합니다.

터미널에 다음 명령을 입력하십시오.

whoami
whoami 명령 출력 스크린샷

출력으로 labex가 표시되어야 하며, 이는 labex 사용자로 로그인되었음을 나타냅니다.

labex

다음으로 date 명령을 살펴보겠습니다. 이 명령은 시스템 날짜 및 시간을 표시하거나 설정하는 데 사용됩니다. 옵션 없이 사용하면 기본 형식으로 현재 날짜 및 시간을 표시합니다.

date 명령을 실행하십시오.

date

출력에는 현재 요일, 월, 날짜, 시간 (HH:MM:SS), 시간대 및 연도가 표시됩니다. 정확한 출력은 명령을 실행하는 시점에 따라 달라집니다.

Mon Jul 22 10:30:45 AM UTC 2024

date 명령은 매우 유연하며 형식 지정자를 사용하여 다양한 방식으로 출력을 형식화할 수 있습니다. 예를 들어, 24 시간 형식 (HH:MM) 으로 현재 시간만 표시하려면 +%R을 사용할 수 있습니다.

시간만 표시해 보세요.

date +%R

출력은 다음과 유사합니다.

10:30

MM/DD/YYYY 형식으로 현재 날짜만 표시하려면 +%x를 사용할 수 있습니다.

날짜만 표시해 보세요.

date +%x

출력은 다음과 유사합니다.

07/22/2024

마지막으로 세미콜론 (;) 으로 구분하여 한 줄에 여러 명령을 실행할 수 있습니다. 이는 일련의 명령을 빠르게 실행하는 데 유용할 수 있습니다.

whoamidate를 같은 줄에서 실행해 봅시다.

whoami; date

두 명령의 출력이 차례대로 표시됩니다.

labex
Mon Jul 22 10:30:45 AM UTC 2024
whoami 및 date 명령 출력 스크린샷

사용자 비밀번호 관리 및 파일 유형 확인

이 단계에서는 사용자 비밀번호를 변경하는 방법과 file 명령어를 사용하여 파일 형식을 확인하는 방법을 배웁니다. 파일 형식을 이해하는 것은 Linux 에서 다양한 데이터 형식 및 실행 파일과 작업하는 데 필수적입니다.

먼저 사용자 비밀번호 변경을 연습해 보겠습니다. passwd 명령은 사용자 비밀번호를 변경하는 데 사용됩니다. labex 사용자의 경우 현재 비밀번호와 새 비밀번호를 두 번 입력하라는 메시지가 표시됩니다. labex의 현재 비밀번호는 labex임을 기억하십시오.

터미널에 다음 명령을 입력하십시오.

passwd

현재 비밀번호와 새 비밀번호를 두 번 입력하라는 메시지가 표시됩니다. 이 실습에서는 새 비밀번호를 newpass로 설정할 수 있습니다 (중요: 이 실습에서는 기본 비밀번호를 변경하지 마십시오.).

Changing password for user labex.
Current password: old_password  <-- labex를 입력하고 Enter를 누르십시오.
New password: new_password      <-- newpass를 입력하고 Enter를 누르십시오.
BAD PASSWORD: The password is shorter than 8 characters

참고: Linux 에서 비밀번호를 입력할 때 보안상의 이유로 화면에 아무것도 표시되지 않습니다. 이는 정상적인 동작이며 VM 이 응답하지 않는다는 의미가 아닙니다. 문자가 입력되는 것을 볼 수 없더라도 시스템은 계속 입력을 받고 있습니다.

비밀번호가 8 자보다 짧다는 것을 보여줍니다. 실제로는 최소 8 자 이상이고 더 복잡한 비밀번호를 설정해야 합니다. 하지만 이 실습에서는 비밀번호를 변경하지 않으므로 Enter 키를 눌러 비밀번호 변경을 건너뛸 수 있습니다.

다음으로 file 명령을 살펴보겠습니다. 이 명령은 파일 형식을 결정합니다. 파일 확장자가 없거나 오해의 소지가 있는 경우 파일에 어떤 종류의 데이터가 포함되어 있는지 이해하는 데 매우 유용합니다.

/etc/passwd 파일의 형식을 확인해 보겠습니다. 이 파일에는 시스템의 모든 사용자 계정에 대한 정보가 포함되어 있습니다.

file /etc/passwd

출력은 /etc/passwd가 ASCII 텍스트 파일임을 나타냅니다.

/etc/passwd: ASCII text

이제 현재 사용 중인 셸 프로그램인 /bin/bash와 같은 실행 파일의 형식을 확인해 보겠습니다.

file /bin/bash

출력은 /bin/bash가 실행 파일이며 아키텍처 및 기타 속성에 대한 세부 정보가 함께 표시됩니다.

/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=<omitted>, for GNU/Linux <omitted>, stripped

마지막으로 디렉토리의 형식을 확인해 보겠습니다. 예로 /home 디렉토리를 사용하겠습니다.

file /home

출력은 /home이 디렉토리임을 간단히 나타냅니다.

/home: directory

이러한 예는 file 명령이 Linux 시스템에서 다양한 파일 및 디렉토리의 특성을 신속하게 식별하는 데 어떻게 도움이 되는지 보여줍니다.

cat, head, tail 명령어로 파일 내용 검사

이 단계에서는 세 가지 필수 Linux 명령인 cat, head, tail을 사용하여 텍스트 파일의 내용을 검사하는 방법을 배우게 됩니다. 이러한 명령은 파일 내용, 특히 구성 파일 및 로그 파일을 보는 데 필수적입니다.

먼저, cat 명령을 사용해 보겠습니다. cat 명령 (concatenate 의 약자) 은 주로 파일의 내용을 표시하는 데 사용됩니다. 여러 파일을 하나로 결합하는 데에도 사용할 수 있습니다.

/etc/passwd 파일의 전체 내용을 살펴보겠습니다. 이 파일에는 사용자 계정 정보가 포함되어 있습니다.

cat /etc/passwd

터미널에 /etc/passwd 파일의 전체 내용이 출력되는 것을 볼 수 있습니다. 출력은 모든 사용자 항목을 표시하며 방대할 것입니다.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...output omitted...

이제 여러 파일과 함께 cat을 시연하기 위해 ~/project 디렉토리에 두 개의 간단한 텍스트 파일을 만들어 보겠습니다.

file1.txt를 만듭니다:

echo "Hello World!!" > ~/project/file1.txt

file2.txt를 만듭니다:

echo "Introduction to Linux commands." > ~/project/file2.txt

이제 cat을 사용하여 두 파일의 내용을 표시합니다:

cat ~/project/file1.txt ~/project/file2.txt

출력은 file1.txt의 내용 다음에 file2.txt의 내용을 표시합니다.

Hello World!!
Introduction to Linux commands.

다음으로, head 명령을 사용합니다. head 명령은 파일의 처음 몇 줄을 표시합니다. 기본적으로 처음 10 줄을 표시합니다.

/etc/passwd의 처음 10 줄을 살펴보겠습니다:

head /etc/passwd

/etc/passwd 파일의 처음 10 줄을 볼 수 있습니다.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

-n 옵션을 사용하여 표시할 줄 수를 지정할 수 있습니다. 예를 들어, 처음 3 줄을 보려면:

head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

마지막으로, tail 명령을 사용해 보겠습니다. tail 명령은 파일의 마지막 몇 줄을 표시합니다. 기본적으로 마지막 10 줄도 표시합니다.

/etc/passwd의 마지막 10 줄을 살펴보겠습니다:

tail /etc/passwd

/etc/passwd 파일의 마지막 10 줄을 볼 수 있습니다.

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:998:996:systemd Resolver:/:/sbin/nologin
systemd-network:x:997:995:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System Message Bus:/:/sbin/nologin
polkitd:x:996:994:User for polkitd:/:/sbin/nologin
unbound:x:995:993:Unbound DNS resolver:/:/sbin/nologin
tss:x:59:59:TPM software stack:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

head와 마찬가지로 -n 옵션을 사용하여 표시할 줄 수를 지정할 수 있습니다. 예를 들어, 마지막 3 줄을 보려면:

tail -n 3 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

이러한 명령은 텍스트 편집기에서 열지 않고 파일 내용을 빠르게 검사하는 데 매우 유용하며, 특히 파일이 크거나 특정 부분만 확인해야 할 때 유용합니다.

파일 통계 계산 및 명령어 히스토리 사용

이 단계에서는 wc 명령을 사용하여 파일의 줄, 단어 및 문자를 계산하는 방법과 터미널에서 명령 기록 기능을 효과적으로 사용하는 방법을 배우게 됩니다. 명령 기록을 관리하는 것은 효율성을 높이고 이전에 실행한 명령을 다시 호출하는 데 매우 중요합니다.

먼저, wc 명령 (word count) 을 살펴보겠습니다. 이 명령은 파일의 줄, 단어 및 문자 수를 계산하는 데 사용됩니다.

/etc/passwd 파일의 줄, 단어 및 문자를 계산해 보겠습니다:

wc /etc/passwd

출력은 파일 이름 다음에 세 개의 숫자, 즉 줄, 단어 및 문자를 표시합니다. 정확한 숫자는 시스템 구성에 따라 약간 다를 수 있습니다.

41   98 2338 /etc/passwd

옵션을 사용하여 특정 개수만 표시할 수 있습니다:

  • -l (줄)
  • -w (단어)
  • -c (문자)

/etc/passwd/etc/group (사용자 그룹에 대한 정보가 포함됨) 의 줄 수만 계산해 보겠습니다. 세미콜론을 사용하여 한 줄로 수행할 수 있습니다.

wc -l /etc/passwd
wc -l /etc/group

각 파일의 줄 수를 볼 수 있습니다:

41 /etc/passwd
63 /etc/group

이제 /etc/group/etc/hosts (호스트 이름을 IP 주소에 매핑) 의 문자 수만 계산해 보겠습니다.

wc -c /etc/group /etc/hosts

출력은 각 파일의 문자 수와 총 개수를 표시합니다.

883 /etc/group
114 /etc/hosts
997 total

다음으로, 명령 기록에 대해 배우겠습니다. 셸은 실행한 모든 명령의 기록을 유지합니다. 이는 명령을 다시 실행하거나 이전에 수행한 작업을 기억하는 데 매우 유용합니다.

명령 기록을 표시하려면 history 명령을 사용하십시오:

history

현재 세션 및 이전 세션에서 입력한 모든 명령의 번호가 매겨진 목록을 볼 수 있습니다. 출력은 활동에 따라 크게 달라집니다.

...output omitted...
   23  clear
   24  whoami
   25  date
   26  file /etc/passwd
   27  cat /etc/passwd
   28  head /etc/passwd
   29  tail /etc/passwd
   30  wc /etc/passwd
   31  history

느낌표 (!) 다음에 명령 번호 또는 문자열을 사용하여 기록에서 명령을 다시 실행할 수 있습니다.

예를 들어, 번호 26 (위 예에서 file /etc/passwd였지만, 사용자에게는 다를 것임) 의 명령을 다시 실행하려면, history 출력에서 해당 번호를 찾아서 사용하십시오:

!26 ## 26을 기록에서 'file /etc/passwd'의 실제 번호로 바꿉니다.

셸은 먼저 실행하려는 명령을 표시한 다음 출력을 표시합니다:

file /etc/passwd
/etc/passwd: ASCII text

특정 문자열로 시작하는 가장 최근의 명령을 다시 실행할 수도 있습니다. 예를 들어, wc로 시작하는 마지막 명령을 다시 실행하려면:

!wc

이렇게 하면 마지막으로 실행한 wc 명령이 실행됩니다.

wc -c /etc/group /etc/hosts
883 /etc/group
114 /etc/hosts
997 total

이러한 기록 기능은 복잡한 명령을 다시 입력하지 않고도 빠르게 호출하고 다시 실행할 수 있도록 하여 워크플로우 속도를 크게 향상시킬 수 있습니다.

명령줄 편집 단축키 연습

이 단계에서는 유용한 명령줄 편집 단축키를 배우고 연습합니다. 이러한 단축키는 터미널에서 명령을 입력하고 수정할 때 효율성을 크게 향상시켜 마우스를 계속 사용하지 않고도 텍스트를 탐색하고 편집할 수 있도록 합니다.

먼저, 여러 줄에 긴 명령을 작성하는 방법을 이해해 보겠습니다. 이렇게 하면 복잡한 명령의 가독성을 높일 수 있습니다. 줄 끝에 백슬래시 (\) 를 사용하여 명령이 다음 줄로 계속됨을 나타낼 수 있습니다.

여러 줄 명령을 사용하여 두 개의 사전 파일의 처음 3 줄을 표시해 보겠습니다. 이러한 파일은 일반적으로 Linux 시스템에서 찾을 수 있으며 단어 목록을 포함합니다.

head -n 3 \
  /home/labex/project/words \
  /home/labex/project/linux.words

첫 번째 줄 다음에 Enter 키를 누르면 터미널에 > 프롬프트 (또는 유사한) 가 표시되어 명령의 나머지 부분을 기다리고 있음을 나타냅니다. 나머지 부분을 입력하고 다시 Enter 키를 누릅니다.

==> /home/labex/project/words <==
1080
10-point
10th

==> /home/labex/project/linux.words <==
1080
10-point
10th

이제 몇 가지 명령줄 편집 단축키를 연습해 보겠습니다. 이러한 단축키는 대부분의 최신 Linux 터미널 (Bash 또는 Zsh 와 같은) 에서 작동합니다.

긴 명령을 입력하되, 아직 Enter 키를 누르지 마십시오:

echo "This is a very long command that we will edit using shortcuts."
  • Ctrl+A: 명령줄의 시작 부분으로 이동합니다.
    • 위의 명령을 입력한 다음 Ctrl+A를 누릅니다. 커서가 줄의 시작 부분으로 이동합니다.
  • Ctrl+E: 명령줄의 끝 부분으로 이동합니다.
    • Ctrl+A를 누른 후 Ctrl+E를 누릅니다. 커서가 줄의 끝 부분으로 다시 이동합니다.
  • Ctrl+U: 커서에서 명령줄의 시작 부분까지 지웁니다.
    • 명령을 다시 입력합니다. 줄 중간 (예: "very" 뒤) 에 커서를 놓습니다. Ctrl+U를 누릅니다. 커서에서 시작 부분까지의 텍스트가 삭제됩니다.
  • Ctrl+K: 커서에서 명령줄의 끝 부분까지 지웁니다.
    • 명령을 다시 입력합니다. 줄 중간 (예: "very" 뒤) 에 커서를 놓습니다. Ctrl+K를 누릅니다. 커서에서 끝 부분까지의 텍스트가 삭제됩니다.
  • Ctrl+LeftArrow (또는 Alt+B): 명령줄에서 이전 단어의 시작 부분으로 이동합니다.
    • 명령을 다시 입력합니다. 줄 끝에 커서를 놓습니다. Ctrl+LeftArrow를 반복해서 눌러 단어별로 왼쪽으로 이동합니다.
  • Ctrl+RightArrow (또는 Alt+F): 명령줄에서 다음 단어의 끝 부분으로 이동합니다.
    • 줄 시작 부분에 커서를 놓습니다. Ctrl+RightArrow를 반복해서 눌러 단어별로 오른쪽으로 이동합니다.
  • Ctrl+R: 명령 기록 목록에서 패턴을 검색합니다.
    • Ctrl+R을 누릅니다. (reverse-i-search) 프롬프트가 나타납니다. 이전에 실행한 명령의 일부 (예: date) 를 입력하기 시작합니다. 터미널은 기록에서 일치하는 가장 최근의 명령을 표시합니다. Ctrl+R을 계속 눌러 이전 일치를 순환합니다. Enter 키를 눌러 찾은 명령을 실행하거나 왼쪽/오른쪽 화살표 키를 눌러 편집합니다.

이러한 단축키는 익숙해지면 명령줄 상호 작용 속도를 크게 높여줍니다. 근육 기억을 구축하기 위해 정기적으로 연습하십시오.

요약

이 랩에서는 사용자 및 시스템 정보를 식별하기 위한 기본적인 Linux 명령을 배웠습니다. 현재 로그인한 사용자를 확인하기 위해 whoami를 사용하고, 시간의 +%R 및 날짜의 +%x와 같은 다양한 형식 옵션을 포함하여 시스템의 현재 날짜와 시간을 표시하기 위해 date를 사용하는 연습을 했습니다. 또한, 세미콜론을 사용하여 한 줄에서 여러 명령을 실행하는 방법을 익혀 명령줄 환경의 효율성을 높였습니다.