본문 바로가기
반응형

OS42

Linux - chmod 명령어 사용 방법 (권한, 모드 변경) chmod는 파일이나 디렉터리의 권한 등의 모드를 변경합니다. 명령어는 다음과 같이 쓸 수 있습니다. $ chmod [options] mode file1 권한 변경 chmod 폴더에는 다음과 같이 4개의 파일들이 있습니다. 맨 왼쪽에 9개의 문자 rwxr-xr-x는 파일의 권한(모드)을 의미합니다. ls -l을 사용하면 파일의 권한 상태를 볼 수 있습니다. chmod$ ls -l total 16 -rwxrwxrwx 1 js js 6 3월 10 16:02 file1.txt -rw-r--r-- 1 js js 6 3월 10 16:02 file2.txt -rw-r--r-- 1 js js 6 3월 10 16:02 file3.txt -rw-r--r-- 1 js js 6 3월 10 16:02 file4.txt 일반적.. 2022. 4. 13.
[명령어] sar 설명 SAR 명령어는 System Activity Report의 약어이다. CPU, Memory, I/O 사용량을 수집, 레포트하고 저장하는 명령어이다. 시스템 자원 사용율 이력을 파일에 저장 한 후, 레포팅할 때 유용하다. 기본적으로 리눅스에 설치되어 있지 않고, 별도로 "sysstat"라는 툴을 설치하면 함께 설치된다. 참고로, sysstat 툴은 sar는 물론, iostat, pidstat, mpstat 명령어가 포함된다. 주요 옵션 사용 예시 예제1 : 2초마다 5회 CPU 정보 출력 [root@localhost ~]# sar 2 5 Linux 3.10.0-123.el7.x86_64 (localhost.localdomain) Monday 26 October 2015 _x86_64_ (2 CPU) 01:.. 2021. 11. 20.
[AWS] linux에서 nc (Netcat) 을 이용하여 방화벽 확인하기 web/was 세팅을 마치고 브라우저에서 잘 연결이 되는지 확인을 하려고 nginx에 설정한 도메인을 딱 치는순간! 왜 이런 오류가 날까? 원인을 파악해 보니 web서버에서 was서버로 (물리적으로 다른 서버) 연결을 하는 경우만 이렇다. web to web 은 nginx 설정대로 아주 잘 된다. 그렇다는것은 web 서버와 was 서버간의 방화벽이 문제가 될수 있는다는 것이다. 방화벽이 열렸는지 확인할 수 있는 방법은 telnet도 있지만 오늘은 netcat (or ncat)에 대해서 살펴보겠다. (기존의 netcat을 크게 개선시킨것이 ncat 이라고 한다.) 일단 nc가 설치가 되었는지 확인을 해본다. 역시 깔려있지 않다. 인생이 그렇게 호락호락하지는 않은것 같다. $ yum install nc yu.. 2021. 11. 16.
[리눅스(Linux) 명령어] zip 파일 및 폴더 압축하기 (unzip 압축풀기) 이 명령어는 정말 단순한데도 매일 쓰는게 아니라 순서가 헷갈려서 매번 구글링 하는데, 그렇다고 포스팅을 쓰기에도 너무 단순해서 안쓰고 있었다. 그런데 이게 몇 번 반복되니, 그냥 자주 쓰는 압축하는 상황만 기억하고자 정리한다. 푸는건 구지 순서가 헷갈리지 않아서 간단하게만 언급하겠다. zip :: 파일 및 폴더 압축하기 현재 폴더에 있는 하나의 파일을 압축하려면, 아래와 같은 기본 포맷을 다르면 된다. zip [압축했을 때 만들고 싶은 파일명].zip [압축할 파일 또는 폴더] 파일 하나만 압축하는 경우는 거의 없겠지만, 가끔 용량의 한계가 있는 상태에서 파일을 업로드 해야 하는 상황이 있을 때가 있어서 그때는 필요했던 것 같다. 그땐 아래와 같이 하면 되겠다. 다음과 같이 123.py 라는 파이썬 코드.. 2021. 11. 16.
[AWS] Linux rpm으로 설치한 package 삭제하기 기존에 rpm을 통해 설치한 package가 있는데 이를 지우고 싶은 경우가 있다. 가령 다음과 같은 상황이다. 사정상 더 낮은 버전의 zabbix를 설치해야 하는데 이미 최신버전이 깔려있어서 설치를 할 수 없다. 그래서 기존에 설치된 package를 삭제하고자 한다. rpm 으로 설치된 package를 일단 확인을 한다. $ rpm -qa | grep [package 명] 설치를 확인했으면 지워준다. rpm -e 명령어를 통해 삭제할 수 있다. $ rpm -e [삭제할 package명] 삭제를 하고 확인을 한번 해준다. 삭제가 정상적으로 된것을 확인할 수 있다. 만약 삭제가 정상적으로 안되고 dependency 관련 오류가 난다면 다음과 같이 한다. $ rpm -e [삭제할 package명] --nod.. 2021. 11. 5.
[AWS] Linux yum 으로 설치한 package 삭제하기 ## yum install 삭제하기 지난번에는 rpm으로 설치한 package에 대해 삭제를 했는데 이번에는 yum으로 설치한 package를 삭제하는 방법에 대해 알아보겠다. yum 으로 설치된 package 목록을 확인한다. $ yum list installed | grep [설치한 package] grep을 안써서 하는 사람들도 있지만 grep을 사용하는 것이 여러모로 편한것 같다. yum으로 설치한 전체 list를 확인하려면 yum list installed 만 입력하면 된다. 설치목록을 확인했으면 이제 삭제를 해주면 된다. $ yum remove [삭제할 package명] 삭제가 잘 되었다. 중간에 y 한번 눌러주면 된다. 다시 yum list installed 로 확인해본다. 2021. 11. 4.
[AWS] Linux reboot / shutdown (재부팅 / 종료하기) - Linux reboot / shutdown 이란? reboot 는 리눅스를 재부팅하는 명령어이며, shutdown 은 리눅스를 종료하는 명령어입니다. - reboot 사용방법 reboot - 예제 1 리눅스를 재부팅하고 재부팅 시간을 확인하시오. - 예제 1 실행화면 [root@localhost ~]# reboot - 재부팅 시간 확인 [root@localhost ~]# last reboot reboot system boot 2.6.32-431.el6.i Sun Nov 30 11:31 - 11:33 (00:02) [참고사항] last reboot last reboot 명령어는 가장 마지막에 실행된 재부팅 시간이 언제인지 표시해줍니다. - shutdown 사용방법 shutdown -h [종료시간] - .. 2021. 11. 3.
[AWS] Linux cp 명령어 ## 리눅스 CP 명령어 파일 권한까지 복사 CP 명령어를 이용하여 파일 또는 폴더를 복사하는 경우 복사하는 유저의 umask 정책이 따라서 파일의 권한, 소유자가 변경됩니다. root권한으로 cron 자동화를 구현할때 종종 파일을 복사해주는 경우가 있는데요. 이때 옵션없이 cp만으로 복사하게 되면 파일의 권한이 root권한이 되어 다를 유저들이 열어 볼 수 없게 됩니다. 따라서 이 때에는 파일 권한 및 소유자를 유지한채 복사할 필요가 있습니다. 이때 사용하는 옵션이 -p 옵션입니다. 이 옵션은 원본파일의 소유자, 그룹, 권한, 생성시간 정보를 그대로 보존한채 복사합니다. cp -p /원본파일 /복사할폴더 cp -arpv 출처 : https://www.uknew.co/cp-%eb%aa%85%eb%a0%b.. 2021. 10. 31.
[AWS] 리눅스 - du 명령어 du 명령어 : 디렉터리나 사용자별 디스크 사용량 확인시에 사용 ( 특정 디렉터리 별로 사용량을 알려줌) ​ ​ [ 옵션정리 ] // 더많은 옵션들이 있지만 일단은 이정도만 알아두기.. -h : 사용자가 보기 편한 형태의 용량으로 출력 _Ex : 8.0K -h --max-depth=0 : 현재 디렉터리의 0 단계까지만의 디렉터리별 용량출력 // 0~[숫자] : 1이면 1단계, 2는 2단계, 3은 3단계 ... -s : 하위목록을 제외하고 자기자신의 총합계를 출력 1. du -h 라고 치면 현재 디렉터리의 디스크 사용량을 출력해주는것을 볼 수 있다. // 하위에 포함된 디렉터리들의 용량과 그로인한 자기자신의 총사용량을 출력 ​ ​ 2. du -h /home 이렇게 쓰면 /home 디렉터리의 사용량을 볼 수.. 2021. 10. 25.
[Linux] CentOS tree 명령어 사용하기 명령어 : tree [디렉토리 | 파일 트리형태로 출력하기] 오늘 살펴볼 명령어는 tree 이다. tree는 리눅스 설치하면 기본으로 내장되어있는 명령어는 아니고, centOs는 yum을 통하여 우분투는 apt-get을 이용하여 추가 설치 후 사용이 가능하다. 1 2 # tree bash: tree: 명령을 찾을 수 없습니다... cs tree 명령어를 사용하면 파일과 디렉토리를 트리형태로 볼 수 있어서 디렉토리의 구조를 한눈에 파악할 수 있다는 장점이 존재한다. 그럼 설치를 진행해보자 1 # yum -y install tree cs 기본 사용법 tree [OPTION] 디렉토리경로 예] 1 2 3 # tree -d https://tistory1.daumcdn.net/tistory/0/MobileWeb/.. 2021. 10. 22.
[Linux] cp 명령어 사용 및 옵션 정리 명령어 : cp [파일 및 디렉토리 복사] cp 명령어는 copy의 약자로 아시다시피 복사에 사용되는 명령어이다. 기존에 알아봤던 mc 유틸리티를 이용하여 사용자 편의성을 고려하여 쉽게 복사도 사용할 수 있지만... 그럼에도 불구하고 주위를 보면 cp 명령어 더 친숙하게 다가오는 사람이 더 많은 것 같다. 아무래도 명령어 하나로 한번에 처리할 수 있기 때문이 아닐까 생각한다. 기본 사용법에 대해서 알아보자 1 2 3 4 5 # cp https://tistory1.daumcdn.net/tistory/0/MobileWeb/file.txt /usr/local/textfile.txt 설명 : 현재 디렉토리에 있는 file.txt 파일을 /usr/local/경로에 textfile.txt 라는 이름으로 복사하겠다... 2021. 10. 22.
nohup 과 &(백그라운드) 명령어 사용법 리눅스를 사용하다 보면 프로그램을 백그라운드에서 세션과의 연결이 끊어져도 돌려야할 일이 많이 발생합니다. 그럴때 주로 사용하는 명령어가 바로 nohup 과 & 명령어 입니다. 오늘은 nohup 명령어와 & 명령어에 대해서 아주 쉽게 설명해 보려 합니다. 1. nohup 명령어란 무엇일까? nohup은 no hang up 의 약자 입니다. 해석 그대로 "끊지마!" 입니다. 내가 세션과 연결을 종료해도 지금 실행시킨 프로그램을 종료하지 마! 라는 것이죠. 즉, 로그아웃으로 세션과의 연결이 종료되더라도 nohup 으로 돌린 프로세스는 데몬 형태로 실행되게 되어 종료되지 않고 계속 실행되는 것 입니다. 2. nohup 어떻게 사용하지? 중단 없이 실행하고자 하는 프로그램 명령어 앞에 "nohup" 만 붙여주면 .. 2021. 10. 22.
인터럽트(Interrupt)란? 인터럽트(Interrupt)란 주변장치나 CPU가 자신에게 발생한 사건을 리눅스 커널에게 알리는 매커니즘이다. 인터럽트는 외부 인터럽트 또는 트랩으로 인해 발생한다. 외부 인터럽트는 현재 수행중인 태스크와는 상관없는 주변장치에서 발생된 비동기적인 하드웨어적인 사건을 의미한다. 트랩은 현재 수행중인 태스크와 관련있는 즉 동기적으로 발생하는 사건이다. 인터럽트가 발생하게 되면 인터럽트 발생 원인을 파악한 후 적절한 처리를 해주어야 하는데 이때 처리를 해주는 곳을 인터럽트 핸들러(Interrupt handler)라고 한다. 인터럽트와 인터럽트 핸들러는 IDT(Interrupt Descriptor Table) 또는 IVT(Interrupt Vector Table)라 불리는 테이블을 통해 연결 되어있다. 리눅스에.. 2021. 10. 17.
Linux - tee 명령어로 터미널 출력 내용을 파일로 저장하기 명령어 tee는 화면에 출력된 내용을 파일로 저장하는데 사용됩니다. 예를들어, 아래 명령어는 boot로 시작하는 파일들을 찾아줍니다. $ find -name "boot*" ./boot.img ./booting_eng.txt ./bootimg_tools ./bootimg_tools/boot_info 위 명령어에 | tee output.txt를 붙여주면 화면에 출력된 내용이 output.txt라는 파일로 저장이 됩니다. $ find -name "boot*" | tee output.txt ./boot.img ./booting_eng.txt ./bootimg_tools ./bootimg_tools/boot_info $ cat output.txt ./boot.img ./booting_eng.txt ./bootim.. 2021. 10. 17.
gcc 이란? gcc는 한마디로 C컴파일러라고 보면된다. C언어를 공부해본 사람들이라면 컴파일러가 컴퓨터가 읽을 수 있게 번역한다는 사실을 알고 있을 것이다. 보통 마이크로소프트사의 visual studio C++ 이란 컴파일러를 주로 사용할 것이다. 하지만 리눅스에서는 visual studio C++ 같이 윈도우에서 쓰이는 프로그램을 쓸 수가 없다. 리눅스용으로 대표적인 C컴파일러가 존재하는데 그게 바로 gcc이다. 우리는 일단 gcc를 설치하거나 나아가기 전에 vi 편집기로 간단하게 아래 내용처럼 저장하자. 일단 파일은 파일명.c 로 만들자. ex) vi clang.c 만들어서 ls로 확인해보면 clang.c 라는 파일이고 cat으로 확인해보니 위와같이 코딩한것을 볼 수 있다. c파일만들고 코딩까지 완료되었으면 인.. 2021. 8. 25.
Makefile 이란 ? gcc, g++과 makefile의 차이? 윈도우에서는 비쥬얼 스튜디오등을 사용하여 버튼을 눌러 컴파일하지만, 리눅스 환경에서 프로그램을 컴파일 할 때 make라는 프로그램을 사용한다. 1. makefile 이란? Shell에서 컴파일하는 방법중 하나이다. makefile이라는 파일에, 어떤 파일을 컴파일 하는지, 어떠한 방식으로 컴파일 할지 작성해놓는다. 그리고 make라는 명령어를 입력하면 makefile 이 들어있는 디렉토리에서 파일들의 종속관계를 파악하여 자동적으로 컴파일하게 된다. 즉, makefile를 사용하여 컴파일 하면 여러개의 파일을 컴파일할때, 자동화로 인해 시간을 절약하고, 프로그램의 종속 구조를 쉽게 파악할 수 있다. + 만약 프로그램을 일부 수정한다면, 그 부분에 대해서만 컴파일 하도록 도와주기 때문에 훨씬 효율적이다. 2.. 2021. 8. 25.
[Linux] 스크립트 파일 systemd service 등록하기 스크립트 systemctl 등록 많은 수의 Linux기반 배포판들은 서비스 데몬을 관리하는데 systemd을 사용하는 것 같다. 이전 Sysvinit를 이용한 서비스관리보다 편리한 점이 있기 때문인 것 같은데 자세한 점은 필요한 시점에서 검색해보면 될 것 같다. Systemd을 이용해서 서비스를 등록하는 방법은 몇단계만 거치면 어려울 것이 없다. 다만 서비스를 어느 단계에서 실행되어야할지를 판단해야한다. 즉, 네트워크가 연결된 시점에서 할지 multi-user환경에서 실행할지(대부분의 유저 서비스는 여기에 속할 것이다.) 아니면 특정사항에서 실행할지 판단해야한다. 실행 단계를 판단했다는 것은 실행할 무언가(프로그램 또는 스크립트)가 있다는 뜻일테니 등록절차를 보자. 내경우 Raspberry pi에서 bl.. 2021. 6. 30.
'ps aux'와 'ps -ef'의 차이 ps -e와 ps ax를 모든 프로세스를 보여준다는 의미에서 같다. ps -f와 ps u는 보여주는 필드를 정하는데 아래와 같은 소소한 차이가 있다. ps -f 프로세스의 식별 정보를 더 잘 보여준다. PPID : 부모 PID ps u 프로세스의 상태 정보를 더 잘 보여준다. %CPU : CPU 사용율 %MEM : 메모리 사용율 VSZ : 가상 메모리 크기 RSS : 실제 메모리 크기 STAT : 프로세스 상태 부모 프로세스와 자식 프로세스의 관계를 보려면 ps -ef가 프로세스 상태를 보는 용도로는 ps aux가 더 적당하다. 2021. 6. 11.
[학습] NFS와 CIFS 설명 NFS와 CIFS 일반적으로 NFS(Network File System)는 Linux/Unix 환경에서, CIFS는 Micsrosoft Windows 환경에서 사용한다. NFS는 1984년에 Sun Microsystems에서 개발한 분산 파일 시스템으로, 네트워크를 통하여 다른 호스트에 있는 파일을 공유해 사용할 수 있도록 한 것이다. NFS에는 여러 버전이 있는데, NFSv2부터 널리 사용되기 시작했고 현재 주류를 이루는 것은 NFSv3이다. 성능과 보안을 개선한 NFSv4가 2003년에 나왔으며, 2010년에는 클러스터 기반으로 확장할 수 있는 NFSv4.1이 발표되었다. NFS는 매우 오랜 역사를 지니고 있을 뿐 아니라, 현재까지도 지속적으로 발전하고 있는 분산 파일 시스템이라고 할 수 있겠다. C.. 2021. 5. 23.
[학습] Ubuntu 20.04 NFS Server 설치/설정 MS 윈도우를 게임용으로 밖엔 쓰지 않아서 잘은 모르겠지만, 그외 모든 OS(리눅스, Android, iOS, macOS)에서 NFS 지원엔 별 문제가 없다. Android/iOS 에선 Nfs 자체 지원이 되지는 않지만, 적어도 nPlayer 라는 강력한 도구가 있어 내 사용 목적엔 아무런 제한이 없다. (MS 윈도우를 주로 쓰는 환경이라면 NFS 보다는 Samba 가 더 옳은 선택이라 생각한다.) 또, 기타 사용을 위해선 NextCloud 등을 설치하면 되므로 이 문제도 슬기롭게(?) 헤쳐갈 수 있다. 따라서, 내 선택은 NFS(Network File System) 다. 삼바와 비교했을 때 동일한 하드웨어 상황에서 월등한 성능(속도)을 볼 수 있었다. 이렇게들 쓰는 지는 알 수가 없으나, 한 서버에 삼.. 2021. 5. 23.
[학습] CentOS 리눅스에서 NAS 마운트(Mount)하기 [무료웹툰] 이 시국에 개인교습 쌤, 엄마한테는 비밀이예요 이 시국에 집콕 과외가 필수! 유찬은 과외 학생의 저돌적 접근이 아찔한데... 지금여기, 은밀달콤한 개인교습, 시작합니다! iryan.kr 1. NFS 패키지 다운로드 NAS를 마운트하기 위한 패키지를 설치합니다. #yum install -y nfs-utils 2. NAS 마운트하기 패키지를 설치하였으니 이제 본격적으로 마운트해보도록 하겠습니다. 먼저 마운트 이전의 상태를 보여드리겠습니다. 아직은 NAS 마운트 전입니다. 이제 NAS를 마운트하도록 하겠습니다. NAS를 마운트하기위해선 NAS의 폴더 경로를 잘 알고 계셔야 합니다. 저는 이전 포스팅에서 가상화 NAS를 구현하여 그 NAS를 이용하도록 하겠습니다. #mount -t nfs [NAS .. 2021. 5. 23.
Ubuntu OpenJDK 설치 및 삭제 방법 https://srzero.tistory.com/entry/Ubuntu-OpenJDK-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AD%EC%A0%9C-%EB%B0%A9%EB%B2%95 2021. 5. 18.
[Ubuntu] OpenJDK 8 설치 1. 개요 Ubuntu 18.04.3 LTS에서 테스트 하였습니다. 2. apt로 openjdk-8-jdk 설치 sudo apt install openjdk-8-jdk 3. 설치 확인 java -version https://webgori.github.io/linux/2020/01/18/Ubuntu-OpenJDK-8-%EC%84%A4%EC%B9%98.html 2021. 5. 18.
mkdir 하위폴더 생성 mkdir -p 전체 폴더명 2021. 5. 17.
nohup 사용법 nohup npm run start & ps -ef | grep node ubuntu 189142 189141 0 16:05 pts/0 00:00:00 node /home/ubuntu/workspace/frontend-app-library-authoring/node_modules/.bin/fedx-scripts webpack-dev-server --progress ubuntu 189150 189149 2 16:05 pts/0 00:00:20 node /home/ubuntu/workspace/frontend-app-library-authoring/node_modules/.bin/webpack-dev-server --progress --config=/home/ubuntu/workspace/frontend-a.. 2021. 5. 17.
OPENSSL 이란? blog.naver.com/ysw1130/120211395594 2021. 5. 13.
certbot를 활용한 https 인증서 발급 및 cron 설정 AWS ACM 사용해도 되긴 하는데 솔직히 AWS console 세팅이 더 복잡하고 손이 많이 갑니다. greenlock-express은 불안정하고, 무엇보다 프로젝트가 관리가 안되고 있습니다. 다음과 같이 구성할 예정입니다. 1. certbot 설치 실무적인 cerbot 설치 과정은 아래 사이트에서 편하게 확인할 수 있다. certbot.eff.org/lets-encrypt/snap-nginx Certbot - Snap Nginx a project of the Electronic Frontier Foundation certbot instructions To use Certbot, you'll need... comfort with the command line command line ...and an H.. 2021. 5. 3.
hosts 파일 도메인 설정. withham.co.kr인 도메인으로 내 서버에 접근하고 싶다. 내 서버는 public IP 주소(예를 들어, 111.1.1.1 이라 하자.)는 있지만 withham.co.kr 도메인을 DNS에 등록을 하지는 않은 상태이다. 이 때, 로컬에서 hosts 파일을 설정해주면 해당 도메인으로 내 서버에 접근이 가능하다. (단, 설정한 내 로컬 PC에서만 해당 도메인으로 접근 가능) 도메인으로 웹 페이지 접근시 먼저 hosts 파일을 체크한 다음 해당 도메인이 없으면 DNS에서 IP 주소를 가져온다. (도메인 찾는 순서 : hosts > DNS(hosts에 등록되지 않은 경우) 즉, hosts 파일에 withham.co.kr 도메인의 IP는 111.1.1.1 이라고 명시해주면 해당 도메인으로 서버 접근이 가능하.. 2021. 4. 28.
grep -rn 명령어 ## sudo grep -rn "mooc.kr" . 2021. 3. 12.
unable to resolve host 에러 해결 방법 ubuntu에서 sudo를 사용할 때마다 다음과 같은 문구가 뜨는 경우가 있다. 명령을 실행하는 데에 문제가 되는 것 같지는 않지만 매우 거슬리므로 해결해보도록 하자. hostname hostname은 네트워크에 연결된 장치에 부여되는 고유한 이름이다. ubuntu desktop 버전을 설치할 때 user를 생성하다보면 계정명과 pc이름처럼 이상한 것이 결합되어 길게 hostname이 붙곤 한다. 이 hostname은 terminal의 명령행에 계속 노출되므로 길면 거슬리기 마련이라, 필자는 보통 dev로 변경하는 편이다. /etc/hostname과 /etc/hosts ubuntu의 hostname을 변경하려면 총 두 개의 파일을 수정해야한다. 결론부터 말하자면 unable to resolve host .. 2021. 2. 14.
반응형