GNU/LinuxGNU / Linux 시작하기

안녕하세요 세계

터미널에 다음 코드를 입력 한 다음 Enter 키를 누릅니다 .

echo "Hello World"

그러면 다음과 같은 결과가 출력됩니다.

Hello World

파일 조작

파일과 디렉토리 (폴더의 또 다른 이름)는 Linux의 핵심이므로 커맨드 라인에서 파일을 만들고,보고, 이동하고, 삭제할 수 있다는 것은 매우 중요하고 매우 강력합니다. 이러한 파일 조작 명령을 사용하면 그래픽 파일 탐색기에서 수행 할 동일한 작업을 수행 할 수 있습니다.

myFile 이라는 빈 텍스트 파일을 만듭니다.

touch myFile

myFilemyFirstFilemyFirstFile .

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 는 사용자가 파일에 대해 갖는 사용 권한이며, 다음 세 가지는 그룹이 파일에 대해 갖는 사용 권한이며, 마지막 세 가지는 다른 모든 사용자가 파일에 대해 가지는 사용 권한입니다.

rwxr 은 파일을 읽을 수 있는지를 나타내며 w 는 파일을 수정할 수있는 경우를 나타내고 x 는 파일을 실행할 수 있는지를 나타냅니다. 모든 권한이 부여되지 않은 경우 - 대신에있을 것입니다 r , w 또는 x .

그래서 위의 usersomeFile.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