쉘 명령의 소스 코드를 어떻게 읽습니까?
리눅스 명령으로 작성된 실제 소스 코드를 읽고 싶습니다. 나는 그것들을 사용하여 약간의 경험을 얻었고 이제는 내 컴퓨터와 더 깊은 수준에서 상호 작용할 때라고 생각합니다.
http://directory.fsf.org/wiki/GNU 에서 몇 가지 명령을 찾았습니다 . 불행히도 나는 시작하기에 충분히 쉬운 것처럼 보이는 'ls'와 같은 기본 명령을 찾을 수 없었습니다.
'ls'와 같은 간단한 쉘 명령의 소스 코드를 정확히 어떻게 읽습니까? 우분투 12.04에서 실행 중입니다.
이러한 기본 명령은 모두 coreutils
패키지의 일부입니다 .
필요한 모든 정보는 여기에서 찾을 수 있습니다.
http://www.gnu.org/software/coreutils/
최신 소스를 다운로드하려면 git을 사용해야합니다.
git clone git://git.sv.gnu.org/coreutils
Ubuntu 컴퓨터에 git을 설치하려면 apt-get을 사용해야합니다 (git은 표준 Ubuntu 설치에 포함되어 있지 않습니다).
sudo apt-get install git
사실, 여기 ls
명령의 특정 소스를 찾을 수 있습니다 .
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c
'쉽게 쉽게'명령에 대한 4984 코드 줄만 ls
... 여전히 읽기에 관심이 있습니까? 행운을 빕니다! :디
다음의 인기있는 프로그램의 소스로 직접 연결되는 링크 coreutils
:
cat
(767 라인)chmod
(570 라인)cp
(2912 라인)cut
(831 라인)date
(570 라인)df
(1718 라인)du
(1112 라인)echo
(272 라인)head
(1070 라인)hostname
(116 라인)kill
(312 라인)ln
(651 라인)ls
(4954 라인)md5sum
(878 라인)mkdir
(306 줄)mv
(512 라인)nice
(220 줄)pwd
(394 라인)rm
(356 라인)rmdir
(252 라인)shred
(1325 라인)tail
(2301 줄)tee
(220 줄)touch
(437 라인)wc
(801 라인)whoami
(91 라인)
ls
coreutils의 일부입니다. git으로 얻을 수 있습니다 :
git clone git://git.sv.gnu.org/coreutils
이 페이지 에서 다른 패키지 (아래로 스크롤)와 함께 coreutils를 찾을 수 있습니다.
http://suckless.org 에서 실제로 더 많은 제정신 소스를 제공 sbase
합니다.
git clone git://git.suckless.org/sbase
그들은 예를 들면, 명확 스마트, 간단하고 suckless 있습니다 ls.c
단지 369 LOC있다
그 후 좀 더 복잡한 GNU 코드를 이해하는 것이 더 쉬울 것입니다.
다른 게시물에서 언급 한 CoreUtils는 내가 생각하는 대부분의 기능을 실제로 구현하지는 않습니다. 대부분의 경우 데이터를 검색하는 실제 기능에 대한 프론트 엔드를 제공합니다.
lib-subdirectory 의 실제 소스 코드를 사용하여 Gnulib 를 기반으로 빌드됩니다.
다음 명령을 사용하여 github에 가질 수 있습니다
git clone https://github.com/coreutils/coreutils.git
You can find all the source codes in the src folder.
You need to have git installed.
Things have changed since 2012, ls
source code has now 5309 lines
cd ~ && apt-get source coreutils && ls -d coreutils*
You should be able to use a command like this on ubuntu to gather the source for a package, you can omit sudo
assuming your downloading to a location you own.
참고URL : https://stackoverflow.com/questions/11528267/how-do-i-read-the-source-code-of-shell-commands
'programing tip' 카테고리의 다른 글
페이지에서 총 시계 수를 계산하는 방법은 무엇입니까? (0) | 2020.06.18 |
---|---|
iPhone UIView 애니메이션 모범 사례 (0) | 2020.06.18 |
파일 크기가 구성된 제한 (2560000)을 초과합니다. 코드 통찰력 기능을 사용할 수 없습니다 (0) | 2020.06.18 |
for 루프 중에 목록 항목을 수정하는 방법은 무엇입니까? (0) | 2020.06.18 |
상태 표시 줄 아래에 겹치는 툴바 (0) | 2020.06.18 |