ubuntu bash pdf 명령을 관리합니다. Linux 명령줄 인터프리터 선택. 디렉토리만 보는 방법

이 기사를 읽고 나면 그것이 무엇인지 알게 될 것입니다. 세게 때리다(표준 Linux 명령 해석기), 표준 명령 사용 방법을 알아보세요. ㅋㅋㅋ, CP, mv...inode, 하드 링크 및 기호 링크 등의 목적을 이해합니다.

이 튜토리얼은 Linux를 처음 접하는 사용자와 파일 복사 및 이동, 링크 생성, 표준 명령리디렉션 및 파이프와 함께 Linux. 이 기사에서는 제시된 자료를 설명하는 많은 예를 찾을 수 있습니다. 초보자에게는 대부분의 정보가 새로운 것이지만, 고급 사용자에게는 이 자료가 기존 지식과 기술을 요약하는 훌륭한 도구가 될 수 있습니다.

배쉬 소개

껍데기

Linux를 사용하는 경우 로그인 후 명령 해석기 프롬프트가 표시된다는 것을 알고 계실 것입니다. 예를 들면 다음과 같습니다.

\$

로그인 후 로드되면 그래픽 쉘, 그런 다음 명령 해석기로 이동하려면 터미널 에뮬레이터(gnome-terminal, xfce4-terminal, konsole, xterm, rxvt...)를 시작하거나 다음을 클릭하여 가상 터미널 중 하나로 전환해야 합니다. Ctrl 키AltF1또는 Ctrl 키AltF2등.

컴퓨터의 쉘 프롬프트는 예제에 표시된 것과 다를 수 있습니다. 여기에는 사용자 이름, 컴퓨터 이름 및 현재 작업 디렉터리의 이름이 포함될 수 있습니다. 그러나 이러한 모든 차이점에도 불구하고 이 초대장을 인쇄하는 프로그램은 " 껍데기"(쉘)이며 명령 쉘은 다음과 같은 프로그램일 가능성이 높습니다. 세게 때리다.

배쉬를 실행하고 있나요?

다음 명령을 사용하여 bash가 실행 중인지 확인할 수 있습니다.

\$ 에코 \$SHELL/bin/bash

이 명령을 실행한 결과 오류가 발생하거나 해당 출력이 예제의 결과와 다른 경우 시스템이 bash를 명령 셸로 사용하지 않을 가능성이 있습니다. 그럼에도 불구하고 대부분의 자료는 관련이 있지만 여전히 bash로 전환하는 것이 좋습니다. 이는 다음 명령을 사용하여 수행할 수 있습니다(bash가 시스템에 설치된 경우).

\$ 세게 때리다

배쉬 란 무엇입니까?

Bash('의 약어) 우리네- 얻다 ell")은 대부분의 Linux 시스템의 표준 명령 해석기입니다. 그의 책임에는 사용자가 컴퓨터를 제어하는 ​​명령을 처리하고 실행하는 것이 포함됩니다. 완료되면 쉘 프로세스를 종료할 수 있습니다. 키를 누른 후 Ctrl 키, 팀 출구또는 로그 아웃쉘 프로세스가 종료되고 사용자 이름과 비밀번호를 다시 입력하라는 메시지가 표시됩니다.

"CD"를 사용하여

bash를 사용하여 탐색을 시작해 보겠습니다. 파일 시스템. 시작하려면 다음 명령을 입력하십시오.

$ CD/

이 명령을 사용하여 우리는 루트 디렉터리로 이동하고 싶다는 것을 bash에 표시했습니다. / . 시스템의 모든 디렉토리는 트리 구조로 구성되어 있으며 / 이것이 시작(또는 루트)입니다. 팀 CD현재 작업 디렉토리를 변경하는 역할을 합니다.

경로

파일 시스템의 위치를 ​​찾으려면 이 순간현재 작업 디렉토리에 있습니다. 다음을 입력하세요.

\$ 비밀 /

위의 예에서 / - 명령 인수 CD- 라고 불리는 . 이는 이동하려는 파일 시스템의 위치입니다. 안에 이 경우 / - 절대 경로, 이는 경로가 루트 디렉토리에 상대적임을 의미합니다.

절대 경로

다음은 절대 경로의 몇 가지 예입니다.

/dev /usr /usr/bin /usr/local/bin

이미 눈치채셨겠지만, 이 모든 경로는 다음으로 시작한다는 공통점이 있습니다. / . /usr/local/bin 경로를 명령에 대한 인수로 지정하여 CD우리는 그녀에게 루트 디렉토리로 가라고 말합니다 / , usr 디렉토리, local 및 bin으로 이동합니다. 절대 경로는 항상 다음으로 시작합니다. /

상대 경로

두 번째 유형의 경로를 상대 경로라고 합니다. 세게 때리다, 팀 CD다른 명령은 현재 디렉터리를 기준으로 이러한 경로를 계산합니다. 상대 경로는 다음으로 시작하지 않습니다. / . 예를 들어, /usr에 있다면

\$ CD /usr

그런 다음 상대 경로를 사용하여 /usr/local/bin으로 이동할 수 있습니다.

\$ CD 로컬/빈 \$ 비밀/usr/로컬/빈

용법 ".."

상대 경로에는 하나 이상의 디렉터리가 포함될 수 있습니다. «..» . ".."는 작업 디렉토리의 상위 디렉토리를 나타냅니다. 예:

\$ 비밀/usr/로컬/bin\$ CD.. \$ 비밀/usr/로컬

보시다시피 팀은 CD..'우리를 더 높은 수준으로 끌어올린다'.

추가 가능 .. 상대 경로로. 이를 통해 현재 있는 디렉터리와 동일한 수준의 디렉터리로 이동할 수 있습니다. 예:

\$ 비밀/usr/로컬\$ CD ../공유 \$ 비밀/usr/공유

상대 경로를 사용하는 예

상대 경로는 매우 까다로울 수 있습니다. 여기 몇 가지 예가 있어요. 명령 실행 결과는 표시되지 않습니다. bash를 사용하여 어느 디렉터리에 있을 것인지 결정해 보세요.

\$ CD/빈 \$ CD ../usr/share/zoneinfo \$ CD /usr/X11R6/bin \$ CD ../lib/X11 \$ CD /usr/빈 \$ CD ../bin/../bin

작업 디렉토리 "."

팀 이야기를 마치기 전에 CD, 언급할 만한 몇 가지 사항이 더 있습니다. 첫째, 또 다른 특별한 디렉토리가 있습니다 «.» , 현재 디렉터리를 가리킵니다. 이 디렉터리는 현재 디렉터리에 있는 실행 파일을 실행하는 데 사용됩니다.

\$ ./myprog

마지막 예에서 myprog는 실행을 위해 시작될 현재 디렉터리에 있는 실행 파일입니다.

CD와 사용자의 홈 디렉토리

에 가기 위해서는 홈 디렉토리, 전화를 걸어야 합니다

\$ CD

인수 없이 cd를 실행하면 홈 디렉터리로 이동됩니다. 수퍼유저의 경우 홈 디렉터리는 일반적으로 /root이고 일반 사용자- /홈/사용자 이름/. 하지만 우리가 표시하고 싶다면 어떻게 해야 할까요? 특정 파일, 홈 디렉토리에 있습니다. 예를 들어, 프로그램에 대한 인수로 '마이프로그'? 당신은 쓸 수 있습니다:

\$ ./myprog /home/user/myfile.txt

그러나 파일에 대한 절대 경로를 사용하는 것이 항상 편리한 것은 아닙니다. 다음을 사용하여 동일한 작업을 수행할 수 있습니다. ~ – 물결표:

\$ ./myprog ~/myfile.txt

~ - bash에서 사용자의 홈 디렉터리를 가리키는 특수 이름입니다.

다른 사용자의 홈 디렉토리

하지만 다른 사용자의 홈 디렉터리에 있는 파일을 가리켜야 한다면 어떻게 될까요? 이렇게 하려면 물결표 뒤에 이 사용자의 이름을 표시해야 합니다. 예를 들어, 사용자 fred의 홈 디렉토리에 있는 fredsfile.txt 파일을 가리키려면 다음을 수행하십시오.

\$ ./myprog ~fred/fredsfile.txt

리눅스 명령

ls 소개

당신은 아마도 이미 그 팀에 대해 잘 알고 있을 것입니다. ㅋㅋㅋ, 인수 없이 호출되어 작업 디렉터리에 저장된 파일 목록을 표시합니다.

\$ CD /usr \$ ㅋㅋㅋ X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 include libexec portage share tmp distfiles i686-linux info local portage.old src

옵션을 지정하시면 -ㅏ을 사용하면 숨겨진 파일(이름이 점으로 시작하는 파일)을 포함한 모든 파일을 볼 수 있습니다.

\$ ls -a. bin gentoo-x86 libexec portage share tmp .. distfiles i686-linux info local portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl 포함

디렉토리의 상세 목록

명령 자체 이후 ㅋㅋㅋ하나 이상의 파일이나 디렉터리를 인수로 지정할 수 있습니다. 파일 이름을 지정하면 다음 명령이 실행됩니다. ㅋㅋㅋ이 파일에 대한 정보만 표시합니다. 그리고 디렉터리 이름을 지정하면 ㅋㅋㅋ모든 내용을 표시합니다. 옵션 '-엘'ㅋㅋㅋ파일 이름(파일 권한, 소유자 이름, 시간) 외에도 해당 파일에 대한 자세한 정보를 찾으려는 경우 매우 유용할 수 있습니다. 마지막 변경파일 및 크기).

다음 예에서는 옵션 사용을 보여줍니다. '-엘'/usr 디렉토리에 저장된 파일에 대한 정보를 표시하려면

\$ ls -l /usr drwxr-xr-x 7 루트 루트 168 11월 24일 14:02 X11R6 drwxr-xr-x 2 루트 루트 14576 12월 27일 08:56 bin drwxr-xr-x 2 루트 루트 8856 12월 26일 12:47 distfiles lrwxrwxrwx 1 루트 루트 9 12월 22일 20:57 doc -> share/doc drwxr-xr-x 62 루트 루트 1856 12월 27일 15:54 gentoo-x86 drwxr-xr-x 4 루트 루트 152 12월 12일 23:10 i686-linux drwxr-xr-x 4 루트 루트 96 11월 24일 13:17 i686-pc-linux-gnu drwxr-xr-x 54 루트 루트 5992 12월 24일 22:30 포함 lrwxrwxrwx 1 루트 루트 10 12월 22일 20:57 정보 -> 공유/정보 drwxr-xr -x 28 루트 루트 13552 12월 26일 00:31 lib drwxr-xr-x 3 루트 루트 72 11월 25일 00:34 libexec drwxr-xr-x 8 루트 루트 240 12월 22일 20:57 local lrwxrwxrwx 1 루트 루트 9 12월 22일 20 :57 man -> share/man lrwxrwxrwx 1 루트 루트 11 12월 8일 07:59 portage -> gentoo-x86/ drwxr-xr-x 60 루트 루트 1864 12월 8일 07:55 portage.old drwxr-xr-x 3 루트 루트 3096 12월 22일 20:57 sbin drwxr-xr-x 46 루트 루트 1144 12월 24일 15:32 공유 drwxr-xr-x 8 루트 루트 328 12월 26일 00:07 src drwxr-xr-x 6 루트 루트 176 11월 24일 14: 25 SSL lrwxrwxrwx 1 루트 루트 10 12월 22일 20:57 tmp -> ../var/tmp

첫 번째 열에는 목록에 있는 각 파일의 액세스 권한에 대한 정보가 표시됩니다. (조금 후에 어떤 문자가 무엇을 의미하는지 설명하겠습니다.) 다음 열에는 목록의 각 요소에 대한 링크 수가 표시됩니다. 세 번째와 네 번째 열은 각각 파일의 소유자와 그룹입니다. 다섯 번째 열은 크기입니다. 여섯 번째는 파일이 마지막으로 수정된 시간입니다('마지막 수정 시간' 또는 mtime). 마지막 열은 파일이나 디렉터리의 이름입니다(링크인 경우 ' –> '는 참조하는 개체의 이름을 나타냅니다.)

디렉토리만 보는 방법

때로는 전체 내용이 아닌 디렉토리에 대한 정보만 확인해야 하는 경우도 있습니다. 이 옵션은 이 작업에 대처하는 데 도움이 됩니다. '-디', 이는 디렉토리에 대한 정보만 표시하도록 명령에 지시합니다. 예:

\$ ls -dl /usr /usr/bin /usr/X11R6/bin ../share drwxr-xr-x 4 루트 루트 96 12월 18일 18:17 ../share drwxr-xr-x 17 루트 루트 576 12월 24일 09:03 /usr drwxr-xr-x 2 루트 루트 3192 12월 26일 12:52 /usr /X11R6/bin drwxr-xr-x 2 루트 루트 14576 12월 27일 08:56 /usr/bin

재귀 목록 및 inode 정보

옵션 조치 '-아르 자형'행동의 반대 '-디'. 이를 통해 디렉터리에 있는 파일에 대한 정보를 반복적으로 표시할 수 있습니다. 먼저 최상위 디렉터리의 내용이 표시된 다음 모든 하위 디렉터리의 내용이 차례로 표시됩니다. 이 명령의 출력은 상당히 길어질 수 있으므로 예제를 제공하지는 않지만 '를 입력하여 직접 시도해 볼 수 있습니다. ls -R' 또는 ' ls -Rl‘.

그리고 마지막으로 옵션은 '-나'각 파일 시스템 개체의 inode를 인쇄하는 데 사용됩니다.

\$ ls -i /usr 1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 1513 i686-pc-linux-gnu 5120 로컬 13408 공유 8316 distfiles 1517 포함 776 man 23779 src 43 doc 1386 정보 93 89 2 포티지 36737 SSL 70744 gentoo-x86 1585 lib 5132 포티지. 오래된 784tmp

아이노드란 무엇입니까?

각 파일 시스템 개체(파일, 디렉터리...)에는 고유한 번호가 있습니다. 아이노드(아이노드 번호). 이 정보는 중요하지 않은 것처럼 보일 수 있지만 inode의 기능을 이해하면 많은 파일 시스템 작업을 이해하는 데 도움이 됩니다. 예를 들어 «.» 그리고 «..» 각 디렉토리에 있는 링크와 같습니다. 디렉토리가 무엇인지 이해하려면 «..» , /use/local 디렉토리의 inode를 찾으십시오.

\$ ls -id /usr/local 5120 /usr/로컬

보시다시피 /usr/local 디렉토리의 inode는 5120입니다. 이제 /usr/local/bin/.. 디렉토리에 어떤 inode가 있는지 살펴보겠습니다.

\$ ls -id /usr/local/bin/.. 5120 /usr/로컬/bin/..

/usr/local 및 /usr/local/bin/.. 디렉토리의 inode가 동일한 것으로 나타났습니다! 이는 inode 5120이 /usr/local 및 /usr/local/bin/.이라는 두 가지 이름으로 참조된다는 것을 의미합니다. 즉, 동일한 디렉토리에 대한 두 가지 다른 이름입니다. 각 inode는 다음을 가리킨다. 특정 장소디스크에.

각 inode에는 이와 연관된 여러 파일 시스템 객체 이름이 있을 수 있습니다. 파일 '동의어'(동일한 inode를 참조하는 파일 시스템 개체)의 수는 ' 명령 출력의 두 번째 열에 있는 숫자로 표시됩니다. ls -l‘.

\$ ls -dl /usr/로컬 drwxr-xr-x 8 루트 루트 240 12월 22일 20:57 /usr/local

이 예에서는 /usr/local 디렉토리가 8에서 참조됨을 보여줍니다(두 번째 열). 다른 개체파일 시스템. 그들의 이름은 다음과 같습니다:

/usr/로컬 /usr/local/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/.. /usr/local/share/.. /usr/local/ 소스/..

mkdir

명령어를 살펴보자 mkdir. 새 디렉터리를 만드는 데 사용됩니다. 다음 예에서는 /tmp 디렉터리에 세 개의 새 디렉터리(tic, tac, toe)를 만드는 방법을 보여줍니다.

\$ CD /tmp $ mkdir 틱택토

기본 명령 mkdir중첩된 디렉터리 구조를 만들 수 없습니다. 따라서 여러 개의 중첩된 디렉터리( 아주 멋진), 이 명령을 차례로 세 번 호출해야 합니다.

\$ mkdir 원/데르/풀 mkdir: "won/der/ful" 디렉토리를 생성할 수 없습니다: 해당 파일이나 디렉토리가 없습니다 \$ mkdir이 이겼다 \$ mkdir 원/더 \$ mkdir 원/데르/풀

옵션을 추가하여 이 작업을 단순화할 수 있습니다. '-피'에게 mkdir 팀. 이 옵션을 사용하면 중첩된 디렉터리 구조를 만들 수 있습니다.

\$ mkdir -p 간편/as/파이

이 유틸리티의 기능에 대해 자세히 알아보려면 다음 명령으로 호출되는 도움말을 읽어보십시오. 남자 mkdir. 이 설명서에는 거의 모든 명령에 대한 도움말이 있습니다(예: 남자야), 제외하고 CD, 왜냐하면 이는 bash에 내장되어 있습니다(이러한 명령의 경우 help는 다음과 같이 호출됩니다: 도움말 CD)

만지다

명령을 공부해 봅시다 CP그리고 mv, 파일과 디렉터리를 복사하고, 이름을 바꾸고, 이동하는 데 사용됩니다. 하지만 그 전에 다음 명령을 사용하여 /tmp 디렉터리에 빈 파일을 만들어 보겠습니다. 만지다:

\$ CD /tmp \$ 카피를 터치하세요

만지다파일의 마지막 액세스 시간을 업데이트합니다(명령 출력의 여섯 번째 열). ls -l) 이미 존재하는 경우, 아직 존재하지 않는 경우 새 빈 파일을 생성합니다. 이 작업 후에는 빈 파일이 있어야 합니다. /tmp/카피미.

에코

이제 빈 파일이 생겼으니 파일을 작성해 보겠습니다. 텍스트 문자열명령을 사용하여 에코, 전달된 인수를 표준 출력 장치(우리의 경우 텍스트 터미널)에 인쇄합니다.

\$ 에코 "첫 번째 파일"첫 번째 파일

파일에 한 줄을 쓰려면 명령 출력을 해당 파일로 리디렉션해 보겠습니다. 에코:

\$ echo "firstfile" > copyme

징후 > (자세히)는 다음을 나타냅니다. 명령 셸왼쪽에 있는 명령의 출력을 오른쪽에 있는 이름의 파일로 리디렉션해야 합니다. 동일한 이름의 파일이 없으면 자동으로 생성됩니다. 그리고 그러한 파일이 이미 존재하는 경우 덮어쓰게 됩니다(모든 내용은 줄을 쓰기 전에 지워집니다). 팀 'ls -l'이제 파일 크기가 10바이트임을 알 수 있습니다. 9바이트는 'firstfile'이라는 단어가 차지하고 1바이트는 줄 바꿈 문자가 차지합니다.

\$ ls -l 복사-rw-r--r-- 1 루트 루트 10 12월 28일 14:13 copyme

고양이와 cp

파일 내용을 터미널에 출력하려면 다음 명령을 사용하십시오. 고양이:

\$ 고양이 카피미첫 번째 파일

이제 명령의 기본 기능을 분석할 수 있습니다. CP. 이 명령은 두 개의 인수를 사용합니다. 첫 번째는 기존 파일의 이름('copyme')이고 두 번째는 만들려는 새 복사본의 이름('copiedme')입니다.

\$ cp 카피미 카피미 카피미

우리는 그것을 확신할 수 있습니다 새 사본파일의 inode 번호가 다릅니다(이것은 우리가 정말 새로운 inode 번호를 얻었음을 의미합니다). 별도의 파일, 이전 링크에 대한 링크뿐만 아니라)

\$ ls -i 복사하다 복사하다 648284 카피미 650704 카피미

mv

이제 명령어를 사용해 보자 mv파일 이름을 변경합니다("copiedme" –> "movedme"). 이 작업 후에는 inode 번호가 변경되지 않고 파일 이름만 변경됩니다.

\$ MV 카피미 이동미 \$ ls -내가 나를 옮겼어요 648284 나를 움직였다

이름이 변경된 파일이 해당 파일이 있던 파일 시스템 내에 남아 있는 경우에만 inode 번호가 변경되지 않습니다. 원본 파일. 이 튜토리얼의 다음 부분 중 하나에서 파일 시스템의 구조를 자세히 살펴보겠습니다.

mv파일 이름을 바꿀 수 있을 뿐만 아니라 파일을 이동할 수도 있습니다. 예를 들어 파일을 이동하려면 /var/tmp/myfile.txt디렉토리로 /홈/사용자다음 명령을 내려야 합니다.

\$ mv /var/tmp/myfile.txt /home/user

파일이 사용자의 홈 디렉터리로 이동됩니다. 사용자다른 파일 시스템에 있는 경우에도 마찬가지입니다(이 경우 파일은 새 위치로 복사된 후 원본이 삭제됩니다). 짐작할 수 있듯이 파일을 다른 파일 시스템으로 이동하면 해당 inode가 변경됩니다. 이는 각 파일 시스템마다 고유한 별도의 inode 세트가 있기 때문에 발생합니다.

새로 할당된 inode 번호가 이전 번호와 일치할 가능성이 있지만 그 수가 극히 적다는 점에 유의해야 합니다.

동시에 여러 파일을 하나의 디렉터리로 이동하려면 다음을 작성해야 합니다.

\$ mv /var/tmp/myfile1.txt /var/tmp/myfile2.txt /home/user \$ mv -t /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt

옵션을 추가하면 '-V', 수행된 작업에 대한 보고서가 화면에 표시됩니다.

\$ mv -vt /home/user /var/tmp/myfile1.txt /var/tmp/myfile2.txt"/var/tmp/myfile1.txt" -> "/home/user/myfile1.txt" "/var/tmp/myfile2.txt" -> "/home/user/myfile2.txt"

모스크바 주립 전자 기술 연구소

(기술대학)

종합전자 및 마이크로시스템학과

실험실 실습

코스별:

운영 체제리눅스

편집자: 보조 부서. IEMS Kozlov A.V.

모스크바, 2007

연구실 워크숍은 주로 RHEL(Red Hat Enterprise Linux) 4.0 운영 체제를 마스터하기 위해 210100.68 방향으로 Synopsys 프로그램의 첫 해를 공부하는 엔지니어링 및 기술 석사를 대상으로 합니다. 또한 FreeScale 학생과 Linux 경험이 없거나 초보 수준이지만 배우고 싶은 모든 사용자를 위해 설계되었습니다. 팀 환경컴퓨터 지원 설계 시스템으로 작업할 때 사용자에게 필요한 Linux 및 주요 응용 프로그램입니다.

이 워크샵은 사용자가 명령 해석기의 명령을 효과적으로 숙달할 수 있을 뿐만 아니라 Shell, Gawk, Perl 및 Tcl 스크립트와 같은 파일 작성 방법을 점진적으로 배울 수 있는 8개의 실험실 작업으로 구성됩니다. 각 실험실 작업다음 섹션이 포함됩니다: 작업의 제목, 작업 및 목적 이론적 정보통제 질문으로; 실험실 작업의 예; 실험실 작업 수행 절차; 실험실 작업 및 작업 보고서 양식입니다. 옵션, 매개변수, 작업, 표현식 및 개체 경로와 함께 셸에서 명령을 작성하기 위한 구문은 BASH 명령 환경을 위해 설계되었습니다. 참고 문헌 목록은 실험실 워크숍이 끝나면 제공됩니다.

모스크바 주립 전자 공학 연구소 (기술 대학)

실험실 작업 1번

"리눅스 운영 체제" 과정에서

Linux에서 bash 명령 배우기

설명 완료:

KOZLOV A.V.

모스크바 2007

실험실 작업 No. 1 Linux에서 bash 명령 연구

작업의 목표 : BASH 명령 해석기를 사용하여 Red Hat Enterprise Linux 4.0 운영 체제에서 명령 작업 기술을 익히십시오.

작업 기간 - 4 시간

이론적인 정보

운영 체제 리눅스 원래 전 세계 과학자들의 문제를 해결하고 서비스를 제공하도록 설계된 무료이고 유연하며 기능이 풍부한 다중 사용자 고성능 플랫폼으로 개발되었습니다. "과학적 초점"으로 인해 이러한 플랫폼에는 처음에는 가정 문제를 해결하는 데 널리 사용되는 고급 그래픽 인터페이스가 없었습니다. 컴퓨터 게임, 인터넷, 사용자 연결 및 사무실 문제 해결을 위한 대화형 프로그램(데이터베이스 시스템 작업, 그래프 및 히스토그램 구성). 종종 Linux 운영 체제를 사용하는 과학자의 작업은 단순히 사용자(컴퓨터에서 작업하는 사람)와 콘솔(텍스트 정보가 있는 모니터 화면의 터미널 창)의 일반적인 상호 작용으로 축소되었습니다. Linux에서 사용자가 입력한 명령을 이해하기 위해 인간이 이해할 수 있는 명령을 운영 체제 커널이 이해할 수 있는 제어 신호로 변환하는 명령 해석기가 개발되었습니다. 운영 체제의 주요 임무는 사람이 컴퓨터로 명령을 전송하는 것을 중재하는 것입니다. 그리고 오늘날 Linux 운영 체제는 연구소, 디자인 센터, 컴퓨터 센터뿐만 아니라 가정 및 사무실 목적으로도 어디에서나 사용된다는 사실에도 불구하고 콘솔(터미널 창)은 여전히 ​​널리 사용되고 있으며 많은 사람들에게 훨씬 더 많은 것처럼 보입니다. 그래픽 환경에서 마우스와 아이콘(Linux의 아이콘)을 사용하여 작업하는 것에 비해 편리합니다.

명령 해석기 사용자와 운영 체제 사이에 명령줄 프롬프트가 있는 문자열 대화형 인터페이스입니다. 사용자가 명령줄에 명령을 입력하면 명령 해석기가 이를 "수락"하고 실행을 위해 운영 체제에 명령으로 보냅니다. 명령 해석기를 사용하면 명령을 입력할 수 있을 뿐만 아니라 데이터의 입력 및 출력을 리디렉션할 수도 있습니다. 명령줄, 또한 백그라운드에서 작업을 수행하여 사용자에게 현재 다른 작업을 수행할 수 있는 기회를 제공합니다.

Bourne Again 쉘(BASH), 공개 도메인 쉘(PDKSH), TCSH 인터프리터 및 Z-shell 등 많은 명령 해석기가 Linux용으로 개발되었습니다. BASH가 기본 인터프리터이지만 다른 환경을 사용할 수 있습니다. 일상적인 작업의 편의를 위해 명령 해석기는 하나만 있어도 충분합니다. Red Hal Linux에는 모든 주요 쉘이 포함되어 있지만 기본적으로 BASH 쉘이 설치되어 사용됩니다. 즉, 달리 지정하지 않는 한 이 운영 체제는 BASH를 사용하여 명령줄에서 작업합니다.

명령줄. Linux 명령줄 인터페이스는 옵션과 매개변수가 포함된 명령이 입력되는 단일 줄로 구성됩니다. BASH 쉘에서는 일반적으로 명령줄의 시작 부분이 표시됩니다. 초대달러 기호($) 형태; 다른 Linux 셸에서는 다른 형식의 프롬프트를 사용할 수 있습니다. 메시지가 표시되면 사용자는 단일 명령을 입력하거나 옵션 및 매개변수가 포함된 명령을 입력할 수 있습니다. 사용자의 명령 프롬프트 크기가 충분하지 않은 경우 "/" 문자로 제한할 수 있습니다. 명령은 키보드에서 입력되며 키를 사용하여 입력됩니다. 예를 들어, 시스템 날짜와 시스템 시간을 표시하려면 사용자는 다음 명령을 사용할 수 있습니다. 날짜 .

$date

6월 8일 금요일 15:42:35 MSD 2007

또는 예를 들어 이번 달이 포함된 달력을 표시하려면 cal 명령을 사용합니다.

$cal

2007년 7월

Su Mo Tu We Th Fr Sa

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31

메인 쉘 인터페이스 입력된 명령을 해석하여 시스템으로 보내는 명령줄 인터페이스입니다. 명령줄에 입력하는 명령은 특정 구문 규칙을 따라야 합니다. 일반 규칙명령 입력: 명령줄에 입력된 첫 번째 단어는 명령 이름이어야 합니다. 다음 단어는 명령 옵션 및 매개변수입니다. 명령줄의 각 단어는 하나 이상의 공백이나 탭으로 다른 단어와 구분됩니다.

옵션 - 명령에 의해 수행되는 작업 유형을 수정하는 하이픈이 앞에 오는 단일 또는 다중 문자 코드입니다. 옵션이 있는 명령의 예로 다음 명령을 제공합니다. ㅋㅋㅋ . 옵션 없이 사용하면 이 명령은 현재 디렉터리에 포함된 모든 파일 및 디렉터리 목록을 생성합니다. 확장자가 있거나 없는 파일 이름 외에 이 목록에는 아무것도 없습니다. 예를 들어, 다음 명령을 입력하면 ㅋㅋㅋ옵션 포함 - ㅋㅋㅋ각 파일에 대한 정보, 즉 파일 크기, 마지막 수정 날짜 및 시간을 한 줄씩 출력합니다. 다음 예에서 사용자는 다음 명령을 입력합니다. ㅋㅋㅋ옵션 포함 - . 옵션 앞에 하이픈이 필요합니다. 이것이 Linux 시스템이 옵션과 매개변수를 구별하는 방법입니다.

$ ls -l

총 28개

-a 옵션을 사용하면 소위 말하는 파일을 포함하여 현재 디렉터리의 모든 파일을 표시할 수 있습니다. 숨겨진 파일.구성 파일은 숨겨져 있는 경우가 많습니다. 숨겨진 파일 이름은 항상 점으로 시작하므로 종종 호출됩니다. 끌로 깎은파일.대부분의 경우 옵션이 결합됩니다. 이 경우 옵션 그룹 앞에 하나의 공통 하이픈이 배치됩니다. 예를 들어 -al 옵션은 숨겨진 파일을 포함하여 현재 디렉터리에 포함된 모든 파일에 대한 정보를 표시합니다. 새 ttt 파일이 표시됩니다.

$ ls -알

총 40개

매개변수 옵션 뒤에 명령줄에 입력되는 단어입니다. 파일 관리 명령은 일반적으로 파일 이름을 매개변수로 사용합니다. 예를 들어, gauss.plx라는 하나의 파일에 대한 정보만 필요한 경우 -l 옵션 뒤에 해당 이름을 지정하십시오.

$ ls -l gauss.plx

사용자의 작업은 기본적으로 로드되는 BASH 셸 환경에서 시작됩니다. Linux OS를 배울 때 매우 유용할 수 있는 특별한 명령줄 편집 기능이 있습니다. 명령을 실행하기 전에 명령줄에서 커서를 이동하고 문자를 삽입하거나 삭제하여 명령을 편집할 수 있습니다. 이는 매우 복잡한 팀과 작업할 때 특히 유용합니다. 편집 작업은 명령을 입력할 때 오류를 수정하는 데 도움이 됩니다. |up|을 사용하여 방금 실행한 명령을 표시할 수 있습니다. 그런 다음 명령을 다시 실행하거나 편집한 후 수정된 명령을 실행할 수 있습니다. 이 기능은 특정 작업을 여러 번 반복할 때 매우 편리합니다. 예를 들어 하나의 작업을 편집하고 같은 파일.

명령 해석기의 목적은 데이터 생성, 복사, 이름 바꾸기, 이동, 삭제 및 수정과 같은 파일 작업을 수행하는 것입니다. 사용자가 콘솔을 직접 사용하지 않고 그래픽 응용 프로그램을 사용하는 경우에도 이러한 파일 작업은 사용자와 독립적으로 발생합니다.

파일 및 디렉토리 생성. Linux에서는 파일과 디렉터리가 두 가지 유형의 데이터이므로 서로 다른 명령을 사용하여 생성됩니다. 디렉토리(디렉토리, 폴더)를 생성하려면 Linux mkdir에 예약된 명령(“make 디렉토리” - 디렉토리 생성)을 사용하십시오. 다음 예에서는 현재 디렉터리에 새 디렉터리를 만듭니다. 이렇게 하려면 mkdir 명령과 새 디렉터리 이름을 공백으로 구분하여 사용하십시오.

$ mkdir 새로운

디렉토리가 생성되었습니다. 그러나 때로는 이미 생성된 폴더 안에 또 다른 폴더가 있어야 하고 그 안에 또 다른 폴더가 있어야 하는 등 전체 중첩 구조를 생성해야 하는 경우도 있습니다. 이러한 목적을 위해 첨부 옵션 –p가 mkdir 명령의 일부로 사용됩니다. 다음 예에서는 하나의 명령을 사용하여 하위 폴더(첫 번째 폴더 1, 그 안에 있는 폴더 2, 그 안에 있는 폴더 3)를 만듭니다.

$ mkdir -p 1/2/3

명령을 사용하거나 kedit, nedit, gedit 등과 같은 내장 및 외부 Linux 텍스트 편집기를 사용하여 파일을 생성할 수 있습니다. 그러나 나열된 편집기에는 그래픽 시스템의 작동을 의미하는 그래픽 쉘의 작동이 필요합니다. 없으면 예를 들어 텍스트 편집기를 사용할 수 있습니다. 정력또는 그래픽 시스템의 작동이 필요하지 않은 아날로그. Midnight Commander(mc 명령)와 같은 텍스트 파일 관리자를 사용하여 파일을 생성할 수도 있습니다. 사용자(디자이너)는 종종 텍스트 파일유지하다 텍스트 정보이는 집적 회로를 계산하는 프로세스 또는 예를 들어 시뮬레이션된 반도체 장치의 전기적 매개변수를 수반합니다. 수신된 데이터를 처리(삭제, 추가, 정렬, 분할)하는 작업도 필요합니다. 이러한 작업은 Linux 명령을 사용하여 수행됩니다. 텍스트 파일을 만드는 가장 간단한 명령 중 하나는 다음 명령입니다. 고양이.

cat 명령에는 자체 인터페이스가 없으므로 리디렉션 기호(아래 참조) 및 새 파일 이름과 함께 cat 명령을 입력한 후 Enter 키를 사용하여 한 줄에서 한 줄로 이동하여 텍스트 정보를 즉시 작성할 수 있습니다. 고양이 편집기(필터) 종료는 Ctrl-D 키 조합을 사용하여 수행됩니다. 다음은 cat 명령을 사용하여 파일을 생성하는 예입니다.

$ 고양이 > 새로운 _ 파일

결과 파일은 cat 명령과 공백으로 구분된 파일 이름을 사용하여 표시됩니다.

$ 고양이 새로운 _ 파일

또는 예를 들어 명령이 실행될 때 콘솔에서 텍스트 정보를 저장합니다. ㅋㅋㅋ파일 r에 -a 옵션을 사용하면 데이터 리디렉션 기능(아래 참조)과 다음 명령을 사용할 수 있습니다. -a 옵션을 사용합니다.

$ ls -l | 티어

파일 및 디렉터리 복사.파일 및 디렉터리 복사는 cp 명령을 사용하여 수행되며, 그 후 복사 개체는 공백으로 구분된 상대 또는 절대 경로와 공백으로 구분된 이 개체 복사본의 새 대상으로 표시됩니다. 다음 예에서는 gauss.plx 파일을 현재 디렉터리에서 현재 디렉터리에 있는 하위 디렉터리 1로 복사합니다.

$ CP 가우스 . plx 1

Linux 개체(실험실 작업 번호 2)에 대한 액세스 권한이 있는 경우 다음 명령을 사용하여 작업 디렉터리의 절대 경로가 /home/alex인 Alex 사용자에게 이 파일을 복사할 수도 있습니다.

$ CP 가우스 . plx / / 알렉스

파일을 복사할 때 대상에 동일한 이름의 파일이 이미 존재하는 경우 해당 파일을 덮어씁니다. 이로 인해 필요한 데이터가 손실될 수 있습니다. 이를 방지하려면 -i 옵션과 함께 cp 명령을 사용하십시오. 그러면 Linux는 사용자가 파일을 덮어쓸 것인지 매번 사용자에게 묻습니다. 마지막 명령의 새로운 보기는 다음과 같습니다.

$ cp -i gauss.plx /home/alex

디렉터리는 파일과 동일한 방식으로 복사됩니다. 그러나 파일 및 하위 디렉터리가 있는 디렉터리를 복사할 때는 –R 옵션이 cp 명령의 일부로 사용됩니다. /home/antonk/111 디렉터리에 있는 laba2 디렉터리를 더 높은 수준으로 복사합니다. 즉, /home/antonk 디렉토리로 이동합니다. 두 개의 점은 한 단계 높은 계층 구조 수준을 나타냅니다.

$ CP - 아르 자형 라바 2 ..

파일과 디렉터리의 이름을 바꾸고 이동합니다.파일 및 디렉터리 이름 바꾸기는 mv 명령을 사용하여 수행되며, 그 후 이름을 바꿀 개체가 공백으로 구분되어 표시되고 개체의 새 이름이 공백으로 구분되어 표시됩니다. 디렉터리 이름 바꾸기는 파일과 동일한 방식으로 발생합니다. gauss.plx 파일의 이름을 gauss2.plx라는 새 파일로 바꾸겠습니다. 이름이 변경된 파일의 새 이름과 동일한 이름의 파일이 이 디렉터리에 이미 존재하는 경우 이름이 변경된 파일의 내용으로 덮어쓰여집니다. 이를 방지하려면 –i 옵션도 사용하십시오. 그런데 Linux에서는 확장 기능을 사용할 필요가 없습니다. 파일과 실행 프로그램을 연결하는 데에만 사용됩니다.

$ mv -i gauss.plx gauss2.plx

파일 및 디렉터리 삭제. Linux에서 파일 및 디렉터리 제거는 rm 명령을 사용하여 수행됩니다. 여기서 삭제할 파일 이름은 공백으로 구분되어 표시됩니다. !!! 이 명령을 사용할 때는 주의하세요. 필요한 데이터가 삭제될 수 있습니다. cp 명령과 유사하게 rm 명령과 함께 -i 옵션을 사용합니다. 이 옵션을 사용하는 명령은 각 파일과 디렉터리를 삭제할 것인지 묻는 메시지를 표시합니다. 다음 예에서는 파일을 삭제합니다. 가우스 2. plx , 삭제 확인 요청 중 .

RM –i gauss2.plx

와일드카드. 명령 해석기로 작업할 때 패턴을 사용하여 파일을 찾거나 일치시켜야 하는 경우가 있습니다. 예를 들어, 파일 이름의 첫 문자만 알고 작업 디렉토리에서 해당 문자로 시작하는 모든 파일을 찾으려고 합니다. 또는 파일의 이름이나 확장자에 있는 여러 문자의 순서를 알고 있으며 수백 개의 다른 파일 중에서 이를 찾아야 합니다. 이 경우 Linux 특수 문자를 사용해야 합니다. 명령 해석기는 시리즈를 사용합니다. 특수 문자, 파일을 검색하고 일치시키고 파일 이름 목록을 만드는 데 사용할 수 있는 와일드카드라고 합니다. 이러한 기호는 별표, 물음표 및 대괄호(*, ?, ). 파일 이름의 일부를 수신하면 명령 해석기는 이러한 문자를 템플릿으로 사용하여 탐지된 파일 이름 목록을 검색하고 생성합니다. 규정되지 않은 파일 이름을 가진 매개변수는 일치하는 파일 이름 목록으로 대체됩니다. 이 이름 목록은 여러 파일에 대해 작동하는 명령에서 매개변수로 사용될 수 있습니다(예: ㅋㅋㅋ). 명령 해석기 와일드카드는 표에 나열되어 있습니다. 1.

표 1. 셸 특수 문자

공통 기호

목적

하나의 명령줄에서 명령 분리

"팀"

명령 실행

파일 이름에 가능한 문자 클래스와의 비교

다음 문자를 특수 문자로 지정합니다. 제어 문자를 나타내는 데 사용됩니다.

한 명령의 표준 출력을 다른 명령의 입력으로 파이핑

백그라운드에서 명령 실행

이전에 입력한 명령 목록을 사용하는 명령

와일드카드

신청 결과

파일 이름의 모든 문자 집합과 일치합니다.

무엇이든 일치 별도의 문자파일 이름에

리디렉션 기호

신청 결과

표준 출력을 파일이나 장치로 리디렉션합니다. 이 경우 파일이 없으면 생성되고, 파일이 있으면 덮어쓰게 됩니다.

느낌표가 있으면 파일을 덮어쓰게 됩니다. 이 기호는 덮어쓰기를 방지하는 옵션보다 우선합니다. 기존 파일

파일이나 장치의 표준 입력을 프로그램으로 리디렉션합니다.

표준 출력을 파일이나 장치로 리디렉션하고 출력을 파일 끝에 추가합니다.

리디렉션 기호

표준 오류 메시지 출력 적용 결과

표준 오류 출력을 파일이나 장치로 리디렉션하고 추가합니다.

표준 오류 출력을 표준 입력으로 리디렉션합니다.

표준 오류 출력을 파일이나 장치로 리디렉션합니다.

표준 오류 출력을 다른 명령의 입력으로 파이프합니다.

예를 들어 별표(*) 문자는 이름이 특정 문자 조합으로 시작하거나 끝나는 파일을 참조하는 데 사용할 수 있습니다. 이 예에서는 문자 조합에 별표(*) 문자를 사용하는 방법을 보여줍니다.

$ls

docl doc2 문서 docs mydoc 월요일 화요일

작업 디렉터리에 있는 전체 파일 목록을 표시합니다.

$ ls 문서*

docl doc2 문서 문서

이 예에서는 문자 조합 "doc"로 시작하지 않는 파일 이름을 "필터링"하기 위해 별표 문자를 사용하는 방법을 보여주었습니다. "doc" 조합이 포함된 파일 이름만 표시됩니다. 이 경우 나머지 파일은 삭제되지 않고 단순히 사용자에게 표시되지 않습니다.

$ ls *일

월요일 화요일

여기에는 "day" 조합으로 끝나는 파일 이름이 표시되어 있습니다.

$ ㅋㅋㅋ [ ] * *

월요일 화요일

그리고 여기에는 첫 번째 문자가 "m" 또는 "t" 문자이고 그 다음 문자는 임의이고 그 다음에는 문자 "d"이고 다시 임의 문자인 파일 이름을 표시했습니다.

rm 명령에 별표를 사용할 때는 주의하십시오. 데이터가 손실될 수 있습니다. 다음 명령은 현재 폴더의 모든 내용을 삭제합니다.

RM *

$ ls *일

문서 doc2 문서

물음표(?)는 파일 이름에 지정되지 않은 문자가 하나만 있음을 나타냅니다.

대부분의 Linux 운영 체제에서는 bash가 기본 명령줄 해석기입니다. 현재 인터프리터를 확인하려면 다음 명령을 입력하십시오.

$ 에코 $SHELL
/bin/bash

이 예제에서는명령줄 해석기 세게 때리다. 다른 많은 명령 해석기가 있습니다. 다른 인터프리터를 활성화하려면 명령줄에 해당 이름(ksh, tcsh, csh, sh, bash 등)을 입력하면 됩니다.

모든 기능을 갖춘 대부분의 Linux 운영 체제는 여기에 설명된 모든 명령 해석기를 제공합니다. 그러나 더 작은 운영 체제에서는 하나 또는 두 개의 통역사가 제공될 수 있습니다.

관심 있는 상품의 재고 여부 확인통역사명령줄

제일 간단한 방법으로관심 있는 명령 해석기의 가용성을 확인하려면 명령줄에 해당 이름을 입력하십시오. 통역사가 시작된 경우 사용할 수 있습니다.

대체 쉘을 선택하는 데에는 몇 가지 이유가 있습니다.

  • 일하는 습관 유닉스 시스템 System V(대다수는 기본적으로 ksh를 사용함) 또는 Sun Microsystems 및 기타 Berkeley UNIX 기반 시스템(종종 csh를 사용함). 이 경우 이러한 통역사를 사용하면명령줄더 편리해질 것입니다.
  • 특정 명령 해석기를 위해 생성된 스크립트를 실행해야 합니다.
  • 대체 쉘의 기능이 더 나을 수도 있습니다. 예를 들어, Linux 사용자 그룹의 한 구성원은 bash가 별칭을 생성하는 방식이 마음에 들지 않기 때문에 ksh 사용을 선호합니다.

대부분의 사용자는 하나의 셸에서 작업하는 것을 선호하지만, 얻은 기술은 다른 셸에서 작업하는 방법을 배우는 데 도움이 됩니다.통역사 명령줄 , 가끔 참조 매뉴얼을 살펴봅니다(예: manbash 명령 사용). 대부분의 사람들은 다른 통역사로 전환할 이유가 없기 때문에 bash를 사용합니다.

Bash와 ch 사용

bash라는 이름은 Bourne Again SHell의 약어입니다. 이 약어는 bash가 AT&Tell Labs의 Steve Bourne이 만든 Bourneshell 인터프리터(sh 명령)를 상속한다는 것을 나타냅니다. 자유 소프트웨어 재단의 Brian Fox는 GNU 프로젝트의 일부로 bash를 만들었습니다. 그 후, 개발은 Case Western Reserve University의 Chet Ramey의 손에 넘어갔습니다.

bash 인터프리터에는 초기 버전의 UNIX에서 sh 및 ksh 인터프리터용으로 개발된 기능과 csh 인터프리터의 여러 기능이 포함되어 있습니다.

특수한 시스템(예: 내장형 또는 외부 드라이브에서 부팅되는 시스템)을 제외한 대부분의 Linux 시스템에서는 기본적으로 bash 인터프리터가 사용됩니다. 특수 시스템에서는 더 작은 명령 해석기가 필요할 수 있으며 이는 제한된 기능을 의미합니다.

이 예문의 대부분은기사bash 사용을 위해 설계되었습니다.

Bash 인터프리터는 다양한 호환성 모드에서 실행되어 다른 쉘의 동작을 시뮬레이션할 수 있습니다. Bourne 쉘(sh) 또는 POSK 표준 호환 쉘(bash -POSIX).

결과적으로 bash는 구성 파일을 성공적으로 읽고 다른 쉘용으로 특별히 작성된 스크립트를 실행할 수 있을 가능성이 더 높습니다.

제공된 모든 Linux 운영 체제는 기본적으로 bash 인터프리터를 사용합니다. 단, 이동식 미디어에서 부팅된 운영 체제는 기본적으로 ash 인터프리터를 사용합니다.

tcsh 사용(및 이전 csh 인터프리터)

tcsh 명령 인터프리터는 Cshell(csh) 인터프리터의 오픈 소스 구현입니다. 소스 코드. csh 인터프리터는 Bill Joy가 만들었으며 거의 ​​모든 Berkeley UNIX 시스템(이러한 시스템은 Sun Microsystems에서 배포함)에서 기본적으로 사용됩니다.

명령줄 편집 및 명령 기록 관리 방법과 같은 많은 csh 기능은 tcsh 및 기타 셸에서 구현되었습니다. sh 명령이 sh 호환 모드에서 bash 해석기를 실행하는 것처럼 csh 명령은 csh 호환 모드에서 tcsh 해석기를 실행합니다.

Ash 인터프리터 사용

Ash 인터프리터는 Berkeley UNIX sh 인터프리터의 경량 버전입니다. 기본 기능이 많이 포함되어 있지 않으며 명령 기록과 같은 기능을 제공하지 않습니다.

Ash 인터프리터는 제한된 임베디드 시스템에 사용하기에 매우 적합합니다. 시스템 리소스. FedoraCore 4 운영 체제에서 ash 인터프리터는 bash 인터프리터보다 크기가 훨씬 작습니다.

zsh 사용

zsh 인터프리터는 sh 인터프리터의 또 다른 복제본입니다. Bash와 같은 POSIX 호환이지만 맞춤법 검사 및 명령줄 편집에 대한 다른 접근 방식을 포함한 다른 기능도 있습니다. zsh 인터프리터는 최초의 MacOS X 운영 체제에서 기본적으로 사용되었지만 현대 시스템기본 인터프리터는 bash입니다.

이 섹션에서는 다음 주제를 다룹니다.

  • 셸 및 명령과 상호 작용
  • 명령 및 명령 시퀀스
  • 환경 변수 정의, 사용 및 내보내기
  • 명령 기록 및 편집 도구
  • PATH 환경 변수 내부 및 외부에서 명령 실행
  • 명령 대체 사용
  • 디렉토리 트리에 재귀적으로 명령 적용
  • 매뉴얼 페이지(도움말)를 사용하여 명령에 대한 정보 찾기

이 섹션에서는 bash 셸의 기본 기능 중 일부를 설명합니다. 인증에 필요한 역량이 특히 강조됩니다. 쉘은 풍부한 환경이며 지속적인 개발을 환영합니다. 자율 학습. UNIX 및 Linux 명령 해석기, 특히 bash에 관한 많은 책이 작성되었습니다.

bash 명령 해석기

통역사 세게 때리다 Linux에서 사용할 수 있는 여러 인터프리터 중 하나입니다. 라고도 함 우리네- 얻다 음, 창작자 스티븐 본을 기리기 위해 초기 버전통역사 ( /bin/sh).Bash는 기본적으로 sh와 호환되지만 기능과 프로그래밍 기능 모두에서 많은 개선이 이루어졌습니다. Korn(ksh) 및 C(csh) 인터프리터 기능이 포함되어 있으며 POSIX 호환 인터프리터로 설계되었습니다.

Bash를 배우기 전에 다음 사항을 기억하자. 통역사명령을 받아 실행하는 프로그램이다. 또한 프로그래밍 기능도 지원하므로 일반 명령으로 복잡한 디자인을 구성할 수 있습니다. 이러한 복잡한 구조나 시나리오파일에 저장할 수 있으며 파일 자체가 새로운 명령이 됩니다. 게다가 일반적인 Linux 시스템의 많은 명령은 쉘 스크립트로 구현됩니다.

통역사는 다음을 포함합니다 내장 cd, break, exec 등의 명령입니다. 다른 명령은 외부.

통역사는 또한 세 가지 표준을 사용합니다. 흐름입출력:

  • 표준입력이것 표준 입력, 명령에 대한 입력을 제공합니다.
  • 표준 출력이것 표준 출력, 터미널 창에 명령 결과를 표시합니다.
  • 표준 오류이것 표준 오류 스트림, 명령을 실행할 때 발생하는 오류를 표시합니다.

입력 스트림은 일반적으로 터미널 키보드와 관련된 프로그램에 입력을 제공합니다. 출력 스트림 인쇄 텍스트 문자, 일반적으로 터미널로. 터미널은 원래 ASCII 타자기 또는 비디오 터미널이었지만 이제는 그래픽 데스크탑의 창인 경우가 많습니다. 이 섹션의 나머지 부분에서는 높은 수준의 리디렉션에 중점을 둡니다.

GUI 없이 Linux 시스템을 사용하거나 그래픽 모드에서 터미널 창을 연 경우 목록 1과 유사한 명령 프롬프트가 표시됩니다.

목록 1. 일반적인 사용자 프롬프트의 예

$
이안@lyrebird:~>
$

루트(또는 수퍼유저)로 로그인한 경우 프롬프트는 목록 2와 유사할 수 있습니다.

목록 2. 루트 또는 수퍼유저에 대한 프롬프트 예시

#
금조:~ #
#

루트 사용자는 상당한 권한을 갖고 있으므로 주의해서 사용하십시오. 루트 권한이 있는 경우 대부분의 프롬프트는 파운드 기호(#)로 시작됩니다. 일반 사용자를 위한 프롬프트는 일반적으로 다른 문자(대개 달러 기호($))로 시작합니다. 귀하의 초대장은 예시에 기재된 내용과 다를 수 있습니다. 이 설명서. 프롬프트에는 사용자 이름, 컴퓨터 이름, 현재 디렉터리, 프롬프트가 인쇄된 날짜 또는 시간 등이 포함될 수 있습니다.

이 매뉴얼의 몇 가지 규칙

DeveloperWorks LPI 101 및 102 시험 가이드에는 해당 시스템의 기본 프롬프트를 사용하는 실제 Linux 시스템의 샘플 코드가 포함되어 있습니다. 우리의 경우 루트 사용자의 프롬프트는 #으로 시작하므로 $ 기호로 시작하는 일반 사용자 프롬프트와 구별할 수 있습니다. 이 규칙은 해당 주제에 관한 책에서 사용되는 규칙과 동일합니다. 각 예제의 쉘 프롬프트를 주의 깊게 살펴보십시오.

명령 및 시퀀스

당신은 명령 해석기에 있습니다. 이제 무엇을 할 수 있는지 살펴보겠습니다. 명령 해석기의 주요 기능은 Linux 시스템과 상호 작용하는 명령을 실행하는 것입니다. Linux(및 UNIX) 시스템에서 명령은 명령 이름, 옵션 및 매개변수로 구성됩니다. 일부 명령에는 옵션이나 매개변수가 없고, 다른 명령에는 옵션이 있지만 매개변수가 없으며, 또 다른 명령에는 옵션이나 매개변수가 없습니다.

행에 # 문자가 포함되어 있으면 그 안에 있는 모든 후속 문자가 무시됩니다. 따라서 # 기호는 댓글의 시작 또는 사용자 초대를 의미할 수 있습니다. 추가적인 해석은 문맥을 통해 명백해질 것입니다.

팀 에코

echo 명령은 목록 3에 표시된 대로 인수 목록을 터미널에 인쇄합니다.

목록 3. echo 명령의 예

$ 에코 워드
단어
$ 에코와 문장
그리고 제안
$ echo 공백은 어디로 갔나요?
공백은 어디로 갔습니까?
$ echo "여기에 공백이 있습니다." # 그리고 댓글
그리고 여기에 공백이 있습니다.

Listing 3의 세 번째 예에서는 명령 출력에서 ​​단어 사이의 모든 공백이 동일한 크기, 즉 공백이 되었습니다. 이를 방지하려면 큰따옴표(")나 작은따옴표(')를 사용하여 문자열을 따옴표로 묶어야 합니다. Bash는 공백, 탭 및 기호와 같은 구분 문자를 사용합니다. 새 줄입력 문자열을 토큰으로 분할한 다음 팀에 전달합니다. 문자열을 따옴표로 묶으면 분할이 억제되므로 단일 토큰이 됩니다. 위의 예에서 명령 이름 뒤의 각 토큰은 매개변수이므로 각각 1, 2, 4, 1개의 매개변수가 있습니다.

echo 명령에는 몇 가지 옵션이 있습니다. 일반적으로 echo는 출력 뒤에 개행 문자를 추가합니다. 개행 문자를 추가하지 않도록 -n 옵션을 사용하십시오. 명령이 이스케이프 시퀀스를 해석하도록 하려면 -e 옵션을 사용하십시오.

이스케이프 시퀀스 및 줄 바꿈

Bash에서 백슬래시를 사용할 때 작은 문제가 있습니다. 백슬래시 문자(\)를 인용하지 않으면 백슬래시 문자 자체가 bash의 이스케이프 시퀀스 역할을 하여 다음 문자의 의미를 유지합니다. 이는 나중에 살펴보게 될 특수 메타문자에 필요합니다. 이 규칙에는 한 가지 예외가 있습니다. 백슬래시 뒤에 개행 문자가 오면 bash는 두 문자를 모두 삼키고 해당 시퀀스를 줄 연속 요청으로 처리합니다. 이는 특히 스크립트에서 긴 줄을 분할할 때 유용할 수 있습니다.

위에 설명된 시퀀스가 ​​echo 명령이나 유사한 이스케이프 제어 문자를 사용하는 다른 많은 명령 중 하나에 의해 올바르게 처리되도록 하려면 이스케이프 시퀀스를 인용하거나 인용된 문자열에 포함하거나 다른 백슬래시를 사용하여 가져와야 합니다. 맞아요 상징의 해석. 목록 4에는 \의 다양한 사용 예가 포함되어 있습니다.

목록 4. echo 사용 예

$ echo -n 개행 없음
개행 없음$ echo -e "개행 없음\c"
새 줄 없음$ echo "클릭한 줄
> 키를 입력하세요"
클릭한 줄
키를 입력하세요
$ echo -e "개행 이스케이프 문자가 있는 줄"
이스케이프 문자가 포함된 문자열
새 줄
$ echo "개행 이스케이프 문자가 있는 줄이지만 -e 옵션은 없습니다."
개행 이스케이프 문자는 있지만 -e 옵션이 없는 문자열
$ echo -e 이중\\n\\t백슬래시가 포함된 메타문자
double이 포함된 메타문자
백슬래시
$ 에코 백슬래시 \
> 다음에 Enter를 누르십시오.
> 회선을 계속해 달라는 요청 역할을 합니다.
백슬래시 뒤에 Enter가 오면 줄을 계속하라는 요청 역할을 합니다.

종료되지 않은 따옴표가 포함된 문자열을 입력하면 bash는 특수 프롬프트(>)를 표시합니다. 입력 줄은 두 번째 줄로 줄 바꿈되고 개행 문자가 포함됩니다.

Bash 메타문자 및 제어문

Bash에는 따옴표가 없는 경우 입력 문자열을 단어로 분할하는 데 사용되는 여러 문자가 포함되어 있습니다. 공백 외에도 '|', '&', ';', '(', ')', ' 등의 기호가 있습니다.<’, и ‘>'. 이 가이드의 다른 섹션에서 이러한 기호 중 일부에 대해 더 자세히 설명하겠습니다. 지금은 메타 문자를 텍스트의 일부로 포함하려면 목록 4와 같이 메타 문자를 따옴표로 묶거나 앞에 백슬래시(\)를 붙여야 합니다.

개행 문자와 해당 메타 문자 또는 메타 문자 쌍도 제어문 역할을 합니다. 이러한 기호는 '||', '&&', '&', ';', ';;', '|'입니다. '(', 그리고 ')'. 이러한 제어문 중 일부를 사용하면 명령 시퀀스나 목록을 만들 수 있습니다.

가장 간단한 명령 시퀀스는 세미콜론(;)으로 구분된 두 개의 명령으로 구성됩니다. 각 다음 명령은 이전 명령 이후에 실행됩니다. 모든 프로그래밍 환경에서 명령은 프로그램이 정상적으로 완료되었는지 또는 실패했는지를 나타내는 코드를 반환합니다. Linux 명령은 일반적으로 성공하면 0을 반환하고 실패하면 0이 아닌 값을 반환합니다. && 및 || 제어 연산자를 사용하여 조건부 처리를 수행할 수 있습니다. 제어 연산자 &&를 사용하여 두 명령을 분리하면 첫 번째 명령이 0을 반환한 경우에만 두 번째 명령이 실행됩니다. ||로 명령을 구분하면 두 번째 명령은 첫 번째 명령이 0이 아닌 값을 반환하는 경우에만 실행됩니다. 목록 5에는 echo 명령을 사용하는 일부 명령 시퀀스가 ​​포함되어 있습니다. echo가 0을 반환하기 때문에 이러한 예제는 별로 흥미롭지 않습니다. 그러나 더 많은 명령을 사용하는 방법을 배우고 나면 더 많은 예제를 살펴보겠습니다.

목록 5. 명령 순서

$ 에코 라인 1; 에코 라인 2; 에코 라인 3
라인 1
2호선
3호선
$ 에코 라인 1&&에코 라인 2&&에코 라인 3
라인 1
2호선
3호선
$ 에코 라인 1||에코 라인 2; 에코 라인 3
라인 1
3호선

Exit 명령을 사용하여 쉘을 종료할 수 있습니다. 또한 종료 코드를 매개변수로 지정할 수 있습니다. 그래픽 모드의 터미널 창에서 명령 해석기로 작업하는 경우 이 경우 간단히 닫힙니다. 마찬가지로 ssh 또는 telnet(예:)을 사용하여 원격 시스템에 연결하면 연결이 실패합니다. Bash 통역사에서는 다음을 누를 수도 있습니다. Ctrl 키그리고 d는 종료입니다.

또 다른 제어문을 살펴보겠습니다. 명령 또는 명령 목록을 괄호로 묶으면 해당 명령 또는 명령 시퀀스가 ​​자체 쉘 복사본에서 실행되므로 종료 명령은 현재 실행 중인 쉘이 아닌 쉘 복사본에서 종료됩니다. 달리기. 목록 6에는 &&와 ||를 함께 사용하는 간단한 예제가 포함되어 있습니다.

목록 6. 셸 및 명령 시퀀스

$ (echo 인터프리터 사본; 종료 0) && echo OK || 에코 잘못된 종료
통역사 사본에서
좋아요
$ (echo 인터프리터 사본; 종료 4) && echo OK || 에코 잘못된 종료
통역사 사본에서
잘못된 출구

이 가이드에서 더 많은 명령을 확인하세요.

환경 변수

Bash를 실행할 때 프롬프트 형식, 홈 디렉터리 이름, 작업 디렉터리, 인터프리터 이름, 연 파일, 정의한 함수 등. 귀하의 환경에는 귀하와 bash 모두 설정할 수 있는 많은 변수가 포함되어 있습니다. Bash를 사용하면 인터프리터에서 실행 중인 다른 프로세스나 현재 인터프리터에서 시작할 수 있는 다른 인터프리터에서 사용하기 위해 환경으로 내보낼 수 있는 셸 변수를 생성할 수도 있습니다.

환경 변수와 쉘 변수 모두 이름이 있습니다. 변수 이름 앞에 '$' 기호를 붙여 변수의 값을 참조할 수 있습니다. 가장 일반적인 bash 환경 변수 중 일부가 표 4에 나열되어 있습니다.

  • 사용자로그인한 사용자 이름
  • UID로그인한 사용자의 디지털 ID
  • 사용자 홈 디렉터리
  • P.W.D.현재 작업 디렉토리
  • 껍데기쉘 이름
  • $ Bash(또는 기타) 프로세스의 프로세스 ID(또는 PID)
  • PPID이 프로세스를 생성한 프로세스의 ID(즉, 상위 프로세스의 ID)
  • ? 마지막 명령 종료 코드

목록 7에서는 일부 bash 변수를 볼 수 있습니다.

목록 7. 환경 변수 및 셸

$ 에코 $USER $UID
이안 500
$ 에코 $SHELL $HOME $PWD
/bin/bash /home/ian /home/ian
$ (출구 0);에코 $?;(출구 4);에코 $?
0
4
$ 에코 $$ $PPID
30576 30575

변수 이름 바로 뒤에 등호(=)를 입력하여 쉘 변수를 생성하거나 설정할 수 있습니다. 변수는 대소문자를 구분하므로 var1과 VAR1은 서로 다른 두 변수입니다. 관례적으로 변수, 특히 내보낸 변수는 대문자로 작성되지만 필수 사항은 아닙니다. 공식적으로 $$ 및 $? 변수가 아닌 쉘 매개변수입니다. 이를 참조할 수 있지만 값을 할당할 수는 없습니다.

셸 변수를 생성할 때 셸에서 실행하는 다른 프로세스에서 사용할 수 있도록 해당 변수를 환경으로 내보내려는 경우가 많습니다. 내보낸 변수는 상위 인터프리터에서 사용할 수 없습니다. 변수를 내보내려면 내보내기 명령을 사용하십시오. 편의를 위해 한 단계로 값을 할당하고 변수를 내보낼 수 있습니다.

할당 및 내보내기를 설명하기 위해 현재 bash 해석기에서 또 다른 bash를 만든 다음 (ksh) 생성된 bash에서 Korn 해석기를 시작하겠습니다. ps 명령을 사용하여 실행 중인 프로세스에 대한 정보를 표시합니다. 이 튜토리얼의 뒷부분에서 프로세스 상태의 개념을 탐색할 때 ps 명령에 대해 자세히 알아볼 것입니다.

배쉬를 사용하지 않습니까?

Bash는 많은 Linux 배포판의 기본 인터프리터입니다. bash 사용자가 아닌 경우 bash 사용을 연습하기 위해 다음 방법을 고려할 수 있습니다.

  • 명령을 사용하십시오
    chsh -s /bin/bash
    기본 통역사를 변경하려면 변경 사항은 다음에 로그인할 때 적용됩니다.

  • su – $USER -s /bin/bash
    현재 통역사의 하위 프로세스가 될 또 다른 프로세스를 생성합니다. 새 프로세스는 bash 쉘을 사용하여 로그인 프로세스를 시작합니다.
  • LPI 시험을 준비하기 위해 bash 사용자를 만듭니다.

목록 8. 환경 변수 및 셸

$ ps -p $$ -o "pid ppid 명령"
PID PPID 명령
30576 30575 -배쉬
$bash

PID PPID 명령
16353 30576 배쉬
$ VAR1=var1
$VAR2=var2
$export VAR2
$ 내보내기 VAR3=var3
$VAR2 $VAR3
var1 var2 var3
$ 에코 $VAR1 $VAR2 $VAR3 $SHELL
var1 var2 var3 /bin/bash
$ksh
$ ps -p $$ -o "pid ppid 명령"
PID PPID 명령
16448 16353 크쉬
$ 내보내기 VAR4=var4
$ 에코 $VAR1 $VAR2 $VAR3 $VAR4 $SHELL
var2 var3 var4 /bin/bash
$ 종료
$ $ 에코 $VAR1 $VAR2 $VAR3 $VAR4 $SHELL
var1 var2 var3 /bin/bash
$ ps -p $$ -o "pid ppid 명령"
PID PPID 명령
16353 30576 배쉬
$ 종료
$ ps -p $$ -o "pid ppid 명령"
PID PPID 명령
30576 30575 -배쉬
$ 에코 $VAR1 $VAR2 $VAR3 $VAR4 $SHELL
/bin/bash

메모:

  1. 이 시퀀스가 ​​시작될 때 bash 인터프리터의 PID는 30576이었습니다.
  2. 두 번째 bash 해석기의 PID는 16353이고 상위 PID는 30576, 즉 원래 bash입니다.
  3. bash의 두 번째 인스턴스에서 VAR1, VAR2 및 VAR3 변수를 생성했지만 VAR2 및 VAR3만 내보냈습니다.
  4. Korn 인터프리터에서 VAR4를 만들었습니다. echo 명령은 VAR2, VAR3, VAR4의 값만 표시하고 VAR1은 내보내지지 않았음을 확인했습니다. 프롬프트가 바뀌었는데도 SHELL 변수의 값이 바뀌지 않는다는 사실에 놀라지 않으셨나요? 실행 중인 인터프리터를 항상 SHELL에 의존할 수는 없지만 ps 명령을 사용하면 무엇이 무엇인지 정확하게 알 수 있습니다. ps는 bash의 첫 번째 인스턴스 앞에 하이픈(-)을 넣어 그것이 무엇인지 알려줍니다. 소스 쉘.
  5. bash의 두 번째 인스턴스에서는 VAR1, VAR2 및 VAR3을 볼 수 있습니다.
  6. 마지막으로 원래 인터프리터로 돌아가면 그 안에는 단일 변수가 존재하지 않습니다.

앞서 우리는 작은따옴표와 큰따옴표를 모두 사용할 수 있는 가능성에 대해 논의했습니다. 그들 사이에는 상당한 차이가 있습니다. 인터프리터는 큰따옴표($) 사이에서 쉘 변수 대체를 수행하지만, 작은따옴표(')가 사용된 경우 대체를 수행하지 않습니다. 이전 예에서는 다른 인스턴스에서 새 인터프리터 인스턴스를 만들고 새 프로세스 ID를 받았습니다. 옵션 사용 -씨명령을 실행하고 반환하는 다른 인터프리터에 명령을 전달할 수 있습니다. 문자열을 작은따옴표로 묶은 명령으로 전달하면 인터프리터의 두 번째 인스턴스가 해당 문자열을 제거하고 문자열을 처리합니다. 사용 큰따옴표변수 대체가 발생합니다. 그것 앞에문자열이 전달되는 방식에 따라 결과가 예상한 것과 다를 수 있습니다. 인터프리터와 명령은 자체 PID를 갖는 프로세스를 생성합니다. 목록 9에서는 이러한 개념을 보여줍니다. 원래 bash 인터프리터의 PID는 다른 글꼴로 되어 있습니다.

목록 9. 인용문 및 쉘 변수

$ echo "$SHELL" "$SHELL" "$$" "$$"
/bin/bash $SHELL 19244 $$
$ bash -c "echo 상위 $$ $PPID에서 확장"
상위 19244 19243에서 확장
$ bash -c "echo 하위 $$ $PPID 확장"
하위 19297 19244에서 확장

지금까지 모든 변수는 공백으로 끝났으므로 변수 이름이 끝나는 위치가 명확했습니다. 실제로 변수 이름은 문자, 숫자 또는 밑줄로만 구성될 수 있습니다. 인터프리터는 다른 문자를 만나자마자 변수 이름이 끝나는 것을 알고 있습니다. 때로는 의미가 모호할 수 있는 표현식에 변수를 사용해야 하는 경우도 있습니다. 이러한 경우 목록 10에 표시된 대로 중괄호를 사용하여 변수 이름을 구분할 수 있습니다.

목록 10. 사용법 중괄호변수 이름이 있는

$ echo "-$HOME/abc-"
-/집/이안/abc-
$ 에코 "-$HOME_abc-"
--
$ echo "-$(HOME)_abc-"
-/집/ian_abc-

환경 명령

옵션이나 매개변수 없이 env 명령은 현재 환경 변수를 표시합니다. 또한 이를 사용하여 미리 정의된 환경에서 명령을 실행할 수도 있습니다. -i(또는 간단히 -) 옵션은 명령을 실행하기 전에 현재 환경을 지우는 반면, -u 옵션은 전달하고 싶지 않은 환경 변수를 지웁니다.

목록 11에는 매개변수 없이 env 명령의 부분 출력이 포함되어 있으며 그 뒤에는 상위 환경 없이 다른 인터프리터를 실행하는 세 가지 예가 있습니다. 논의하기 전에 주의 깊게 검토하시기 바랍니다.

목록 11. env 명령

$env
HOSTNAME=에키드나
TERM=xterm
쉘=/bin/bash
히스트 크기=1000
SSH_CLIENT=9.27.89.137 4339 22
SSH_TTY=/dev/pts/2
사용자=ian
...
_=/빈/환경
OLDPWD=/usr/src
$ env -i bash -c "echo $SHELL; env"
/bin/bash
PWD=/홈/이안
SHLVL=1
_=/빈/환경
$ env -i ksh -c "echo $SHELL; env"
_=/빈/환경
경로=/bin:/usr/bin
$ env -i tcsh -c "echo $SHELL; env"
SHELL: 정의되지 않은 변수입니다.

bash는 SHELL 변수를 설정했지만 bash가 환경에 세 가지 다른 변수를 생성했음에도 불구하고 이를 환경으로 내보내지 않았습니다. ksh 예에는 두 개의 환경 변수가 있지만 SHELL 변수의 값을 표시하려고 하면 빈 줄이 표시됩니다. 마지막으로 tcsh는 환경 변수를 생성하지 않았으며 SHELL 변수의 값을 가져오려고 할 때 오류가 발생했습니다.

변수 설정 및 지우기

Listing 11에서는 변수와 환경을 처리할 때 인터프리터가 어떻게 작동하는지 보여줍니다. 이 가이드는 bash에 중점을 두고 있지만 모든 인터프리터가 동일하게 동작하는 것은 아니라는 점을 알아야 합니다. 게다가 인터프리터는 원본 쉘인지 아닌지에 따라 다르게 동작합니다. 지금은 초기 쉘이 로그인할 때 얻는 쉘이라고만 하겠습니다. 원하는 경우 다른 쉘을 실행하여 원래 쉘처럼 작동하도록 할 수 있습니다. env -i 명령으로 시작된 위 예의 세 가지 인터프리터는 원래 인터프리터가 아닙니다. 원래 셸을 실행할 때의 차이점을 확인하려면 -l 옵션을 전달해 보세요.

다음 쉘에서 SHELL 변수의 값을 표시하려는 시도를 살펴보겠습니다.

  • Bash가 시작되면 SHELL 변수가 설정되었지만 자동으로 환경으로 내보내지지 않았습니다.
  • ksh가 시작되었을 때 SHELL 변수가 설정되지 않았습니다. 그러나 정의되지 않은 환경 변수에 대한 참조는 빈 값에 대한 참조와 동일합니다.
  • tcsh가 시작될 때 SHELL 변수의 값을 설정하지 않았습니다. 이 경우 기본 동작은 ksh(및 bash)와 다르며 변수에 액세스하려고 할 때 오류가 생성되었습니다.

unset 명령을 사용하여 변수를 지우고 셸 변수 목록에서 제거할 수 있습니다. 변수를 환경으로 내보낸 경우 환경에서도 삭제됩니다. set 명령을 사용하여 bash(또는 다른 인터프리터)의 동작을 제어할 수 있습니다. Set은 인터프리터에 내장된 명령이므로 옵션은 특정 인터프리터에 따라 다릅니다. bash에서 -u 옵션은 정의되지 않은 변수를 참조할 때 오류를 생성하지 않고 마치 빈 값인 것처럼 처리하도록 bash에 지시합니다. –로 설정할 수 있는 다양한 옵션을 추가하고 +로 비활성화할 수 있습니다. echo $-를 사용하면 설정된 옵션의 현재 목록을 표시할 수 있습니다.

목록 12. 설정 해제 및 설정

$에코$-
그BH
$ 에코 $VAR1
$set -u;에코$-
HimuBH
$ 에코 $VAR1
bash: VAR1: 바인딩되지 않은 변수
$VAR1=v1
$VAR1=v1;에코 $VAR1
v1
$unset VAR1;에코 $VAR1
bash: VAR1: 바인딩되지 않은 변수
$ 세트 +u;에코 $VAR1;에코 $-
그BH

옵션 없이 set 명령을 사용할 수 있습니다. 그러면 모든 쉘 변수와 해당 값(있는 경우)이 표시됩니다. 쉘 변수의 값을 생성, 내보내기 및 표시할 수 있는 또 다른 명령인 선언도 있습니다. 매뉴얼 페이지에서 set 및 선언 명령에 대한 다른 옵션에 대해 알아볼 수 있습니다. 이 섹션의 뒷부분에서 매뉴얼 페이지를 살펴보겠습니다.

실행 명령

이 섹션에서 살펴볼 마지막 명령은 exec입니다. exec 명령을 사용하여 현재 인터프리터를 대체할 다른 명령을 실행할 수 있습니다. 목록 13에서는 bash 인스턴스를 생성한 다음 exec를 사용하여 이를 Korn 인터프리터로 대체합니다. Korn 인터프리터를 종료하면 원래 bash 인터프리터(이 예에서는 PID 22985)로 돌아갑니다.

목록 13. exec 사용

$ 에코 $$
22985
$bash
$ 에코 $$
25063
$ exec ksh
$ 에코 $$
25063
$ 종료
$ 에코 $$
22985

팀 역사

매뉴얼을 읽으면서 명령을 입력해 본 적이 있다면 거의 동일한 명령이 자주 사용된다는 것을 알 수 있을 것입니다. 좋은 소식은 bash가 명령 기록을 저장할 수 있다는 것입니다. 기본적으로 기록은 활성화되어 있습니다. set +o History 명령을 사용하여 비활성화하고 set -o History 명령을 사용하여 활성화할 수 있습니다. HISTSIZE 환경 변수는 bash에 저장할 행 수를 알려줍니다. 다른 속성 세트는 스토리의 동작과 작동을 결정합니다. 자세한 내용은 bash 매뉴얼 페이지를 참조하십시오.

매뉴얼을 읽으면서 명령을 입력해 본다면 거의 동일한 명령이 자주 사용된다는 것을 알 수 있을 것입니다. 좋은 소식은 bash가 명령 기록을 저장할 수 있다는 것입니다. 기본적으로 기록은 활성화되어 있습니다. set +o History 명령을 사용하여 비활성화하고 set -o History 명령을 사용하여 활성화할 수 있습니다. HISTSIZE 환경 변수는 bash에 저장할 행 수를 알려줍니다. 다른 속성 세트는 스토리의 동작과 작동을 결정합니다. 자세한 내용은 bash 매뉴얼 페이지를 참조하십시오.

다음은 기록 작업에 사용할 수 있는 몇 가지 명령입니다.

역사
전체 기록을 표시합니다.
역사N
기록의 마지막 N줄을 표시합니다.
역사 -dN
기록에서 N행을 제거합니다. 예를 들어 비밀번호가 포함된 줄을 제거하려는 경우에 사용할 수 있습니다.
!!
마지막 명령이 입력되었습니다.
!N
N번째 역사팀
!-N
역사상 현재 명령보다 N 단계 떨어진 명령(!-1에 해당!!)
!#
현재 입력 중인 명령
!끈
문자열로 시작하는 가장 최근 명령
!?끈?
문자열을 포함하는 가장 최근 명령

콜론(:) 다음에 사용할 수 있습니다. 특정 값기록에 있는 명령에 액세스하거나 변경합니다. 목록 14에서는 몇 가지 히스토리 가능성을 보여줍니다.

목록 14. 기록 관리

$ 에코 $$
22985
$ env -i bash -c "에코 $$"
1542
$ !!
env -i bash -c "echo $$"
1555
$!ec
$$ 에코
22985
$ !en:s/$$/$PPID/
env -i bash -c "echo $PPID"
22985
$ 역사 6
1097 에코 $$
1098 env -i bash -c "에코 $$"
1099 env -i bash -c "에코 $$"
1100 에코 $$
1101 env -i bash -c "에코 $PPID"
1102 역사 6
$ 역사 -d1100

목록 14의 명령은 다음을 수행합니다.

1. 현재 인터프리터의 PID를 출력합니다.
2. 인터프리터의 새 인스턴스에서 echo 명령을 실행하고 해당 PID를 인쇄합니다.
3. 마지막 명령 실행
4. 'ec'로 시작하는 명령을 다시 실행합니다. 이 예의 첫 번째 명령은 실행됩니다
5. 'en'으로 시작하는 마지막 명령을 실행하되 '$PPID'를 '$$'로 바꾸면 상위 PID가 실제로 표시됩니다.
6. 마지막 6개 기록 명령 표시
7. 명령 번호 1100, 마지막 명령 에코 삭제

스토리를 대화형으로 편집할 수 있습니다. Bash 인터프리터는 readline 라이브러리를 사용하여 명령 및 기록 편집을 처리합니다. 기본적으로 기록을 탐색하거나 줄을 편집하는 데 사용되는 키와 키 조합은 GNU Emacs 편집기에서 사용되는 것과 동일합니다. Emacs에서 키 조합은 일반적으로 C-x 또는 M-x로 작성됩니다. 여기서 x는 일반 키이고 C와 M은 각각 Control 및 Meta 키입니다. 일반적인 PC에서 Ctrl 키는 Emacs Control 키에 해당하고 Alt 키는 Meta 키에 해당합니다. 추가 기능, readline 초기화 파일(보통 홈 디렉토리의 inputrc)을 사용하여 옵션을 구성하는 기능은 매뉴얼 페이지에서 찾을 수 있습니다.

vi 모드에서 기록을 제어하려면 set -o vi 명령을 사용하여 vi 모드로 전환하세요. set -o emacs 명령을 사용하여 emacs 모드로 다시 전환할 수 있습니다. vi 모드에서 명령을 추출하면 처음에는 vi 삽입 모드에 있게 됩니다.

경로

일부 bash 명령은 내장되어 있고 다른 명령은 외부 명령입니다. 이제 외부 명령과 이를 실행하는 방법, 내부 명령을 구별하는 방법을 살펴보겠습니다.

통역사는 어디에서 명령을 찾나요?

외부 명령은 파일 시스템의 파일을 나타냅니다. 이 가이드의 쉬운 파일 관리 섹션과 주제 104 튜토리얼에서 더 자세히 설명합니다. Linux 및 UNIX 시스템에서 모든 파일은 루트가 /인 거대한 트리의 일부입니다. 위의 예에서 현재 디렉터리는 사용자의 홈 디렉터리였습니다. 일반 사용자의 경우 홈 디렉터리는 /home 디렉터리에 위치합니다. 제 경우에는 /home/ian입니다. 루트의 홈 디렉터리는 /root입니다. 명령을 입력하면 bash는 PATH 환경 변수에 저장된 콜론으로 구분된 디렉터리 목록인 기본 검색 디렉터리 목록에서 해당 명령을 찾습니다.

특정 줄을 입력하면 어떤 명령이 실행되는지 알고 싶다면 which 또는 type 명령을 사용하세요. 목록 15에서는 기본 경로와 여러 명령의 위치를 ​​보여줍니다.

목록 15. 명령 위치 찾기

$ 에코 $PATH
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/ian/bin
$ bash env zip xclock echo set ls
별칭 ls="ls --color=tty"
/bin/ls
/bin/bash
/빈/환경
/usr/bin/zip
/usr/X11R6/bin/xclock
/bin/에코
/usr/bin/which: (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/b에 설정되지 않음
위치:/홈/이안/빈)
$ 유형 bash env zip xclock echo set ls
배쉬는 /bin/bash 입니다
환경은 /bin/env입니다.
우편번호는 /usr/bin/zip 입니다.
xclock은 /usr/X11R6/bin/xclock입니다.
echo는 쉘 내장입니다
세트는 쉘 내장입니다
ls는 `ls --color=tty"로 별칭이 지정됩니다.

경로의 모든 디렉터리는 /bin으로 끝납니다. 이는 일반적인 규칙이지만 필수 사항은 아닙니다. which 명령은 ls 명령이 별칭이고 set 명령을 찾을 수 없다고 우리에게 보고했습니다. 이 경우 해당 명령이 존재하지 않거나 내장되어 있는 것으로 해석할 수 있습니다. type 명령은 ls 명령이 실제로 별칭임을 알려주고 set 명령이 인터프리터 내장 명령임을 확인했습니다. 그녀는 또한 내장된 echo 명령이 있고 /bin에도 하나가 있다고 말했는데, which 명령을 사용하여 찾았습니다. 두 명령은 서로 다른 출력을 생성합니다.

우리는 디렉토리의 내용을 보는 데 사용되는 ls 명령이 실제로 별칭이라는 것을 확인했습니다. 별칭은 다음을 나타냅니다. 편리한 방법다양한 옵션 세트가 있는 명령을 사용하거나 단순히 명령의 대체 이름을 지정하기 위해 사용합니다. 이 예에서 –color=tty 옵션을 사용하면 파일 및 디렉터리 유형에 따라 디렉터리 파일 목록이 강조 표시됩니다. dircolors –print-database를 실행하여 색상 코드와 특정 파일 형식에 사용되는 색상을 확인하세요.

이러한 각 명령에는 추가 옵션. 요구 사항에 따라 하나 또는 다른 명령을 사용할 수 있습니다. 나는 실행 파일을 찾을 것이라고 확신하고 전체 경로만 필요할 때 which를 사용하는 것을 선호합니다. type 명령은 스크립트에서 가끔 필요한 더 정확한 정보를 제공합니다.

다른 명령 실행

목록 15에서는 실행 파일의 전체 경로가 루트 디렉터리 /에서 시작하는 것을 확인했습니다. 예를 들어, xclock 프로그램은 실제로 /usr/X11R6/bin/xclock이며 /usr/X11R6/bin 디렉토리에 있는 파일입니다. 프로그램이 PATH 변수에 없으면 프로그램 및 프로그램 자체의 전체 경로를 지정하여 실행할 수 있습니다. 사용할 수 있는 경로에는 두 가지가 있습니다.

  • 목록 15에서 본 것처럼 /로 시작하는 절대 경로(/bin/bash, /bin/env 등).
  • 상대 경로는 현재 작업 디렉터리에 대한 상대 경로이며, 해당 이름은 pwd 명령을 사용하여 얻을 수 있습니다. 이러한 명령은 /로 시작하지 않지만 최소한 하나의 / 문자를 포함합니다.

현재 작업 디렉터리에 관계없이 절대 경로를 사용할 수 있지만 명령이 현재 디렉터리에 가까울 때는 상대 경로를 사용할 수 있습니다. 당신이 발전하고 있다고 가정 해 봅시다. 새로운 버전 클래식 프로그램“안녕하세요!” 홈 디렉토리의 mytestbin 하위 디렉토리에 있습니다. 상대 경로를 사용하고 mytestbin/hello로 명령을 실행할 수 있습니다. 경로에 사용할 수 있는 특별한 이름은 두 가지가 있습니다. 단일 점(.)은 현재 디렉터리를 나타내고 점 쌍(..)은 현재 디렉터리의 상위 디렉터리를 나타냅니다. 홈 디렉터리가 PATH 환경 변수에 없기 때문에(그래서도 안 됩니다), 홈 디렉터리에서 실행하려는 파일에 대한 명시적인 경로를 제공해야 합니다. 예를 들어, 홈 디렉터리에 hello 프로그램의 복사본이 있으면 ./hello 명령을 사용하여 간단히 실행할 수 있습니다. 둘 다 사용할 수 있습니다. and.. 단일.이기는 하지만 절대 경로의 일부로 이 경우에는 그다지 유용하지 않습니다. 물결표(~)를 사용하여 홈 디렉터리를 참조하고 ~username을 사용하여 사용자 이름의 홈 디렉터리를 참조할 수 있습니다. 몇 가지 예는 목록 16을 참조하세요.

목록 16. 절대 경로와 상대 경로

$ /bin/echo 내장 명령 대신 echo 명령을 사용하십시오.
내장 명령 대신 echo 명령을 사용하십시오.
$ /usr/../bin/echo 경로에 상위 디렉토리 포함
경로에 상위 디렉토리 포함
$ /bin/././echo 쓸모없는 경로 구성요소 몇 개 추가
쓸모없는 경로 구성요소 몇 개 추가
$ pwd # 우리가 어디에 있는지 확인하세요
/집/이안
$ ../../bin/echo 상대 경로를 사용하여 에코
상대 경로를 사용하여 에코
$ myprogs/hello # 점이 없는 상대 경로를 사용합니다.
-bash: myprogs/hello: 해당 파일이나 디렉터리가 없습니다.
$ mytestbin/hello # 점이 없는 상대 경로를 사용합니다.
안녕하세요 월드!
$ ./hello # 현재 디렉터리에서 프로그램 실행
안녕하세요 월드!
$ ~/mytestbin/hello # ~를 사용하여 hello를 실행합니다.
안녕하세요 월드!
$ ../hello # 부모로부터 hello를 실행해 보세요.
-bash: ../hello: 해당 파일이나 디렉터리가 없습니다.

작업 디렉터리 변경

다른 디렉터리에서 프로그램을 실행할 수 있는 것처럼 cd 명령을 사용하여 현재 작업 디렉터리를 변경할 수 있습니다. cd에 대한 인수는 디렉토리에 대한 절대 또는 상대 경로여야 합니다. 명령에서 경로를 지정할 때 ., .., ~ 및 ~username을 사용할 수도 있습니다. 매개변수 없이 cd를 입력하면 홈 디렉터리로 이동합니다. 단일(-)를 매개변수로 전달한다는 것은 이전 작업 디렉터리로 이동한다는 의미입니다. 홈 디렉터리는 HOME 환경 변수에 저장되고 이전 디렉터리는 OLDPWD 환경 변수에 저장되므로 cd는 cd $HOME, cd는 cd $OLDPWD와 같습니다. 우리는 일반적으로 현재 작업 디렉터리를 완전히 변경하는 대신 디렉터리 변경에 대해 간략하게 설명합니다.

명령의 경우, 상대 경로를 확인할 때 (현재 작업 디렉토리 외에) 검색해야 하는 콜론으로 구분된 디렉토리 목록이 포함된 환경 변수 CDPATH가 있습니다. 솔루션이 CDPATH의 경로를 사용하는 경우 cd는 찾은 디렉터리의 전체 경로를 출력으로 인쇄합니다. 일반적으로 성공적인 디렉토리 변경에는 새 초대 또는 약간 수정된 초대가 표시됩니다. 목록 17에는 몇 가지 예가 나와 있습니다.

목록 17. 디렉토리 변경하기

$cd/;비밀번호
$ cd /usr/X11R6;비밀번호
/usr/X11R6
$cd;비밀번호
/집/이안
$ cd -; 비밀번호
/usr/X11R6
/usr/X11R6
$ cd ~ian/..;pwd
/집
$ cd ~;pwd
/집/이안
$ 내보내기 CDPATH=~
$cd/;비밀번호
$ CD 마이테스트빈
/홈/이안/mytestbin

재귀적으로 명령 사용

많은 Linux 명령을 디렉터리 트리의 모든 파일에 반복적으로 적용할 수 있습니다. 예를 들어, ls 명령에는 디렉터리를 반복적으로 나열하는 -R 옵션이 있고, cp, mv, rm 및 diff 명령에는 이를 반복적으로 적용하는 -r 옵션이 있습니다.

명령 대체

Bash는 한 프로그램의 출력을 다른 프로그램의 입력으로 전달하는 매우 강력한 기능을 가지고 있습니다. 이것을 명령 대체라고 합니다. 원하는 결과를 나타내는 명령을 아포스트로피(`)로 묶어 이를 수행할 수 있습니다. 여러 개의 중첩된 명령을 사용하는 경우 $(and) 사이에 명령을 묶을 수 있습니다.

이전 매뉴얼 "LPI 101"에서: 리눅스 설치및 패키지 관리”에서 우리는 rpm 명령이 어떤 패키지가 어떤 명령에 속하는지 알 수 있다는 것을 보았습니다. 여기서는 명령 대체를 사용하는 것이 편리했습니다. 이제 당신은 우리가 실제로 해냈다는 것을 알고 있습니다.

명령 대체는 명령줄에서 사용될 때뿐만 아니라 스크립트를 작성할 때에도 귀중한 도구입니다. 목록 18에서는 상대 디렉터리 경로에서 절대 디렉터리 경로를 가져오는 방법, /bin/echo 명령을 제공하는 패키지를 찾는 방법, 루트로서 하드 드라이브에 있는 세 파티션의 레이블을 보는 방법에 대한 예를 보여줍니다. 후자는 seq 명령을 사용하여 정수 시퀀스를 생성합니다.

목록 18. 명령 대체

$ echo "../../usr/bin" 디렉토리는 $(cd ../../usr/bin;pwd)입니다.
../../usr/bin 디렉토리는 /usr/bin
$어느 에코
/bin/에코
$ rpm -qf `어떤 에코`
sh-utils-2.0.12-3
$su -
비밀번호:
# for n in $(seq 7 9); echo p$n `e2label /dev/hda$n`;완료
p7 RH73
p8 SUSE81
p9 이미지

맨 페이지

이 가이드의 마지막 섹션에서는 도움을 받는 방법을 살펴보겠습니다. 리눅스 팀매뉴얼 페이지와 기타 유형의 문서를 사용합니다.

매뉴얼 페이지 및 섹션

문서의 주요(그리고 전통적인) 소스는 man 명령을 사용하여 액세스할 수 있는 매뉴얼 페이지입니다. 그림 1은 man 명령의 매뉴얼 페이지를 보여줍니다. 이 정보를 얻으려면 man man 명령을 사용하십시오.

그림 1은 몇 가지 일반적인 매뉴얼 페이지 항목을 보여줍니다.

* 명령 이름과 괄호 안의 섹션 번호가 포함된 헤더
* 이 매뉴얼 페이지에서 논의되는 명령 이름 및 기타 유사한 명령
* 명령에 적용 가능한 옵션 및 매개변수 목록
* 팀에 대한 간단한 설명
* 상세 설명각 옵션

사용법, 오류 보고 방법, 작성자 정보 및 기타 명령 목록에 대한 섹션도 찾을 수 있습니다. 예를 들어, man의 매뉴얼 페이지에는 추가 명령(및 해당 매뉴얼)이 있다고 명시되어 있습니다.

apropos(1), whatis(1), less(1), groff(1) 및 man.conf(5).

일반적으로 매뉴얼 페이지에는 8개의 공통 섹션이 있습니다. 대부분의 페이지는 일반적으로 패키지가 설치될 때 설치되므로 패키지가 설치되지 않으면 해당 매뉴얼 페이지가 누락되는 것이 거의 확실합니다. 또한 페이지의 일부 섹션이 비어 있거나 거의 비어 있을 수 있습니다. 매뉴얼 페이지의 가장 일반적인 섹션은 다음과 같습니다.

1. 사용자 명령(env, ls, echo, mkdir, tty)
2. 시스템 호출 또는 커널 기능(link, sethostname, mkdir)
3. 라이브러리 함수(acosh, asctime, btree, locale, XML::Parser)
4. 장비 정보(isdn_audio, mouse, tty, zero)
5. 파일 형식에 대한 설명(keymaps, motd, wvdial.conf)
6. 게임(현재 많은 게임이 그래픽 모드에서 실행되므로 자체 시스템맨 페이지가 아닌 도움말)
7. 기타(arp, boot, regex, unix utf8)
8. 시스템 관리(debugfs, fdisk, fsck, mount, renice, rpm)

다른 섹션에는 Linux 커널 문서의 경우 9, 새 문서의 경우 n, 이전 문서의 경우 o, 로컬 문서의 경우 l이 포함될 수 있습니다.

일부 항목은 여러 섹션에 나타날 수 있습니다. 우리의 예에서는 mkdir이 섹션 1과 2에 포함되어 있고 tty가 섹션 1과 4에 포함되어 있음을 보여줍니다. man 4 tty 또는 man 2 mkdir과 ​​같은 특정 섹션을 정의하거나 -a 옵션을 사용하여 모든 man을 나열할 수 있습니다. 섹션 -페이지.

당신은 인간이 스스로 볼 수 있는 많은 선택권을 가지고 있다는 것을 그림에서 알게 될 것입니다. 지금은 인간 관련 명령의 "참조" 섹션을 간단히 살펴보겠습니다.

또한보십시오

인간과 관련된 가장 중요한 두 가지 명령은 whatis와 apropos입니다. whatis 명령은 사용자가 지정한 이름에 대한 매뉴얼 페이지를 검색하고 해당 매뉴얼 페이지의 이름에 대한 정보를 표시합니다. apropos 명령은 다음을 검색합니다. 키워드매뉴얼 페이지에 사용자의 단어가 포함된 페이지를 표시합니다. 목록 19에서는 이러한 명령을 보여줍니다.

목록 19. whatis 및 apropos 명령의 예

$뭐야 남자야?
man (1) - 온라인 매뉴얼 페이지의 형식을 지정하고 표시합니다.
man (7) - 매뉴얼 페이지 형식을 지정하는 매크로
man (1) - 온라인 매뉴얼 페이지의 형식을 지정하고 표시합니다.
man.conf (5) - man용 구성 데이터
$mkdir이 무엇인가요?
mkdir (1) - 디렉토리 만들기

$ mkdir 근처
mkdir (1) - 디렉토리 만들기
mkdir(2) - 디렉토리 생성
mkdirhier (1x) - 디렉토리 계층 구조를 만듭니다.

그런데 man.conf의 매뉴얼 페이지를 찾을 수 없다면 man man.conf ig를 실행해 보십시오.

man 명령이 표시됩니다. 특별 프로그램페이지 출력. 대부분의 Linux 시스템에서 이 프로그램은 더 적습니다. 또 다른 옵션은 이전 프로그램일 수도 있습니다. 페이지를 인쇄하려면 -t 옵션을 지정하여 페이지 형식을 지정하고 groff 또는 troff 프로그램을 사용하여 인쇄하십시오.

less 출력 프로그램에는 표시된 텍스트에서 문자열을 더 쉽게 찾을 수 있게 해주는 여러 명령이 있습니다. /(정방향 검색), ?(역방향 검색), n(마지막으로 수행된 검색) 및 기타 여러 명령에 대해 자세히 알아보려면 man less를 사용하십시오.

기타 문서 소스

명령줄에서 액세스할 수 있는 매뉴얼 페이지 외에도 자유 소프트웨어 재단은 처리되는 수많은 정보 파일을 만들었습니다. 정보 프로그램. 그녀는 좋은 기회다른 섹션으로 이동하는 기능을 포함한 탐색. 자세한 내용을 보려면 man info 또는 info info를 입력하세요. 모든 명령이 info에 문서화되어 있는 것은 아니므로 매뉴얼 페이지와 info를 모두 사용할 수 있습니다.

여러 가지가 있습니다 그래픽 인터페이스 xman(XFree86 프로젝트) 및 yelp(Gnome 2.0 도움말 브라우저)와 같은 매뉴얼 페이지에.

명령에 대한 도움말을 찾을 수 없으면 –help 옵션을 사용하여 명령을 실행해 보십시오. 이렇게 하면 원하는 것이 무엇인지 알 수 있거나 다른 곳을 볼 수 있는 힌트를 얻을 수 있습니다.

다음 섹션은 처리에 관한 것입니다. 텍스트 스트림필터를 사용합니다.

Bash는 명령 셸, 즉 대부분의 Linux 배포판에서 기본적으로 사용되는 명령 해석기입니다. Bash 쉘에는 많은 기능이 있습니다. 단순한 통역사 그 이상으로 올바른 손으로 Bash는 본격적인 프로그래밍 언어가 될 수 있습니다.

셸의 주요 작업은 명령을 실행하는 것이지만 파일 시스템에 있는 유틸리티 외에도 Bash에는 자체 명령 세트가 있으며 그 중 대부분은 사용자가 깨닫지 못한 채 매일 사용하는 것입니다. 이러한 Bash 명령은 디스크에 없지만 셸 자체에 내장되어 있습니다. 이 기사에서는 일부 상황에서 유용할 수 있는 Linux의 기본 bash 명령을 살펴보겠습니다.

이번 글은 서론이 길지 않고 바로 본론으로 들어가겠습니다. 모든 목록 요소는 무작위 순서로 정렬됩니다. 이 모든 과정을 거치면 Bash에서의 작업에 대해 더 잘 이해하게 될 것입니다.

1. 출처

이 명령을 사용하면 현재 명령 셸의 지정된 파일에서 모든 명령을 읽고 실행할 수 있습니다. 이는 여기에 지정된 모든 것을 의미합니다. 환경 변수실행하는 모든 스크립트나 명령에 표시됩니다. 일반 스크립트를 실행하고 그 안에 변수를 선언하면 스크립트에 대해 별도의 셸 인스턴스가 생성되므로 해당 스크립트에서만 사용할 수 있다는 점을 상기시켜 드리겠습니다. 부모의 변수를 상속하지만 그 반대는 아닙니다. 이 명령은 chroot 이후 환경을 업데이트하는 데 자주 사용됩니다.

소스 /etc/profile

2. 별칭

alias 명령을 사용하면 다른 명령에 대한 별칭을 만들 수 있습니다. 예를 들어, update를 입력할 때 sudo apt update && sudo apt 업그레이드를 실행하도록 구성할 수 있습니다. 매개변수 없이 명령을 호출하면 이미 정의된 별칭 목록이 표시됩니다. 만드는 방법에 대한 자세한 내용은 별도의 기사를 참조하세요.

3.바인드

이 명령을 사용하면 키 입력을 특정 명령이나 기능과 연결할 수 있습니다. 예를 들어, 터미널 창에서 F12를 누를 때 실행되도록 pwd 명령을 구성해 보겠습니다.

바인딩 ""\e)