리눅스 명령어를 파일로 출력하고 싶습니다.

lkjt의 이미지

쉘에서 탭키 두번 누르면 사용가능한 모든 명령어가 나오는데 그것들 파일로 출력하고 싶은데요..

어떻게 출력해야할지 모르겠습니다.

mrjh76의 이미지

#echo $PATH 명령으로 디렉토리 확인하고...
#ls 디렉토리 >> file [모든 디렉토리 반복]

위에 같이 하면 되죠?

스크립트로 자동으로 하면...

#!/bin/sh

CNT=0
TPATH=`echo $PATH | awk -F\: '{printf NF}'`

while [ $TPATH != $CNT ];
do
        let CNT=CNT+1
        DIR=`echo $PATH | awk -F':' '{printf $'${CNT}'}'`
        [ -d "$DIR" ] && FILE=`ls $DIR`
        if [ -d "$DIR" ]&&[ -n "$FILE" ]; then
                echo "[ $DIR ]"
                for x in $FILE
                do
                        [ -x $DIR/$x ] && printf "$x\n"
                done
        fi
done
쿠크다스의 이미지

find $(echo $PATH | tr ":" " ") -maxdepth 1 -mindepth 1 -print

과자가 아닙니다.
cuckoo dozen, 즉.12마리의 뻐꾸기란 뜻입니다.

무한포옹의 이미지

mrjh wrote:
#echo $PATH 명령으로 디렉토리 확인하고...
#ls 디렉토리 >> file [모든 디렉토리 반복]

위에 같이 하면 되죠?

스크립트로 자동으로 하면...

#!/bin/sh

CNT=0
TPATH=`echo $PATH | awk -F\: '{printf NF}'`

while [ $TPATH != $CNT ];
do
        let CNT=CNT+1
        DIR=`echo $PATH | awk -F':' '{printf $'${CNT}'}'`
        [ -d "$DIR" ] && FILE=`ls $DIR`
        if [ -d "$DIR" ]&&[ -n "$FILE" ]; then
                echo "[ $DIR ]"
                for x in $FILE
                do
                        [ -x $DIR/$x ] && printf "$x\n"
                done
        fi
done

다 좋은데.. ls -R 은 어디다 써먹죠?

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

lkjt의 이미지

쿠크다스 wrote:
find $(echo $PATH | tr ":" " ") -maxdepth 1 -mindepth 1 -print

find $(echo $PATH | tr ":" " ") -maxdepth 1 -mindepth 1 -print | sed 's/.*\/\(.*\)/\1/' | sort

이건 명령어만

쿠크다스의 이미지

lkjt wrote:
쿠크다스 wrote:
find $(echo $PATH | tr ":" " ") -maxdepth 1 -mindepth 1 -print

find $(echo $PATH | tr ":" " ") -maxdepth 1 -mindepth 1 -print | sed 's/.*\/\(.*\)/\1/' | sort

이건 명령어만


이것도 find의 옵션으로 가능합니다.
-printf "%f\n"한번 붙여보세요.
이 경우 -print는 제거해도 될겁니다.

명령으로는, basename이라는 게 있죠.
ex) basename /usr/ls

과자가 아닙니다.
cuckoo dozen, 즉.12마리의 뻐꾸기란 뜻입니다.

lkjt의 이미지

쿠크다스 wrote:
lkjt wrote:
쿠크다스 wrote:
find $(echo $PATH | tr ":" " ") -maxdepth 1 -mindepth 1 -print

find $(echo $PATH | tr ":" " ") -maxdepth 1 -mindepth 1 -print | sed 's/.*\/\(.*\)/\1/' | sort

이건 명령어만


이것도 find의 옵션으로 가능합니다.
-printf "%f\n"한번 붙여보세요.
이 경우 -print는 제거해도 될겁니다.

명령으로는, basename이라는 게 있죠.
ex) basename /usr/ls

엄청 편하군요...

감사합니다.~!

happibum의 이미지

다 해결된것같지만... 직관적인 방법

emacs를 켠다.
M-x eshell
tab tab
*Completions* 버퍼의 내용을 파일로 저장한다...

또는...

screen실행(savelines충분할것...)
tab tab y
space space .......
C-a [
C-b C-b ......
시작하는데서 Space, 끝나는데서 space
vi
i
C-a ]
내용 저장