전 세계적으로 지속적인 CMD 기록이 있습니까?


99

때로는 CMD 명령의 정확한 구문이 어떻게 보이는지 잊어 버린 후 내 CMD 기록을 검색하고 싶습니다. 분명히 동일한 세션 내에서 위쪽 및 아래쪽 화살표 키를 사용하여 탐색 할 수 있지만 이전 CMD 세션의 기록은 어떻습니까? 파일, 기록이 기록되거나 디지털 너바나로 이동하는 로그가 있습니까?

감사!


exit 명령을 하이재킹하여 종료하기 전에 자동으로 로그를 저장할 수 있습니다. doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $*그러나 각 명령 프롬프트 세션 시작시이를 자동으로 실행하는 방법을 알아 내야합니다. PS : 로그 파일의 경로가 쓰기 가능한지 확인하십시오. C:\ 비 관리자 명령 프롬프트에는 쓸 수 없습니다.
ADTC

@ADTC : 자동 실행은 '각 시작'을 처리해야합니다 : superuser.com/a/302553/333316 또는 stackoverflow.com/a/17405182/2868801
dave_thompson_085

답변:


29

아니요, 세션이 종료되면 Windows 명령 프롬프트 기록을 저장할 수 없습니다.


3
진짜? 이것을 어떻게 알 수 있습니까? 질문에 대해 죄송합니다, 당신이 옳은 것 같아요하지만 당신이 그 빌어 먹을 프로그래밍하지 않으면 어떻게 알 수
있습니까

7
Ok, rephrase :-) Windows 명령 인터프리터 ( "cmd.exe")는 기록 저장 / 내보내기 / 유지 기록에 대한 어떠한 지원도 제공하지 않습니다. 그것을 찾기 위해. 물론 Sean이 제안한 것처럼이 문제를 해결하려고 시도 할 수 있지만 기본적으로 지원되지 않습니다.
Massimo

18
F7을 눌러 현재 세션의 히스토리 목록을 볼 수 있습니다.
jftuga

4
CURRENT 세션은 키워드입니다.
Massimo

3
실행하여 기록을 보거나 저장할 수 있습니다 doskey.exe /history(F7 바로 가기의 출처 인 BTW).하지만 다음 세션에서 백업을 다시로드 할 방법이 없습니다.
Coderer

68

기본적으로는 아니지만 http://mridgers.github.io/clink/를 확인 하면 cmd.exe의 생산성이 훨씬 높아집니다. 프로젝트 페이지에서 인용 기능 :

Powerful Bash-like line editing from GNU's Readline library.
Superior path completion (TAB).
Paste from clipboard (Ctrl-V).
Support for the completion of executables/commands, and environment variables.
Undo/Redo (Ctrl-_ or Ctrl-X, Ctrl-U)
Improved command line history.
Persists across sessions.
Searchable (Ctrl-R and Ctrl-S).
History expansion (e.g. !!, !<string>, and !$).
Scriptable completion using Lua.


5
Windows에 기본적으로 포함시킬 계획이 있습니까? : D
Jaime Hablutzel

~/.inputrc클 링크를 사용할 때를 설정할 수 있습니까 ? (그리고 콘솔을 사용할 수 있는지 여부를 알고 있습니까?)
Mike HR


... 별명을 제외하고. clink증오 doskey; 몇 년 동안 신중하게 할당 된 모든 별칭을 잊어 버리십시오. 그렇기 때문에 사용을 중단했습니다. 모든 기능이 빠졌지 만.

15

Massimo는 명령 프롬프트 기록이 여러 세션에 걸쳐 지속되지 않는 것이 맞습니다. doskey / history> history.txt를 입력하여 프롬프트를 닫기 전에이를 수동으로 잡을 수 있습니다 .

또는 ... PowerShell 을 CMD 프롬프트로 사용 하고이 게시물 을 따라 여러 세션에서 기록을 유지할 수 있습니다.


11

clink 를 사용할 수 있습니다 .

Clink는 기본 Windows 셸 cmd.exe와 GNU Readline 라이브러리의 강력한 명령 줄 편집 기능을 결합하여 풍부한 완성, 기록 및 줄 편집 기능을 제공합니다.

clink를 설치하는 가장 쉬운 방법은 chocolatey를 사용하는 것 입니다. chocolatey를 설치하면 다음을 입력하여 clink를 설치할 수 있습니다

choco install clink

다음에 cmd.exe를 시작하면 세션 전체에 기록이 저장됩니다.


마침내이 Chocolatey포스트 때문에 샷을하기 로 결정했습니다 . brewmacOS 에서처럼 설치가 쉬웠습니다 . 그리고 이제 Windows에 Bash와 같은 명령 프롬프트가 있습니다!
TranslucentCloud

6

현재 이력을 파일로 저장할 수 있습니다.

`$ doskey /history > somefile.txt`

그러나 기록으로 다시로드 할 수있는 방법이없는 것 같습니다. 명령 행 인수 만 사용하여 모든 행을로드하고 실행할 수 있습니다.

cmd.exe /K somefile.txt

, doskey 매크로 목록을로드하는 데 유용한 기능 이 호출은 바로 가기에 포함될 수 있으므로 매번 입력 할 필요는 없습니다. 이 참조에는이 접근 방식에 대한 추가 정보가 있습니다.

@RobertBak이 제안한 것처럼 clink를 포함한 몇 가지 대안을 가져 오는 수퍼 유저에 대한 비슷한 질문이 있습니다 .


흠, 기록으로 다시로드하려면 단순히 .bat 파일로 저장하고 실행하지 않아도됩니까?
Pacerier

1
@Pacerier는 명령을 다시 실행하면 확실히 기록에 다시 포함되지만 큰 부작용이있을 수 있습니다. 셸을 통해 일부 파일을 삭제 한 다음 길고 고통스러운 프로세스를 통해 셸 외부에서 파일을 다시 생성한다고 상상해보십시오. 프로 시저를 통해 히스토리를 다시로드하면 파일이 예기치 않게 다시 삭제됩니다.
mMontu

@Pacerier는 "실행"이 모든 명령을 실행한다는 것을 알고 있습니다. 단순히 기록에로드하는 것이 아니라 실제로 시스템에 영향을 미칩니다.
ADTC

1

명령 기록 : 위쪽 / 아래쪽 화살표 키를 사용하여 액세스 할 수있는 명령 기록을 활성화하려면 명령 프롬프트에서 doskey를 실행하십시오. 예를 들어, 100 개 요소의 명령 히스토리를 작성하려면 다음을 수행하십시오.

doskey /listsize=100

심판 : https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php


3
그 질문에 전혀 답하지 않습니다 ??
Chopper3

1
Windows 10에서는 작동하지 않습니다.
TranslucentCloud

1

clink 는 훌륭하고 저자는 모든 릴리스에 초콜릿 패키지를 게시하지만 DeepBlueCLI를 제안합니다.

https://github.com/sans-blue-team/DeepBlueCLI 를 사용 하여 Windows 보안 이벤트 ID 4688을 설정할 수 있습니다 .

PowerShell의 경우 DeepBlueCLI는 모듈 로깅 (PowerShell 이벤트 4013) 및 스크립트 블록 로깅 (4104)도 사용합니다. 전사를 사용하지 않습니다.

추가 이점은 AppLocker 이벤트 로그에 명령 줄 exe의 해시를 기록한다는 것입니다. 출처 : https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing

또한이 솔루션은 Windows 이벤트 로그 인프라를 사용하므로 WMI 또는 PowerShell을 통해 쿼리 할 수 ​​있습니다 Get-EventLog. clink를 사용하면 시스템 또는 네트워크 전체의 동작 패턴을 감지하기 위해 다른 도구를 배워야합니다.


1
이벤트 4688이 핵심이며 Windows가 모든 실행 명령을 기록하는 중앙 저장소입니다. 다른 모든 도구는이 이벤트를 찾고 있습니다. 감사. 그러나 기본적으로 활성화되지 않습니다 : itprotoday.com/strategy/...는
피터 Teoh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.