6개의 Linux 터미널 시간 절약 장치

10/01 2015
탭 완성
입력 중인 단어를 자동 완성하려면 Tab 키를 사용하십시오.
(이미지: © 미래)

별칭

리눅스

Linux에서 터미널을 사용하는 것은 특히 반복 작업에서 GUI를 사용하는 것보다 더 빠르고 생산적일 수 있습니다. 이를 최대한 활용하려면 쉘의 몇 가지 비밀을 아는 것이 도움이 됩니다.

동일한 명령 옵션을 반복해서 입력하는 경우가 자주 있습니까? 때때로 올바른 옵션을 기억하는 데 문제가 있습니까? 게으르고 가능한 한 타이핑을 피하고 싶습니까? 이 중 하나라도 예라고 대답했다면 별칭이 적합합니다.

일부 쉘 별칭이 이미 설정되어 있습니다. 나열하려면 다음을 입력하십시오.

별명

다음과 같은 항목을 반환합니다(Ubuntu에서).

별칭 ll='ls -alF'

별칭 ls='ls --color=auto'

첫 번째 예는 간단합니다. ll을 입력하면 ls -A가 실행됩니다. 두 번째는 별칭이 명령 이름과 동일하므로 이전 ls 동작이 사라지고 항상 --color=auto 옵션으로 실행되므로 더 영리합니다.

특정 명령과 함께 특정 옵션을 항상 사용하는 경우 이와 같은 별칭은 해당 옵션을 효과적으로 기본값으로 만듭니다.

나머지 명령줄이 해석되기 전에 별칭이 확장되므로 다음과 같습니다.

ll XYZ

된다

ls -alF XYZ

이러한 별칭은 항상 기억하기 쉽지는 않지만 두려워하지 마십시오. alias 명령의 출력과 정확히 동일한 구문을 사용하여 고유한 별칭을 만들 수 있습니다.

별칭 myalias='somecommand --option1 --option2'

명령에 고유한 이름을 지정하는 것은 깔끔한 트릭이지만 원래 명령을 사용해야 하는 경우에는 어떻게 해야 합니까? 걱정하지 마십시오. 개발자가 생각했습니다. 명령 앞에 백슬래시를 추가하면 별칭이 무시됩니다.

\ls 문서

프로필

리눅스

별칭 및 사용자 지정 프롬프트를 사용하여 터미널 환경을 사용자 지정할 수 있지만 더욱 편리하게 사용하려면 터미널을 열 때 자동으로 적용하는 방법이 필요합니다.

이는 셸 세션을 열 때마다 읽고 실행할 명령이 포함된 파일인 프로필을 통해 수행할 수 있습니다.

여러 위치를 읽을 수 있으며 첫 번째 위치는 전역 프로필 설정이 포함된 /etc/profile 입니다 . 이렇게 하면 /etc/profile.d 의 모든 파일이 실행되므로 기본 프로필을 건드리지 않고도 전역 설정을 쉽게 추가할 수 있습니다.

그런 다음 /.bash_profile, /.bash_login/.profile 중 하나에서 사용자 프로필을 읽습니다 . 존재하는 이러한 파일 중 첫 번째 파일만 실행되며 여기의 모든 설정은 둘 다에 동일한 항목이 설정된 경우 전역 프로필의 설정을 재정의합니다.

프로파일은 단순히 쉘이 시작될 때 실행되는 한 줄에 하나씩 쉘 명령 세트입니다. 별칭, 환경 변수를 설정하거나 명령 프롬프트를 설정할 수 있습니다. 환경 변수의 일반적인 사용은 기본 텍스트 편집기를 nano로 변경하는 것입니다.

EDITOR=/usr/bin/nano

단어 완성

리눅스

특별히 자신 있는 터치 타이피스트가 아닌 경우 명령 및 파일 이름 전체를 입력한 다음 맞춤법 오류로 인한 오류 메시지를 처리하는 데 곧 싫증이 날 것입니다. 다행스럽게도 셸은 입력을 저장하고 탭 완성이라는 실수를 피할 수 있는 방법을 제공합니다.

이름은 자명합니다. Tab 키를 사용하여 입력하는 단어를 완성합니다. 이것이 행의 첫 번째 단어인 경우 명령이 되므로 명령 경로에서 일치 항목을 찾습니다. 예를 들어 chm을 입력하고 Tab을 누르면 chmod 가 완료됩니다 .

명령 뒤에 사용하면 탭이 파일 이름에서 완성되므로 다음을 입력하는 대신 다음을 입력합니다.

cat /pathto/somelongdirectory/someevenlongerfilename.txt

당신이 사용할 수있는:

고양이 /pa[TAB 누르기]som[TAB 누르기]som[TAB 누르기]

더 쉽지 않습니까? 둘 이상의 파일이 일치하면 Tab 키는 모호해지는 지점까지 완료됩니다. 이 시점에서 Tab을 다시 누르면 옵션 목록이 표시되며 Tab을 사용하여 순환하거나 다른 문자를 한두 개 추가하고 Tab을 다시 누를 수 있습니다. 실제로 설명하는 것보다 사용하기가 훨씬 쉽습니다. 그냥 사용해 보세요.

와일드카드

리눅스

명령에 둘 이상의 파일을 포함하고 싶지만 모두 입력하고 싶지는 않은 경우가 있습니다. Linux 셸에는 이를 지원하는 몇 가지 '와일드카드' 연산자가 있습니다. 가장 많이 사용되는 것은 모든 문자열을 대체하는 데 사용되는 별입니다.

따라서 * 자체는 현재 디렉토리의 모든 파일과 일치합니다(이는 *가 .와 일치하지 않는 MS-DOS 셸과 다르며 *. *를 사용하여 확장자가 있는 모든 파일을 일치시켜야 함).

또한 *를 사용하여 파일 이름의 한 부분을 일치시킬 수 있습니다. *.txt는 .txt로 끝나는 모든 파일과 일치하고 a*.txt 는 역시 a로 시작하는 파일과만 일치합니다.

이 일치는 쉘에 의해 수행됩니다. 명령에 전달하기 전에 일치 항목을 파일 목록으로 확장합니다. 그러면 와일드카드가 표시되지 않거나 사용자가 와일드카드를 사용했다는 사실조차 알 수 없습니다.

이것은 특히 실행 중인 프로그램에 *를 전달하려는 경우 중요한 차이점이 될 수 있습니다. 예를 들어 scp를 사용하여 원격 컴퓨터에서 파일을 복사하고 다음을 실행한다고 가정합니다.

scp user@othercomputer:문서/*.txt 문서/

이렇게 하면 다른 컴퓨터의 Documents 디렉터리에 있는 모든 .txt 파일이 여기에 있는 동일한 디렉터리로 복사될 것으로 예상할 수 있지만 그렇지 않습니다. 셸은 로컬 시스템의 모든 .txt 파일과 일치하도록 *.txt를 확장하므로 이미 가지고 있는 파일만 복사합니다.

이러한 경우 이스케이프라고 하는 백슬래시를 앞에 붙여서 *를 확장하지 않도록 셸에 지시해야 합니다.

scp user@othercomputer:문서/\*.txt 문서/

이제 변경되지 않은 Documents/*.txt를 원격 컴퓨터로 전달하고 해당 셸에서 확장을 처리하도록 합니다.

두 번째 와일드카드 문자도 있습니다. *는 없음을 포함하여 임의 개수의 문자와 일치하지만 ? 정확히 하나와 일치합니다. 따라서 ab?.txt는 abc.txt 및 ab1.txt와 일치하지만 ab.txt 또는 abcd.txt와는 일치하지 않는 반면 ab*.txt 는 이들 모두와 일치합니다.

명령 대체

리눅스

셸에는 명령 대체라는 강력한 기능이 있습니다. 이렇게 하면 한 명령의 출력을 다른 명령에 포함할 수 있습니다.

간단한 예로 시스템에 foo 라는 명령 이 있고 그것이 어떤 유형의 프로그램인지 알고 싶다고 가정해 보겠습니다. 컴파일된 프로그램, Python 또는 쉘 스크립트입니다. which 명령은 프로그램의 경로를 제공하고 file은 파일 유형을 보고합니다. 다음을 사용할 수 있습니다.

어느 푸

/usr/local/bin/foo를 얻으 려면

/usr/local/bin/foo 파일

파일 형식을 가져오려면 복사 및 붙여넣기를 사용하더라도 많은 작업이 필요하고 잘못 입력하기 쉽습니다. 또는 다음을 수행할 수 있습니다.

파일 $(어떤 foo)

/usr/local/bin/foo: /usr/bin/perl 스크립트, ASCII 텍스트 실행 파일

쉘은 $(..) 내부에 있는 모든 것을 실행 하고 실행하기 전에 그 출력을 명령줄로 대체합니다. 이를 위해 백틱을 사용할 수도 있습니다.

파일 '어떤 foo'

이것은 입력하기는 더 빠르지만 가독성이 떨어집니다. 특히 독자의 글꼴로 인해 '와 '가 비슷하게 보일 수 있는 포럼에 게시되었을 때 그렇습니다. 첫 번째 형식에서는 이러한 혼동이 없습니다.

터미널 시간 절약: 반복

리눅스

셸의 가장 큰 장점 중 하나는 아무리 복잡한 명령이라도 몇 번의 키 누르기만 하면 간단하게 명령을 반복할 수 있다는 것입니다. 가장 간단하게는 Up 키를 눌러 이전 명령을 표시한 다음 Enter 키를 눌러 선택한 명령을 다시 실행할 수 있습니다.

원하는 경우 실행하기 전에 명령을 편집할 수도 있습니다. 마지막으로 실행한 몇 가지 명령 중 하나를 사용하려는 경우에는 문제가 없지만 대부분의 셸은 다시 액세스할 수 있는 마지막 500개 정도의 명령 기록을 유지합니다.

키보드의 위쪽 화살표 키(및 눈)의 피로를 방지하려면 Ctrl-R을 누른 다음 명령의 일부를 입력하십시오. 터미널은 입력하고 있는 것과 일치하는 가장 최근 명령을 표시하며 키를 누를 때마다 업데이트됩니다.

매우 유사한 명령을 여러 개 실행한 경우 계속 입력할 필요가 없습니다. 몇 개의 문자를 입력하고 Ctrl-R을 다시 누르면 이전 일치 항목을 볼 수 있습니다. 원하는 것을 찾을 때까지 계속하십시오. (놀라지 마세요 – 이것은 실제로 하는 것보다 설명하는 데 훨씬 더 오래 걸리는 것 중 하나입니다.)

명령을 실행하기 전에 편집할 수 있습니다. 입력하는 검색어가 명령 자체일 필요는 없습니다. 명령줄의 모든 부분이 일치하므로 파일 이름으로 시작할 수 있습니다.

기록 내의 명령에 직접 액세스할 수도 있습니다. ! _ 문자는 해당 기록을 참조하고 있음을 쉘에 알려줍니다. !! 는 이전 명령의 바로 가기이며 !-n은 'n 명령 실행 전 명령 실행'을 의미합니다(따라서 !! 는 !-1 과 동일함 ). !xyz는 xyz로 시작하는 마지막 명령을 실행하고 !?xyz는 xyz를 포함하는 마지막 명령에 대해 동일한 작업을 수행합니다(Ctrl-R이 수행하는 것과 거의 동일).

  • 이 기사는 Linux 형식으로 TechRadar에 제공되었으며 잡지의 각 호에는 뉴스 분석, 중요한 Linux 주제에 대한 심층 기능, 코딩 가이드, Raspberry Pi 및 Maker 프로젝트 등이 포함되어 있습니다. 여기에서 Linux 형식의 인쇄 또는 디지털 버전을 구독하십시오 (새 탭에서 열림).