목록windows (16)
살아가는 이야기
PowerShell을 이용하여 Windows\System32 폴더에서 우연히 nano를 이용하여 텍스트 파일―hello.c(?)―을 만든 적이 있다. 그런데 성공적으로 저장하고 나서 해당 파일을 그 폴더 내에서 찾을 수 없다는 것을 알게 되었다. 이상하여 다시 nano를 실행해 보면 hello.c 내용은 그대로 적혀 있는 것을 알 수 있었다. 도대체 hello.c 파일은 어디에 저장되어 있는 것일까? 검색해 보니 해당 파일은 Windows\SysWOW64에 저장되어 있었다. 이유를 알 수 없어서 구글링해 보니 이는 윈도 시스템의 API 때문인 것으로 판명되었다. 윈도 시스템에는 GetSystemDirectory()라는 API가 있는데, 이 API를 이용하여 윈도 시스템 파일을 접근할 때, 시스템이 알아서..
일주일쯤 전에 Windows에서 프로그램 수행 시간을 재는 방법을 게시하였다. timeit이라는 유틸리티 프로그램을 이용하는 방식이었는데, timeit을 이용하려면 Windows 2003 Resource Kit을 설치해야 하는 번거로움이 있었다. 프로그램 설치가 귀찮다면 이미 Windows에 설치되어 있는 PowerShell을 이용하는 방법도 있다. PowerShell의 Measure-Command라는 명령어를 이용하면 프로그램 수행 속도를 잴 수 있다. 예컨대 다음과 같이 Measure-Command를 사용할 수 있다. Measure-Command { echo "Hello?" } 여러 메시지가 나오지만 출력의 맨 끝 행만 확인하면 된다. PowerShell을 사용할 때 단점은 입력 재지정(input r..
choco(Chocolatey, 쵸콜라티)는 Windows용 설치 관리자이다. 데비안의 apt나, 레드햇의 yum, 아치리눅스의 pacman과 유사하다고 생각하면 된다. 다만 이를 사용하려면 별도로 설치해야 하는데, 한 번 choco를 설치한 후에는 이후 choco를 통해 설치하는 여러 프로그램에 대해서는 별도로 PATH를 지정하지 않아도 되므로 매우 편리하다. choco를 설치하기 위해서는 먼저 PowerShell을 관리자용으로 실행해야 한다. 윈도우 검색 창(없으면 Win+S키를 누름)에서 "power"를 입력하여 Windows PowerShell을 검색한 후 관리자로 실행 메뉴를 클릭한다. 그리고 나타나는 사용자 계정 컨트롤 창―경우에 따라서는 작업 표시줄에 방패 모양만 깜빡일 수도 있는데, 이를 ..
프로그램 수행 성능을 알아 보기 위해서는 실제 수행 시간을 재는 것이 가장 확실한 방법이다. 물론 실제 수행 시간은 시행 시마다 다를 수 있지만, 여러 번 반복하여 재면 해당 프로그램의 수행 시간을 얼추 가늠할 수 있다. 10회 정도의 수행 시간을 잰 후 평균 수행 시간을 계산하면 비슷한 다른 프로그램의 수행 시간을 비교하는 데 사용할 수 있다. 대부분의 운영체제에는 프로그램의 수행 시간을 재는 유틸리티 프로그램이 존재하는데, 윈도(Windows)의 경우에는 어떻게 시간을 잴 수 있을까? 과거 윈도 서버 2003(Windows Server 2003)에는 Resource Kit Tools라는 도구 모음에 timeit이라는 유틸리티가 제공되었다고 한다. timeit은 수행 시간 정보뿐 아니라 시스템 호출 수..
C로 작성된 운영체제답게 Unix에서는 프로세스의 반환 값(종료 코드)을 이용하여 여러 명령어를 조합할 수 있다. 종료 코드는 정수 값인데, 그래서 초기 C에서는 함수 정의 시 타입을 적지 않으면 int로 간주했었다. 여튼 프로세스의 종료 코드는 여러 가지로 유용하다. bash에서는 변수 $?의 값을 통해 종료 코드를 알 수 있다. 다음은 Msys2에서 종료 코드를 확인한 화면이다. 그럼 Windows에서는 프로세스의 종료 코드를 어떻게 확인할 수 있을까? 정확히 어느 버전부터인지는 몰라도 %errorlevel%이라는 변수를 통해 확인할 수 있다. 실제 변수명은 errorlevel이고 이를 사용하려면 변수명을 %로 감싸야 한다. 초기 너무 돈을 밝힌다는 비난 때문인지 몰라도, 환경 변수를 참조할 때 Wi..
Windows 화면이 너무 눈부신가요? 간혹 책을 읽기 위해 잠시 꺼 두고 싶은 경우가 있지요? 이 글은 그런 경우를 위한 바탕화면 아이콘을 만드는 방법입니다. Windows에는 화면보호기 기능이 있는데, 이는 Windows 10에도 마찬가지에요. 화면보호기란 고정되지 않은 다른 화면을 만드는 기능이에요. 같은 화면을 오래 켜 두면 모니터에 번인(burn-in) 현상(화소가 일부 타서 잔상이 남는 현상)이 나타나기도 하는데, 이는 모니터 화면 수명에 좋지 않습니다. 그래서 "화면보호기(screen saver)"라는 프로그램이 생긴겁니다. 우리는 이 기능을 이용할 거에요. 먼저 바탕화면 빈 곳에 마우스 오른쪽 버튼을 누른 후, "새로 만들기(W) -> 바로 가기(S)"를 선택합니다. 그럼 다음과 같은 창이..
프로그램 수행 시간을 재기 위해서 프로그램을 작성할 수도 있지만 이를 위한 프로그램도 있다. 아래 사이트에서 Windows Server 2003 Resource Kit Tools를 다운로드하면 timeit이라는 프로그램을 사용할 수 있다. https://www.microsoft.com/en-us/download/confirmation.aspx?id=17657 timeit의 실행 예는 다음과 같다. 위 스크린샷은 "help /?"의 수행 시간을 잰 결과이다.
Windows의 명령 프롬프트(cmd)에서도 Unix의 bash처럼 for 루프를 사용할 수 있다. 사용법은 다음과 같다.> for %f in (*.txt) do echo %f위 명령어는 현재 폴더 내의 모든 텍스트파일(.txt) 이름을 출력하는 것이다.확장자를 제외한 기본이름(basename)만 출력하고 싶다면 '%~n변수명' 형태를 쓰면 된다.> for %f in (*.txt) do @echo %~nf현재 폴더 내의 모든 서브폴더에 대해서 같은 일을 하려면 /r 옵션을 사용하면 된다.> for /r %f in (*.txt) do echo %f구체적인 예로 모든 텍스트파일(.txt)을 unix 형식으로 바꾸고 싶다면 다음과 같이 쓸 수 있다(vim이 설치되어 있어야 함).> for %f in (*.tx..