Computer >> 컴퓨터 >  >> 시스템 >> Linux

터미널에서 더 스마트하게 작업하는 Bash 팁과 요령 총정리

터미널에서 더 스마트하게 작업하는 Bash 팁과 요령 총정리

리눅스 사용자에게 터미널을 처음 열고 시스템을 가장 효율적이고 강력하며 유연하게 다루기 시작하는 순간은 특별한 경험입니다. 하지만 처음 터미널에 진입하면 깜빡이는 커서와 무한한 가능성만 반겨줄 뿐이라 다소 부담스러울 수 있습니다. 이를 돕기 위해 터미널에서 더 똑똑하게, 덜 힘들게 작업할 수 있는 Bash 팁과 요령을 소개합니다.

Apropos로 명령어 찾기

apropos는 명령어의 설명을 기반으로 man(매뉴얼) 페이지가 등록된 명령어를 검색할 수 있는 명령입니다. 명령어의 man 페이지를 열어본 적이 있다면 다음과 같은 화면을 본 경험이 있을 겁니다.

터미널에서 더 스마트하게 작업하는 Bash 팁과 요령 총정리

맨 위에 있는 "NAME" 섹션이 바로 여기서 말하는 부분입니다. 예를 들어 aproposping 명령어를 찾고 싶다면 터미널에 apropos icmp를 입력하고 Enter를 누르면 됩니다. 대소문자는 구분하지 않으므로 참고하세요. 이렇게 하면 NAME 항목에 "ICMP"가 포함된 모든 명령어가 표시됩니다.

터미널에서 더 스마트하게 작업하는 Bash 팁과 요령 총정리

apropos의 또 다른 활용법은 익숙하지 않은 도구를 탐색하는 것입니다. 예를 들어 selinux처럼 낯선 도구를 접했을 때 apropos selinux 명령을 실행하면 SELinux와 상호작용할 수 있는 모든 명령어 목록을 한눈에 확인할 수 있어, 효율적인 정책 관리의 첫걸음을 내딛는 데 큰 도움이 됩니다.

이전 명령어 문자열 치환하기

터미널 작업 시간을 크게 아껴준 기능 중 하나가 이전 명령어의 일부를 치환하는 방법입니다. 오타를 냈거나 이전 명령어의 옵션만 바꿔야 할 때, ^로 잘못 입력한 단어를 지정하고 다시 ^ 뒤에 원하는 단어나 옵션을 넣으면 됩니다.

예시를 살펴보겠습니다. DNS를 포함한 인터넷 연결 상태를 확인하기 위해 "maketecheasier.com"에 ping을 보내고 싶다고 가정해 봅시다. 그런데 오타가 나면 오류가 발생할 수 있습니다. 실수로 maktecheaser.com(중간의 "i"가 빠진 주소)에 ping을 보냈다면 제대로 된 결과를 얻지 못합니다.

이럴 때 ^maktecheaser.com^maketecheasier.com을 입력하면 명령어가 의도대로 실행됩니다. 간단한 예시지만, 옵션이 많은 긴 명령어를 실행하거나 출력·오류 리디렉션을 잘못 지정했을 때는 복잡한 명령어 안에서 >>>로 바꿀 수 있다는 것만으로도 생명줄 같은 기능이 됩니다.

터미널에서 더 스마트하게 작업하는 Bash 팁과 요령 총정리

systemd와 systemctl 명령어도 좋은 예입니다. 서비스를 start, stop, enable, disable하는 등 여러 하위 명령어를 자주 사용하게 되는데, ^start^enable처럼 간단히 치환하면 매번 명령어를 다시 입력하는 수고를 덜 수 있습니다.

!!로 이전 명령어 즉시 재실행하기

이 기능은 특정 상황에서 특히 유용합니다. !!(bang-bang, 느낌표 두 개)는 이전 명령어 전체를 그대로 불러옵니다. 언뜻 유용해 보이지 않을 수 있지만, 슈퍼유저 권한이 필요한 명령어를 입력했다가 실패한 경험이 몇 번이나 되는지 떠올려 보면 그 활용도를 알 수 있습니다.

대표적인 예가 설치 스크립트입니다. "./SCRIPT-NAME.sh"로 설치 스크립트를 실행했는데 슈퍼유저 권한이 필요하다는 메시지가 떴다면, 그냥 sudo !!를 입력하고 비밀번호만 입력하면 끝납니다. 시간을 크게 아껴주며, 이 조합이 손에 익으면 잘못 입력한 명령어를 처음부터 다시 타이핑하는 것보다 훨씬 빠르게 처리할 수 있습니다.

터미널에서 더 스마트하게 작업하는 Bash 팁과 요령 총정리

이전 명령어의 인수 재활용하기

!$를 사용하면 이전 명령어의 마지막 인수를 현재 명령어로 전달할 수 있으며, 약간의 변형을 통해 원하는 위치의 인수를 모두 가져올 수도 있습니다.

예를 들어 스크립트를 편집할 때 nano samplescript.sh 명령어를 사용했다고 해봅시다. 편집이 끝난 후 실행 권한을 부여하기 위해 8진수 권한을 755로 변경하려면 chmod 755 !$ 명령어를 사용하면 됩니다. 이어서 스크립트 이름을 다시 불러와 실행하려면 두 번째 인수를 가져오는 ./!:2를 사용하면 됩니다.

터미널에서 더 스마트하게 작업하는 Bash 팁과 요령 총정리

그 외 활용 가능한 문법은 다음과 같습니다.

!^ - 첫 번째 인수
!* - 모든 인수
!:2-$ - 두 번째부터 마지막까지의 인수
!:2-4 - 두 번째부터 네 번째까지의 인수

숫자를 바꿔가며 원하는 인수를 자유롭게 가져올 수 있습니다. Bash는 이 방식으로 약 100개까지의 인수를 보관하므로, 파일 이름 반복 입력 같은 단순 반복 작업을 훨씬 빠르게 처리할 수 있습니다.

터미널에서 더 스마트하게 작업하는 데 도움이 되는 Bash 팁과 요령이었습니다. 여기에 더해 Bash 변수와 특수 문자에 대해서도 함께 학습해 보시길 추천합니다.