GitHub의 오픈 소스 파일에서 가장 좋아하는 것 중 하나는 .bashrc
설정과 같은 일상적인 작업을 다른 사람들이 어떻게 하는지 볼 수 있는 기능입니다. 및 기타 도트 파일. 처음 Linux를 접했을 때만큼 라이싱에 열광하지는 않지만, 더 예쁘고 빠르게, 따라서 더 좋게 만드는 구성 설정을 발견하면 여전히 매우 흥분됩니다.
나는 최근에 특히 Tom Hudson의 도트파일에서 그러한 것들을 몇 가지 발견했습니다. Tom은 스크립팅을 좋아하는 것 같으며 그 중 일부에는 자동으로 심볼릭 링크를 설정하고 Ubuntu 리포지토리 응용 프로그램 및 기타 프로그램을 설치하는 것이 포함됩니다. 이것은 나를 생각하게 했다. 현재 머신을 복제하도록 새 머신 설정을 자동화할 수 있습니까?
일반적으로 작동 방식을 확인하기 위해 물건을 분해하는 경향이 있는 사람이기 때문에 때때로 노트북을 엉망으로 만들었습니다. (보통 집에 없을 때 백업 하드 드라이브가 없을 때.) 드물지만 정말 불편한 상황에서 내 컴퓨터가 이전 자신의 껍질이 되는 경우 (ba-dum-ching) 꽤 좋을 것입니다. 내가 좋아하는 방식으로 Humpty Dumpty를 다시 결합하는 빠르고 간단한 방법이 있습니다.
디스크 이미지를 생성하고 나중에 복원하는 것과 달리 bash 스크립트 모음은 생성, 유지 관리 및 이동이 더 쉽습니다. 그들은 특별한 유틸리티가 필요하지 않으며 외부 운송 수단만 필요합니다. 그것은 전체 번트 케이크 대신 레시피를 전달하는 것과 같습니다. (음, 케이크.)
또한 이와 같은 기능은 가상 머신이나 VM, 또는 가상 사설 서버 또는 VPS를 설정할 때 매우 유용합니다. (이 두 가지 모두 지금 내가 이 글을 쓰는 시점에서 더 파괴적인 실험을 위해 더 관대한 목표가 될 것입니다. 살아보고 배우십시오!)
글쎄, 약간의 grepping과 인터넷 검색 및 파기 끝에 이제 이를 수행할 수 있는 스크립트 모음이 있습니다.
여기에서 설정 동영상을 참조하세요.
이것은 부팅 가능한 USB에서 로드된 새로운 Ubuntu 데스크탑에서 설정 스크립트의 테스트 실행의 끝 부분입니다. 3분 이내에 모든 프로그램과 설정이 복원되었습니다!
이 게시물에서는 bash 스크립트를 사용하여 Ubuntu Desktop(내 경우에는 Ubuntu LTS 18.04)을 실행하는 컴퓨터를 자동으로 설정하는 방법을 다룹니다. 일부 구문은 다를 수 있지만 다루는 정보의 대부분은 모든 Linux 데스크탑 버전에 적용할 수 있습니다. bash 스크립트는 도트 파일 연결, Ubuntu 및 다른 곳에서 소프트웨어 설치, 데스크탑 환경 설정의 세 가지 주요 영역을 다룹니다. 우리는 이러한 각 영역을 다루고 자신만의 스크립트를 작성할 수 있도록 중요한 부분을 살펴볼 것입니다.
도트파일
Dotfile은 대부분의 Linux 애호가가 구성 파일이라고 부르는 것입니다. 일반적으로 사용자의 홈 디렉토리에 있습니다(내장 변수 $HOME
를 사용하여 bash 스크립트에 표시됨). ) 모든 종류의 프로그램의 모양과 동작을 제어합니다. 파일 이름은 .
, Linux의 숨겨진 파일(따라서 "점" 파일)을 나타냅니다. 다음은 몇 가지 일반적인 도트 파일과 유용한 방법입니다.
.bashrc
.bashrc
file은 로그인이 아닌 대화형 쉘에 의해 시작 시 실행되는 명령 목록입니다. 대화형 대 비대화형 셸은 약간 혼란스러울 수 있지만 여기서 걱정할 필요는 없습니다. 우리의 목적을 위해 새 터미널을 열고 프롬프트를 보고 명령을 입력할 수 있을 때마다 .bashrc
처형되었습니다.
이 파일의 줄은 키 입력을 줄이는 별칭을 만들거나 유용한 정보가 포함된 유용한 프롬프트를 표시하여 작업 흐름을 개선하는 데 도움이 될 수 있습니다. Eddie와 같은 사용자가 만든 프로그램도 실행할 수 있습니다. 더 많은 아이디어를 보려면 내 .bashrc
를 참조하세요. GitHub의 파일입니다.
.vimrc
.vimrc
dotfile은 모든 텍스트 편집기의 챔피언인 Vim을 구성합니다. (아직 키보드 단축키를 사용하지 않았다면 Vim을 배울 수 있는 재미있는 게임을 적극 추천합니다.)
.vimrc
에서 , 디스플레이 설정, 색상 및 사용자 정의 키보드 단축키와 같은 편집기 기본 설정을 지정할 수 있습니다. 내 .vimrc
를 살펴볼 수 있습니다. GitHub에서.
.gitconfig
와 같이 사용하는 프로그램에 따라 다른 dotfile이 유용할 수 있습니다. 또는 .tmux.conf
. GitHub에서 dotfile을 탐색하는 것은 사용 가능하고 유용한 정보를 얻을 수 있는 좋은 방법입니다!
도트 파일 연결
스크립트를 사용하여 심볼릭 링크를 만들거나 모든 도트 파일에 대한 심볼릭 링크를 만들 수 있습니다. 이를 통해 모든 파일을 쉽게 관리할 수 있는 중앙 저장소에 보관할 수 있으며 프로그램에서 구성 파일을 찾을 것으로 예상하는 자리에 일종의 자리 표시자를 제공할 수 있습니다. 이것은 일반적으로 항상 그런 것은 아니지만 사용자 홈 디렉토리입니다. 예를 들어, GitHub에 도트 파일을 저장하기 때문에 ~/github/dotfiles/
와 같은 경로의 디렉토리에 보관합니다. 파일 자체가 심볼릭 링크되는 동안 ~/.vimrc
와 같은 경로가 생성됩니다. .
기존 파일과 심볼릭 링크를 프로그래밍 방식으로 확인하고 처리한 다음 새 파일을 생성하려면 이 우아한 셸 스크립트를 사용할 수 있습니다. Tom의 설정 스크립트에서 그 핵심을 노골적으로 훔쳤기 때문에 칭찬하는 것뿐입니다. 그래서 그것이 얼마나 아름다운지 인정할 수 없습니다.
symlink.sh
스크립트는 $HOME
의 각 도트 파일에 대한 심볼릭 링크를 생성하려고 시도하여 작동합니다. . 먼저 심볼릭 링크가 이미 존재하는지 또는 동일한 이름을 가진 일반 파일 또는 디렉토리가 존재하는지 확인합니다. 전자의 경우 심볼릭 링크가 제거되고 다시 만들어집니다. 후자의 경우 파일 또는 디렉토리의 이름이 변경된 다음 심볼릭 링크가 만들어집니다.
소프트웨어 설치
셸 스크립트 탐색의 아름다운 점 중 하나는 명령줄만 사용하여 얼마나 많은 것을 얻을 수 있는지 발견하는 것입니다. 그래픽 운영 체제를 통해 컴퓨터를 처음 접한 사람으로서 저는 터미널에서 작업하는 것이 상쾌하게 빠르다는 것을 알게 되었습니다.
Ubuntu를 사용하면 필요한 대부분의 프로그램을 기본 Ubuntu 소프트웨어 리포지토리를 통해 사용할 수 있습니다. 일반적으로 apt search <program>
명령을 사용하여 검색합니다. sudo apt install <program>
으로 설치하십시오. . 우리가 원하는 일부 소프트웨어는 기본 리포지토리에 없거나 최신 버전에서 제공되지 않을 수 있습니다. 이러한 경우에도 PPA 또는 Personal Package Archive를 사용하여 Ubuntu에 이러한 프로그램을 설치할 수 있습니다. 우리는 우리가 선택한 PPA가 공식 출처에서 나온 것임을 주의해야 합니다.
원하는 프로그램이 기본 저장소에 나타나지 않거나 PPA가 없는 것 같더라도 명령줄을 통해 설치할 수 있습니다. "설치 명령줄"을 빠르게 검색하면 답을 얻을 수 있습니다.
bash 스크립트는 터미널에서 개별적으로 실행할 수 있는 명령 모음이므로 원하는 모든 프로그램을 설치하는 스크립트를 만드는 것은 모든 명령을 스크립트 파일에 넣는 것만큼 간단합니다. 내 aptinstall.sh
에 의해 설치되는 기본 저장소 간에 설치 스크립트를 구성하기로 선택했습니다. 내 programs.sh
로 처리되는 스크립트 및 외부 소스와 관련된 프로그램 스크립트.
데스크톱 환경 설정
최근에 새로운 데스크탑을 얻었을 때(의도적이든 아니든) 저는 항상 모든 데스크탑 환경 설정을 기억하고 찾고 변경하는 데 걸리는 시간을 잊어버리는 것 같습니다. 키보드 단축키, 작업 공간, 사운드 설정, 야간 모드 등... 추가됩니다!
고맙게도 이러한 모든 설정은 그래픽이 아닌 형식으로 어딘가에 저장되어야 합니다. 즉, 수행 방법을 알 수 있다면 bash 스크립트로 설정을 쉽게 조작할 수 있는 방법을 찾을 수 있습니다. Lo 그리고 터미널 명령인 gsettings list-recursively
를 보십시오. .
GNOME 데스크탑 환경에는 많은 설정이 있습니다. less
:gsettings list-recursively | less
. 또는 찾고 있는 것이 무엇인지 알 수 있는 경우 grep
를 사용할 수 있습니다. :gsettings list-recursively | grep 'keyboard'
.
gsettings set
로 설정을 조작할 수 있습니다. 명령. 때때로 원하는 설정에 대한 구문을 찾기 어려울 수 있으므로 처음 스크립트를 작성할 때 GUI를 사용하여 변경한 다음 gsettings
를 찾는 것이 좋습니다. 줄을 변경하고 값을 기록합니다.
영감을 얻으려면 내 desktop.sh
를 볼 수 있습니다. GitHub의 설정 스크립트.
모두 합치기
모듈식 스크립트(하나는 심볼릭 링크용, 두 개는 프로그램 설치용, 다른 하나는 데스크탑 설정용)를 사용하면 정리를 유지하고 자동화된 설정의 전부는 아니지만 일부를 실행할 수 있는 데 모두 유용합니다. 예를 들어, 명령줄만 사용하는 VPS를 설정한다면 그래픽 프로그램이나 데스크톱 설정을 설치하는 데 신경을 쓸 필요가 없습니다.
그러나 모든 스크립트를 실행하려는 경우 하나씩 실행하는 것은 약간 지루합니다. 고맙게도 bash 스크립트 자체는 터미널 명령으로 실행할 수 있기 때문에 다른 마스터 스크립트를 작성하여 모두 실행할 수 있습니다!
다음은 새로운 Ubuntu 데스크탑 컴퓨터 설정을 처리하는 마스터 스크립트입니다.
#!/bin/bash
./symlink.sh
./aptinstall.sh
./programs.sh
./desktop.sh
# Get all upgrades
sudo apt upgrade -y
# See our bash changes
source ~/.bashrc
# Fun hello
figlet "... and we're back!" | lolcat
나는 좋은 측정을 위해 업그레이드 라인을 던졌다. 새로운 데스크톱에 설치된 프로그램에 최신 업데이트가 있는지 확인합니다. 이제 간단한 단일 bash 명령이 모든 것을 처리합니다!
데스크탑이 이제 친숙하게 보이고 실행되지만 이러한 스크립트는 파일이라는 매우 중요한 영역을 다루지 않는다는 것을 눈치채셨을 것입니다. 어떤 형태의 안정적인 외부 하드웨어와 관련된 백업 방법이 있기를 바랍니다. 그렇지 않고 GitHub 또는 GitLab과 같은 외부 리포지토리 호스트에 작업을 저장하는 경향이 있다면 bash one-liner를 사용하여 GitHub 리포지토리를 자동으로 복제하고 백업하는 방법이 있습니다.
그러나 외부 저장소 호스트에 의존하는 것은 100% 적용 범위를 제공하지 않습니다. 외부 호스팅 리포지토리(비공개 또는 기타)에 넣지 않을 파일은 결과적으로 가져올 수 없습니다. 개인 키 및 비밀과 같이 포함된 파일에서 생성할 수 없는 Git 무시 개체는 다시 생성되지 않습니다. 그러나 이러한 파일은 암호화된 USB 플래시 드라이브 몇 개에 전체를 담을 수 있을 만큼 충분히 작습니다(개인 키 백업이 없는 경우 먼저 백업해야 합니까?).
즉, 이 게시물이 dotfile과 bash 스크립트가 새로운 데스크톱 설정을 자동화하는 데 어떻게 도움이 될 수 있는지에 대한 최소한의 영감을 주었기를 바랍니다. 유용하다고 생각되는 설정이 있으면 도트 파일을 공유하여 다른 사람들도 찾을 수 있도록 도와주세요!