Back-End 34

[Linux] bash 쉘 스크립트 변수 사용 시 주의사항(중괄호)

bash 쉘 스크립트 변수 사용 시 주의사항(중괄호) 변수명을 중괄호({,})로 묶는 습관 들이기 왜? 변수를 활용할 때, $를 변수명 앞에 두어서 변수임을 알 수 있다. 이때, 변수명을 중괄호({,})로 묶어도 정상 동작을 하는데, 만약 중괄호로 묶지 않는다면 아래와 같은 비정상 동작이 발생할 수 있다. #!bin/bash var="def" echo "abc$varghi" 원하는 출력 결과 abcdefghi 실제 출력 abc 이러한 동작이 발생하는 이유는, 중괄호로 묶지 않았기 때문에 var 라는 변수를 쉘 입장에서는 varghi 라는 변수로 인식하게 되었고, varghi 라는 변수는 선언되어있지 않기 때문에 공백으로 치환되어버린 것이다. 해결 방법은? #!bin/bash var="def" echo "..

Back-End/Linux 2021.07.05

[Linux] 리눅스 계정 관련 명령어(users, id, whoami, logname, who am i)

리눅스 계정 관련 명령어 users 호스트에 현재 로그인한(접속한) 유저들의 이름을 보여준다. id 옵션을 주지 않는다면, 현재 로그인한 유저에 대한 정보들을 보여준다. whoami 현재 로그인한 사용자의 이름을 보여준다. (effective한, 실질적으로 상호작용하는 유저 이름을 출력) id -un 명령어와 동일하다. logname 최초로 로그인한 계정의 이름을 출력해준다. 아래 who am i 와 비슷하다. who am i 최초로 로그인한 계정을 출력해준다. logname 은 계정의 이름만 출력해주는 반면에, whoami 는 [계정 이름, 터미널 정보, 로그인한 날짜와 정보] 를 같이 보여준다. who mom likes 로 써도 된다(!) 사실은 who 라는 명령어에 am i 라는 인자가 붙은 형태이..

Back-End/Linux 2021.07.01

[Linux] 쉘 스크립트 무한 루프 반복문 돌리기 (for, while)

bash 쉘 스크립트 무한 루프 반복문 돌리기 (for, while) 무한 루프 기본 원리 기본적으로, 무한루프는 반복문 안의 조건을 항상 참(true)으로 설정해서 무한정 반복문을 돌게 한다. for 반복문 예시 #!/usr/bin/env bash for (( ; ; )) # 항상 참 do echo "PRESS [Ctrl+c] TO STOP" sleep 1 done while 반복문 예시 #!/usr/bin/env bash while true : # 항상 참, true 는 생략해도 된다. do echo "PRESS [Ctrl+c] TO STOP" sleep 1 done 주의 사항 무한 루프 내부에 sleep과 같은 지연 시간을 주지 않는다면 CPU 사용량이 엄청나게 치솟을 가능성이 있고, break와 ..

Back-End/Linux 2021.06.27

[Linux] Bash 쉘 스크립트 정수형 변수 증가/감소 하는 법

bash 쉘 스크립트 정수형 변수 증가/감소시키기 (++ 연산하기) bash 쉘 스크립트 변수 선언 쉘 스크립트의 경우, 특별한 변수 타입을 지정해주지 않아도 된다. 나중에 기본 문법을 정리할 때 다시 설명하겠지만 선언하는 방법은 아래와 같다. 변수명=값 (o)올바른 예시 encoding="UTF-8" -> encoding 이라는 변수에 UTF-8 이라는 값이 지정됨 여기서 _주의_해야 할 사항은 다른 프로그래밍 언어처럼 간격 조절을 위해 _공백_을 사이에 두면 변수 선언이 정상적으로 되지 않는다. (x) 틀린 예시, 공백이 있으면 안 됨 encoding = "UTF-8" 이런 식으로 선언하면 안 된다. 정수형 변수 증가/감소시키는 방법 기본적인 정수 계산의 형태는 아래와 같다. $((계산식)) 이중 괄..

Back-End/Linux 2021.06.25

[Linux] screen 명령어 사용법(터미널 가상화?)

screen 명령어 사용법 screen 명령어란? 해당 서비스 또는 프로그램을 백그라운드로 실행시키고자 할 때 사용한다. (ssh 접속을 끊어도 프로그램을 구동시키고 싶을 때 사용) 실제 기능은 virtual terminal emulation, 즉, 터미널을 가상화해서 다중 사용할 수 있게 만들어주는 명령어. nohup이나 & 를 이용한 백그라운드 실행으로는 로그나 현재 상태 등을 확인할 수 없기 때문에 이를 해결할 수 있는 명령어이다. 터미널을 가상화해서 띄워놓기 때문에, 서버가 죽지 않는 한 어디서든, 누구든 작업을 이어서 할 수 있는 장점이 있다. screen 명령어 설치 방법 기본적으로 설치되어있는 경우도 있지만, 설치되어 있지 않다면 배포판에 따라 아래와 같은 명령어로 설치하면 된다. RedHa..

Back-End/Linux 2021.06.13

[Linux] ls 명령어 사용법

ls 명령어 사용법 ls 명령어란? File들(기본적으로 현재 디렉토리)에 대한 정보를 나열한다. 따로 옵션이 없는 경우 알파벳 순으로 정렬한다. ls 명령어 사용법 ls [OPTION]... [FILE]... FILE 에 대한 정보를 OPTION 에 따라 나열한다. ls 명령어 옵션 ls 명령어에도 수많은 옵션이 있다. 그 중 중요하다고 생각하는 몇 가지만 추려봤다. ls [OPTION]... [FILE]... -a, --all : . 으로 시작되는 파일들(숨은 파일)까지 전부 출력 -l : 구체적인 파일 목록 출력 -h, --human-readable : -l 과 함께 쓰이며, 파일 사이즈를 읽기 쉽게 보여준다. (e.g., 1K 234M 2G) -r, --reverse : 정렬 순서를 반대로(오름차..

Back-End/Linux 2021.06.05

[Make] Makefile 에서 if else 문 사용하기

Makefile 에서 if else 문 사용하기 Makefile 조건문 make 에서 조건문은 단순하고 은근히 까다롭다. 사용할 때 주의해서 사용하자. Makefile 조건문의 지시어 ifeq : 조건을 시작하고 조건을 지정한다. 콤마로 분리되고 괄호로 둘러싸인 두 개의 매개변수를 가진다. else : 이전 조건이 실패하였다면 수행되도록 한다. else 지시어는 사용하지 않아도 된다. endif : 조건을 종료한다. 모든 조건은 반드시 endif로 종료해야 한다. Makefile 조건문 예시 libs_for_gcc = -lgnu normal_libs = foo: $(objects) ifeq ($(CC),gcc) $(CC) -o foo $(objects) $(libs_for_gcc) else $(CC) -..

Back-End/Linux 2021.06.02

[Linux] 공유 메모리 함수, shmget(), shmat(), shmctl(), shmdt()

특이한 문법을 쓴 것도 아닌데 티스토리가 마크다운을 제대로 못보여주는 것 같다.. GitHub에서 좀 더 깔끔하게 볼 수 있다. 공유 메모리 함수 (Shared Memory Functions) 공유 메모리(Shared Memory)란? 공유 메모리(Shared memory)는 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리이다. 과다한 복사를 피하거나 해당 프로그램 간 통신을 위해 고안되었다. 환경에 따라 프로그램은 하나의 프로세서에서나 여러 개의 프로세서에서 실행할 수 있다. (예를 들어 여러 개의 스레드 간에) 하나의 프로그램 안에서 통신을 위해 메모리를 사용하는 일은 일반적으로 공유 메모리로 부르지 않는다. wikipedia 멀티 프로세스 환경에서, 프로세스 간 통신(Inter-Pro..

Back-End/Linux 2021.05.26

[Linux] tar 명령어 사용법

1. tar 명령어란? tar 명령어는 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용한다. 여러 개의 파일을 묶을 때, 윈도우나 맥에서 보통 압축을 하기 때문에 tar 도 '압축한다' 라고 말하는 경우가 많은데, 정확하게 말하면 tar 명령어 자체는 '압축' 을 하지 않고 여러 개의 파일을 하나로 묶는 동작만 수행한다. 그렇지만 tar 명령어를 이용해서 gzip이나 bzip2 와 같은 압축 방식을 이용하여 파일들을 하나로 묶을 수 있는데, 그래서 tar 명령어는 '압축한다' 라고 말해도 틀린 말은 아니다. 2. tar 명령어 사용법 tar [OPTION...] [FILE]... tar -cf archive.tar foo bar # foo 와 bar 파일을 묶어서 archive.tar 파일 생성 ta..

Back-End/Linux 2021.05.01

[Linux] grep 명령어 사용법

1. grep 명령어란? 리눅스를 사용하면서 ls , cd 와 같이 가장 많이 사용하는 명령어 중 하나. 텍스트 검색 기능을 가진 명령어로서, 어떤 파일에서 특정 문자열을 찾을 때 사용한다. 2. grep 명령어 사용법 grep [OPTION...] PATTERNS [FILE...] 각각의 FILE 에서 PATTERNS 와 일치하는 내용을 포함하는 Line을 반환한다. 3. grep 명령어 옵션 grep 명령어에는 수많은 옵션이 있지만 그중 내가 많이 사용했던 옵션들 위주로 적었다. grep [OPTIONS] PATTERN [FILE...] -i, --ignore-case : PATTERN 의 대소문자를 구분하지 않음 -v, --invert-match : PATTERN 과 일치하지 않는 라인만 보여줌 -..

Back-End/Linux 2021.02.03
728x90
반응형