일부 Linux 명령은 너무 익숙하여 우리가 사용하고 있는지조차 모릅니다. 디렉토리 변경을 위한 cd 명령은 다음 중 하나입니다. CD를 보다 효율적으로 사용하는 데 도움이 되는 몇 가지 트릭이 있습니다. 아니면 아예 버릴 수도 있습니다.
목차
거의 생각하지 않는 명령
당신은 하루 종일, 매일 눈을 깜박이지만, 대부분의 시간 동안 당신은 그것을 인식하지 못합니다. 눈에 뭔가가 들어가지 않는 한, 그 작고 규칙적인 움직임에 대해 거의 생각하지 않습니다. 일부 Linux 명령은 이와 같습니다. 그들은 당신의 의식의 주변에 떠 있습니다. 매일 사용해도 너무 작고 심플해서 눈에 잘 띄지 않습니다.
Linux 컴퓨터를 사용한 후 첫 1시간 이내에 Bash 및 기타 셸에 포함된 cd 명령을 사용하는 방법을 배웁니다. 아마도 다른 운영 체제에서 이전에 사용한 경험이 있어서 설명이 필요 없을 것입니다. 현재 작업 디렉토리를 변경합니다. 맞죠? 또 무엇을 알 수 있습니까?
글쎄, 당신이 생각하는 것보다. 다음은 효율성을 향상시킬 수 있는 몇 가지 힌트와 팁입니다.
표준 CD 작업
완벽을 기하기 위해 cd의 표준 사용을 빠르게 살펴보겠습니다.
홈 디렉토리에 있지만 /usr/lib/firefox/browser에 있는 디렉토리로 변경하고 홈 디렉토리로 돌아가려면 다음 명령을 사용할 수 있습니다.
cd /usr/lib/firefox/browser/
cd /home/dave
전체 디렉토리 경로를 입력할 필요는 없습니다. 자동 완성을 사용할 수 있습니다. 경로의 각 부분에 대해 디렉토리 이름을 다른 것과 구별할 수 있을 만큼 충분한 문자를 입력한 후 Tab 키를 눌러 디렉토리 이름을 자동 완성합니다.
예를 들어 명령줄에 다음을 입력합니다.
cd /usr/lib/fire
이제 Tab 키를 누르면 쉘이 나머지 “firefox” 디렉토리를 채울 것입니다. 경로에 “/b”를 추가하고 Tab 키를 다시 누르면 명령에 “browser” 디렉토리가 추가됩니다.
셸은 탭 완성 프로세스를 반복할 수 있도록 후행 슬래시를 추가합니다. 이것이 첫 번째 명령에 슬래시가 뒤에 오는 이유이기도 합니다. 하나가 입력되었기 때문에 두 번째에 하나가 없습니다.
물결표(~)를 사용하여 파일 시스템의 어느 곳에서나 홈 디렉토리로 빠르게 돌아갈 수 있습니다. 다음을 입력하십시오.
CD ~
다음은 파일 시스템의 루트에서 대상 디렉토리, cd까지의 전체 경로를 제공하는 절대 경로의 예입니다.
상대 경로는 현재 작업 디렉토리에서 참조됩니다. 홈 디렉토리에는 work 라는 디렉토리가 있습니다. tree 명령을 사용하여 다음을 수행할 수 있습니다. 디렉토리 트리 참조 작업 디렉토리 내에서 다음을 입력하기만 하면 됩니다.
tree
작업 디렉토리에는 dev 라는 디렉토리가 있습니다. 파일 시스템의 루트 디렉토리에는 dev라는 디렉토리도 있습니다. ls를 -d(디렉토리)와 함께 사용하여 이들 각각을 볼 수 있습니다. -hl(사람이 읽을 수 있는 긴 목록) 옵션은 ls에게 디렉토리 크기 및 긴 형식 목록에 대해 읽기 쉬운 단위를 사용하도록 지시합니다.
dev를 입력하면 쉘은 현재 디렉토리의 “dev”를 의미한다고 가정합니다. 루트 디렉토리에서 “dev”를 보도록 강제하려면 아래와 같이 파일 시스템의 루트를 나타내기 위해 앞에 슬래시를 추가하기만 하면 됩니다.
ls -d dev -hl
ls -d /dev -hl
cd 명령은 이 점에서 ls처럼 작동합니다. 아래와 같이 디렉토리를 dev로 참조하면 작업 디렉토리의 디렉토리를 의미한다고 가정합니다.
cd dev
선행 슬래시가 없으면 아래와 같이 더 긴 경로도 현재 작업 디렉토리에서 시작하는 것으로 간주됩니다.
cd dev/mobile/android
Double Dot으로 디렉토리 변경하기
이중 점 식별자는 현재 작업 중인 디렉토리의 상위 디렉토리를 나타냅니다. 깊이 중첩된 하위 디렉토리에 있는 경우 ..를 cd와 함께 사용하여 현재 있는 디렉토리의 상위 디렉토리로 이동할 수 있습니다.
이렇게 하면 디렉토리 트리에서 두 개의 디렉토리 위로 이동합니다. 명령에 more ..를 추가하면 디렉토리 트리 위로 임의의 수의 레벨을 이동할 수 있습니다.
다음을 입력합니다.
cd ..
cd ../..
다음을 입력하여 이러한 조작을 수행하는 별칭 집합을 만들 수도 있습니다.
alias .2="cd ../.."
alias .3="cd ../../.."
명령 자체와 같은 방식으로 사용할 수 있습니다.
컴퓨터 재부팅 시 별칭을 일관되게 만들려면 .bashrc 또는 .bash_aliases 파일에 별칭을 추가해야 합니다.
두 디렉토리 사이를 쉽게 이동
하이픈(-)은 특수 기능을 가진 또 다른 기호입니다. 디렉토리를 방금 가져온 디렉토리로 다시 변경합니다.
이 예에서는 “c” 디렉토리에 있다고 가정해 보겠습니다. cd를 사용하여 “forth” 디렉토리로 변경할 수 있습니다. 그런 다음 cd –를 사용하여 두 디렉토리 사이를 앞뒤로 바운스할 수 있습니다.
이렇게 하려면 다음을 입력합니다.
CD ../앞으로
CD –
CD –
이동하려는 디렉토리의 이름은 이동하기 전에 나타납니다.
다른 종류의 친척
쉘은 현재 작업 디렉토리를 상대 경로의 “루트” 또는 기본 디렉토리로 사용합니다. CDPATH 환경 변수를 사용하여 상대 경로의 기본 디렉토리로 다른 위치를 설정할 수 있습니다. 파일 시스템 트리의 특정 섹션에서 대부분의 시간을 보낸다면 매일 많은 키 입력(및 시간)을 절약할 수 있습니다.
work/dev/projects를 상대 경로의 기본 디렉터리로 만들기 위해 다음을 입력해 보겠습니다.
export CDPATH=/home/dave/work/dev/projects
이제 dc 명령을 사용할 때마다 CDPATH 환경 변수의 위치가 일치하는 디렉토리 이름에 대해 먼저 확인됩니다. 그들 중 하나라도 cd 명령에서 제공한 대상과 일치하면 해당 디렉토리로 이동됩니다.
이제 파일 시스템의 위치에 관계없이 cd 명령을 사용할 때 쉘은 대상 디렉토리가 기본 디렉토리에 있는지 여부를 확인합니다. 그렇다면 해당 대상 디렉토리로 이동합니다.
대상 디렉토리가 선행 슬래시(/)로 시작하여 절대 경로가 되는 경우 CDPATH 환경 변수의 영향을 받지 않습니다.
이를 보여주기 위해 다음을 입력합니다.
cd c
cd prolog
cd /usr
cd forth
CDPATH 환경 변수는 PATH 환경 변수와 마찬가지로 진정한 경로입니다. 명령을 입력하면 쉘이 PATH에서 일치하는 위치를 검색합니다. CDPATH를 사용할 때 쉘은 CDPATH 환경 변수에서 일치하는 위치를 검색합니다. 또한 PATH와 마찬가지로 CDPATH에도 여러 위치가 포함될 수 있습니다.
쉘이 CDPATH 환경 변수의 다른 위치보다 먼저 현재 디렉토리를 검색하도록 하려면 다음과 같이 경로 시작 부분에 마침표( . )를 추가하기만 하면 됩니다.
export CDPATH=.:/home/dave/work/dev/projects
설정을 영구적으로 만들려면 .bashrc와 같은 구성 파일에 추가해야 합니다.
한 가지 알아야 할 사항: 기본 디렉토리를 설정하면 스크립트 내에서 수행되는 디렉토리 변경에도 영향을 미칩니다. 이를 방지하려면 아래와 같이 CDPATH를 지정할 때 스크립트에서 절대 경로를 사용하거나 .bashrc 파일에서 테스트를 사용할 수 있습니다.
if test “${PS1+set}”; then CDPATH=.:/home/dave/work/dev/projects; fi
명령줄 프롬프트 변수 $PS1 이 설정되었는지 확인하는 테스트를 수행합니다. CDPATH 환경 변수는 테스트가 성공한 경우에만 설정됩니다.
cd로 shopt 사용하기
와 더불어 쇼핑 명령, 쉘에 대한 특정 옵션을 설정할 수 있습니다. 이들 중 일부는 cd 사용을 향상시킬 수 있습니다. 이를 설정하려면 shopt와 함께 -s(활성화) 옵션을 사용하여 옵션 이름을 전달합니다.
cdspell 옵션은 디렉토리 이름을 확인하고 문자가 바뀌거나 누락되거나 너무 많은 문자가 포함된 이름을 포함하여 몇 가지 일반적인 입력 실수를 수정합니다. 수정 사항과 일치하는 디렉토리를 찾으면 수정된 경로가 인쇄되고 cd 작업이 수행됩니다.
예를 들어 다음을 입력하여 cdspell 옵션을 설정하고 “Desktop”의 철자를 잘못 입력하여 쉘이 이를 수정하는지 확인합니다.
shopt -s cdspell
cd Desktpo
쉘은 오류를 포착하여 수정하고 “Desktop” 디렉토리로 변경했습니다.
cd와 함께 사용할 수 있는 또 다른 shopt 옵션은 autocd입니다. cd를 입력할 필요가 전혀 없습니다. 명령, 스크립트 또는 기타 실행 파일(예: 별칭)이 아닌 입력하는 모든 항목은 대상 디렉터리로 사용됩니다. 해당 디렉토리로 전송할 수 있으면 터미널 창에 출력되고 해당 디렉토리로 변경됩니다.
예를 들어 다음을 입력합니다.
shopt -s autocd
/usr/local/games
/etc
~
보다! cd를 사용하지 않고도 파일 시스템 전체를 이동할 수 있습니다!
shopt로 변경한 설정은 스크립트가 아닌 대화식 셸에만 영향을 줍니다.
CD 컬렉션
당신은 아마 이 모든 것을 채택하지 않을 것입니다. 그러나 여기에서 관심이나 이점을 발견했을 가능성이 큽니다. 결국 명령줄 탐색 속도를 높이거나 단순화하는 모든 것이 좋습니다!