콘솔 단축키
- Shift + PageUp : 상위 페이지 이동
- Shift + PageDown : 아래 페이지 이동
터미널 실행 관련 단축키
- Ctrl + Alt + T : 터미널 실행
- Ctrl + Shift + T : 터미널내에서 새로운 탭으로 터미널 실행
- Ctrl + Shift + N : 터미널내에서 새로운 창으로 터미널 실행
- Ctrl + Shift + W : 탭으로 실행된 터미널 종료
- Ctrl + Shift + Q : 현재 터미널 종료
- Ctrl + Shift + F : 터미널내에서 문자열 검색
터미널내에서의 단축키
- Shift + Ctrl + C : 복사하기
- Shift + Ctrl + V : 붙여넣기
- Ctrl + L : 화면 Clear
- Alt + F1 ~ F12 : 콘솔 이동
- Alt + (Left / Right) : 이전/다음 콘솔로 이동
- Ctrl + Scroll Lock : 프로세스 목록보기
- Shift + Scroll Lock : 메모리상태 정보보기
셀 상에서 실행 중인 프로그램을 제어하는 단축키
- Ctrl + C : 실행 중인 프로그램 중지
- Ctrl + Z : 실행 중인 프로그램 일시 정지
- % : 일시 정지된 프로그램 다시 실행
bash 상에서 기본 입력 모드인 emacs 스타일일 경우
- Tab : 자동 완성
- Ctrl + D : 로그아웃
- Ctrl + R : 히스토리 찾기
- Ctrl + S : 키보드 잠그기
- Ctrl + Q : 잠긴 키보드 풀기
- Ctrl + M : Enter
- Ctrl + P : 이전 명령어 (Up)
- Ctrl + N : 다음 명령어 (Down)
- Ctrl + L : 화면 지우기 (clear)
- Ctrl + Y : 버퍼의 내용 붙여넣기
- Ctrl + A : 입력 라인의 처음으로 이동 (Home)
- Ctrl + E : 입력 라인의 끝으로 이동 (End)
- Ctrl + B : 커서를 왼쪽으로 이동 (Left)
- Ctrl + F : 커서를 오른쪽으로 이동 (Right)
- Ctrl + XX : 커서를 이전 위치로 이동
- Ctrl + U : 커서 왼쪽의 문자들을 버퍼에 저장 후 삭제
- Ctrl + K : 커서 오른쪽의 문자들을 버퍼에 저장 후 삭제
- Alt + L : 커서 위치에서 문자열 끝까지 소문자로 변환
- Alt + U : 커서 위치에서 문자열 끝까지 대문자로 변환
- Alt + T : 두 단어 위치 바꾸기
- Alt + B : 커서를 다음 단어로 이동
- Alt + F : 커서를 이전 단어로 이동
Command-line interface 기본 명령어
pwd
#현재 위치를 확인
mkdir
#새로운 폴더를 생성
ls
#폴더나 파일의 목록을 출력
nautilus
#현재 폴더를 파일 탐색기로 열기
cd
#폴더 진입
touch
#새로운 파일을 생성
cat
#파일의 내용을 터미널에 출력
rm
#폴더나 파일을 삭제
mv
#폴더나 파일의 위치를 이동하거나, 이름을 변경
cp
#폴더나 파일을 복사
sudo
#관리자 권한
/
#루트 디렉토리
~
#홈 디렉토리
1. pwd
pwd
#print working directory
#현재 위치 확인할때 사용
2. mkdir
mkdir helloWorld
#make directories
#새로운 폴더 생성하기
#생성할 폴더의 이름을 함께 입력
#폴더 또는 파일의 이름에 띄어쓰기나 특수문자가 있으면, 백슬래시(\)를 이용해 적용
#CLI => 명령어와 폴더의 이름을 스페이스로 구분
3. ls
ls #특정 폴더에 포함된 파일이나 폴더 확인하기
list #특정 폴더에 포함된 파일이나 하위 폴더의 리스트를 출력
#ls에서 자두 사용하는 옵션 l, a
#CLI : 특정 옵션을 사용하는 경우 -를 이용
#각 명령어에 포함된 옵션은 명령어 이름만 입력하거나 -h 또는 --help와 같은 옵션을 통해 확인
ls -l #폴더나 파일의 포맷을 전부 표현
#하나의 파일 또는 폴더는 한줄에 출력
#폴더의 경우 cd를 통해 진입 가능
ls -a
#a => all
#숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 표시
ls -al
ls -la
#대쉬 뒤에 오는 옵션의 순서는 기능에 영향을 미치지 않음
4. nautilus
nautilus .
#폴더를 GUI탐색기로 실행하기
5. cd
#change directory
cd helloWorld
#폴더에 진입하기
cd ..
#폴더에서 빠져나오기 (상위 폴더로 이동)
#1. pwd를 사용해 현재 위치 확인
#2. ls를 사용해 폴더 확인
#3. cd를 사용해 폴더에 진입
#4. pwd를 사용해 현재 위치 확인
#5. . => 현재 폴더를 의미
#6. .. => 현재 폴더보다 앞에 있는 폴더를 가리킴
6. touch
touch hi.txt
#파일 생성하기
7. cat
cat hi.txt
#파일의 내용을 터미널에 출력하기
#여러개의 파일을 뛰어쓰기로 구분해 입력 가능
#이어지는 파일을 순서대로 읽고 터미널에 출력
8. rm
rm bye.txt
rm -rf bye
#폴더나 파일 삭제하기
#사용할 수 있는 옵션 r, f
#r => recursive를 의미하며 폴더를 지울 때 사용
#f => force를 의미하며 질문을 받지 않고 지울 때 사용
#파일을 삭제할 때 두 옵션을 같이 사용
#사용자가 생성한 파일을 CLI에서 삭제할 경우 휴지통에 가지 않고, 즉시 삭제
9. mv
mv
#폴더나 파일의 이름을 변경 또는 위치 옮기기
mv bye.txt bye/
#위치 옮기기
#mv 뒤에는 순서대로 <폴더나 파일 이름> <도착 폴더의 이름>을 입력
#마지막 /는 폴더를 대상으로 할 경우 생략 가능
mv bye.txt helloWorld.txt
#이름 변경
#mv 뒤에는 순서대로 <기존 이름> <변경할 이름>을 입력
10. cp : 폴더나 파일을 복사
cp helloWorld.txt Fucking.txt
cp -rf bye hi
cp -rf FuckFuckFuck ~/helloWorld/
#copy => 폴더나 파일을 복사할 때 사용
#cp 뒤에는 순서대로 <원본 파일 이름> <복사할 파일 이름>을 입력
#사용할 수 있는 옵션 r, f
#r => recursive를 의미하며 폴더를 복사할 때 사용
#f => force를 의미하며 질문을 받지 않고 복사할 때 사용
#파일을 복사할 때 두 옵션을 같이 사용
#사용자 폴더의 경로는 ~/로 표시
#물결기호(~)는 루트폴더(/)로부터 사용자 폴더(username)까지의 경로를 축약한 형태
11. sudo
sudo
#관리자 권한 획득
#절대 경로의 기준점인 루트폴더(/)는 Linux의 관리자 영역
#루트폴더로 이동하여 mkdir릏 이용해 폴더를 생성하면 "Read-only file system" Error 발생
#ㄴ폴더나 파일을 생성, 변경, 또는 삭제할 수 없다는 의미
#사용자가 새로운 프로그램을 설치하거나 변경, 삭제할 땐 관리자 권한 필요
#ls -l을 통해 특정 폴더나 파일이 사용자 또는 관리자의 소유로 생성되었는지 확인 가능
12. whoami
whoami
#현재 로그인된 사용자를 확인하는 명령어
#사용자는 폴더의 형태로 존재
리눅스 권한 (Permission)
#drwxr-xr-x => 리눅스 터미널에서 ls -l 명령어를 입력하면 확인 가능
#위와 다른 방식으로 출력되기도 함 => -rw-rw-r-- 등등..
#[d] 1번 부분
# '-' 는 "파일"을 의미
#[rwxr-xr-x] 2번 부분
#'r', 'w', 'x', '-' 글자는 특정 파일 및 폴더의 접근 권한에 대한 정보를 담음
#'r' => read의 약자로 읽기 권한을 의미.
#파일 및 폴더 안에 있는 데이터, 속성, 서브 폴더 등에 접근이 가능.
#'w' => write의 약자로 쓰기 권한을 의미.
#파일 및 폴더의 속성과 데이터를 변경 가능.
#'x' => execute의 약자로 실행 권한을 의미.
#해당 파일을 실행하여 사용 가능.
#'-' => 권한 없음을 나타낼 때 쓰임.
명령어 옵션 -r -f
rm -f
#보호되거나 존재하지 않는 파일도 강제 삭제
rm -rf
#민감한 정보를 가진 파일도 무차별적으로 삭제하여 심각한 문제를 일으키는 경우 발생
절대 경로와 상대 경로
1. 절대 경로
/Home/wnrhd@GL727RD/helloWorld/hello
- pwd 명령어로 확인 가능
- 기준점으로부터의 절대적인 위치
*기준점 : 루트폴더(/) - 특정 폴더나 파일이 루트폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지 나타냄
2. 상대 경로
cd ./hi
cd ../
cd helloWorld/hello
- 현재 위치로부터 상대적인 위치를 나타냄
- 특정 폴더 또는 파일의 위치의 기준점은 현재 위치
- 현재 위치한 폴더는 점(.)으로 표현
- 상위 폴더는 두개의 점(..)으로 표현
- / : 폴더 내부를 의미
- ./ : "현재 폴더 아래의"라는 뜻
*./hi : 현재 폴더 아래의 hi 폴더로 진입하라 - ../ : 상위 폴더를 의미
텍스트 에디터 nano
nano
nano hello.js
- CLI 환경에서 가장 사용하기 쉬운 에디터
- AWS(Amazon Web Service)와 같은 원격 서버 환경에서 원격으로 텍스트 파일 편집 가능
- js파일을 열 수도, 빈 화면을 열어 새 파일을 만들 수도 있음
1. nano로 파일 열기
- nano -> ^R(파일명 입력) -> ^T(파일 탐색)
- nano hello.js
2. 파일 편집 후 종료
- ^O WriteOut
- ^X -> Y -> enter
Ubunto apt 패키지 매니저
apt update
#패키지 목록 갱신: 관리자 권한
apt list --upgradable
#업그레이드 가능한 패키지 목록 출력
apt upgrade
#전체 패키지 업그레이드: 관리자 권한
apt --only-upgrade install <패키지명>
#특정 패키지만 업그레이드: 관리자 권한
apt install <패키지명>
#패키지 설치
apt list --installed
#설치된 패키지 보기
apt search <검색어>
#패키지 검색
apt show <패키지명>
#패키지 정보 확인
apt remove <패키지명>
#패키지 삭제: 관리자 권한
sudo
#관리자 권한 부여
#sudo apt update
자바스크립트 런타임
런타임: 프로그래밍 언어가 구동되는 환경으로, 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳을 의미
- JavaScript 런타임 : 웹 브라우저, node.js
node.js의 등장
- JavaScript를 이용해서 웹 페이지 뿐만 아니라 서버와 같은 다른 프로그램을 만들 수 있게 됨
- JavaScript 코드를 브라우저와 node.js 환경 모두에서 실행 가능
HTML script 태그 내에 JavaScript 코드를 작성하면, 이 코드는 웹 브라우저에서 동작
CLI 환경에서 node <file_name> 명령어를 입력하면 작성한 코드가 node.js라는 런타임에서 실행
nvm & node.js 설치 방법
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
#nvm 패키지 설치가 완료되면 재부팅
nvm --version
#nvm 패키지의 버전을 확인, 버전이 잘 나온다면 nvm 설치 완료
※ Command 'wget' not found 메세지와 함께 설치가 진행되지 않는 경우 wget 설치
#Ubuntu
sudo apt update
sudo apt install wget
Node.js 설치
nvm install --lts
#공식 사이트의 LTS 버전을 기준으로 node.js 설치
node -v
#node의 버전 확인
node.js 사용하기
node runnode.js
#터미널에서 runnode.js에 작성된 코드의 출력을 확인할 수 있음
node.js 설치
nvm install --lts
#패키지 매니저처럼 node.js의 버전을 관리할 수 있는 nvm(Node Version Manager)으로 node.js 설치
#LTS(Long-Term Support)는 node.js에서 지원하는 기간이 길다는 의미(안정적)
nvm 간단 사용법
1. 특정 버전의 node를 설치
nvm ls
#현재 nvm을 통해 설치한 node version 확인
nvm install 12.18.3
#특정 버전의 node를 설치하고 싶을 때
#기존에 설치된 버전을 삭제하지 않고 원하는 node version을 설치
2. node version을 다른 버전으로 변경
nvm use <버전넘버>
npm
- Node Package Manager로 node.js의 패키지 매니저
- node.js 환경에서 외부 라이브러리를 다운로드 받기 위한 대표적 방법
- npm install 명령어를 통해 필요한 모듈을 다운받을 수 있음
package.json
- package.json : npm 모듈에 대한 정보를 담아둔 곳으로 다른 사람에게 프로젝트에 대해 알려주는 역할
프로젝트에 관한 정보, scripts(CLI에서 사용가능한 명령), 개발과 관련된 dependency(의존성 모듈) - npm install 명령어를 입력하여 package.json에서 필요하다고 하는 모듈을 다운받으면 node_modules 폴더에 저장됨
- npm install : package.json에 있는 dependency를 바탕으로 설치
1. devDependency
- 이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지 적혀있는데, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시
코드 모양을 잡아주는 lint나 테스팅 모듈 등 - --save-dev 옵션과 함께 설치 시 자동으로 devDependencies에 추가npm install mocha --save-dev
2. dependency
- devDependencies와 달리 이 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지가 적혀있음
underscore, React 등 - --save 옵션과 함께 설치 시 자동으로 dependencies에 추가(--save 옵션 생략 가능)npm istall range --save
3. scripts 항목
#npm run <스크립트 이름>으로 실행 가능
npm run start
#node.js 앱 실행
npm run test
#태스트 실행
npm run lint
#코드 검사
npm run submit
#과제 제출 (코드스테이츠 only)
#코드스테이츠에서의 과제 제출: 대부분의 스프린트에서 npm run submit을 통해 과제 제출 가능
#제출한 과제 확인: npx codestates-submission ls
npm script
#CLI에서 사용가능한 명령을 기술
node <파일명>
#start => npm 패키지, npm 모듈, npm dependency는 전부 동일한 대상을 지칭
반응형
'Linux > Ubuntu' 카테고리의 다른 글
[Linux] 사용 권한과 환경변수 (0) | 2022.04.15 |
---|---|
[Linux] Ubuntu 20.04 LTS MySQL 설치방법 (0) | 2022.04.07 |
우분투 20.04 LTS 개발 환경 구축 (0) | 2022.01.18 |
우분투 Fcitx 한글입력 시 엑스트라 창(힌트창)이 뜨는 오류 수정 (2) | 2022.01.17 |
MSI GL72 7RD 노트북 포멧 후 드라이버 설정 (0) | 2021.12.01 |
댓글