We build for multiple versions of Scala. This only matters if you are using Scala and you want a version built for the same Scala version you use. Otherwise any version should work (2.13 is recommended).
Kafka 3.4.0 includes a significant number of new features and fixes. For more information, please read ourblog postand the detailedRelease Notes.
위 부분에 있는 두번째 파일을 다운로드 합니다.
cd /opt
mkidr kafka
cd kafka
wget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.13-3.4.0.tgz
저는 /opt 폴더에 요즘은 설치를 하고 있스니다. 예전에는 /usr/local 에 설치를 많이 했었습니다.
ls | wc -l
12
(base) talkit@ubuntu:~$ ls
build dbeaver-ce_latest_amd64.deb Desktop Documents Downloads Music Pictures Public Templates upvu_web Videos vmwaretools
실제로 ls 를 해보면 나온 단어들이 12개 입니다.
ls -al 과 조합을 해보겠습니다.
(base) talkit@ubuntu:~$ ls -al | wc -l
36
(base) talkit@ubuntu:~$ ls -al
total 123148
drwxr-xr-x 26 talkit talkit 4096 Mar 15 05:51 .
drwxr-xr-x 3 root root 4096 Feb 25 02:42 ..
-rw------- 1 talkit talkit 565 Mar 6 06:41 .bash_history
-rw-r--r-- 1 talkit talkit 220 Feb 25 02:42 .bash_logout
-rw-r--r-- 1 talkit talkit 4257 Mar 14 07:40 .bashrc
drwxrwxr-x 2 talkit talkit 4096 Mar 6 06:40 build
drwxrwxr-x 19 talkit talkit 4096 Mar 15 05:50 .cache
drwxrwsr-x 4 talkit talkit 4096 Mar 14 06:53 .conda
drwx------ 15 talkit talkit 4096 Mar 15 05:50 .config
-rw-rw-r-- 1 talkit talkit 125960484 Feb 19 10:18 dbeaver-ce_latest_amd64.deb
drwxr-xr-x 2 talkit talkit 4096 Feb 25 02:48 Desktop
drwxr-xr-x 2 talkit talkit 4096 Feb 25 02:48 Documents
drwxr-xr-x 3 talkit talkit 4096 Mar 20 04:53 Downloads
drwxrwxr-x 3 talkit talkit 4096 Mar 5 06:24 .eclipse
drwx------ 3 talkit talkit 4096 Feb 25 02:48 .gnupg
drwxrwxr-x 5 talkit talkit 4096 Mar 14 08:51 .ipython
drwxrwxr-x 2 talkit talkit 4096 Mar 14 08:52 .jupyter
drwxr-xr-x 5 talkit talkit 4096 Mar 14 06:20 .local
drwx------ 4 talkit talkit 4096 Mar 6 06:56 .mozilla
drwxr-xr-x 2 talkit talkit 4096 Feb 25 02:48 Music
drwxrwxr-x 5 talkit talkit 4096 Mar 6 07:03 .npm
drwxr-xr-x 2 talkit talkit 4096 Feb 25 02:48 Pictures
-rw-r--r-- 1 talkit talkit 807 Feb 25 02:42 .profile
drwxr-xr-x 2 talkit talkit 4096 Feb 25 02:48 Public
drwx------ 2 talkit talkit 4096 Mar 15 05:51 .putty
-rw------- 1 talkit talkit 7 Mar 14 07:41 .python_history
-rw-r--r-- 1 talkit talkit 0 Feb 25 03:47 .sudo_as_admin_successful
drwxrwxr-x 2 talkit talkit 4096 Mar 5 06:23 .swt
drwxr-xr-x 2 talkit talkit 4096 Feb 25 02:48 Templates
drwxrwxr-x 8 talkit talkit 4096 Mar 6 07:10 upvu_web
drwxr-xr-x 2 talkit talkit 4096 Feb 25 02:48 Videos
drwxrwxr-x 3 talkit talkit 4096 Feb 25 03:47 vmwaretools
-rw-rw-r-- 1 talkit talkit 262 Mar 14 08:05 .wget-hsts
drwxrwxr-x 3 talkit talkit 4096 Mar 6 06:48 .yarn
-rw-rw-r-- 1 talkit talkit 116 Mar 6 06:47 .yarnrc
36이 나왔는데 저 줄을 세어 보시면 36줄입니다.
ls 강좌에서 -al 을 하면 숨어 있는 모든 파일들을 보여준다고 말씀 드렸는데 숨어 있는 파일들이 많습니다. ^^
저도 잘 써보지는 않는데 -c 하고 -m 이 있는데 차치를 한번 보겠습니다.
wc -l # 라인수를 세고요.
wc -c # 바이트 수를 세고요.
wc -m # 캐릭터 수를 세고요.
wc -w # 단어 수를 셉니다.
sudo apt install ./dbeaver-ce_latest_amd64.deb
[sudo] password for talkit:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'dbeaver-ce' instead of './dbeaver-ce_latest_amd64.deb'
The following NEW packages will be installed:
dbeaver-ce
0 upgraded, 1 newly installed, 0 to remove and 47 not upgraded.
Need to get 0 B/126 MB of archives.
After this operation, 158 MB of additional disk space will be used.
Get:1 /home/talkit/dbeaver-ce_latest_amd64.deb dbeaver-ce amd64 22.3.5 [126 MB]
Selecting previously unselected package dbeaver-ce.
(Reading database ... 157064 files and directories currently installed.)
Preparing to unpack .../dbeaver-ce_latest_amd64.deb ...
Unpacking dbeaver-ce (22.3.5) ...
Setting up dbeaver-ce (22.3.5) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
설치도 잘 되었습니다.
확인해 보겠습니다.
dbeaver-ce 가 설치된 프로그램입니다.
한번 클릭 해보고 오늘은 마치겠습니다.
윈도우즈 처럼 예쁘게 잘 뜨네요 ^^
처음에 들어가면 조금 다르게 데이터 베이스를 만들까요 부터 몇가지를 물어 보는데 저는 취소 했습니다.
talkit@ubuntu:~$ mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
talkit@ubuntu:~$ mysql
ERROR 1045 (28000): Access denied for user 'talkit'@'localhost' (using password: NO)
Command not found로 나오지 않고 옵션을 보여 주거나 오류를 보여 주면 ^^
제대로 설치가 되어 있는 것입니다.
mysql 은 데이터베이스를 확인하기 위해서 사용합니다.
mysql -u root -p -e "show databases;"
mysql -u root -p -e "show databases;"
Enter password:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mattermost |
| mysql |
| performance_schema |
| sys |
+--------------------+
원래 마이크로소프트의 빌게이즈 형님과 스티브 발머 형님이 계실 때는 리눅스와 사이가 많이 나빴습니다. 그런데 새로운 대표님은 리눅스하고 너무 친 합니다. ^^ 마이크로소프트 제품이 많이 리눅스로 포팅 되고 있습니다. 그 중에서 개발자용 에디터인 VisualStudioCode도 포팅 되어 있습니다.
이러한 비쥬얼 스튜디오 코드를 제 우분투에 설치 해보록 하겠습니다. 제 경험이 다른 분들께 도움이 되시기를 바라면서 한번 설치 해보겟습니다.
cd 원하는디렉토리
wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" -O visualstudiocode.deb
위와 같이 치시면 파일이 받아 집니다.
저도 해보겠습니다.
wget wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" -O visualstudiocode.deb
--2023-03-04 21:45:43-- http://wget/
Resolving wget (wget)... failed: Temporary failure in name resolution.
wget: unable to resolve host address ‘wget’
--2023-03-04 21:45:43-- https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64
Resolving code.visualstudio.com (code.visualstudio.com)... 13.107.238.49, 13.107.237.49, 2620:1ec:4e:1::49, ...
Connecting to code.visualstudio.com (code.visualstudio.com)|13.107.238.49|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://az764295.vo.msecnd.net/stable/92da9481c0904c6adfe372c12da3b7748d74bdcb/code_1.76.0-1677667493_amd64.deb [following]
--2023-03-04 21:45:44-- https://az764295.vo.msecnd.net/stable/92da9481c0904c6adfe372c12da3b7748d74bdcb/code_1.76.0-1677667493_amd64.deb
Resolving az764295.vo.msecnd.net (az764295.vo.msecnd.net)... 117.18.232.200
Connecting to az764295.vo.msecnd.net (az764295.vo.msecnd.net)|117.18.232.200|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 94825848 (90M) [application/octet-stream]
Saving to: ‘visualstudiocode.deb’
visualstudiocode.deb 36%[========================================> ] 32.68M 10.9MB/s eta 5svisualstudiocode.deb 100%[===============================================================================================================>] 90.43M 11.2MB/s in 8.2s
2023-03-04 21:45:52 (11.1 MB/s) - ‘visualstudiocode.deb’ saved [94825848/94825848]
FINISHED --2023-03-04 21:45:52--
Total wall clock time: 8.8s
Downloaded: 1 files, 90M in 8.2s (11.1 MB/s)
저는 잘 받아 졌습니다.
그러면 설치를 해보겠습니다.
ls
sudo apt install ./visualstudiocode.deb
ls를 쳐서 다운로드한 파일이 잇는지 확인 하시고 ^^
apt install을 이용해서 설치 합니다. 파일 설치할때는 ./를 무조건 넣어야 하나 봅니다.
sudo apt install ./visualstudiocode.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'code' instead of './visualstudiocode.deb'
The following NEW packages will be installed:
code
0 upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
Need to get 0 B/94.8 MB of archives.
After this operation, 394 MB of additional disk space will be used.
Get:1 /home/talkit/visualstudiocode.deb code amd64 1.76.0-1677667493 [94.8 MB]
Selecting previously unselected package code.
(Reading database ... 167921 files and directories currently installed.)
Preparing to unpack .../talkit/visualstudiocode.deb ...
Unpacking code (1.76.0-1677667493) ...
Setting up code (1.76.0-1677667493) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for shared-mime-info (1.15-1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
저는 설치가 잘 되었습니다.
제 우분투에 설치 된 프로그램들을 보면 제일 밑에 보이시죠 Visual Studio Code 가 잘 설치 되었습니다.
우선 위 그림 처럼 Ubuntu 데스크톱에서 오른쪽 마우스 누르고, Open in Terminal을 클릭 하십시오.
요렇게 터미널이 뜰껍니다. 여기서
sudo apt install gftp
라고 치십시오.
sudo apt install gftp
[sudo] password for talkit:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
gftp-common gftp-gtk gftp-text
The following NEW packages will be installed:
gftp gftp-common gftp-gtk gftp-text
0 upgraded, 4 newly installed, 0 to remove and 24 not upgraded.
Need to get 648 kB of archives.
After this operation, 3,698 kB of additional disk space will be used.
Do you want to continue? [Y/n]
저기서 Y를 치십시오.
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp-common amd64 2.0.19-6 [408 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp-gtk amd64 2.0.19-6 [157 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp-text amd64 2.0.19-6 [81.2 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp all 2.0.19-6 [1,916 B]
Fetched 648 kB in 3s (216 kB/s)
Selecting previously unselected package gftp-common.
(Reading database ... 166813 files and directories currently installed.)
Preparing to unpack .../gftp-common_2.0.19-6_amd64.deb ...
Unpacking gftp-common (2.0.19-6) ...
Selecting previously unselected package gftp-gtk.
Preparing to unpack .../gftp-gtk_2.0.19-6_amd64.deb ...
Unpacking gftp-gtk (2.0.19-6) ...
Selecting previously unselected package gftp-text.
Preparing to unpack .../gftp-text_2.0.19-6_amd64.deb ...
Unpacking gftp-text (2.0.19-6) ...
Selecting previously unselected package gftp.
Preparing to unpack .../archives/gftp_2.0.19-6_all.deb ...
Unpacking gftp (2.0.19-6) ...
Setting up gftp-common (2.0.19-6) ...
Setting up gftp-gtk (2.0.19-6) ...
Setting up gftp-text (2.0.19-6) ...
Setting up gftp (2.0.19-6) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
설치가 잘 되었습니다.
gftp
터미널에서 gftp라고 치시면 됩니다.
저는 이렇게 잘 떴습니다.
그런데 개발 환경을 구축 하면서 계속 저렇게 실행 할 수는 없어서 저 아이콘을 시작 바에 고정 해보겠습니다.
우분투 하단의 위 아이콘을 살짝 클릭 하십시오.
위에서 한번은 실행 하셨기 때문에 위와 같이 나올껍니다.
오른쪽 마우스 클릭 하시면 위와 같이 나옵니다.
저기서 Add to Favorites를 클릭하십시오.
왼쪽에 잘 설치가 되어 있습니다.
이 왕하는 짐에 저는 Terminal도 즐겨 찾기 해두겠습니다.
이제 실제로 로컬에 접속해서 사용해 보겠습니다.
윈도우즈용 ftp와 비슷하게 되어 있습니다. ^^
솔직히 저는 gFTP가 아니고 파일질라 리눅스용을 생각하고 있어서 ^^ 간단하게 다운로드 업로드 몇가지만 테스트 해보겠습니다.
Host에 주소를 User에 아이디를 Pass에 비밀번호를 입력하시고 접속 하시면 됩니다.
gFTP도 다양한 프로토콜을 지원 합니다. ^^
정보를 입력하신 다음에 저 컴퓨터 아이콘을 클릭하거나 엔터 치시면 접속을 진행 합니다.
리모트 쪽에 잘 접속이 되었습니다.
저희가 텍스트 ftp에서 만들었던 여러가지 디렉토리 그리고 윈도우즈에서 만들었던 디렉토리들이 잘 있습니다.
위에 인터페이스 처럼 왼쪽 오른쪽으로 나뉘어서 왼쪽은 로컬이고, 오른쪽은 리모트 입니다.
디렉토리 이동을 lcd 와 cd로 구분하지 않고 아예 GUI로 하니 편합니다. ^^
로컬에서 디렉토리를 만드려면 저기 New Folder...을 클릭하십시오.
제가 방금 test7을 생성했습니다.
잘 만들어 졌습니다.
더블 클릭해서 이동 하십시오.
늘 써먹고 있는 ^^ 이 파일들을 받아 보겠습니다.
gftp에서 Shift로 선택을 하시고 저기 까만 동그라미 안에 있는 화살표를 누르시면 됩니다.
로컬 디렉토리에 잘 다운로드가 되었습니다.
리모트 디렉토리에 다시 test9를 만들어 이아이들을 올려 보겟씁니다.
리모트에서도 동일하게 New Folder을 클릭하시면 새 폴더가 만들어 집니다.
예쁘게 만들어졌구요 저기로 이동 합니다. 로컬과 마찬가지로 더블클릭하시면 됩니다.
이번에는 반대쪽 화살표를 누르시면 ^^
업로드 됩니다.
요렇게 잘 업로드 됩니다. ^^
리눅스를 깔면 기본적으로 접하게 되는 또는 간단하게 설치해서 사용할 수 있는 gFTP에 대해서 알아 봤습니다.
이글에서 저는 제 우분투에 FTP 서버를 설치 해 두었습니다. 그래서 저기 접속을 해보겠습니다.
ftp localhost 21
저렇게 치시면 되는데 21은 표준 FTP 포트여서 생략 가능 합니다.
localhost는 안넣으시면, ftp 프로그램이 먼저 켜지고, 명령어를 이용해서 접속하실 수 있습니다.
일단 실행 해보겠습니다.
ftp localhost 21
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:talkit):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
위와 같이 실행을 했구요 잘 실행 되었습니다.
Name에 다른 아이디로 접속하시려면, 다른 아이디를 입력하시면 됩니다. talkit 계정으로 접속하시려면 그냥 엔터 치시면 됩니다.
그리고 Password 에는 정확한 패스워드를 입력하시면 됩니다.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Desktop
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Documents
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Downloads
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Music
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Pictures
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Public
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Templates
drwxr-xr-x 2 1000 1000 4096 Dec 25 00:21 Videos
drwxrwxr-x 2 1000 1000 4096 Jan 10 16:00 climates
drwxrwxr-x 2 1000 1000 4096 Jan 03 03:37 emmptydir2
drwxrwxr-x 2 1000 1000 4096 Jan 03 03:37 emmptydir3
drwxrwxr-x 2 1000 1000 4096 Jan 03 03:37 emmptydir4
drwxrwxr-x 2 1000 1000 4096 Jan 03 03:38 emmptydir5
drwxrwxr-x 2 1000 1000 4096 Jan 03 03:28 emptydir
-rw-r--r-- 1 1000 1000 35 Dec 30 00:27 ftpclient.txt
-rw-rw-r-- 1 1000 1000 35 Dec 30 00:27 ftpserver.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver11.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver12.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver13.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver14.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver15.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:27 ftpserver3.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver31.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver32.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver33.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver34.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:33 ftpserver35.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:27 ftpserver4.txt
-rw-rw-r-- 1 1000 1000 35 Jan 03 03:27 ftpserver5.txt
-rw-rw-r-- 1 1000 1000 338882654 Dec 21 05:26 mattermost-7.5.2-linux- amd64.tar.gz
-rw-rw-r-- 1 1000 1000 38937942 Jan 03 02:01 minio.deb
-rw-rw-r-- 1 1000 1000 243162 Nov 09 02:30 naverlogo.png
drwx------ 3 1000 1000 4096 Jan 06 06:21 snap
-rw-rw-r-- 1 1000 1000 243162 Nov 09 02:30 sp_main_947f65.png
drwxr-xr-x 2 1000 1000 4096 Jan 07 03:22 study
drwxrwxr-x 2 1000 1000 4096 Dec 30 00:37 temp
-rw-rw-r-- 1 1000 1000 270 Jan 03 06:17 testtext.txt
drwxrwxr-x 2 1000 1000 4096 Jan 08 06:10 wgettest
226 Directory send OK.
파일 리스트를 확인 하는 명령어인 ls 치시면, 파일 목록을 보실 수 있습니다.
cd : FTP 서버의 디렉토리 이동
lcd : 로컬 컴퓨터의 디렉토리 이동
윈도우즈에서 로컬의 디렉토리를 이동할때는 GUI로 이동 했는데 얘는 GUI가 없으니 명령어로 이동 해야 합니다.
그 명령어가 lcd 입니다.
cd 명령어는 접속 해 있는 서버방의 디렉토리가 이동 됩니다.
디렉토리를 하나 만들어 보겠습니다.
mkdir test
ftp> mkdir test
257 "/home/talkit/test" created
위와 같이 잘 만들어 졌습니다.
cd test
250 Directory successfully changed.
cd test 명령어로 잘 이동을 했구요.
lcd 로컬의 디렉토리를 이동 해보겠습니다.
lcd test
아직 이동한 적이 없기 때문에 로컬에서 test로 이동 했을 겁니다.
ftp> lcd test
Local directory now /home/talkit/test
다시
cd ..
250 Directory successfully changed.
위 디렉토리로 이동 하겠습니다.
이제 다운로드를 한번 받아 보겠습니다.
get 파일명
위 명령어를 이용하시면 로컬에 다운로드 할 수 있습니다.
get ftpclient.txt
local: ftpclient.txt remote: ftpclient.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpclient.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.01 secs (2.8677 kB/s)
잘 다운로드 되었습니다.
! ls
! 명령어를 이용하면 로컬에 있는 명령어를 수행 할 수 있습니다. 저는 주로 로컬 작업을 미리 해두고 들어가서 몰랐는데 ^^
가능하네요 ^^
ftp> !ls
ftpclient.txt
잘 다운로드 받아져 있습니다.
mkdir test3
cd test3
위 명령어로 원격 디렉토리를 이동하고, 파일을 올려 보겟습니다.
ftp> mkdir test3
257 "/home/talkit/test3" created
ftp> cd test3
250 Directory successfully changed.
위와 같이 잘 만들어 지고 이동 되었으면
put 파일명
위 명령어로 파일을 전송 할 수 있습니다.
put ftpclient.txt
put ftpclient.txt
local: ftpclient.txt remote: ftpclient.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
35 bytes sent in 0.00 secs (510.1446 kB/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 35 Feb 19 02:33 ftpclient.txt
226 Directory send OK.
실행하면 위와 같이 잘 됩니다. ^^
cd ..
! mkdir test5
lcd test5
로컬에 test5 폴더를 만들고 저기다가 ftp로 시작하는 파일들을 받아 보겠습니다.
그런데 많은 파일을 받아야 해서 명령어가 다릅니다.
mget 파일명일부*
mget ftp*
mget ftpclient.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpclient.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (255.0723 kB/s)
mget ftpserver.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (160.4680 kB/s)
mget ftpserver11.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver11.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (244.1406 kB/s)
mget ftpserver12.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver12.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (249.4868 kB/s)
mget ftpserver13.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver13.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (234.1074 kB/s)
mget ftpserver14.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver14.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (220.5141 kB/s)
mget ftpserver15.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver15.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (109.9025 kB/s)
mget ftpserver3.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver3.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (205.9017 kB/s)
mget ftpserver31.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver31.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (240.7020 kB/s)
mget ftpserver32.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver32.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (213.6230 kB/s)
mget ftpserver33.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver33.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (217.7050 kB/s)
mget ftpserver34.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver34.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (189.8871 kB/s)
mget ftpserver35.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver35.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (271.2674 kB/s)
mget ftpserver4.txt?
실제로 위와 같이 명령을 내리면 되는데 y를 계속 눌러 주셔야 합니다.
mput 파일명일부*
명령어는 반대로 여러개의 파일을 한꺼번에 올릴때 사용합니다.
하지만, 간단하게 CLI 밖에 안될때는 저렇게 해도 개발의 특성상 많은 파일을 주고 받아야 해서
ftp는 잠깐 쓰는 것 왜에는 권장하지 않습니다. ^^
참 아까 말씀 드린거를 하나 더 말씀 드리고 마치겠습니다.
ftp
치시고 엔터 치시면
ftp 프롬프트로 이동하는데 ^^ 이때 open 명령어를 이용하시면 접속 하실 수 있습니다.
VMWARE 관련 글을 있는데 정작 VMWARE를 설치하는 글은 없는 것 같아서 적어봅니다.
리눅스 이야기를 거의 하고 있지만, 오늘은 윈도우즈 입니다. ^^
개요
VMWARE는 VMWARE Inc. 에서 개발한 가상화 도구 입니다. 해당 프로그램의 정식 명칭은 VMWARE Workstion Player 입니다. 서버용으로는 Fusion이라는 솔루션이 있고, 웍스테이션용으로 VMWARE Workstation Pro라는 제품이 있습니다. 지금까지 소개한 제품들은 다 유료 입니다. 하지만, VMWARE Workstation Player 개인에 한해서 무료 입니다. 기업에서 사용할때는 돈을 내고 사용하는 제품입니다. 개인적으로 사용하실때는 무료기 때문에 저는 무료로 사용하고 있습니다.
VMWARE외에도 Oracle VirtualHost라는 프로그램도 있습니다.
글을 계속 적게 되면 저 제품도 한번 써보겠습니다. ^^
다운로드
이 화면은 좀 적응이 안되네요 ^^ 영문 홈페이지가 더 편한 것 같습니다.
다운로드는 저기 Workstation Player 를 다운로드할 계획입니다.
무료 다운로드를 클릭 하십시오.
GO TO DOWNLOAD를 클릭하십시오.
Windows 64-bit 오른쪽의 DOWNLOAD NOW를 클릭하십시오.
다운로드는 잘 끝났습니다. 이제 설치를 진행 하겠습니다.
설치
제 컴에서는 설치가 안되어서 집에 있는 다른 피씨에서 설치 과정을 보여 드리겠습니다.
윈도우가 늘 그렇듯이 위 파일을 더블 클릭하시면 됩니다.
그러면 인증 화면이 한번 지나갑니다. 그때 Yes 또는 확인을 클릭하십시오.
저는 조금 많이 기다리기는 했는데 위와 같이 VMWARE 화면이 나왔습니다.
저기서 Next를 클릭합십시오.
라이센스 동의하시구요. Next를 클릭하시면 됩니다.
저는 강화된 키보드 드라이버는 설차하지 않습니다만, 필요하시면 설치하시면 됩니다.
그리고, PATH는 등록해 두는게 좋아서 저대로 Next 합니다.
혹시 설치 위치를 바꾸실 분은 Change를 클릭하셔서 변경 하시면됩니다.
저는 보통 저 두가지를 체크를 해제 합니다. 하나는 VMWARE의 업데이트를 체크할꺼냐? 두번째는 내가 사용한 경험을 VMWARE와 공유할 것인가 입니다. ^^ 저는 체크를 해제 합니다. ^^
저는 데스크톱에 바로가기를 안만드는 편이라서 Desktop 앞에 체크는 지워는 편입니다.
그래도 두셔도 됩니다. Next
이제 설치를 시작 합니다.
음 중간 중간에 네트워크 드라이버등을 설치하고 뭐 여러가지를 자동으로 진행 합니다.
설치가 끝나면 저렇게 나옵니다. Player는 라이센스 등록을 안해도 무료 입니다.
Finish를 클릭하시면 됩니다.
설치 확인
이제 설치는 끝나구요.
시작 메뉴에서 vmware라고 치시거나, V근처에서 찾으시면 저렇게 VMware 가 있습니다. 거기서 17 Player를 클릭하십시오.
처음 켜시면 위와 같이 나옵니다. 저희는 무료로 사용할 것이기 때문에 non-commercial use를 클릭하시면 됩니다.
그리고 Continue를 클릭하십시오.
이제 라이센스까지 확인이 끝났고 Finish를 눌러시시면 제가 설치할때 보여 드렸던 그 화면이 나옵니다.
요렇게 나옵니다. 여기까지 잘 따라 오셨으면 설치가 잘 된 것입니다.
오늘은 여기 까지이고 ^^ 다음 부터는 또 열심히 VMWARE와 관련된 글들을 작성해 보겠습니다.
감사합니다.
추가 말
제가 설치해 둔 VMWARE는 16.대 입니다. 하지만, 최신 버전을 설치했구요. 메뉴나 이런 부분은 거의 비슷합니다. 제가 쓸때는 17 버전은 다른 컴에 설치해서 이문서를 적었습니다. ^^
아래 관련글들은 16.대에서 진행 한 것이지만, 버전만 변경 되었지 비슷하게 동작 합니다.
FTP options:
--ftp-user=USER set ftp user to USER
--ftp-password=PASS set ftp password to PASS
--no-remove-listing don't remove '.listing' files
--no-glob turn off FTP file name globbing
--no-passive-ftp disable the "passive" transfer mode
--preserve-permissions preserve remote file permissions
--retr-symlinks when recursing, get linked-to files (not dir)
talkit@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
talkit@ubuntu:~$ su -
Password:
su: Authentication failure
talkit@ubuntu:~$ su -
Password:
root@ubuntu:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
root@ubuntu:~#
환경 변수 차이가 거의 없습니다. T.T
-, -l, --login
Start the shell as a login shell with an environment similar to
a real login:
o clears all the environment variables except TERM and
variables specified by --whitelist-environment
o initializes the environment variables HOME, SHELL,
USER, LOGNAME, and PATH
o changes to the target user's home directory
o sets argv[0] of the shell to '-' in order to make the
shell a login shell
그래서
"-" 옵션을 제가 잘 못 이해 하고 있는 줄 알고 다시 봤는데 비슷하게 이해는 하고 있네요 .
환경 변수중의 일부만 안변하고 변하는 것이고
"-" 옵션을 주면, 실제로 그 계정으로 login한걸로 되네요 ^^
일단 그렇다고 합니다.
root user로 오래 작업을 해야 할 경우 su - 를 이용해서 작업하시는 것이 훨씬 효율적입니다. - 없이 하면 뭔가 권한이 조금 부족한 느낌입니다. ^^
그리고 su - 뒤에 사용자를 붙이면 해당 사용자로 변경 됩니다.
su - 는 실제로 su - root 가 생략 되어 있다고 보시면 됩니다.
비밀번호 없이 해당계정으로 접근 하시려면, root 계정으로 접근 하신 다음에 비밀번호 없는 계정으로 접근 하시면 됩니다.
오 방금 옵시디안에 vim 옵션을 활성화 했는데 좋습니다. ^^ 기보드 화살표 키로 안가도 될네요 ㅎㅎㅎ
실제로 한번 예저를 보여 드리겠습니다.
su - mattermost
Password:
su: Authentication failure
talkit@ubuntu:~$ su - root
Password:
root@ubuntu:~# su - mattermost
su: warning: cannot change directory to /home/mattermost: No such file or directory
$
위에서 보시면, mattermost 계정으로 접근이 안됩니다. 왜냐면 아까 root 처럼 비밀번호가 없습니다. ^^
하지만, root 계정으로 su 한 다음에 mattermost 계정으로 su 하면 해당 계정으로 접근은 가능 합니다.
계정 홈도 지정해주지 않아서 ^^
저렇게 되네요
마지막으로 su -s -
를 알리고 su 관련 내용은 접고 다음에 있는 sudo를 이야기 하겠습니다.
su -s /usr/bin/csh -
위 명령어를 내렸는데 설치가 안되어 있습니다. ^^
그래서 또 설치 합니다.
sudo apt install csh
csh 은 가끔씩 쓸일이 있어서 설치 해 놓으면 좋을 것 같습니다.
talkit@ubuntu:~$ su -s /bin/csh -
Password:
#
이렇게 하시면 계정을 변경할때 기본 쉘을 변경할 수 있습니다.
여기까지가 su에 관련된 내용입니다.
원하는 사용자의 권한 획득 이제 하시겠죠.
sudo 사용법
sudo는 원하는 사용자 권한으로 일하기라고 생각하시면 됩니다.
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
우선 sudo를 설명 드리려면 sudoers 라는 파일을 알아야 합니다. ^^
%sudo ALL=(ALL:ALL) ALL
위 줄이 중요합니다.
sudo는 저 그룹에 속한 사용자만 가능 합니다.
제 컴퓨터에서 talkit 계정은
vi /etc/group
해서 보시면
sudo:x:27:talkit
sudo 그룹에 포함되어 있습니다
자 그러면, talkit2 계정을 만들겠습니다.
adduser talkit2
일부러 그룹을 안주고 만들었습니다.
저 talkit2에 비밀번호를 주겠습니다.
sudo passwd talkit2
비밀번호를 줬구요
talkit2 계정에 su로 접근 해서 sudo를 한번 해보겠습니다.
첫번째는 실패 합니다.
다시 빠저 나와서 talkit 계정으로
talkit2를 sudo 그룹에 넣습니다.
sudo usermod -aG sudo talkit2
위와 같이 하면 성공합니다.
talkit@ubuntu:~$ su - talkit2
su: user talkit2 does not exist
talkit@ubuntu:~$ adduser talkt2
adduser: Only root may add a user or group to the system.
talkit@ubuntu:~$ sudo adduser talkt2
Adding user `talkt2' ...
Adding new group `talkt2' (1001) ...
Adding new user `talkt2' (1001) with group `talkt2' ...
Creating home directory `/home/talkt2' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for talkt2
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
talkit@ubuntu:~$ su - talkit
Password:
talkit@ubuntu:~$ su - talkit2
su: user talkit2 does not exist
talkit@ubuntu:~$ su - talkt2
Password:
su: Authentication failure
talkit@ubuntu:~$ su - talkt2
Password:
su: Authentication failure
talkit@ubuntu:~$ su - talkt2
Password:
talkt2@ubuntu:~$ sudo vi /etc/sudoers
[sudo] password for talkt2:
talkt2 is not in the sudoers file. This incident will be reported.
talkt2@ubuntu:~$ exit
logout
talkit@ubuntu:~$ sudo usermod -aG sudo talkt2
talkit@ubuntu:~$ su - talkt2
Password:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
talkt2@ubuntu:~$ sudo vi /etc/sudoers
[sudo] password for talkt2:
talkt2@ubuntu:~$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
실제로 해보면 위와 같이 되는데 ^^
제가 실수로 talkt2 으로 계정을 만들었네요. 저거 빼고는 차가 없이 잘 테스트가 되었습니다.
일단 실습을 먼저 했구요.
이 실습의 목적은 사용자를 어떻게 sudo 가능하도록 하느냐 입니다. ^^
이제 실제로 sudo 사용법은 어렵지 않습니다. ^^
sudo [옵션] 원하는명령어 [원하는명령어의 옵션들]
옵션들은 생략이 가능하고 sudo 이다 보니 ^^ 무조건 명령어는 하나 넣으셔야 합니다.
옵션 중에는 -u 옵션만 설명을 드리겠습니다.
다른 설명을 원하시면 ^^
man sudo
설명이 잘 나와 있습니다.
sudo cat /etc/sudoers
sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
yum이라는 프로그램은 역시 레드햇 리눅스에서 만든 프로그램인데, rpm 보다는 스스로 호환성/의존성 문제를 해결해 줍니다.
그리고 apt는 호환성/의존성 문제가 해결된 데비안/우분투 리눅스의 설치 관리자 입니다.
![[Pasted image 20230106232301.png]]
apt의 GUI 버전을 보여 드리겨고 했는데 ^^ 위와 같이 카달로그를 받는데 시간이 걸리네요
저거 끝나면 다시 캡쳐를 ^^
지금 제가 하고 있는 것은 CLI 입니다. Command LIne Interface ^^
apt 기본 사용법
sudo apt 명령어 [패키지명|검색어]
위와 같습니다.
오늘 설명할 명령어는 아래와 같습니다.
update
upgrade
install
reinstall
remove
search
list
show
위 명령어들을 알아 보겠습니다.
대부분 우분투에 뭔가를 까실때 저 명령어들로 해결이 가능 합니다.
우선 update는 최신 버전의 패키지 서버들과 패키지의 버전 업데이트를 목록을 알려 줍니다.
update 명령어
sudo apt update
우분투에서 root를 활성화 시키지 않는 이상 sudo를 사용해야 합니다.
그래서 위와 같이 사용합니다.
한번 해보겠습니다.
![[Pasted image 20230106232754.png]]
아까 하고 있는 작업 끝나서 보입니다. ^^
위와 같이 GUI형태로 프로그램을 설치하고 관리 할 수 있습니다.
다시 putty로 돌아 와서.
sudo apt update 명령어를 내려 보십시오.
sudo apt update
[sudo] password for talkit:
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
9 packages can be upgraded. Run 'apt list --upgradable' to see them.
sudo apt list | more
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Listing...
0ad-data-common/focal,focal 0.0.23.1-1 all
0ad-data/focal,focal 0.0.23.1-1 all
0ad/focal 0.0.23.1-4ubuntu3 amd64
0install-core/focal 2.15.1-1 amd64
0install/focal 2.15.1-1 amd64
0xffff/focal 0.8-1 amd64
2048-qt/focal 0.1.6-2build1 amd64
2ping/focal,focal 4.3-1 all
2to3/focal,focal 3.8.2-0ubuntu2 all
2vcard/focal,focal 0.6-2 all
3270-common/focal 3.6ga4-3build1 amd64
389-ds-base-dev/focal 1.4.3.6-2 amd64
389-ds-base-libs/focal 1.4.3.6-2 amd64
389-ds-base/focal 1.4.3.6-2 amd64
389-ds/focal,focal 1.4.3.6-2 all
3dchess/focal 0.8.1-20 amd64
3depict/focal 0.0.22-1.2build1 amd64
3dldf-doc/focal,focal 2.0.3+ndfsg-4 all
4g8/focal 1.0-3.2 amd64
4pane/focal 6.0-1build1 amd64
4store/focal 1.1.6+20151109-2build2 amd64
4ti2-doc/focal,focal 1.6.9+ds-2build1 all
4ti2/focal 1.6.9+ds-2build1 amd64
64tass/focal 1.54.1900-1 amd64
6tunnel/focal 1:0.13-1 amd64
7kaa-data/focal,focal 2.15.2+dfsg-2build1 all
7kaa/focal 2.15.2+dfsg-2build1 amd64
9base/focal 1:6-7build1 amd64
9menu/focal 1.9-2 amd64
9mount/focal 1.3+hg20170412-1 amd64
9wm/focal 1.4.1-1 amd64
a11y-profile-manager-doc/focal,focal 0.1.11-0ubuntu4 all
a11y-profile-manager-indicator/focal 0.1.11-0ubuntu4 amd64
a11y-profile-manager/focal 0.1.11-0ubuntu4 amd64
a2jmidid/focal 9-2 amd64
a2ps/focal 1:4.14-5 amd64
a56/focal 1.3+dfsg-9 amd64
a7xpg-data/focal-updates,focal-updates 0.11.dfsg1-10build3.1 all
a7xpg/focal-updates 0.11.dfsg1-10build3.1 amd64
aa3d/focal 1.0-8build1 amd64
aac-enc/focal 0.1.6-1 amd64
aajm/focal 0.4-10build1 amd64
aaphoto/focal 0.45-1 amd64
aapt/focal 1:8.1.0+r23-3build2 amd64
abacas/focal,focal 1.3.1-6 all
abcde/focal,focal 2.9.3-1 all
abci/focal 0.0~git20170124.0.f94ae5e-2 amd64
abcm2ps/focal 8.14.6-0.1 amd64
abcmidi/focal 20200122-1 amd64
abe-data/focal,focal 1.1+dfsg-3 all
abe/focal 1.1+dfsg-3 amd64
abgate/focal 1.1.9-2build1 amd64
abi-compliance-checker/focal,focal 2.3-0.2ubuntu1 all
abi-dumper/focal,focal 1.1-1 all
abi-monitor/focal,focal 1.12-2ubuntu1 all
abi-tracker/focal,focal 1.11-1 all
abicheck/focal,focal 1.2-5ubuntu1 all
abigail-doc/focal,focal 1.6-1build1 all
abigail-tools/focal 1.6-1build1 amd64
abisip-find/focal 1.3.0-2 amd64
abiword-common/focal,focal 3.0.2-10 all
위와 같이 설치 되어 있는 캐시되 있는? 설치되고, 설치할 수 있는 모든 패키지들을 보여 주고 있습니다.
sudo apt list --installed
위 명령어를 내리면, 설치 되어 있는 패키지만 찾을 수 있습니다.
지난 번에 제가 설치한 mc 패키지를 한번 찾아 보겠습니다.
sudo apt list --installed | grep mc
위와 같이 하시면 됩니다.
sudo apt list --installed | grep mc
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
fonts-smc-anjalioldlipi/focal,focal,now 7.1.2-1 all [installed,automatic]
fonts-smc-chilanka/focal,focal,now 1.400-1 all [installed,automatic]
fonts-smc-dyuthi/focal,focal,now 3.0.2-1 all [installed,automatic]
fonts-smc-gayathri/focal,focal,now 1.100-1 all [installed,automatic]
fonts-smc-karumbi/focal,focal,now 1.1.2-1 all [installed,automatic]
fonts-smc-keraleeyam/focal,focal,now 3.0.2-1 all [installed,automatic]
fonts-smc-manjari/focal,focal,now 1.710-1 all [installed,automatic]
fonts-smc-meera/focal,focal,now 7.0.3-1 all [installed,automatic]
fonts-smc-rachana/focal,focal,now 7.0.2-1 all [installed,automatic]
fonts-smc-raghumalayalamsans/focal,focal,now 2.2.1-1 all [installed,automatic]
fonts-smc-suruma/focal,focal,now 3.2.3-1 all [installed,automatic]
fonts-smc-uroob/focal,focal,now 2.0.2-1 all [installed,automatic]
fonts-smc/focal,focal,now 1:7.1 all [installed,automatic]
libxdmcp6/focal,now 1:1.1.3-0ubuntu1 amd64 [installed,automatic]
libxvmc1/focal,now 2:1.0.12-2 amd64 [installed,automatic]
mc-data/focal,focal,now 3:4.8.24-2ubuntu1 all [installed,automatic]
mc/focal,now 3:4.8.24-2ubuntu1 amd64 [installed]
pcmciautils/focal,now 018-11 amd64 [installed,automatic]
결과는 위와 같이 나오구요. 실제로 밑에서 두번째 줄에 있는 아이가 mc 입니다 ^^
그럼 다시 돌아가서
upgrade 명령어
업그레이드 가능한 목록을 알아 봤으니 upgrade를 해보겠습니다.
sudo apt upgrade
명령어는 위와 같습니다.
위 명령어를 내리면 알아서 인터넷에서 받아와서 업그레이드를 진행 합니다. ^^
꺼꾸로 이긴 한데 ^^
upgrade 까지 배웠으니
install 명령어
install을 알아 보겠습니다.
sudo apt install 원하는패키지명
위와 같이 설치 합니다.
음 제가 설치 해둔 리눅스는 컴파일러가 없습니다.
그래서 gcc를 한번 설치 해보겠습니다.
sudo apt install gcc
설치 하기 전에 gcc 엔터를 쳤습니다.
gcc
Command 'gcc' not found, but can be installed with:
sudo apt install gcc
설치 후에 gcc 엔터를 쳤습니다.
gcc
gcc: fatal error: no input files
compilation terminated.
앞에는 프로그램이 없으니 설치 하라고 하고 뒤에는 C파일이 없다고 C파일하나를 내놓으라고 합니다. ^^
설치가 잘 되었씁니다.
remove 명령어
설치가 있으면 삭제가 있습니다. ^^
remove 는 아래와 같습니다.
sudo apt remove gcc
위와 같이 하시면 됩니다.
sudo apt remove gcc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
gcc
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 51.2 kB disk space will be freed.
Do you want to continue? [Y/n] y
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ko_KR.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 166383 files and directories currently installed.)
Removing gcc (4:9.3.0-1ubuntu2) ...
Processing triggers for man-db (2.9.1-1) ...
실행을 해보면 잘 지워 집니다.
gcc
-bash: /usr/bin/gcc: No such file or directory
다시 아까 처럼 gcc를 쳐봤는데 그렇게 친절 하지는 않네요 ^^
여튼 삭제가 되었습니다.
reinstall 명령어
sudo apt reinstall 패키지명
gcc를 reinstall 해보겠습니다.
sudo apt reinstall gcc
reinstall은 설치할지를 안묻고 바로 설치 해버리네요 ^^
isntall만 사용하셔도 될 것 같습니다.
search 명령어
search 명령어는 설치할 패키지가 있는지 알려 줍니다.
요즘 관심 가지고 있는 obsidian 이 있는지 찾아 보도록 하겠습니다.
apt search obsidian
apt search obsidian*
Sorting... Done
Full Text Search... Done
minetest-mod-nether/focal,focal 2-4 all
Minetest mod - Nether portals and materials
obsidian-icon-theme/focal,focal 3.5-1 all
Intuitive Faenza-like icon theme
결과는 위와 같이 나왔습니다.
음 실제 프로그램은 없는 건가요?
일단 한번 리눅스에 옵시디안 설치하는 방법도 글을 한번 써봐야 겠습니다.
show 명령어
이제 마지막으로 show에 대해서 이야기 해보겠습니다.
sudo apt show 패키지명
위와 같이 사용할 수 있습니다.
mc를 한번 show로 보겠습니다.
sudo apt show mc
[sudo] password for talkit:
Package: mc
Version: 3:4.8.24-2ubuntu1
Priority: optional
Section: universe/utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Dmitry Smirnov <onlyjob@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1501 kB
Provides: mcedit
Depends: libc6 (>= 2.15), libext2fs2 (>= 1.37), libglib2.0-0 (>= 2.59.2), libgpm2 (>= 1.20.7), libslang2 (>= 2.2.4), libssh2-1 (>= 1.2.8), mc-data (= 3:4.8.24-2ubuntu1)
Recommends: mime-support, perl, unzip
Suggests: arj, bzip2, catdvi | texlive-binaries, dbview, djvulibre-bin, epub-utils, file, genisoimage, gv, imagemagick, libaspell-dev, links | w3m | lynx, odt2txt, poppler-utils, python, python-boto, python-tz, xpdf | pdf-viewer, zip
Homepage: https://www.midnight-commander.org
Download-Size: 477 kB
APT-Manual-Installed: yes
APT-Sources: http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
Description: Midnight Commander - a powerful file manager
GNU Midnight Commander is a text-mode full-screen file manager. It
uses a two panel interface and a subshell for command execution. It
includes an internal editor with syntax highlighting and an internal
viewer with support for binary files. Also included is Virtual
Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH
servers) and files inside archives to be manipulated like real files.
정말 멋진 툴이네요 ^^
여기까지가 apt의 기본 사용법입니다.
제가 매일 그냥 사용하고 있고 저도 솔직히 REDHAT계열에서 넘어와서 apt 보다는 yum 이 익숙한데 ^^
저렇게 개인적으로 설치를 하지 않더라도, 카페24나 Oracle VPS 같은 곳에 FTP가 있다면 다음 정보들이 있어야 합니다.
접속 주소 : 아이피 또는 도메인
접속 포트 : 일반적으로 FTP 21, SCP는 22 지만, 서버 보안을 위해서 변경하는 경우 해당 포트
TLS 여부 : 시스템 관리자로 부터 해당 서버가 보안 접속을 사용하는지를 안내 받으십시오.
아이디 : 시스템 관리자부터 발급 받으시고,
비밀번호 : 시스템 관리자로 부터 발급 받습니다. ^^
하지만, 제가 가장 많이 접하고, 사용했던 리눅스는 빨간모자 즉, RedHat 계열의 리눅스 들입니다.
RHEL이라고 레드햇 엔터프라이즈 리눅스, Fedora라고 페도라리눅스, RHEL이 상용화되면서, CentOS라는 리눅스까지 모두 Redhat 계열의 리눅스 입니다. 참 써보지는 않았지만, Oracle Linux도 RedHat 계열로 알고 있습니다.
왜 이야기를 드리느냐? 그 이유는 CentOS가 원래 본연의 목적을 더이상 진행하지 않기 때문입니다.
그래서 저도 고민을 했습니다. 그냥 CentOS를 쓸것인가? 우분투로 갈것인가? 하지난 아직 실제로 사용하고 있는 상용 서버는 CentOS를 사용하고 있습니다. ^^ 제 개인적으로 사용하는 서버들은 Ubuntu를 사용하고 있습니다. 아참 제가 다니는 회사가 과학회사인데 T.T 저는 문과 입니다. ^^ 과학용으로는 또 Fedora도 가끔 사용합니다. ^^
Ubuntu외에 알고는 있었지만, 또하나의 대안이 있어서 소개해 드립니다. 오늘은 소개해 드리고 ^^ 다른 글에서 VMWARE 에 한번 설치해보겠습니다. ^^
이 배포판의 목적은 대놓고 적고 있습니다. RHEL의 커뮤니티 판이라구요. 즉 RHEL을 무료로 사용할 수 있다는 겁니다.
CentOS는 조금간 EOS(서비스 종료)될 예정입니다. 그리고 CentOS Stream 이라고, RHEL의 테스트 버전으로 남게 됩니다.
참 리눅스는 Open Source여서 개발을 하게 되면 일부 소스를 제외하고는 모두 공개하게 되어 있습니다. 그래서 가능한 것이 커뮤니티 버전 입니다. ^^ 소스가 공개 되어 있으니, 컴파일을 해서 다시 배포판을 만들면, 그 배포판에 배포판 만드신 분이 뻘짓만 안하면 ^^ 정말 괜찮은 방법입니다. ^^
로고 바꾸고 서비스 URL정도를 바꾸고, 계속 패치 해주고 얼마나 좋습니까 ^^
아참 제목에는 있지만, 새로운 리눅스의 이름을 본문에는 하나도 안적었네요 신기 합니다. ^^
리눅스의 이름의 로키(Rocky)리눅스입니다. CentOS의 원래 창시자 이름중 하나라고 되어 있씁니다. ^^
다운로드 페이지는 저렇게 생겼습니다. ^^
저기서 잘 봐두셔야 할 부분은 Planned EOL: 입니다. 2029년까지네요 정말 깁니다. ^^
그래서 조금 찾아 봤습니다.
EOL 이 End of Life네요 T.T
Active Support는 리눅스내의 패키지 업데이트를 이양 합니다. 8 버전대는 2024년 5월 31일까지네요. 저기 위에 있었는 EOL은 Security Support가 2029년 5월 31일에 끝나네요.
리눅스/Linux vi/vim NIX에서 가장 유명한 텍스트 편집기 - 글쓰기. One of the best text editor on NIX fields. - Writing https://talkit.tistory.com/699
오늘은 위글들 다음으로 쓰는 글입니다. 잠시 또 다른 길로 샜다가 왔습니다. ^^
끌쓰기는 익히셨다면 ^^
대한민국
동해물
백두산
한라산
백록담
천지
서울
대전
대구
부산
하늘
땅
검은색
우리나라
강산
아리앙
Apple
a
an
the
Korea
Republic of Korea
Internet
What is this
english
korean
Guten Tak
Guten Morgan
Guten Abent
문서 줄 수 30줄
지난 번에는 새로운 문서를 입력하는 법을 알려 드렸습니다.
이제는 글자를 지우고 문장을 지우고 문장을 입력하는 등의 일을 해보겠습니다.
자 위 파일을 우리는 testtext.txt 로 저장 하겠습니다.
이제 제가 말씀을 안드려서 저 문서를 그대로 vi 편집기에 옮길 수 있으시죠 ^^
그리고, <Esc> :wq 를 용해서 저장하고 빠저 나온 다음에 다음 작업을 또 시작 하겠습니다.
vi testtext.txt
위명령어를 이용해서 문서를 만들고 다시 문서를 여셨나요?
저는 여셨다고 보고 ^^
실제로 제가 30줄의 단어를 나열 했는지 확인 해보겠습니다.
<Esc> 누르시고, :set nu
명령어를 입력해 주십시오
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 땅
13 검은색
14 우리나라
15 강산
16 아리앙
17 Apple
18 a
19 an
20 the
21 Korea
22 Republic of Korea
23 Internet
24 What is this
25 english
26 korean
27 Guten Tak
28 Guten Morgan
29 Guten Abent
30 문서 줄 수 30줄
이렇게 나오면 합격 ^^
자 이제 첫번째 줄을 지워 보겠습니다.
12번째 줄을 지워보겠습니다. ^^
그러면 이제 또 <Esc> 누르시고, :12 엔터 치십시오
그러면 커서가 12번째 줄로 이동할껍니다.
그자리에서 역시 숙달 되시면 안해도 되겠지만, 가끔 다른 키를 누르시고, 안된다는 분들이 있어서 ^^ <Esc> 한번더 누르시고, dd를 누르십시오.
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 검은색
13 우리나라
14 강산
15 아리앙
16 Apple
17 a
18 an
19 the
20 Korea
21 Republic of Korea
22 Internet
23 What is this
24 english
25 korean
26 Guten Tak
27 Guten Morgan
28 Guten Abent
29 문서 줄 수 30줄
줄 지우기 입니다.
그런데 지운게 실수다 우리에게 중요한 Undo 신이 ^^ vi에도 있습니다.
소문자 u를 누르십시오.
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 땅
13 검은색
14 우리나라
15 강산
16 아리앙
17 Apple
18 a
19 an
20 the
21 Korea
22 Republic of Korea
23 Internet
24 What is this
25 english
26 korean
27 Guten Tak
28 Guten Morgan
29 Guten Abent
30 문서 줄 수 30줄
자 12번째 줄인 땅이 복구 되었습니다. ^^
조심해야 할 것 같습니다. T.T Undo를 한번만 제공하는 것 같네요 ^^
자 그럼 글자를 지워 보겠습니다. 24번째 줄에 What를 지워보도록 하겠습니다.
이번에는 : 누르고 숫자 누르십시오 ^^
그리고 24번째 줄로 커서가 이동했으면 W 위에 커서를 놓으시고, 아시죠 hjkl 을 이용해서 ^^ 잘 조정하시기를
대문자 W 앞에서 소문자 x를 글자수만큼 누릅니다. What는 4글자니까 4번만 누르겠습니다. 띄워쓰기도 지우려면 다섯번 누르셔도 됩니다.
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 땅
13 검은색
14 우리나라
15 강산
16 아리앙
17 Apple
18 a
19 an
20 the
21 Korea
22 Republic of Korea
23 Internet
24 is this
25 english
26 korean
27 Guten Tak
28 Guten Morgan
29 Guten Abent
30 문서 줄 수 30줄
잘 따라 하셨으면 위와 같이 되었을 겁니다. ^^
is 앞에다가 커서 놓으시고, i를 누르셔서 What을 복원 하십시오.
What라고 치시면 됩니다. ^^
그러면 다시 복원이 되었을 것 같습니다.
그런데 그러면 dd를 내가 지우고 싶은게 지워 질때가지 쳐야 하나요?
아닙니다. 3dd 라고 입력해 볼껍니다.
위치는 사과를 없애 보겠습니다. Apple죠
마찬가지로 : 번호 누르셔서 잘 따라 오십시오.
17라인에 오셨으면 잘 따라해보십시오. 3dd
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 땅
13 검은색
14 우리나라
15 강산
16 아리앙
17 the
18 Korea
19 Republic of Korea
20 Internet
21 What is this
22 english
23 korean
24 Guten Tak
25 Guten Morgan
26 Guten Abent
27 문서 줄 수 30줄
Apple, a , an 이 사라졌습니다. ^^
여러분은 잘 지워졌나요
이렇게 하시면 됩니다.
u를 누르셔서 다시 세줄을 복원 합니다. ^^
찾기부터 해보겠습니다.
Korea를 찾아 보지요 ^^
/Korea를 입력해보십시오.
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 땅
13 검은색
14 우리나라
15 강산
16 아리앙
17 Apple
18 a
19 an
20 the
21 Korea
22 Republic of Korea
23 Internet
24 What is this
25 english
26 korean
27 Guten Tak
28 Guten Morgan
29 Guten Abent
30 문서 줄 수 30줄
~
~
~
?Korea
이렇게 나오고 T.T 저기 커서는 안보이지만 여러분은 커서가 Korea에 와있지요?
다음 찾기는 n 이전 찾기는 N 입니다. 한번 눌러 보십시오.
찾기를 알아 봤으니 바꿔 보겠습니다.
What is this를 How are you 로 바꿔 보시죠 ^^
:%s/What is this/How are you
이렇게 하시면 됩니다.
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 땅
13 검은색
14 우리나라
15 강산
16 아리앙
17 Apple
18 a
19 an
20 the
21 Korea
22 Republic of Korea
23 Internet
24 How are you
25 english
26 korean
27 Guten Tak
28 Guten Morgan
29 Guten Abent
30 문서 줄 수 30줄
~
~
~
:%s/What is this/How are you
잘 따라 하셨으면 위와 같이 변경되어 있을 겁니다. ^^
:%s/What is this/How are you/g
위 문서에서는 소용이 없겠지만, /g 옵션을 모든 문서의 내용을 변경 합니다.
그래서 Korea를 Corea로 변경해 보겠습니다.
:%s/Korea/Corea/g
위와 같이 하면 저위에 있는 2개의 Korea가 Corea로 변경 될 겁니다.
1 대한민국
2 동해물
3 백두산
4 한라산
5 백록담
6 천지
7 서울
8 대전
9 대구
10 부산
11 하늘
12 땅
13 검은색
14 우리나라
15 강산
16 아리앙
17 Apple
18 a
19 an
20 the
21 Corea
22 Republic of Corea
23 Internet
24 How are you
25 english
26 korean
27 Guten Tak
28 Guten Morgan
29 Guten Abent
30 문서 줄 수 30줄
~
~
~
음 지금까지 리눅스 기본 관련글을 쓰면서 파일을 만들고,읽고, 목록확인하고, 이동 시키는 명령어는 열심히 알려 드렸습니다. 디렉토리 만들기도 했네요 ^^
위의 글들을 참고 하시면 되겠습니다. ^^
그런데 파일 삭제는 어떻게 할까요?
rm 이라는 명령어를 사용합니다.
RM(1) User Commands RM(1)
NAME
rm - remove files or directories
SYNOPSIS
rm [OPTION]... [FILE]...
DESCRIPTION
This manual page documents the GNU version of rm. rm removes each specified file. By default, it does not remove directories.
If the -I or --interactive=once option is given, and there are more than three files or the -r, -R, or --recursive are given, then rm prompts the user for whether to proceed with the entire operation. If the response is not affirmative, the entire command is aborted.
Otherwise, if a file is unwritable, standard input is a terminal, and the -f or --force option is not given, or the -i or --interactive=always option is given, rm prompts the user for whether to remove the file. If the response is not affirmative, the file is skipped.
OPTIONS
Remove (unlink) the FILE(s).
-f, --force
ignore nonexistent files and arguments, never prompt
-i prompt before every removal
-I prompt once before removing more than three files, or when removing recursively; less intrusive than -i, while still giving protection against most mistakes
--interactive[=WHEN]
prompt according to WHEN: never, once (-I), or always (-i); without WHEN, prompt always
--one-file-system
when removing a hierarchy recursively, skip any directory that is on a file system different from that of the corresponding command line argument
--no-preserve-root
do not treat '/' specially
--preserve-root[=all]
do not remove '/' (default); with 'all', reject any command line argument on a separate device from its parent
-r, -R, --recursive
remove directories and their contents recursively
-d, --dir
remove empty directories
-v, --verbose
explain what is being done
--help display this help and exit
--version
output version information and exit
By default, rm does not remove directories. Use the --recursive (-r or -R) option to remove each listed directory, too, along with all of its contents.
To remove a file whose name starts with a '-', for example '-foo', use one of these commands:
rm -- -foo
rm ./-foo
Note that if you use rm to remove a file, it might be possible to recover some of its contents, given sufficient expertise and/or time. For greater assurance that the contents are truly unrecoverable, consider using shred.