[태그:] 리눅스
리눅스 관련 글입니다.
-
vi 필수 사용법 – vi 쉽게 배우기
vi 는 무엇인가? vi는 1970년대에 개발되어 사용하기 시작한 Unix 계열 운영체제에 기본 유틸리티로 포함된 오픈소스 문서편집기다. 문서편집기라고 하지만 자체적인 문서파일의 포맷은 없고 그냥 text (ascii) 편집기일 뿐이다. 즉 Windows에서의 notepad 역할을 Unix와 Linux에서 수행하는 프로그램이 바로 vi다. vi 라는 명칭은 요즘의 GUI 개념과 비교하면 전혀 어울리지 않는 "visual editor"에서 따온 것이라고 한다. 요즘의 Linux에서는 vi와 호환되는 vim 이라는 문서편집기가 설치되 …
-
워드프레스 블로그 방문자 분석도구 만들기 (Apache access log 분석)
이 블로그는 오라클 클라우드에서 제공하는 평생 무료 서비스에 구축하여 운영중이다. 우분투 리눅스 가상머신 2대를 생성하여 하나의 가상서버에는 아파치 웹서버와 PHP를 설치하였고 다른 하나의 가상머신에 MariaDB DBMS를 설치하였다. 그리고 웹 어플리케이션은 워드프레스(Wordpress)를 설치하여 블로그를 구성하였다. www가 웹서버이고 mariadb가 DB서버다. 그리고 ap-svr-01 서버가 바로 오늘의 주제인 워드프레스 블로그의 방문자 분석, 즉 Apache 웹서버의 access log를 분석하고 DB에 업로드하는 웹 …
-
[Apache] 악성 봇과 크롤러 차단하기 (.htaccess)
블로그와 같은 웹서비스를 구축하고 운영하다 보면 광고댓글, 악성댓글과 싸우게 된다. 하지만 이 싸움에서 이기고 나니 다시금 악성 봇과 웹 크롤러들과 싸우는 2차 대전이 벌어졌다. 하지만 이젠 그 싸움이 그다지 어렵지 않다. 광고댓글과 악성댓글을 작성하는 IP를 .htaccess 파일에서 차단하듯 새로운 룰을 적용하여 차단하면 된다. 다만 악성봇과 웹크롤러들은 IP로 차단하기는 어렵다. Access.log를 분석해 보면 User-Agent에 봇이나 웹 크롤러의 정보가 보이는데 광고댓글이나 악성댓글이 대부분 한두개의 IP에서 들어와 …
-
VSCode와 Linux의 Git 연동하기
VSCode(Visual Studio Code)는 Microsoft에서 개발하여 공개하고 있는 소프트웨어 중 가장 찬사를 받는 소프트웨어 중 하나다. 그 이유는 개발자들이 코딩을 하는데 있어 매우 강력한기능들을 제공하기 때문이다. 비교적 무거운 소프트웨어 임에도 말이다. 그중에서도 리눅스 서버에 Remote SSH 플러그인을 통해 원격접속한 다음 서버의 소스코드를 쉽게 편집하고 저장할 수 있는 기능은 많은 개발자들이 편리하게 사용하고 있는 기능이다. 게다가 오늘 포스팅하는 "리눅스 서버에 설치된 Git"과 연동하여 Git의 버전관 …
-
리눅스 Shell 명령어 로그가 남지 않는 문제 해결하기
티스토리 블로그를 직접 구축한 리눅스의 워드프레스로 이사한 뒤 안정화와 백업 등 관리적인 부분에 신경이 집중되어 있어 인지하지 못했었는데 블로그를 구축하여 운영하고 있는 웹서버와 DB서버 2대에 이유는 알 수 없지만 Shell History가 남지 않고 있었다. Shell History 란? 쉘 히스토리(Shell History)란 리눅스와 유닉스 운영체제의 쉘 프롬프트 상에서 실행한 명령어를 로그 파일에 기록하여 사후에 어떤 명령어들을 사용했는지 알 수 있도록 지원해주는 기능을 의미한다. 보안관점에서는 책임추적성을 확보하기 위한 …
-
Rocky Linux 9.3에 MariaDB 설치하기
워드프레스와 같은 블로그 툴을 리눅스 서버에 설치하기 위해서는 APM, 즉 Apache, PHP, MariaDB (또는 MySql)를 설치해야 한다. 앞의 포스트에서 Apache 웹서버와 PHP의 설치에 대해 설명했다. 이제 MariaDB를 설치하는 과정을 기록하고자 한다. MariaDB Server 설치 다음과 같이 dnf 명령을 사용해 MariaDB 서버 패키지를 설치한다. sudo dnf install mariadb-server 설치될 패키지와 의존성(dependensy)이 있는 패키지 목록을 보여주고 설치할지 물어본다. y …
-
Rocky Linux에 APM 설치하기 – Apache + PHP 설치하기 (PHP-FPM)
RedHat 리눅스, CentOS 리눅스, Rocky 리눅스의 관계 RedHat에서 RedHat Enterprise Linux와 완벽하게 동일한 코드를 갖는 CentOS의 지원을 중단하고 CentOS Stream이라는 RedHat 공식 릴리즈 버전을 제작하기 전에 만들어 배포하는 업스트림 배포본으로 정책을 변경하면서 그에 반발해 다시금 RedHat과 100% 호환되는 완전하게 동일한 코드를 갖는 오픈소스 리눅스 프로젝트가 바로 Rocky Linux다. RedHat은 Fedora 버전의 리눅스를 오픈소스 개발자들과 함께 개발하며 약 …
-
[리눅스 기초] 쉘 스크립트의 사칙연산과 문자열 자르기
쉘 스크립트에서도 자바(Java)나 C언어처럼 문자열 자르기와 사칙연산을 비롯한 연산이 모두 가능하다. 아니 어쩌면 더 쉽게 느껴질 수도 있다. 하지만 이런 연산을 설명하기 전에 먼저 쉘 스크립트에서는 변수를 어떻게 사용하는지 이해해야 한다. 쉘 스크립트에서의 변수 일반적인 Java나 C와 같은 프로그래밍 언어에서는 변수의 선언과 타입(type)이 무척 중요하다. 선언하지 않고 사용하거나 잘못 참조하거나 잘못 연산하게 되면 엉뚱한 값이 출력되거나 컴파일 시 에러를 팍팍~뿌려댄다. 하지만 쉘스크립트에서 변수는 미리 선언하지 …
-
[리눅스 기초] 쉘 스크립트란 무엇인가?
예전의 포스트에서 운영체제의 쉘(shell)이 도대체 무엇인지에 대해 설명했다. [리눅스 기초] 쉘의 이해(Linux Shell) 쉘을 이해하는데 성공했다면 다음 단계는 쉘 스크립트(Shell Script)에 대해 공부하는 것이 일반적인 Unix/Linux 운영체제를 공부하는 순서라고 할 수 있다. 쉘 스크립트(Shell Script)란 ? 쉘 스크립트를 이해하려면 먼저 스크립트(Script)가 무엇인지 이해해야 한다. 스크립트란 일반적으로 인터프리트(interpret:대화) 방식으로 동작하는 컴파일하지 않는 프로그램이라고 이해하 …
-
[리눅스 기초] 쉘의 이해 (Linux Shell)
유닉스나 리눅스를 공부하는 많은 초심자들이 처음으로 부닥치는 어려움이 바로 Shell(쉘) 이다. 쉘의 이해가 부족하면 유닉스나 리눅스 서버에서 주로 업무를 하는 엔지니어가 되고자 하나 초심자 수준를 벗어날 수 없다. 그만큼 쉘을 정확하게 이해한다는 것은 유닉스나 리눅스의 운영체제를 얼마나 이해하고 있는지에 대한 수준을 가늠하는 하나의 지표로 써도 될만큼 중요하다. Linux / Unix 운영체제에서 쉘(Shell)의 정의 쉘(Shell)은 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램이다. 여기서 …