리눅스 또는 macOS 터미널에서 Bash 히스토리를 사용하는 방법
bash 쉘은 대부분의 Linux 배포판에 포함 된 표준 터미널 환경으로 macOS에 포함되어 있으며 Windows 10에 설치할 수 있습니다. 사용자가 입력 한 명령을 기억하여 이력 파일에 저장합니다. bash 역사의 몇 가지 기본 사항을 알고있을 것입니다. 그러나 실제로 깨닫지 못하는 것보다 훨씬 강력합니다..
키보드 단축키
bash 히스토리를 스크롤하려면 bash의 유용한 키보드 단축키 몇 개를 사용할 수 있습니다. 이 단축키를 누르면 이전에 사용한 명령이 프롬프트에 나타납니다..
- 위쪽 화살표 또는 Ctrl + P: 기록에서 이전 명령으로 이동하십시오. 키를 여러 번 눌러 사용했던 명령을 거꾸로 따라 가십시오..
- 아래쪽 화살표 또는 Ctrl + N: 역사에서 다음 명령으로 이동하십시오. 키를 여러 번 눌러 사용했던 명령을 진행합니다..
- Alt + R: 현재 행에서 편집 한 경우 기록에서 가져온 명령의 변경 사항 되돌리기.
Bash에는 이전에 실행 한 명령을 검색 할 때 사용할 수있는 특별한 "회수"모드가 있습니다..
- Ctrl + R: 당신이 제공 한 문자와 일치하는 마지막 명령을 회상해라. 이 바로 가기를 누르고 명령에 대한 bash 기록을 검색하려면 입력을 시작하십시오..
- Ctrl + O: Ctrl + R로 찾은 명령을 실행하십시오..
- Ctrl + G: 명령을 실행하지 않고 기록 검색 모드로 둡니다..
배쉬의 역사보기
다음 명령을 실행하여 전체 bash 히스토리를 화면에 출력 할 수 있습니다 :
역사
bash 히스토리에있는 모든 명령 목록과 각 명령의 왼쪽에있는 번호가 표시됩니다. 그 옆에 "1"이있는 명령은 bash 기록에서 가장 오래된 명령이고, 가장 큰 번호를 가진 명령이 가장 최근의 명령입니다.
출력으로 원하는 모든 것을 할 수 있습니다. 예를 들어, grep
명령을 사용하여 명령 기록 검색.
역사 | grep your_search
그것을 파이프로 연결하여 꼬리
명령을 실행하면 실행 한 최근 명령 중 일부만을 볼 수 있습니다. 예를 들어, 다음 명령은 히스토리의 마지막 5 개 항목을 표시합니다.
역사 | 꼬리 -5
기록에서 명령 실행
Bash는 이전 명령을 빠르게 "확장"하거나 확장하고 수정합니다. 이 기능을 "내역 확장"이라고하며 "bang"이라고하는 느낌표를 사용합니다. 다른 명령을 실행하는 것처럼 프롬프트에서 명령을 입력하고 Enter 키를 눌러 실행하십시오..
내역에서 해당 번호로 특정 명령을 실행하려면 다음 명령을 사용하십시오.
!#
예를 들어, bash 히스토리에서 12 번째 명령을 실행하고 싶다고합시다. 그것은 명령을 실행할 때 왼쪽에 "12"가 붙은 명령입니다. 역사
명령. 다음 명령을 입력합니다..
!12
마지막으로 실행 한 명령을 다시 실행하려면 다음을 입력하십시오. 위쪽 화살표를 한 번 눌러 이전 명령을보고 Enter 키를 누르는 것과 같은 효과가 있습니다.
!!
또한 특정 수의 행을 다시 명령으로 참조 할 수도 있습니다. 예를 들어, !-2
두 번째에서 마지막으로 실행 한 명령을 실행합니다.. !!
같은 의미이다. !-1
.
이 확장은 라인 어디에서나 작동합니다. 이전이나 이후에 원하는 것을 추가 할 수 있습니다. !!
또는이 섹션의 다른 표현식 중 하나를 선택하십시오. 예를 들어 다음 명령을 입력하여 마지막으로 실행 한 명령을 다시 실행할 수 있습니다 sudo
, 루트 권한을 부여합니다. 추가하는 것을 잊었을 때 특히 유용합니다. sudo
명령을 실행하기 전에.
sudo !!
또는 예를 들어, 이전 명령을 다시 실행하여 출력을 grep에 파이프하여 텍스트를 검색 할 수 있습니다.
!! | grep 텍스트
히스토리에서 명령을 검색하여 실행하려면 다음을 입력하십시오. 이렇게하면 지정한 텍스트와 일치하는 마지막 명령이 실행됩니다.
!본문
그래서, 당신이 최근에 시작한 명령을 실행했다면 핑
, 다음 명령을 실행하여 검색 할 수 있습니다. 이렇게하면 기록을 거꾸로 검색하고 "파이
", 즉시 실행 :
!파이
추가 할 수 있습니다. :피
위의 확장 중 하나에 bash는 명령을 실행하지 않고 터미널에 인쇄합니다. 이 명령은 올바른 명령을 실행하기 전에 선택하는지 확인하려는 경우에 유용합니다..
!12 : p
!!:피
!텍스트 : p
귀하의 역사에서 논점을 재사용하십시오
Bash에서는 새로운 명령을 실행할 수 있지만 기록에서 이전 명령의 인수를 사용합니다. 이렇게하면 길거나 복잡한 인수를 다시 입력 할 필요없이 재사용 할 수 있습니다..
명령! $
예를 들어 명령을 실행했다고 가정 해 봅시다. / home / chris / some_long_file_name_you_dont_want_to_type_again을 터치합니다.
. 이제 명령을 실행하려고합니다. 나노 / home / chris / some_long_file_name_you_dont_want_to_type_again
. 전체 내용을 처음부터 입력하는 대신 다음을 실행할 수 있습니다.
nano!
그만큼 !$
bash는 이전 명령의 마지막 인수를 자동으로 채 웁니다..
이것은 마지막 인수 만 채 웁니다. 그래서, 네가 달리면 핑 google.com -c 4
그 다음에 핑!
, 이것은 단지 "핑 4
".
이 상황을 수정하려면 다음 트릭을 사용하여 마지막 인수가 아닌 행의 첫 번째 인수를 확장하십시오.
명령! ^
너가 도망 간다면 핑 google.com -c 4
그리고 나서 달렸다. 핑! ^
, bash는 이것을 "핑 google.com "
.
단일 인수 대신 이전 명령에서 사용 된 모든 인수를 채우려면 다음을 사용하십시오.
명령! *
너가 도망 간다면 핑! *
대신 bash는 이전 명령에서 사용한 모든 인수를 자동으로 채 웁니다.
내역에서 명령을 실행하여 인수를 가져 오는 데 사용하는 것과 동일한 트릭을 사용할 수 있습니다. 다음 양식 만 사용하십시오..
명령! abc : #
예를 들어, 다음 명령을 실행했습니다. sudo hostname 우분투
일찍이. 다음 명령을 실행하면 bash는 히스토리를 역방향으로 검색하여 입력 한 문자로 시작하는 마지막 명령을 찾고 지정한 인수를 채 웁니다. 우리가 달리면 echo! su : 2
, bash는 다시 검색하여 "수호
"그리고 두번째 인자를 채워라. 그것은"우분투
".
다른 트릭은 예상대로 작동합니다. 예를 들어, 숫자를 별표 (와일드 카드)로 바꾸면 bash가 명령의 모든 인수를 채 웁니다.
명령! abc : *
이전 명령을 다시 실행하고 수정하십시오.
Bash를 사용하면 이전 명령을 다시 실행하고 변경해야 할 내용을 지정할 수 있습니다. 이것은 명령의 오타를 수정하는 데 유용 할 수 있습니다. 예를 들어 다음 명령은 이전 명령을 다시 실행하여 "알파벳
"그 안에는"xyz
".
^ abc ^ xyz
예를 들어 실수로 핑 gogle.com
, 너는 그 때 달릴 수 있었다 ^ gog ^ goog
bash는 명령을 실행합니다. 핑 google.com
대신에.
당신의 역사가 저장되어있는 곳과 그것을 지우는 방법
bash 쉘은 기본적으로 ~ / .bash_history에 사용자 계정의 히스토리 파일에서 실행 한 명령 내역을 저장합니다. 예를 들어 사용자 이름이 bob이면이 파일은 /home/bob/.bash_history에 있습니다..
기록은 파일에 저장되므로 세션간에 지속됩니다. 몇 가지 명령을 실행하고, 로그 아웃하고, 다음날 다시 돌아올 수 있으며, 명령은 내역 파일에 계속 표시되어 사용할 수 있습니다. 각 사용자 계정에는 별도의 명령 기록이있는 자체 기록 파일이 있습니다..
bash 기록을 삭제하려면 다음 명령을 실행하십시오. 이렇게하면 사용자 계정의 .bash_history 파일 내용이 지워집니다.
history -c
Bash는 기본적으로 제한된 수의 명령 만 기억하므로 기록 파일이 너무 커지지 않습니다. bash가 기억하는 history 항목의 수는 과장된
변하기 쉬운. 기본값은 보통 500 또는 1000 항목입니다. 다음 명령을 실행하여 시스템에서 bash 히스토리의 크기를 볼 수 있습니다.
echo $ HISTSIZE
내역을 0으로 설정하려면 다음 명령을 실행하십시오..
HISTSIZE = 0
현재 세션의 경우 bash는 다음과 같은 명령을 실행하지 않으면 히스토리 항목을 저장하지 않습니다. HISTSIZE = 1000
특정 수의 항목으로 다시 설정하려면.
공백을 무시하고 중복하는 방법
배쉬는 당신이 공간을 설정하면 공간으로 시작하는 히스토리 항목을 무시할 수 있습니다. HISTCONTROL
~ 할 변수 ignorespace.
HISTCONTROL = ignorespace
bash 쉘에서 명령을 실행하기 전에 명령 앞에 공백을 입력하면 명령이 정상적으로 실행되지만이 변수가 사용 가능한 경우 히스토리에 나타나지 않습니다. 이렇게하면 내역을 조금 깔끔하게 유지할 수 있으며 내역에 명령을 표시하지 않고 명령을 실행하도록 선택할 수 있습니다..
Bash는 또한 역사를 혼란스럽게 할 수있는 중복 명령을 무시할 수있게합니다. 그렇게하려면 다음을 설정하십시오. HISTCONTROL
에 무시하다.
HISTCONTROL = 무시하다
두 가지를 모두 사용하려면 ignorespace
과 무시하다
기능, 설정 HISTCONTROL
~ 할 변수 무시하다.
HISTCONTROL = 무시
설정 한 bash 변수는 현재 세션에서만 지속됩니다. 이 값을 사용자 계정의 .bashrc 파일에 추가하여 시작할 때마다 bash 세션에이 값을 자동으로 설정해야합니다..
bash 쉘은 이보다 더 많은 옵션을 가진 복잡한 도구입니다. 공식 bash 매뉴얼의 Bash History Builtins 및 History Expansion 섹션을 참고하십시오. 더 자세한 정보 및 사용할 수있는 기타 고급 기법.