GNU/Linux 튜토리얼
GNU / Linux 시작하기
수색…
안녕하세요 세계
터미널에 다음 코드를 입력 한 다음 Enter 키를 누릅니다 .
echo "Hello World"
그러면 다음과 같은 결과가 출력됩니다.
Hello World
파일 조작
파일과 디렉토리 (폴더의 또 다른 이름)는 Linux의 핵심이므로 커맨드 라인에서 파일을 만들고,보고, 이동하고, 삭제할 수 있다는 것은 매우 중요하고 매우 강력합니다. 이러한 파일 조작 명령을 사용하면 그래픽 파일 탐색기에서 수행 할 동일한 작업을 수행 할 수 있습니다.
myFile
이라는 빈 텍스트 파일을 만듭니다.
touch myFile
myFile
을 myFirstFile
로 myFirstFile
.
mv myFile myFirstFile
파일 내용보기 :
cat myFirstFile
호출기로 파일 내용보기 (한 번에 한 화면 씩) :
less myFirstFile
파일의 처음 몇 줄보기 :
head myFirstFile
파일의 마지막 몇 줄을 봅니다.
tail myFirstFile
파일 편집 :
vi myFirstFile
현재 작업 디렉토리에있는 파일보기 :
ls
myFirstDirectory
라는 빈 디렉토리를 만듭니다.
mkdir myFirstDirectory
다중 경로 디렉토리 만들기 : (src와 myFirstDirectory라는 두 개의 디렉토리를 만듭니다)
mkdir -p src/myFirstDirectory
파일을 디렉토리로 이동하십시오.
mv myFirstFile myFirstDirectory/
파일의 이름을 바꿀 수도 있습니다.
user@linux-computer:~$ mv myFirstFile secondFileName
현재 작업 디렉토리를 myFirstDirectory
변경하십시오.
cd myFirstDirectory
파일 삭제 :
rm myFirstFile
상위 디렉토리 ( ..
표시됨)로 이동하십시오.
cd ..
빈 디렉토리 삭제 :
rmdir myFirstDirectory
비어 있지 않은 디렉토리를 지우십시오 (즉, 파일 및 / 또는 다른 디렉토리 포함).
rm -rf myFirstDirectory
디렉토리를 삭제할 때 ./
not /
를 삭제하면 파일 시스템 전체가 지워집니다.
파일 / 디렉토리 세부 정보
ls
명령에는 더 많은 정보를 표시하기 위해 함께 사용할 수있는 몇 가지 옵션이 있습니다.
세부 정보 / 권한
l
옵션은 파일 권한, 크기 및 최종 수정 날짜를 표시합니다. 그래서 루트 디렉토리에 test
라는 파일과 someFile
이라는 파일이 someFile
:
user@linux-computer:~$ ls -l
같은 것을 출력할까요?
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test
사용 권한은 drwxrwxrwx
형식입니다. 첫 번째 문자는 파일 형식 나타내는 d
이 디렉토리 인 경우 -
그렇지. 다음 세 rwx
는 사용자가 파일에 대해 갖는 사용 권한이며, 다음 세 가지는 그룹이 파일에 대해 갖는 사용 권한이며, 마지막 세 가지는 다른 모든 사용자가 파일에 대해 가지는 사용 권한입니다.
rwx
의 r
은 파일을 읽을 수 있는지를 나타내며 w
는 파일을 수정할 수있는 경우를 나타내고 x
는 파일을 실행할 수 있는지를 나타냅니다. 모든 권한이 부여되지 않은 경우 -
대신에있을 것입니다 r
, w
또는 x
.
그래서 위의 user
는 someFile.txt
읽고 수정할 수 있지만 그룹에는 읽기 전용 권한 만 있습니다.
권한을 변경하려면 sudo 권한이있는 경우 chmod ### fileName
명령을 사용할 수 있습니다. r
은 4의 값으로 표시되고, w
는 2로 표시되며, x
는 1로 표시됩니다. 따라서 단지 내용을 test
디렉토리로 수정할 수 있기를 원한다면
Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5
그래서 전체 명령은
chmod 755 test
이제 ls -l
수행하면 다음과 같은 내용이 표시됩니다.
drwxr-xr-x 2 user users 4096 Jul 21 07:20 test
읽을 수있는 크기
l
옵션과 함께 사용하면 h
옵션은 사람이 읽을 수있는 파일 크기를 표시합니다. 달리는
user@linux-computer:~$ ls -lh
출력 :
total 4166
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test
숨겨진
숨김 파일을 보려면 a
옵션을 사용하십시오. 예를 들어
user@linux-computer:~$ ls -a
리스트가 될 수도있다
.profile
someFile.txt
test
총 디렉토리 크기
현재 디렉토리의 크기를 보려면 s
옵션을 사용하십시오 ( h
옵션을 사용하여 크기를 더 쉽게 읽을 수 있습니다).
user@linux-computer:~$ ls -s
출력
total 4166
someFile.txt test
재귀 뷰
test
디렉토리에 anotherFile
이라는 파일이 있고 이것을 루트 폴더에서보고 싶다면 재귀 트리를 나열하는 R
옵션을 사용할 수 있습니다.
user@linux-computer:~$ ls -R
출력
.:
someFile.txt test
./test:
anotherFile
기본 리눅스 유틸리티
리눅스는 거의 모든 작업에 대한 명령을 가지고 있으며 대부분이 직관적이며 쉽게 해석됩니다.
Linux에서 도움말보기
명령 | 유용성 |
---|---|
man <name> | <name>의 매뉴얼 페이지를 읽으십시오. |
man <section> <name> | 주어진 섹션과 관련된 <name>의 매뉴얼 페이지를 읽으십시오. |
man -k <editor> | 매뉴얼 페이지에 <editor> 키워드가 포함 된 모든 소프트웨어를 출력하십시오. |
man -K <keyword> | <keyword>가 포함 된 모든 맨 페이지를 출력합니다. |
apropos <editor> | 하나의 회선 설명이 단어 편집기 와 일치하는 모든 응용 프로그램을 출력하십시오. 응용 프로그램의 이름을 다시 호출 할 수 없으면 이 명령을 사용하십시오. |
help | Bash 쉘에서는 사용 가능한 모든 bash 명령리스트를 표시합니다. |
help <name> | Bash 쉘에서는 <name> bash 명령에 대한 정보를 표시합니다. |
info <name> | <이름>에 대한 모든 정보를 봅니다. |
dpkg -l | 데비안 기반 시스템에 설치된 모든 패키지 목록을 출력하십시오. |
dpkg -L packageName | 데비안의 특정 패키지에 대한 파일 및 설치된 경로를 나열합니다. |
dpkg -l | grep -i <edit> | <편집>을 사용하여 설치된 모든 .deb 설치된 패키지를 사례와 상관없이 반환하십시오. |
less /var/lib/dpkg/available | 사용 가능한 모든 패키지에 대한 설명을 반환합니다. |
whatis vim | vim에 대한 한 줄짜리 설명을 나열하십시오. |
<command-name> --help | <tool-name>에 대한 사용 정보를 표시하십시오. 때때로 command -h 도 작동하지만 모든 명령에 대해서는 작동하지 않습니다. |
사용자 ID 및 리눅스 세계에서 누가 누구인가
명령 | 유용성 |
---|---|
hostname | 시스템의 호스트 이름을 표시합니다. |
hostname -f | 시스템의 FQDN (정규화 된 도메인 이름)을 표시합니다. |
passwd | 현재 사용자의 비밀번호를 변경하십시오. |
whoami | 터미널에 로그인 한 사용자의 사용자 이름. |
who | 현재 사용자로 로그인 한 모든 사용자 목록입니다. |
w | 현재 시스템 상태, 시간, 기간, 현재 시스템에 로그인 한 사용자 목록 및 기타 사용자 정보를 표시합니다. |
last | 누가 최근에 시스템을 사용 했습니까? |
last root | root 가 사용자로 마지막으로 로그인 한 시간은 언제입니까? |
lastb | 시스템에 대한 잘못된 로그인 시도를 모두 표시합니다. |
chmod | 권한 변경 - 파일 또는 디렉토리의 읽기, 쓰기, 실행. |
프로세스 관련 정보
명령 | 유용성 |
---|---|
top | 현재 시스템 리소스 사용법에 따라 정렬 된 모든 프로세스를 나열하십시오. 지속적으로 업데이트 된 프로세스 표시를 표시합니다 (기본적으로 3 초). q 키를 사용하여 상단에서 나갑니다. |
ps | 현재 셸 세션에서 현재 실행중인 프로세스 나열 |
ps -u root | 루트가 실행중인 모든 프로세스와 명령 나열 |
ps aux | 현재 시스템의 모든 사용자가 모든 프로세스를 나열합니다. |
파일 관리 명령
Linux는 현재 및 상위 디렉토리에 대해 몇 가지 규칙을 사용합니다. 이것은 초보자에게 약간 혼란 스러울 수 있습니다.
Linux의 터미널에있을 때마다 현재 작업 디렉토리 라고 불리는 곳에있게됩니다. 종종 명령 프롬프트에 전체 작업 디렉토리 또는 해당 디렉토리의 마지막 부분 만 표시됩니다. 프롬프트는 다음 중 하나처럼 보일 수 있습니다.
user@host ~/somedir $
user@host somedir $
user@host /home/user/somedir $
현재 작업 디렉토리는 /home/user/somedir
입니다.
Linux에서 ..
는 상위 디렉토리를 나타냅니다 .
현재 디렉토리를 나타냅니다.
따라서 현재 디렉토리가 /home/user/somedir
인 경우 cd ../somedir
은 작업 디렉토리를 변경하지 않습니다.
아래 표에는 가장 많이 사용되는 파일 관리 명령이 나와 있습니다
디렉토리 탐색
명령 | 유용 |
---|---|
pwd | 현재 작업 디렉토리의 전체 경로를 가져옵니다. |
cd - | 작업하고있는 마지막 디렉토리로 이동하십시오. |
cd ~ 아니면 그냥 cd | 현재 사용자의 홈 디렉토리로 이동하십시오. |
cd .. | 현재 디렉토리의 상위 디렉토리로 이동하십시오 ( cd 와 .. 사이의 공간에주의하십시오). |
디렉토리 안에 파일 나열하기
명령 | 유용 |
---|---|
ls -l | 현재 디렉토리에있는 파일과 디렉토리를 긴 (테이블) 형식으로 나열하십시오 (가독성을 높이려면 -l과 ls를 함께 사용하는 것이 좋습니다). |
ls -ld dir-name | 내용 대신 디렉토리 dir-name 에 대한 정보를 나열하십시오. |
ls -a | (파일 이름은로 시작하는 숨겨진 포함한 모든 파일을 나열합니다 . 리눅스에서 숨겨진 파일). |
ls -F | 파일 이름 끝에 기호를 추가하여 해당 유형을 나타냅니다 ( * 는 실행 파일, / 는 디렉토리, @ 는 기호 링크, = 는 소켓, |는 명명 된 파이프를 의미 함, > 은 문을 의미). |
ls -lt | 가장 최근에 수정 한 파일을 맨 위에 표시하여 마지막으로 수정 한 시간순으로 정렬 한 파일을 나열하십시오 (-l 옵션은 가독성이 뛰어난 긴 형식을 제공합니다). |
ls -lh | 사람이 읽을 수있는 형식으로 파일 크기를 나열하십시오. |
ls -lR | 모든 서브 디렉토리를 재귀 적으로 표시합니다. |
tree | 현재 디렉토리에서 시작하는 파일 시스템의 트리 표현을 생성합니다. |
파일 / 디렉토리 생성, 복사 및 제거
명령 | 유용 |
---|---|
cp -p source destination | source 에서 대상으로 파일을 복사합니다. -p는 보존을 나타냅니다. 파일 소유자, 타임 스탬프, 그룹, 권한 등을 복사하는 동안 파일의 원래 속성을 보존합니다. |
cp -R source_dir destination_dir | 소스 디렉토리를 지정된 대상에 반복적으로 복사합니다. |
mv file1 file2 | Linux에서는 이름 바꾸기 명령이 없습니다. 그러므로 mv 는 file1을 file2로 옮기거나 이름을 바꿉니다. |
rm -i filename | 모든 파일을 삭제하기 전에 확인을 요청합니다. 만약 당신이 리눅스 커맨드 라인에 새로운 사용자라면, 당신은 항상 rm -i 합니다. 여러 개의 파일을 지정할 수 있습니다. |
rm -R dir-name | dir-name 디렉토리를 재귀 적으로 제거합니다. |
rm -rf dir-name | 디렉토리 dir 재귀 적으로 제거하고 존재하지 않는 파일은 무시하며 아무 것도 묻지 않습니다. 이 명령을 신중하게 사용하십시오! 여러 개의 디렉토리를 지정할 수 있습니다. |
rmdir dir-name | 비어있는 경우 디렉토리 dir-name 제거합니다. 이 명령은 빈 디렉토리 만 제거 할 수 있습니다. |
mkdir dir-name | 디렉토리 dir-name 만듭니다. |
mkdir -p dir-name/dir-name | 디렉토리 계층 구조를 작성하십시오. 존재하지 않는 경우 필요에 따라 상위 디렉토리를 만듭니다. 여러 개의 디렉토리를 지정할 수 있습니다. |
touch filename | 존재하지 않으면 파일 filename 작성하십시오. 그렇지 않으면 파일의 시간 소인을 현재 시간으로 변경하십시오. |
파일 / 디렉터리 사용 권한 및 그룹
명령 | 유용 |
---|---|
chmod <specification> filename | 파일 사용 권한을 변경하십시오. 사양 = u 사용자 g 기, o 기타 + 추가 허가 - 제거 r 판독, w 쓰기, x 실행한다. |
chmod -R <specification> dir-name | 디렉터리의 사용 권한을 재귀 적으로 변경하십시오. 디렉토리의 권한 및 해당 디렉토리 내의 모든 것을 변경하려면이 명령을 사용하십시오. |
chmod go=+r myfile | 소유자와 그룹에 대한 읽기 권한을 추가하십시오. |
chmod a +rwx myfile | 모든 사용자가 myfile 을 읽거나 쓰거나 실행할 수있게하십시오. |
chmod go -r myfile | 그룹 및 다른 사용자의 읽기 권한을 제거하십시오. |
chown owner1 filename | 파일 소유권을 사용자 owner1 변경하십시오. |
chgrp grp_owner filename | 파일 filename 의 기본 그룹 소유권을 grp_owner 그룹으로 변경하십시오. |
chgrp -R grp_owner dir-name | 디렉토리 dir-name 의 기본 그룹 소유권을 grp_owner 재귀 적으로 그룹화 grp_owner 변경하십시오. 디렉토리의 그룹 소유권과 해당 디렉토리 내의 모든 것을 변경하려면이 명령을 사용하십시오. |
유용한 단축키
터미널 사용하기
이 문서의 예제는 POSIX 호환 ( bash , sh , zsh , ksh 등 ) 쉘을 사용하고 있다고 가정합니다.
GNU / Linux 기능의 상당 부분은 터미널을 사용하여 수행됩니다. 대부분의 Linux 배포판에는 사용자가 데스크탑 환경에서 쉘과 상호 작용할 수있는 터미널 에뮬레이터가 포함되어 있습니다. 셸은 사용자가 입력 한 명령을 실행하는 명령 줄 인터프리터입니다. Bash (Bourne Again SHell)는 많은 리눅스 배포판 중에서 일반적인 기본 쉘이며 macOS의 기본 쉘입니다.
이 단축키는 emacs 키 바인딩이있는 Bash 를 사용하는 경우 작동합니다 (기본적으로 설정 됨).
단자 열기
- Ctrl + Alt + T 또는 수퍼 + T
커서 이동
- Ctrl + A 현재 입력중인 행의 시작 부분으로 이동하십시오.
- Ctrl + E 현재 입력중인 행의 끝으로 이동하십시오.
- Ctrl + XX 행의 시작과 커서의 현재 위치 사이를 이동합니다.
- Alt + F 현재 행의 한 단어 앞으로 커서를 이동하십시오.
- Alt + B 현재 행에서 한 단어 뒤로 커서를 이동하십시오.
- Ctrl + F 현재 행의 한 문자 앞으로 커서를 이동하십시오.
- Ctrl + B 현재 행의 한 문자 뒤로 커서를 이동하십시오.
텍스트 조작
- Ctrl + U 현재 위치에서부터 줄의 시작 부분까지 줄을 잘라 클립 보드에 추가합니다. 줄이 끝나면 전체 줄을 자릅니다.
- Ctrl + K 현재 위치에서부터 라인 끝까지 잘라내어 클립 보드에 추가합니다. 줄의 시작 부분에 있다면 전체 줄을 자릅니다.
- Ctrl + W 커서 앞에있는 단어를 삭제하여 클립 보드에 추가합니다.
- Ctrl + Y 최근에 잘라낸 클립 보드의 마지막 항목을 붙이십시오 ( 현재 커서 위치에서 마지막 삭제를 실행 취소하십시오).
- Alt + T 커서 앞에있는 마지막 두 단어를 바꿉니다.
- Alt + L 커서에서 단어 끝까지 소문자로 만듭니다.
- Alt + U 커서를 단어의 끝으로 대문자로 만듭니다.
- Alt + C 커서에서 시작하는 단어의 끝을 나타냅니다 (커서가 단어의 시작 부분에 있으면 전체 단어).
- Alt + D 커서에서 시작하는 단어의 끝으로 삭제합니다 (커서가 단어의 시작 부분에 있으면 전체 단어).
- Alt +. 이전 명령에서 작성된 마지막 단어를 인쇄합니다.
- Ctrl + T 커서 앞에있는 마지막 두 문자를 바꿉니다.
기록 액세스
- Ctrl + R 이전에 사용한 명령을 검색 할 수 있습니다.
- Ctrl + G 명령을 실행하지 않고 기록 검색 모드를 종료합니다.
- Ctrl + J 현재 일치 된 명령을 실행하지 않고 명령 행에 복사 할 수 있으므로 명령을 실행하기 전에 수정 작업을 수행 할 수 있습니다.
- Alt + R 편집 한 경우 기록에서 가져온 명령의 변경 사항을 되돌립니다.
- Ctrl + P 마지막으로 실행 한 명령을 표시합니다. 예를 들어 명령 기록을 다시 돌아 봅니다 (위쪽 화살표와 유사).
- Ctrl + N 다음 실행 된 명령을 표시합니다. 즉, 명령 내역을 앞으로 건너 뜁니다 (아래쪽 화살표와 유사).
터미널 제어
- Ctrl + L clear 명령과 비슷한 화면을 지 웁니다.
- Ctrl + S 모든 출력을 화면에 표시하지 않습니다. 이것은 많은 출력을 가진 명령을 실행할 때 유용합니다. 그러나 이것은 실행 명령을 멈추지 않습니다.
- Ctrl + Q Ctrl + S를 사용하여 화면을 중단 한 후 출력을 다시 시작합니다.
- Ctrl + C 현재 실행중인 프로세스를 종료하고 프롬프트를 리턴합니다.
- Ctrl + D exit 또는 logout 명령과 유사하게 현재 쉘 세션에서 로그 아웃합니다. 일부 명령에서는 파일 끝에 도달했음을 나타내는 파일 끝 (End of File) 신호로 작동합니다.
- Ctrl + Z 쉘 프롬프트를 반환하는 현재 실행중인 포 그라운드 프로세스를 일시 중단합니다 (일시 중지합니다). 그런 다음 해당 프로세스가 백그라운드에서 실행될 수 있도록
bg
명령을 사용할 수 있습니다. 해당 프로세스를 다시 포 그라운드로 가져 오려면fg
명령을 사용하십시오. 모든 백그라운드 프로세스를 보려면jobs
명령을 사용하십시오. - 탭 파일 및 디렉토리 이름을 자동 완성합니다.
- 탭 탭 입력 된 문자가 파일 또는 디렉토리 이름과 고유하게 일치하지 않을 때 모든 가능성을 표시합니다.
특수 문자
- Ctrl + H Backspace와 동일합니다.
- Ctrl + J Return과 같습니다 (역사적으로 Line Feed).
- Ctrl + M Return과 동일합니다 (이전의 Carriage Return).
- Ctrl + I Tab과 동일합니다.
- Ctrl + G 벨 문자.
- Ctrl + @ 널 문자.
- Alt 수정 자와 동등한 Esc Deadkey .
터미널 닫기
- Ctrl + Shift + W 터미널 탭을 닫습니다.
- Ctrl + Shift + Q 전체 터미널을 닫습니다.
또는 set -o vi
사용하여 bash 에서 vi 키 바인딩으로 전환 할 수 있습니다. emacs 키 바인딩으로 다시 전환하려면 set -o emacs
를 사용하십시오.
이름 / 내용 패턴 검색
리눅스 커맨드 라인 (셸)을 사용하는 사람의 일반적인 일은 특정 이름을 가진 파일 / 디렉토리를 검색하거나 특정 텍스트를 포함하는 파일 / 디렉토리를 검색하는 것입니다. 이 작업을 수행하기 위해 알아 두어야 할 두 가지 명령이 있습니다.
이름으로 파일 찾기
find /var/www -name '*.css'
이것은 .css
끝나는 /var/www
아래의 모든 파일에 전체 경로 / 파일 이름을 출력합니다. 예제 출력 :
/var/www/html/text-cursor.css
/var/www/html/style.css
더 많은 정보를 위해서:
man find
텍스트가 포함 된 파일 찾기
grep font /var/www/html/style.css
이렇게하면 지정된 파일에 패턴 font
포함 된 모든 행이 인쇄됩니다. 예제 출력 :
font-weight: bold;
font-family: monospace;
다른 예시:
grep font /var/www/html/
이것은 당신이 바라는대로 작동하지 않습니다. 당신은 얻는다 :
grep: /var/www/html/: Is a directory
-R
옵션을 사용하여 grep
재귀 적으로 작동시켜야합니다.
grep -R font /var/www/html/
이봐! 이 출력을 확인하십시오.
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css: font-weight: bold;
/var/www/html/style.css: font-family: monospace;
grep
이 여러 파일과 일치 할 때 일치하는 행 앞에 파일 이름이 붙습니다. 원하는 경우 -h
옵션을 사용하여 제거 할 수 있습니다.
더 많은 정보를 위해서:
man grep