[명령줄 인터페이스 (Command-Line Interface, CLI)] VS [그래픽 사용자 인터페이스 (Graphic User Interface)]
: 그래픽 작업을 거치지 않아도 되기 때문에 CLI는 높은 안정성과 빠른속도를 가지고 있다.
[입력] : 키보드나 마우스, 카메라, 마이크등 컴퓨터에 새로운 명령을 전달하는 모든 소스.
[출력]: 입력 소스에 의해 또는 작성된 프로그램에 의해 모니터에 화면, 소리를 스피커로 사용자가 인식하게 하는 일.
>> 이를 간단히 I/O (Input/Output)이라고 표기하고 “아이오”라 읽는다.
[프롬프트 (Prompt)]
터미널 프로그램 내에 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간.
[CLI 기본 명령어]
Explorer.exe . : 우분투에서 작업중인 폴더를 GUI로 들어가기.
[1] pwd(print working directory) : 현재 위치 확인하기
[2] mkdir : 새로운 폴더 생성하기 // mkdir 폴더명 // 폴더 혹은 파일의 이름에 공백이나 특수문자있으면 \ 적용
[3] ls (list) : 특정 폴더에 포함된 파일이나 폴더 확인하기.
ls –l : 폴더나 파일의 포맷을 전부 표현하라는 의미.
ls –a : 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력.
ls –al or ls – la
[4] cd : 폴더에 진입하기
[4-1] cd 폴더명 : 현재 디렉토리 내에 있는 폴더로 이동 (이동 경로를 전부 다 입력해야함)
[4-2] cd .. : 상위폴더이동
[5] touch : 파일 생성하기
>> 입력 양식 : touch 파일제목.확장자명
[6] > : 실행 결과를 파일로 저장하기
>> 입력 양식 : 내용 > 저장할파일명
[7] echo 내용 >> 제목.형식 : echo 뒤의 내용을 제목.형식의 파일로 만들어주는 역할.
[8] cat : 파일 내용을 터미널에 출력하기
>> 입력 양식 : cat 파일명.확장자명
[9] rm : 단일 파일 삭제할 때 사용. //
[9-1] rm –rf : 폴더 삭제할 때 사용. // r 은 폴더를 지울 때 사용, f 는 질문을 받지 않고 지울 때 사용.
[10] mv : 폴더나 파일의 이름을 변경, 위치 옮기기
[10-1] 위치 변경 : mv 옮길폴더명or파일명 도착폴더명 // mv .. : 상위 폴더로 이동
[10-2] 이름 변경 : mv 기존파일명or폴더명 바꿀파일명or폴더명
[11] cp : 폴더나 파일을 복사하기
[11-1] 파일 복사 : cp 기존파일명.확장자 신규파일명.확장자
[11-2] 폴더 복사 : cp –rf 기존폴더명 신규폴더명
[관리자 권한과 경로]
관리자 권한은 사용자가 프로그램을 설치, 변경 또는 삭제하는 권한을 차단하여 시스템을 안전하게 보호하는 역할.
사용자는 주어진 권한만 사용할 수 있으며, 프로그램을 설치, 변경 또는 삭제하기 위해서는 관리자 권한을 획득해야한다.
사용자가 관리자 권한을 일시적으로 획득하는 명령어는 sudo 입니다.
[사용자와 관리자]
해킹으로부터 사용자를 보호하기 위해 관리자는 프로그램 설치,변경,삭제의 권한이 있고
사용자는 프로그램을 실행할 수 있지만 변경할 수 없도록 제한된 권한을 가지고 있다.
[절대 경로] : 기준점으로부터의 절대적인 위치. 이 기준점을 루트폴더라고 한다.
정리하면, 절대 경로는 특정 폴더나 파일이 루트 폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지를 나타낸다.
Ex) /home/[username]/helloWorld/hello/
[상대 경로] : 특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타낸다.
현재 위치한 폴더는 한 개의 점(.) 으로 표현, 상위 폴더는 두 개의 점(..) 으로 표현.
[권리자 권한]
절대 경로의 기준점인 루트폴더(/)는 관리자의 영역. 일반 사용자의 권한으로는 어떤 폴더나 파일도 생성,변경, 삭제 불가
사용자 폴더의 경로 (Path)는 ~/로 표시되며 물결 기호(~)는 루트폴더(/)로부터 사용자 폴더(username)까지의 경로를 축약
사용자가 새로운 프로그램을 설치하거나 변경 또는 삭제할 때에는, 관리자 권한이 필요하다.
사용자가 권리자 권한을 필요로 할 때, 권리자 권한을 이용할 수 있는 명령어 sudo 가 있다.
[sudo : 관리자 권한을 획득하는 명령어]
명령어 sudo는 사용자 환경에서, 관리자 권한을 획득하는 명렁어. // 명령어 앞에 sudo 를 붙인다. Ex) sudo mkdir
[텍스트 에디터 nano]
Nano 명령어로 실행.
[파일 열기]
^R : Ctrl + R 혹은 ^T : Ctrl + T 도 있지만 가장 쉬운 방법은 nano 파일이름.
[파일 편집 후 종료]
파일 내용을 편집하고 난 후, Ctrl + X 저장.
[파일 저장]
Ctrl + O
[nano 나가기]
Enter
[패키지와 패키지 매니저]
[패키지] : 패키지는 여러 파일을 모아 하나의 파일로 저장하고 있는 압축 파일.
-패키지 구성요소-
프로그램 파일
프로그램 설치 파일
프로그램 설치 설명서
프로그램에 대한 정보를 담은 파일
[패키지 매니저] : 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구. Ex) 스마트폰 – 앱 스토어
패키지 매니저는 모든 패키지 저장소 위치를 저장하고 있다.
[apt 패키지 매니저의 주요 명령어]
[1] 목록 갱신 : apt update (관리자 권한 필요)
:패키지를 다운로드할 수 있는 여러 저장소의 최신 정보를 업데이트.
새로운 저장소를 추가하거나, 설치 전 최신정보 갱신 설치된 프로그램이 새로운 버전으로 변경되지 않는다.
[2] 업그레이드 가능한 패키지 목록을 출력 : apt list –upgradable.
[3] 전체 패키지 업그레이드 (버전 업) : apt upgrade (관리자 권한 필요)
[4] 특정 패키지만 업그레이드 (버전 업) : apt –only-upgrade install 패키지 이름 (관리자 권한 필요)
[5] 패키지 설치 : apt install 패키지 이름 (관리자 권한 필요)
[6] 설치된 패키지 보기 : apt list –installed
[7] 패키지 검색 : apt search 검색어
[8] 패키지 정보 확인 : apt show 패키지 이름
[9] 패키지 삭제 : apt remove 패키지 이름 (관리자 권한 필요)
[관리자 권한 사용하기]
패키지 설치/삭제 등의 작업을 진행할 때, 코드 맨 앞에 sudo 명령어를 이용해서 관리자 권한을 획득해야 한다.
[작업 종료 및 되돌아가기] : Ctrl + C
[Action Items]
Wget : URL을 통해 파일을 다운로드 하는 프로그램.
Neofetch : 사양 확인하는 코드.
[폴더인지 파일인지 확인하기] : Ls –l 에서 d로 시작하면 폴더, -로 시작하면 파일.
EX) 3번에 걸쳐 나오는 이유는 사용자, 그룹, 나머지에 대한 권한을 표시하기 때문.
Owner(User) : 파일의 소유자. 기본적으로 파일을 만든 사람이 소유자가 된다.
Group : 여러 user가 포함될 수 있다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 엑세스 권한을 갖는다.
프로젝트의 경우 각 user에게 일일이 권한을 할당하는 대신 모든 user>group에 추가하고 group에 권한을 할당한다.
Other : 파일에 대한 엑세스 권한이 있는 다른 user. 파일을 만들지 않은 다른 모든 user를 뜻한다.
따라서 other권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수 있다.
[chmod : 권한을 변경하는 명령어]
Chmod는 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다.
OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod로 폴더나 파일의 권한을 변경할 수 있다.
[권한을 변경하는 방식]
A. 더하기(+), 뺴기(-), 할당(=)과 액세서(accessor) 유형을 표기해서 변경하는 Symbolic method.
B. rwx를 3bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form.
[A. Symbolic method]
명령어 chmod 뒤에 변경할 권한을 입력한다. 엑세스 클래스의 u, g, o, a를 변경할 조건에 따라 조합하여 입력 후,
연산자와 엑세스 타입을 순서대로 입력한다. 그런데 권한 "지정(=)"은 이미 전달된 권한이 그대로 설정되지만,
"추가(+)"와 "제거(-)"는 파일이 기존에 가지고 있던 권한을 기준으로, 새로운 권한이 추가되거나 지정된 권한이 제거된다.
파일이 기존에 가지고 있던 권한을 확인할 수 있는 방법은 간단하게 "ls -l" 명령을 사용하면
파일의 현재 권한을 확인할 수 있습니다.
EX)
chmod g-r filename # removes read permission from group
chmod g+r filename # adds read permission to group
chmod g-w filename # removes write permission from group
chmod g+w filename # adds write permission to group
chmod g-x filename # removes execute permission from group
chmod g+x filename # adds execute permission to group
chmod o-r filename # removes read permission from other
chmod o+r filename # adds read permission to other
chmod o-w filename # removes write permission from other
chmod o+w filename # adds write permission to other
chmod o-x filename # removes execute permission from other
chmod o+x filename # adds execute permission to other
chmod u+x filename # adds execute permission to user
chmod a=rw hello.java # -rw-rw-rw-
chmod u= hello.java # ----rw-rw-
chmod a+rx hello.java # -r-xrwxrwx
chmod go-wx hello.java # -r-xr--r--
chmod a= hello.java # ----------
chmod u+rwx hello.java # -rwx------
[B. Absolute form] : 숫자 7까지 나타내는 3 bits의 합으로 표기.
사용자, 그룹, 다른 사용자나 그룹마다 rwx가 나타나고, 각 영역의 Boolean 값으로 표기할 수 있다.
ex) chmod 744 hello.java => u : -rwx--r--r
[환경 변수]
Linux 기반의 운영체제에서는 시스템 자체에 전역변수를 설정할 수 있다. 이는 환경변수 라고도 한다.
환경변수란 프로그램의 동작에 영향을 미치는 값들을 의미.
Ex) A라는 프로그램은 B폴더의 데이터를 사용하며 작동한다. 만일 다른 PC에서 A라는 프로그램을 작동시키고자 한다면,
B폴더의 위치는 다르기 때문에 정상적으로 동작할 수 없다.
이처럼 환경에 따라 프로그램의 동작에 영향을 줄 수 있는 값들을 환경변수 라고 한다.
[CLI 명령어 더 알아보기]
[1] 명령어 옵션 –r 과 –f
-r 은 recursive의 약자로 특정 행동을 순환적으로 반복한다. –f 는 force의 약자로, 어떤 행위를 강제한다.
단 f 명령어는 보호되거나 존재하지 않는 파일도 강제로 삭제할 수 있기에 각별히 주의가 필요하다.
[2] cat 명령어 대신 쓰는 명령어
cat 명령어는 항상 전체 내용을 출력하기 때문에 생기는 단점이 있다.
-대체 가능한 명령어-
[1. head] : 텍스트로 된 파일의 앞부분을 지정한 만큼 출력하는 명령어.
아무 옵션 없이 head 파일명 입력 시 앞 ~ 디폴트 값인 10행까지 출력.
head –n 100 : 앞 ~ 100행까지 출력.
head –c 100 : 100byte의 내용만큼 출력.
Head URL : http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/head
[2. tail] : 텍스트로 된 마지막 10줄 출력.
tail –n 100 : 파일의 끝부터 100행 까지 출력.
tail + 100 : 100 행부터 마지막 행까지 출력하고 싶을 경우.
tail –c : 뒤에서부터 100 byte의 내용만큼 출력.
tail –f : 파일의 마지막부터 10줄을 출력하며, 종료되지 않은채 표준입력을 읽어들여 출력함.
종료를 원할 시 Ctrl + C.
Tail URL : http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/tail
[3. more] : 파일을 읽어 화면에 화면 단위로 끊어서 출력하는 명령어. 위에서 아래로만 출력되므로 지나간 건 못봄.
왼쪽 하단에 화면에 출력된 내용이 전체의 몇%인지 표시하며, enter 입력 시 한 줄씩 space bar 입력 시 한 화면씩 출력.
more –n : n에 입력한 값만큼 끊어서 화면에 출력. Space bar 입력 시 입력한 값 만큼 끊어서 화면 출력.
more +n : n에 입력한 행부터 화면에 출력.
More URL : http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/more
[4. less] : less는 한번에 보여지는 만큼만 읽어서 출력하므로 대용량 파일을 열어 볼 때 빠르게 사용 가능.
enter입력 시, 한 줄씩 출력, space bar 입력 시, 한 화면씩 출력. 방향키로 페이지 이동 가능,
Less URL : http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/less
'백엔드 학습 과정 > Section 1 [HTML, Linux, Git, Java]' 카테고리의 다른 글
Java #1-1 자바 기초-변수, 문자열, 연산자, 입출력 (0) | 2022.11.16 |
---|---|
6. Git & Github (1) | 2022.10.29 |
4. 와이어 프레임 & 목업 (0) | 2022.10.25 |
3. 레이아웃 : 화면 나누는 법 (0) | 2022.10.25 |
2. CSS (0) | 2022.10.25 |