Tag: shell

sed 매칭한 내용 지우기, 그리고 다른 구분자(Delimiter) 사용

이걸 해결하느라 한시간은 헤맨 듯 하다. 그래도, 이제는 구글을 뒤지면 답을 얻을 수 있다. (엄밀하게 말해 ‘구글’을 뒤지는 일은 없지만..) sed 에 대해 간단히 정리하면, 이런 문법을 사용해야 한다. 위 구문은, file 을 읽어서, Regular Expressions 를 통해 ‘regex’ 를 찾고, ‘replacement’ 로 바꾸라는 뜻이 된다. 여기서 / 를 Delimiter 라고 부르는데, 꼭 / 일

Bash/Zsh : 변수 사용, 기초 개념.

그간 대충 사용해오고 있었으나, 개념을 명확히 설명해준 글을 발견하여 기록해둔다. Opensource.com : Using variables in Bash 몇가지만 정리해보자면.. declare 의 의미/역할 예전부터 궁금했었다. declare 가 뭔지.어떤 경우 이게 써 있을 때도 있고, 아닐 때도 있었는데..오늘, 확실히 알게 됐다. 위 글에 언급된 바로는, 원래는 변수 선언에 필요한 문법이었지만, 굳이 쓰지 않아도 그냥 인식된다고 한다. 다만, 이게

Bash/Zsh: 첫번째/마지막 인수 제외 후 처리.

제목을 좀 애매하게 달았지만, 이건 Shell 의 String Operations(The Linux Command Line p402)에 대한 내용이다. 예를 들어, 이런 문장에서, 5번째 글자부터 출력하고 싶다면? 문법은 이렇다. 위 상황에 적용해보면 다음과 같다. length 를 넣어보자면, 5부터 시작해서, 3글자만큼만 출력이 이뤄졌다. 만약, 5부터 시작해서, 끝에서 4번째까지만 뽑아내고 싶다면???상황이 좀 복잡해진다. 먼저, 총 글자수를 알아내야 한다. 이 경우, #

zsh / oh-my-zsh, Theme 설정이 안되는데??

잠깐 또, 이번엔 숟가락질(삽질/꽃삽질/숟가락질?)을 했다.oh-my-zsh 의 테마를 바꿔보려고 했는데, 그리하여 시키는대로 했는데, 아무리해도 바뀌질 않는다. 괜히 여기 저기 뒤지다가, 엉뚱한 글을 발견하고 그대로 해봤으나, 결과는 마찬가지였다. 뭐가 문젤까… 잠시 고민하다가, .zshrc 아래에, 내가 설정해놓은 프롬프트가 있음을 알아차렸다.아.. 이거였구나. 프롬프트가 강제로 설정되어 있기 때문에 Theme 설정이 이 부분을 건드리지 못했다. 바꾸고 나니, 멋지게 돌아가준다.oh my zsh

Process Substitution(Subshell)

이 전 글에선 Here Decuments 에 관한 내용을 정리했다.여기선 비슷한 개념의 Redirection 인, Process Substitution 에 대해 적어본다.지난 글과 마찬가지로, 간단한 정리는 아래, ‘내 나름대로 정리’를 참고하라. 내가 정리한 모든 내용에 대해서, 다음 글에서 아주 간단하고 명료한 설명을 볼 수 있다. Stack Exchange : pipe and stdin redirection to cat 문자열 abcd 를 cat 으로

Here Documents / Inline Input Redirection AND Here String.

Python 에서도 이 문구를 봤고, Bash 에서도 그랬다.그러나, 정작 이해를 하진 못했었다.책의 설명도 부족했고, 혼자서, 읽기만해서 이해하기(讀解)엔 어려움이 있었다. 그걸, 오늘 드디어 이 난관을 극복했다. 시작점은 mp3/flac 의 tag 을 CLI 로 처리하려는 의도였었는데, 하나씩 걸려넘어지다보니 여기에까지 이르게 되었다.이 글을 시작으로, 그 돌뿌리 들을 걷어내는 작업을 기록할 예정이다. Here Document. 사실, 단어 뜻 그대로다. 이

bash/zsh 호환 문제: 스크립트 작성 시 주의점

bash 로 작성한 스크립트를 zsh 로 돌리려고 하니 문제가 생겼다.사실 이게 우분투/리눅스에선 큰 문제가 되지 않는다. 대부분 배포판엔 bash 가 설치되어 있으니, hashbang 만 정확하게 명시해주면 login shell 이 zsh 라도, 스크립트는 알아서 bash (또는 hashbang 에서 지정한 방식)로 돌아갈테니, 큰 문제가 되진 않는다. 사실 이 문제의 발단은 macOS bash 였다. macOS 는, 모종의 이유(?)로

shell: 변수와 명령을 한줄에? 아울러 set, env, export 까지.

이 글이 정리가 잘 될 지도 의문이고, 제목부터 뭐라 정해야할 지도 애매하다.발단은 IFS 에서부터 비롯됐다. IFS 는 Shell Variable 로, 특수한 역할을 한다.여기서, Shell Variable 과 Environment Variable 을 구분해야 한다. 셸 변수는 셸(bash, zsh 등등)에 의해 생성/관리되는 변수이고,환경 변수는 그 외 모든 변수이다. Bash Shell Variables 는 Man Page 의 Parameters 항목에서 찾을 수

Shell: IFS / Array 사용. 한 줄에?

셸 스크립트에 보면, 환경변수와 명령을 한 줄로 넣을 때가 종종 있다. 두 줄로 나누는 것과 차이가 있나? 궁금했었는데, 내 인생에서 한 획을 그어준 리눅스 책, ‘The Linux command line’ 에 그 답이 있었다. (위 예도 그 책에서 가져왔다.) The shell allows one or more variable assignments to take place immediately before a command. These assignments

zsh, 실행 PATH 추가.

tldr; 전역 실행경로를 줄 때는 .zprofile 을 사용하라! 언젠가 문득 들어보기만 했던 zsh 를, 며칠 전 아래 글을 우연히 보고 설치를 해봤다. What is ZSH, and Why Should You Use It Instead of Bash? 첫 느낌은..‘괜한 짓을 했구나..’사용하는데 별 지장은 없지만, 그래도 좀 공부가 필요해 보였기 때문이다.여러 새로운 기능들이 꽤 있어서, 그냥 대충 쓰기엔 조금은