Ubuntu Terminal CLI정보

 

Ubunt CLI 관련정보


인스턴스 한번에 설치

sudo apt update && sudo apt install -y nodejs && sudo apt install -y git-all && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash && source ~/.profile && nvm install 20.10.0 && sudo apt install -y apache2


1. Terminal CLI


1) deb설치파일 install하기

- 해당폴더에 있는 deb파일을 설치합니다

$ sudo dpkg -i [deb 파일 이름].deb


2) deb설치파일 uninstall하기

- 해당폴더에 있는 deb파일을 uninstall합니다

$ sudo apt-get remove [deb 파일 이름].deb


3) Terminal유저를 super유저로 변경

- 모든 작업이 허용되는 super유저로 변경. (사용시 주의 필요)

$ sudo su


4) 폴더를 복사하기

- 폴더를 다른 디렉토리로 복사

$ cp -R [source_folder] [destination_folder]


4-1) 현재 터미널의 폴더를 GUI폴더로 열기

- 터미널에 위치한 폴더를 Ubuntu GUI폴더로 열기. "path"에 경로가 있으면 해당 경로의 폴더를 열고 '.'이면 현재 경로를 연다

$ xdg-open [path]


5) 터미널의 경로주소길이를 짧게 만들어주기(일시적)

- 전체경로가 아닌 상위단 폴더의 경로만 나오로독 터미널 주소경로를 변경하기

$ PS1='\u:\W\$'


1-1 Terminal Window Tabs(click)

1) Shift + Ctrl + T : 새 터미널 탭을 생성합니다.


2) Shift + Ctrl + W : 현재 터미널 탭을 닫습니다.


3) Ctrl + Page Up : 이전 탭으로 이동합니다


4) Ctrl + Page Down : 다음 탭으로 이동합니다


5) Shift + Ctrl + Page Up : 현재 탭을 왼쪽으로 이동합니다.


6) Shift + Ctrl + Page Down : 현재 탭을 오른쪽으로 이동합니다.


7) Alt + 1~9, 0 : 탭 1~9번까지 전환됩니다. 0은 10번째 탭으로 전환 됩니다.


6) 경로와 이름으로 파일 찾기(find)

- 경로를 지정하고 해당 파일을 이름(-name)으로 찾기

$ find [file path('/': root directory, '.' : current directory)] -type [f : file] -name [file name with extension]

example) find /path/to/directory -type f -name filename.ext


7) Ubuntu를 종료 또는 재시작 하기

- 1분후에 Ubuntu가 종료 된다

$ sudo shutdown


8) Ubuntu 시간셋팅

- 우분투의 타임존을 셋팅한다.

$ sudo timedatectl set-timezone [타임존]

관련글 : Ubuntu(Linux) Check and Set TimeZone in Ubuntu 20.04


기타 종료 또는 재시작(click)

1) 지금 PC를 종료한다.

$ sudo shutdown now


2) 15:30분에 PC를 종료한다

$ sudo shutdown 15:30


3) 20분후에 PC를 종료한다

$ sudo shutdown +20


재시작(restart)한다


4) 당장 Ubuntu를 재시작한다

$ sudo shutdown -r now


5) 15:30분에 PC를 재시작 한다

$ sudo shutdown -r 15:30


6) 20분후에 PC를 재시작 한다

$ sudo shutdown -r +20



9) Ubuntu를 종료 또는 재시작 취소하기

- PC 종료나 재부팅이 취소된다

$ sudo shutdown -c


9) 터미널에 shortcut command 생성하기

- 긴 커멘드를 미리 저장해서 해당 PC에서 짧은 버전의 커멘드를 사용합니다.

링크 : Linux Ubuntu set terminal alias



10) Ubuntu의 버전을 확인한다.

- 해당 Ubuntu의 버전을 확인하는 터미널

$ lsb_release -a


11) Ubuntu OS에서 사용하는 CPU 사양을 보여준다.

- Ubuntu OS에서 사용하는 CPU를 출력

$ lscpu


1-2. ssh 서버 접속


1) ssh로 서버 접속

- ssh접속이 허용된 서버에 터미널로 접속을 합니다.

$ ssh [username]@[server name or IP address] -p [port number]


ssh접속을 위한 방법은 아래 링크를 참고해 주시기 바랍니다.

링크1 : Ubuntu 외부 ssh접속 가능하게 변경(iptime)

링크2 : Linux Ubuntu 터미널로 외부 ssh 접속 허용하기(Local Check)


2) ssh로 서버의 파일을 다운로드

- ssh접속이 허용된 서버에서 필요한 파일을 Local PC로 복사한다.

$ scp -P [port number] [username]@[server name or IP address]:[path to file on server] [path to file on local PC]

ssh로 다운로드 하는 방법에 대해서는 해당 링크를 참고해 주시기 바랍니다.


3) ssh로 서버에 파일을 업로드

- ssh접속이 허용된 서버에서 필요한 파일을 Local PC에서 업로드 한다.

$ scp -P [port number] [path to file on local PC] [username]@[server name or IP address]:[path to file on remote PC]


4) ssh 비밀번호 자동 입력(sshpass)

- ssh 접속시 비밀번호를 입력할 필요(sh파일)가 없다. 단 1회 ssh및 비밀번호로 입력

- sh파일은 "sshpass -p [호스트 비밀번호] ssh [계정]@[도메일 or IP]"로 작성후 "mchod +" 설정

$ sudo apt install sshpass


9) Terminal로 압축 또는 압축풀기

Ubuntu에서 압축을 하거나 풀기 위해서는 zip, unzip프로그램을 설치해야합니다.

- zip, unzip프로그램 설치

$ sudo apt-get install zip unzip


* 압축(zip)관련 커멘드 (click)

1) 디렉토리 압축

$ zip -r [압축파일 이름].zip [압축할 파일 or 디렉토리]


2) 현재 폴더에서 디렉토리 압축

$ zip -r [압축파일 이름].zip ./*


* 풀기(unzip)관련 커멘드 (click)

1) 디렉토리 풀기

$ unzip [압축파일 이름].zip -d [압축 푸는 위치]


2) 현재 폴더에서 풀기

unzip [압축파일 이름].zip




1-3. 접속 유저 정보


1) 접속한 유저의 비밀번호 변경

- 해당 ubuntu에 접속한 유저의 비밀번호를 변경합니다.

$ passwd

실행 결과(click)

두번의 동일한 새 비밀번호 입력을 요구합니다.





2. NodeJS


1) Node 버전 정보 확인하기

- 현재 사용하고 있는 노드의 버전을 표시합니다.

$ node -v

2) Node 의 default버전 확인하기

- 현재 default, node, stable로 지정된 노드 버전을 표시합니다.

$ nvm list

3) Node 의 버전 변경하기

- nvm에서 변경 가능한 노드 버전을 적용한다. (설치와 동시에 적용)

$ nvm install [node version]

4) Node 의 default버전 변경하기

- nvm에서 default 변경 가능한 노드 버전을 적용한다.

$ nvm alias default [node version]

5) 원하는 Node버전 사용하기

- nvm에서 변경 가능한 노드 버전을 적용한다. (적용)

$ nvm use [node version]

.nvmrc를 이용하여 해당 프로젝트에 node버전을 쓰지않고 적용할수 있습니다.

아래링크를 참고해 주시기 바랍니다.

링크 : Node How to write and use your current Node Version in your current Project.


3. AWS관련


1) AWS의 ec2 pem파일을 이용하여 sh파일 생성(링크)

- EC2에 SSH접속을 하기 위해서 'SSH client'를 통해 접속해야 합니다. 하지만 아래 cli를 이용하여 AWS페이지에서 추가적으로 SSH을 따로 받을 필요가 없습니다.

(pem key가 public인 경우)

- sh파일 생성

$ nano server_connect.sh


해당 sh파일 안에 AWS EC2 Connect에서 'ssh -i "XXX.pem" ubuntu@ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com' 입력한다.


- sh파일 권한주기

$ chmod +x server_connect.sh


해당 sh파일을 실행하면 AWS웹사이트에 접속하지 않고도 EC2에 SSH접속을 할수 있다.


4. PostgreSQL


1) postgresql서버 실행하기

- local에 있는 postgres을 실행합니다.

$ sudo service postgresql start


2) postgresql서버 종료하기

- local에 있는 postgres을 종료합니다.

$ sudo service postgresql stop


3) postgresql서버 접속하기(Terminal)

- local에 있는 postgres에 접속합니다.

$ sudo -i -u postgres psql


4) user계정으로 postgresql서버 접속하기(Terminal)

- local에 있는 postgres에 userId 및 password로 접속합니다.

$ psql -h localhost -p [port] -d [DB Name] -U [User Name]


5. 도움될만한 설치 프로그램


1) Notepad++ install

- snapd 설치

$ sudo apt install snapd snapd-xdg-open


$ sudo snap install notepad-plus-plus


2) pm2 install

- pm2 설치(Global). 자세한 사항은 링크 참조

$ npm install pm2 -g


3) vim install

- terminal 에디터 vim 설치

$ sudo apt-get install vim


6. IP접속 관련


1) 해당 ubuntu의 외부접속IP불러오기

- 외부에서 접속할 사용자 IP를 출력합니다.

먼저 curl을 설치해야한다. (설치되 있으면 해당 단계는 무시해도 됨)

$ sudo apt install curl


아래 cli를 입력해서 외부 IP를 확인할수 있습니다.

$ curl -w "\n" -s https://api.ipify.org


$ curl https://ipinfo.io/ip



2) 해당 ubuntu의 내부접속포트 확인

- 내부 네트워크에서 해당 ubuntu에 접속을 허용할 포트

$ sudo ufw allow [Port Number]



3) 해당 ubuntu의 내부접속포트 확인

- 내부 네트워크에서 해당 ubuntu에 접속을 허용할 포트확인하기

$ sudo ufw status


4) 해당 ubuntu의 내부접속포트 끊기

- 내부 네트워크에서 해당 ubuntu에 접속을 허용됬던 포트를 다시 닫습니다.

$ sudo ufw deny [rule]


5) 해당 ubuntu의 접속 포트를 포워딩(faword)하기

- 내부 또는 외부에 설정된 포트로 접속시 다른 포트로 포워딩(변경)하기

5-1) localhost/loopback port fawording

$ sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport [기존포트] -j REDIRECT --to-ports [포워딩할 포트]


5-2) external port fawording

$ sudo iptables -t nat -I PREROUTING -p tcp --dport [기존포트] -j REDIRECT --to-ports [포트포워딩할 포트]


5-3) infomation of port fawording

$ sudo iptables -t nat -L


댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)