diff --git a/blog/2023/05-06-ella/index.md b/blog/2023/05-06-ella/index.md index f0e4643..8baea5a 100644 --- a/blog/2023/05-06-ella/index.md +++ b/blog/2023/05-06-ella/index.md @@ -6,128 +6,124 @@ slug: linux-basic-commands # Linux Basic Commands ## 서론 -안녕하세요. SPARCS Biseo팀에서 Front-End 개발자로 활동하고 있는 김민주입니다.
이번 블로그 포스트에서는 강력하고 널리 사용되고 있는 오픈 소스 운영 체제인 리눅스를 주제로 선정하게 되었습니다. 리눅스에도 GUI(Graphic User Interface) 환경이 존재하지만, 리눅스를 100% 활용하기 위해서는 CLI(Command Line Interface) 환경에 익숙해져야 합니다. 더 많은 사람이 조금 더 리눅스 CLI 환경에 익숙해질 수 있도록 이 글을 통해 리눅스의 다양한 기본 명령어들에 관해 설명해 보려고 합니다. +안녕하세요. SPARCS Biseo팀에서 Front-End 개발자로 활동하고 있는 김민주입니다. + +이번 블로그 포스트에서는 강력하고 널리 사용되고 있는 오픈 소스 운영 체제인 리눅스를 주제로 선정하게 되었습니다. 리눅스에도 GUI(Graphic User Interface) 환경이 존재하지만, 리눅스를 100% 활용하기 위해서는 CLI(Command Line Interface) 환경에 익숙해져야 합니다. 더 많은 사람이 조금 더 리눅스 CLI 환경에 익숙해질 수 있도록 이 글을 통해 리눅스의 다양한 기본 명령어들에 관해 설명해 보려고 합니다. ## 본론 ### 1. 파일 시스템 탐색하기 가장 먼저 파일 시스템을 탐색하는 명령어들에 대해 알아보겠습니다. 다음은 가장 대표적인 파일 시스템 탐색 명령어들입니다. -
+ - **pwd** : 이 명령어는 현재 사용자가 위치한 디렉토리를 표시합니다. -
+ - **cd** : 이 명령어는 다른 디렉토리로 이동할 수 있는 명렁어입니다. cd 뒤에 절대경로 또는 상대경로를 덧붙여 사용자가 원하는 디렉토리로 이동합니다. 많이 사용하는 명령 형태는 다음과 같습니다. -
- **cd ..** : 이 명령은 한 단계 위의 디렉토리로 이동합니다. -
- **cd ~** : 이 명령은 홈 디렉토리로 이동합니다. -
+ ### 2. 파일 및 디렉토리 확인하기 현재 디렉토리에 있는 파일과 디렉토리를 확인하기 위한 명령어는 ls입니다. 기본적인 형태 이외에도 '-' 뒤에 옵션을 붙이는 형태로 옵션 지정을 하여 사용할 수 있습니다. 다양한 옵션은 동시에 사용하는 경우에는 '-' 뒤에 사용하고 싶은 옵션들을 이어서 쓰는 방식으로 사용할 수 있습니다. -
+ - **ls** : 파일 및 디렉토리를 알파벳순으로 나열합니다. -
- **-l 옵션** : 자세한 긴 형식 목록을 표시합니다. -
- **-a 옵션** : 숨겨진 파일과 디렉토리를 표시합니다. -
- **-t 옵션**: 마지막 수정 시간별로 파일을 정렬합니다. -
+ ### 3. 파일 및 디렉토리 관리하기 파일 및 디렉토리를 생성, 복사, 이동 및 삭제하는 명령어는 다음과 같습니다. -
+ - **touch** : 빈 파일을 생성합니다.
ex) touch file.txt는 "file.txt"라는 새 텍스트 파일을 생성합니다. -
+ - **mkdir** : 이 명령어는 새 디렉토리를 생성합니다.
ex) mkdir new_directory는 "new_directory"라는 새 폴더를 생성합니다. -
+ - **cp** : 이 명령어는 파일이나 디렉토리를 복사합니다.
ex) cp file.txt new_directory/는 "file.txt"를 "new_directory" 폴더로 복사합니다. -
+ - **mv** : 이 명령어는 파일이나 디렉토리를 다른 디렉토리로 이동시킵니다.
ex) mv file.txt new_directory/는 "file.txt"를 "new_directory" 폴더로 이동시킵니다. -
+ - **rm** : 이 명령어는 파일을 삭제합니다. 다만 이 명령어는 파일만 삭제할 수 있기에 디렉토리를 삭제하는 경우에는 아래에 나와있는 -r옵션을 함께 사용하거나 rmdir 명령어를 사용해야합니다.
ex) rm file.txt는 "file.txt" 파일을 삭제합니다. -
- **-r 옵션** : 디렉토리와 그 내용을 삭제하는 옵션입니다.
ex) rm -r new_directory는 "new_directory" 폴더와 그 모든 내용을 삭제합니다. -
- - **-rf 옵션** : 파일 및 디렉토리를 완전히 삭제하는 옵션입니다.
※ 다만 이 옵션은 시스템을 손상시킬 수 있는 굉장히 강력하고 위험한 옵션이기에 사용시에 많은 주의가 필요합니다. -
+ - **-rf 옵션** : 파일 및 디렉토리를 완전히 삭제하는 옵션입니다. ※ 다만 이 옵션은 시스템을 손상시킬 수 있는 굉장히 강력하고 위험한 옵션이기에 사용시에 많은 주의가 필요합니다. + - **rmdir** : 이 명령어는 빈 디렉토리를 삭제합니다.
ex) rmdir new_directory는 "new_directory" 폴더를 삭제합니다. -
+ ### 4. 파일 보기 및 편집하기 리눅스에서는 파일을 열고 편집하는 다양한 방법이 있습니다. 각 방법마다 사용방법이 다르기 때문에 사용자에 따라서 편하다고 생각되는 방법을 선택해 사용하시면됩니다. -
+ - **cat** : 이 명령은 파일의 내용을 표시합니다.
ex) cat file.txt는 "file.txt"의 내용을 표시합니다. -
+ - **less** : 이 명령은 대용량 파일을 스크롤 가능한 페이지별 방식으로 보여줍니다.
ex) less file.txt. -
+ - **nano, vim, emacs** : 이들은 파일을 생성하고 수정할 수 있는 텍스트 편집기입니다.
ex) vim file.txt는 vim 편집기에서 "file.txt"를 엽니다. -
+ ### 5. 파일 및 디렉토리 검색 리눅스에서 파일과 디렉토리를 검색하는 명령어는 다음과 같습니다. -
+ - **find** : 지정된 조건에 따라 파일과 디렉토리를 검색합니다.
ex) find . -name "*.txt"는 현재 디렉토리와 하위 디렉토리에서 모든 텍스트 파일을 찾습니다. -
+ - **grep** : 파일 내에서 텍스트를 검색합니다.
ex) grep "search_string" file.txt는 "file.txt"에서 "search_string"이 포함된 행을 표시합니다. -
- **-r 옵션** : 재귀 검색을 위한 옵션입니다. -
+ ### 6. 권한 및 소유권 리눅스의 파일과 디렉토리에는 권한과 소유권이라는 개념이 존재합니다. 파일 또는 디렉토리의 권한과 소유권을 확인하기 위해서는 ls -l 명령을 사용한 뒤에 다음과 같은 출력에서 앞부분을 보면 됩니다. +~~~shell -rw-r--r-- 1 user group file.txt -
+~~~ + - 출력의 앞부분인 -rw-r--r--은 해당 파일 또는 디렉토리의 권한과 소유권을 나타내는 부분입니다. -
+ - 먼저 첫 번째 문자는 파일 유형을 나타냅니다. -는 일반 파일, d는 디렉토리, l은 심볼릭 링크입니다. -
+ - 다음 아홉 개의 문자들은 세 문자씩 순서대로 소유자(owner), 그룹(group), 그리고 기타(other)에 대한 권한을 나타냅니다. 각 그룹별로 세 가지 권한이 있습니다: 읽기(r), 쓰기(w), 실행(x). -
+ - 그 다음 필드는 파일 또는 디렉토리에 대한 하드 링크 수를 보여줍니다. -
+ - 그 다음 두 필드는 파일 또는 디렉토리와 연결된 소유자와 그룹을 표시합니다. -
+ - 그 다음 필드는 바이트 단위의 파일 크기를 보여줍니다. -
+ - 그 다음 필드는 마지막 수정 날짜와 시간을 표시합니다. -
+ - 마지막으로 파일 또는 디렉토리 이름이 표시됩니다. -
+ 권한을 변경하려면 chmod 명령을 사용합니다. -
+ - **chmod u+x file.txt** : 소유자(사용자)에 대한 실행 권한을 추가합니다. -
+ - **chmod g-w file.txt** : 그룹에 대한 쓰기 권한을 제거합니다. -
+ - **chmod o=r file.txt** : 기타 사용자의 권한을 읽기 전용으로 설정합니다. -
+ - **chmod 755 file.txt** : 8진수 표기법을 사용하여 권한을 설정합니다 (7 = rwx, 5 = r-x). -
+ 소유권을 변경하려면 chown 명령을 사용합니다. -
+ - **chown new_owner file.txt** : "file.txt"의 소유자를 "new_owner"로 변경합니다. + - **chown new_owner:new_group file.txt** : "file.txt"의 소유자를 "new_owner"로, 그룹을 "new_group"으로 변경합니다. -
+ ### 7. 시스템 정보와 프로세스 이번에는 시스템 정보를 보고 프로세스를 관리하는 명령어입니다. -
+ - **uname -a** : 커널 버전, 기계 하드웨어 이름 및 운영 체제를 포함한 시스템 정보를 보여줍니다. -
+ - **top** : 실행 중인 프로세스, 시스템 부하 및 메모리 사용량에 대한 동적이고 실시간인 정보를 보여줍니다. -
+ - **ps** : 사용자 세션에 대한 현재 프로세스를 보여줍니다. -
+ - **ps aux** : ps 명령어보다 자세한 출력을 보여줍니다. -
+ - **kill** : 지정된 신호를 보내 프로세스를 종료합니다.
ex) kill -9 1234는 프로세스 ID가 1234인 프로세스에 "SIGKILL" 신호를 보내 강제로 종료합니다. -
## 결론 -이 포스트에서는 리눅스의 파일 시스템을 탐색하는 방법, 파일 및 디렉토리를 확인, 관리 및 검색하는 방법, 파일 편집 방법, 파일 및 디렉토리의 권한 및 소유권, 그리고 리눅스 시스템 정보와 프로세스에 대한 기본 명령어들에 대한 간략한 설명을 적어봤습니다. 언급된 명령어들뿐만이 아니라 고급 명령어들을 포함한 다양한 명령어들을 사용하는 데에 익숙해질수록 리눅스 사용의 생산성을 많이 증가시킬 수 있고, 시스템을 이해하는 데도 많은 도움이 될 것입니다.
감사합니다. +이 포스트에서는 리눅스의 파일 시스템을 탐색하는 방법, 파일 및 디렉토리를 확인, 관리 및 검색하는 방법, 파일 편집 방법, 파일 및 디렉토리의 권한 및 소유권, 그리고 리눅스 시스템 정보와 프로세스에 대한 기본 명령어들에 대한 간략한 설명을 적어봤습니다. 언급된 명령어들뿐만이 아니라 고급 명령어들을 포함한 다양한 명령어들을 사용하는 데에 익숙해질수록 리눅스 사용의 생산성을 많이 증가시킬 수 있고, 시스템을 이해하는 데도 많은 도움이 될 것입니다. 감사합니다.