CentOS7에 oh_my_zsh(zsh) 설치하기
Before we go further
하나
본인이 하나의 계정에만 설정을 적용할 것인가 아니면 모든 계정에게 설정을 적용할 것인지 두가지를 알고 계서야 합니다.(서로 설정하는 파일이 다릅니다.)
하나의 계정에만 설정 적용하기
~/.zshrc //zsh
~/.bashrc // bash
모든 계정에게 설정 적용
/etc/zshrc // zsh
/etc/bashrc // bash
위의 내용을 유의하시고 밑의 내용을 따라하실 때 본인의 상황에 맞춰서 수정해 주시길 바랍니다.
둘
bash
CentOS7에서 bash 는 ~/.bashrc, ~/.bash_profile, /etc/bashrc 파일을 가지고 있습니다.
~/.bashrc(개인설정파일) 은 /etc/bashrc(전역설정파일) 을
~/.bash_profile 은 ~/.bashrc 을 부름으로 서로서로 꼬리를 물고 있습니다.
zsh
zsh는 ~/.zshrc, /etc/zshrc, $ZSH_CUSTOM 파일을 가지고 있습니다.
$ZSH_CUSTOM의 경로는 .oh-my-zsh 설치 시 보통 /usr/local/.oh-my-zsh/custom 에 있습니다.(환경변수가 존재하지 않는다면 설정해 주시면 됩니다.)
셋
하나의 파일을 수정한 후 변경사항이 먹히지 않은 듯 한다면 source ~/.zshrc/, source /etc/zshrc 을 실행해 봅니다.
아래의 모든 명령어는 root 계정으로 이루어졌습니다.
zsh와 git 설치
yum update 실행 후 진행합니다.
yum update -y아래 코드 실행
yum -y install git zsh설치 확인하기
zshOh_my_zsh 설치
설치위치 지정 설치(/usr/local/.oh-my-zsh)
export ZSH="/usr/local/.oh-my-zsh"; sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"위와 같이 설치해 주는 이유는 위치를 따로 지정하지 않았을 시 기본적으로 사용자 home 디렉토리 아래에 설치됩니다. root계정으로 설치시 /root/.oh-my-zsh에 설치가 되는데 일반 계정 사용자는 oh-my-zsh 사용 시 /root/.oh-my-zsh를 참조하게 되는데 일반 계정은 /root/에 접근할 수 없는 문제가 생깁니다.
curl 사용 기본 설치
sh -c "$(curl -fsSL https://raw.githubusercontent.
com/robbyrussell/oh-my-zsh/master/tools/install.sh)"기본 설치 경로 변경으로 설치 시
export ZSH_CUSTOM=$ZSH/custom~/.zshrc에서 위의 코드를 붙여넣어줍니다.
vim ~/.zshrcenv | grep ZSH_CUSTOM 명령어를 실행시켜 잘 적용되었는지 확인합니다.
$ env | grep ZSH_CUSTOM
ZSH_CUSTOM=/usr/local/.oh-my-zsh/custom위와 같이 뜨지 않고 아무것도 뜨지 않으면 적용이 되지 않았으니 환경변수를 확인해 주셔야 합니다.
테마 설정
테마는 powerleve10k 를 사용하겠습니다.
처음 zsh를 설치할 때 git 역시 같이 설치했기에 git 명령어를 사용할 수 있습니다.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k설치가 모두 되었다면 ```.zshrc`` 파일을 수정합니다.
vim ~/.zshrcZSH_THEME을 "powerlevel10k/powerlevel10k"으로 변경합니다.
ZSH_THEME="powerlevel10k/powerlevel10k"
reboot 으로 서버를 재시작 시켜 줍니다.
그 후 powerlevel10k 기본 설정을 따라하시면 됩니다.
zsh 버전이 낮다고 뜰 때
https://gist.github.com/Semo/378fba2516a31f2608f0ad0161a73ab7
root가 아닌 다른 사용자로 전환할 때
zsh 경로 설정
현재 사용자의 zsh의 경로가 잘못 잡혀 있어 zsh 명령어가 먹히지 않을 시
vim /etc/shells위에 설정해 둔 zsh 경로를 추가합니다. i.g)/usr/local/bin/zsh
그 후 아래의 명령어를 실행합니다.
chsh -s /usr/local/bin/zsh -USER적용이 잘 되어 있는지 확인해 줍니다.
which zshroot의 zsh 설정을 그대로 적용시키고 싶다면(theme)
cp 명령으로 ~/.zshrc를 /home/user/.zshrc로 복사해 줍니다.
root 계정으로 .zshrc가 존재하는 아래의 작업을 실행합니다.
cp .zshrc /home/USER/.zshrc실행 예시
cp .zshrc /home/eisen/.zshrc USER에 계정명을 작성해 주시면 됩니다.
powerlevel10k 재설정 명령어
powerlevel10k 설정이 마음에 들지 않을 시 아래의 명령어를 실행합니다.
p10k configurezsh에 alias 설정하기
~/.zshrc 에 각각 설정해도 되지만 /etc/zshrc를 수정하면 따로따로 설정하지 않아도 모든 사용자가 동일한 alias를 사용할 수 있습니다.
vim /etc/zshrc본인이 원하는 alias를 추가해 보시기 바랍니다.
alias c='clear' alias b='cd ..' alias bb='cd ../..' alias bbb='cd ../../..' alias bbbb='cd ../../../..' alias rma='rm -rf'alias =수정 이후 source /etc/zshrc로 적용시키던, reboot으로 재부팅 하시고 사용하시면 됩니다.
alias 명령으로 현재 적용되고 있는 alias들을 볼 수 있습니다.
Bash 설정 zsh에 적용
- 두가지 방법이 존재합니다.
source ~~~을 사용하여zsh설정에zsh실행 시bash를 실행 명령문 삽입bash의 내용을zsh에 복사 붙여넣기
- 개인적으로 2번째 방법을 추천드립니다.(실행에 문제는 없지만 오류가 뜹니다)
bash로 모든 계정 공통으로 설정하기
/etc/bashrc 에 설정
~/.bashrc가 실행될 때 전역 설정인 /etc/bashrc을 실행, ~/.bash_profile이 ~/.bashrc을 실행시킵니다.
하나의 계정에만 적용
~/.zshrc 파일 수정
$ vim ~/.zshrcsource ~/.bash_profilesource ~/.bash_profile을 추가해 주시면 됩니다.
모든 계정에 공통적으로 적용
- 두가지 방법이 존재하며, 공식적으로는 2번 방법을 추천하고 있습니다.
1./etc/zshrc 파일 수정
$ vim /etc/zshrcsource ~/.bash_profile공통으로 적용시키는 것 역시 source ~/.bash_profile 코드를 작성 파일 /etc/zshrc 에 추가해 주시면 됩니다.
2./usr/local/.oh-my-zsh/custom 에서 anyname.zsh 파일을 생성하시면 됩니다.
위의 과정을 정확히 따라오셨다면 echo $ZSH_CUSTOM 명령을 입력했을 시 /usr/local/.oh-my-zsh/custom 이라는 결과가 나오셨을 겁니다.
$ echo $ZSH_CUSTOM/usr/local/.oh-my-zsh/custom혹은 개인적으로 수정한 경로가 있다면 그 경로가 뜰 것입니다. 그 경로로 이동하여 .zsh 파일을 생성하여 ~/.bash_profile 에 적용된 alias 나 PATH 들을 붙여넣으시면 됩니다.
첫번째 방법 적용 시의 오류(실행에는 아무런 문제가 없습니다... 다만 찜찜할 뿐.)
source ~/.bash_profile혹은
if [ -f ~/.bash_profile ]; then . ~/.bash_profilefi을 사용하여 ~/.zshrc 파일에 추가하게 된다면 아래와 같은 로그가 뜹니다.
실행환경이 zsh 이기에 bash 환경에서만 작동하는 명령어가 실행이 안됨으로 오류 발생.
/etc/bashrc:37: command not found: shopt/etc/bashrc:fc:38: no such event: 1/etc/bashrc:40: command not found: shopt/etc/bashrc:51: command not found: shoptbash: shopt: 명령을 찾을 수 없습니다.../etc/bashrc:fc:38: no such event: 1bash: shopt: 명령을 찾을 수 없습니다...bash: shopt: 명령을 찾을 수 없습니다...References
https://nitocin.tistory.com/entry/ohmyzsh-%EC%98%A4%ED%94%84%EB%9D%BC%EC%9D%B8-%EC%84%A4%EC%B9%98
'OS > Linux' 카테고리의 다른 글
| [Ubuntu] Ubuntu(v21.04)에서 hotspot 켜기 (0) | 2021.10.12 |
|---|---|
| [Linux]System Monitoring을 위한 Linux 명령어 (1) | 2021.09.17 |
| [Ubuntu] ls 시 색상반전(글자배경색) 해결(colorls) (0) | 2021.08.27 |
| [Linux] centOS에서 eclipse 설치하기 (2) | 2021.08.17 |
| [Linux/unix] 역사 (0) | 2021.08.13 |