이번 시간에는 네트워크 프로그래밍을 위한 리눅스 기본 명령어를 익혀리눅스에서 로그인과 로그아웃을 하는 방법 , 그리고 파일 또는 디렉토리에 대한 명령어들로 드디어 리눅스 프로그래밍을 시작하도록 하겠습니다.
1. 쉘 로그인 로그아웃과 명령구조
1.1 쉘 로그인
- 쉘(shell)
쉘(shell)은 명령어 해석기, 명령행 인터페이스이자 스크립트 언어이다.
유닉스 계열의 운영체제는 대부분 터미널 화면에서 텍스트로 명령행에 명령어를 입력하여 사용합니다.
이런 명령어를 해석하는 프로그램을 쉘(shell)이라 부릅니다.
그래서 쉘은 명령어 해석기 , 명령행 인터페이스를 의미하는 단어이기도 합니다.
쉘은 절차적으로 수행하는 스크립터 언어이며 명령어로 구성된 쉘 스크립트 프로그램을 작성하여 실행 시키면 쉘이 스크립트 파일을 읽어서 절차적으로 수행하게 됩니다.
쉘의 리눅스의 권한은 user와 root권한을 가지게 됩니다. 일부 명령은 root권한이 있어야 가능합니다.
명령행 뒤에 $ 표시는 user이고 #표시는 root권한입니다. 아래 명령으로 권한 확인이 가능합니다.
whoami
쉘은 사용자와 커널 사이의 중간자 역활을 합니다. 쉘은 운영체제의 일부이며 커널과는 분리된 프로그램입니다.
쉘은 종류에 따라 다른 특성을 가지고 있습니다.
쉘의 종류는 sh, csh, ksh, tcsh, bash가 있습니다.
리눅스 터미널창에서 아래 명령을 입려하면 지금 기본으로 설정된 쉘의 종류를 확인할 수 있습니다.
echo $0
쉘 이름 | 실행 명령 | 설명 |
Bourne Shell | sh | 유닉스 초기부터 사용된 쉘로 대부분의 유닉스 계열 운영체제에서 지원한다. 많은 쉘 스크립트가 이에 기반을 두고 있다. |
C Shell | csh | 스크립트 작성 형식이 C언어 구문과 비슷하며 BSD 계열의 유닉스 사용자들이 많이 사용했다. Bourne 쉘의 기능을 확장했다. |
TC Shell | tcsh | C 쉘을 확장 개선한 버전으로 '명령 행 완성'과 '명령 행 편집' 기능이 추가됐다. |
Korn Shell | ksh | 호환성을 유지하면서 Bourne 쉘을 확장하고 C 쉘의 많은 기능을 추가했다. System V 계열 유닉스 사용자들에게 인기가 많았다. |
Bourne Again Shell(bash) | bash | 리눅스에서 가장 많이 사용되는 쉘이다. Bourne 쉘을 토대로 개발됐으며 C 쉘과 Korn 쉘의 유용한 기능을 가져왔다. GPL 라이센스를 따른다. |
- 로그인(Log in)
- 로그인 쉘은 로그인 할 때 기본적으로 수행되는 기본 쉘입니다. 즉 인증절차를 통해 쉘 프로프트(Shell Prompt)를 얻기 위환 과정으로 로그인 쉘과 비로그인 쉘이 있습니다.
- 로그인을 하는 방법은 텍스트 로그인(CUI) , 그래픽 로그인(GUI)
- 로그온
접속 상태이며 접근권한을 얻은 상태입니다. 로그인은 권한을 얻기전 상태이고 권한을 얻은후는 로그온 상태입니다.
1.2 쉘 로그아웃
쉘을 종료하고 접근된 시스템과의 접속을 해제하는 과정으로 꼭 잊지말고 해주어야 합니다.
그렇지 않으면 리눅스상에서 정상적으로 접속이 해제되지 않고 누수가 발생할 수 있습니다.
로그아웃을 하는 명령어는 아래 3가지 방법이 있습니다.
$ logout
$ exit
컨트롤 + D(Ctrl + D)
1.3 명령구조
- 실행하고자 파일의 이름(경로포함)을 입력하고 엔터키 입력
리눅스는 경로가 명시되어있지 않으면 환경변수 PATH의 위치에서 해당 파일을 검색 - - 옵션을 사용하고자 할 경우 “-” 또는 “--”를 사용
- 옵션 “-” : 일반적으로 다음에 오는 문자 각각이 별개의 옵션
- 옵션 “--” : 다음에 오는 키워드 전체가 하나의 의미를 가짐
2. 파일 또는 디렉토리 관련 명령어
2.1. 리스트보기
- 명령어 : ls , dir
-a,A : "."".."을 제외하고 목록을 출력합니다.
-b : 알파벳 순으로 목록을 출력합니다.
-B : ~로 끝나는 백업파일을 제외하고 목록을 출력합니다.
-c : 마지막으로 변경된 시간을 목록을 출력합니다.
-C : 파일이나 디렉토리를 열로 목록을 출력합니다.
-d : 지정 경로에 있는 최상위 디렉토리의 목록만 출력합니다.
-D : emacs를 위한 출력행태를 생성합니다.
-f : 정렬하지 않고 출력합니다. 컬러을 해제합니다.
-F : 실행파일은 *, 경로 /, 소켓=, 링크 @ 등의 지시자로 출력합니다.
-g : 사용자 권한을 출력하지 않는다.
-G : -l 과 같이 사용시 그룹권한을 출력하지 않는다.
-h : K, M, G 단위를 사용하여 파일 크기를 사람이 보기 좋게 표시합니다.
-H : 심볼릭 링크의 실제 참조하는 목록을 출력합니다.
-i : 파일의 인덱스 값을 출력합니다.
-I (대문자 i) : 지정 파티션을 제외하고 출력합니다.
-k : 용량을 킬로바이트로 출력합니다.
-l : 자세한 내용을 출력합니다. 내용 > 권한, 파일 수, 소유자, 그룹, 파일크기, 수정일자, 파일이름
-lu : mtime (수정 시간)을 atime(접근 시간)을 출력합니다. (default는 수정 시간)
-lc : mtime (수정 시간)을 ctime(변경 시간)을 출력합니다. (default는 수정 시간)
-L : 심볼릭 링크의 정보를 출력할때 원본 파일의 정보를 출력합니다.
-m : 콤마로 구분하여 출력합니다.
-n : 사용자와 그룹권한을 숫자로 표시합니다.
-i : 그룹권한을 출력하지 않는다.
-p : 디렉토리에 /를 추가합니다.
-q : 그래픽이 아닌 문자 대신에 ?를 출력합니다.
-Q : 파일, 디렉토리를 쌍따옴표 안에 출력합니다.
-r : 반대로 출력합니다. (default는 알파벳 순서)
-R : 하위 디렉토리까지 출력합니다.
-s : 블록에 할당된 크기를 출력합니다.
-S : 파일 크기 순으로 정렬하여 출력합니다.
-t : 파일이 수정된 시간 기준으로 정렬하여 출력합니다.
-T : 8대신 COLS을 지정하여 출력합니다.
-u : -lt와 같이 사용시 생성 시간 기준으로 출력하고 -l과 사용시 생성시간 출력이름순으로 출력합니다.
-U : 컬러을 유지하면서 정렬하지 않고 출력합니다.
-w : width 길이를 설정하여 출력합니다.
-x : 상세출력되는 리스트를 파일이름으로 하나의 라인에 출력합니다.
-X : 확장자의 알파벳순으로 정렬하여 출력합니다.
-Z : SELinux 보안 모듈을 출력합니다.
- ls 명령은 조합이 가능합니다.
ls -alSrh : 숨겨진 파일(a),자세하게(l), 파일크기(S) ,역순(r), 보기 좋게(h) 출력

-a,A : "."".."을 제외하고 목록을 출력합니다.
-l : 자세한 내용을 출력합니다. 내용 > 권한, 파일 수, 소유자, 그룹, 파일크기, 수정일자, 파일이름
-S : 파일 크기 순으로 정렬하여 출력합니다.
-r : 반대로 출력합니다. (default는 알파벳 순서)
-h : K, M, G 단위를 사용하여 파일 크기를 사람이 보기 좋게 표시합니다.
2.4. 리눅스 디렉토리 권환 확인 및 변경 chmod,chown,chgrp
2.7. 리눅스 기본 명령어 파일생성,삭제,보기,병합 cat
2.8. 리눅스 기본 명령어 파일생성 및 시간변경 touch
3. 링크파일
'네트워크프로그래밍' 카테고리의 다른 글
[Linux] 리눅스 명령어 pwd(작업중인 위치보기) (0) | 2022.08.06 |
---|---|
리눅스 파일 디렉토리 권한 확인 및 변경하기(chmod,chown,chgrp) (0) | 2022.08.06 |
3 네트워크 계층구조 모델 OSI (0) | 2022.07.31 |
2. 데이터 통신과 네트워크 기술 (2) | 2022.07.30 |
1.리눅스 프로그래밍 환경설정 VMware설치 및 우분투 설치 (0) | 2022.07.30 |
댓글