-,-a,--all: 전체 파일을 검색한다. -f,--print-file-name: 각 문자열 이전에 파일명을 출력한다. -min-len,-nmin-len,--bytes=min-len: 최소 문자열의 길이(min-len)를 지정한다. 기본값은 4이다. -o:-t옵션과 비슷하다. -tradix,--radix=radix: 각 문자열 이전에 파일 안에 오프셋(radix)을 출력한다.
아래는 지정 가능한 형식이다. d : 오프셋을 십진수로 기록한다. o : 오프셋을 8진수로 기록한다. x : 오프셋을 16진수로 기록한다. --target=format: 시스템의 기본 코드 포맷(format)을 지정한다. -v,--version: 버전 정보를 출력한다.
설명 및 예제
strings명령어는 오브젝트 또는 이진 파일에서 인쇄 가능한 문자열을 출력한다. 최소 문자열의 길이는 4이다. 먼저cat명령어로hello.c원본 파일을 살펴보자.cat명령은 원본 파일을 있는 그대로 출력한다.
아래와 같이strings명령어는hello.c파일에서 네 글자 이상의 문자열만을 검색하여 출력한다.
아래와 같이 지정한 문자열을 기준으로 내용을 출력할 수 있다. 지정한 옵션 -17은 최소 문자열로 17자 이상의 문자열만을 출력한다. 이 옵션은-n17 혹은--bytes=17로도 지정할 수 있다.
man[-옵션] [section] [-Mpath] [-Ppager] [-Slist] [-msystem] [-pstring] 명령어
-a: 찾고자 하는 명령어의 검색된 매뉴얼 페이지를 모두 출력한다. -c: 최신의cat페이지가 있어도 소스 매뉴얼 페이지를 재구성한다. -C파일명 : 매뉴얼 페이지의configure파일을 지정한다. 기본은 /etc/man.config파일이다. -d: 실제 매뉴얼을 보여주지 않고, 디버깅 정보 구성을 출력한다. -D:-d옵션의 구성을 출력한 후에 매뉴얼을 출력한다. -f:whatis명령과 동일하다. -h: 사용법을 출력한다. -k:apropos명령과 동일하다. -K: 모든 매뉴얼 페이지에서 지정한 문자를 찾는다. -Mpath: 매뉴얼 페이지 검색을 위한path를 지정한다. -P페이지 : 지정한pager로 페이지를 지정한다. -pstring:nroff혹은troff의 앞에 실행하는 전처리기의 순서를 지정한다. -S목록 : 콜론으로 구분한 세션 리스트 -t: /usr/bin/groff으로 페이지 형식을 출력한다. -w: 찾고자 하는 문자의 매뉴얼 페이지가 있는 위치를 출력한다. -W:-w와 비슷하지만, 추가 정보 없이 한 행에 하나씩 표시한다.
설명 및 예제
man은 명령어의 자세한 사용법이나 의미를 알 수 없을 경우 사용한다. 아래는httpd의man파일들을 검색하여 해당 명령어의 사용법을 출력한다.
-K옵션은 지정한 명령어를 포함하여 모든 매뉴얼 페이지를 출력한다. 출력된 각각의 명령어는 매뉴얼 보기(y), 매뉴얼 보지 않기(n),man명령에서 나가기(q) 중 하나를 선택할 수 있다. 아래 예제와 같이mtab관련 파일을-K옵션으로 살펴보자.
매뉴얼 페이지에는 각각의 섹션으로 나뉘어 있다. 매뉴얼 페이지의 맨 상단 괄호 안의 숫자나, 압축된 매뉴얼 페이지 파일명의 끝 숫자가 나타내는 의미이다.
섹션 번호
설명
1
실행 프로그램 혹은 셸 명령어
2
시스템 콜 (커널 제공 함수)
3
라이브러리 콜 (시스템 라이브러리 포함 함수)
4
특수 파일 (대개 /dev디렉터리 하위의 파일)
5
파일 포맷 집합 (예 : /tcpasswd)
6
게임 관련
7
매크로 패키지 집합
8
시스템 관리 명령
9
커널루틴 (비표준)
위의umount.8.gz파일에서 숫자 8의 의미는 시스템 관리에 필요한 명령이라는 뜻이다. 맨 페이지의 파일명에 포함된 숫자는 명령어의 성격을 파악 하는 중요한 판단 기준이 된다. 아래와 같이 출력되는 맨 페이지 내용을 텍스트 파일로도 저장할 수 있다.umount명령어의 맨 페이지를 텍스트로 저장해 보자.
관련 명령어
apropos: 매뉴얼 페이지 설명에 특정 단어를 포함한 명령어 나열한다(man-k명령과 같다). whatis: 찾고자 하는 명령어 단어를 검색하여 요약 설명을 보여준다(man-f명령과 같다).
출처 :
[네이버 지식백과]man(유닉스 리눅스 명령어 사전, 2010. 11. 30., 우종경, 박종오)
프로그래밍을 하다 보면 소스코드 뿐만 아니라 실제로 어떻게 실행되는가에 대한 이해가 필요하다. cpu의 동작과 os 스케쥴링에 대한 내용을 이해하고 있다면 실제적으로 컴파일의 동작을 알아봐야 한다. GNU에서 제공하는 툴중 바이너리 파일을 살펴볼 수 있는 objdump가 있다.
사용법)
objdump의 옵션 중 필요한걸 간추려 정리하도록 하겠다
-i 타겟 포맷정보 -b 포맷 지정 -s 오브젝트 파일 전체 덤프 -j 오브젝트 파일의 특정 섹션 덤프 -h 섹션헤더 덤프 -d 오브젝트 파일의 역어셈블 etc) --prefix-address : 심볼을 기준으로 상대 어드레스 표시 --show-raw-insn : 명령어 코드 표시 -l : 소스파일이 있는 경우, 소스 코드의 라인 표시 -S : 소스파일이 있는 경우, 소스 파일 내에 표시
응용 1
main 의 기계어
objdump로 간단한 프로그래밍의 기계어와 주소를 뽑아 봤다. (4004e6:)첫줄에 나오는 16진수는 메모리 주소이다 즉, cpu에서 로드할 기계어 명령어가 저장된 주소
-b,--brief: 지정한 파일명은 출력하지 않고, 파일의 유형만을 출력한다. -f,--files-from파일목록 : 파일목록에서 지정한 파일들에 대해서 명령을 실행한다. -i,--mime: 사람이 읽을 수 있는 전통적인 형식이 아니라MIME타입 문자를 출력한다(예를 들어ASCIItext를text/plain;charset=us-ascii형태로 출력한다).
-L,--dereference: 심볼릭 링크된 파일을 추적하여 원본 파일 정보를 출력한다. -m,--magic-file매직파일 : 매직파일을 지정한다(기본값은 /usr/share/file/magic이다). -v,--version: 버전 정보를 출력한다. -z,--uncompress: 압축된 파일의 내용을 출력한다. --help: 사용법을 출력한다.
설명 및 예제
file명령어는 파일 종류를 구분 짓는 유틸리티로file명령 뒤에 파일명을 입력하면ascii나text나date같은 파일 속성을 출력한다. /usr/share/magic나 /usr/lib/magic에 저장한 파일 정보를 참고하여 파일 속성을 출력한다. 아래 예제는test파일 속성을 알려준다.