리눅스에서 실행파일앞에 ./과 sh를 붙이는 이유를 알고 싶습니다.

bigblues의 이미지

공부 시작한지 몇달 안되는 초보 입니다^^;

공부하면 할 수록 모르는게 많아지는 리눅스내요^^~

실행파일에 실행권한, 읽기권한을 주고

./실행파일명

또는

sh 실행파일명

이렇게 해야지 실행이 되고 나머지는 안되는데요.

./와 sh를 넣어주는 이유를 좀 알수 있을까요? 궁금합니다^^

winchild의 이미지


리눅스에 로그인해서 ls -al 를 해보세요.

[winchild@zerozone01 ~]$ ls -la
합계 1100
drwx------ 6 winchild users 4096 1월 26 19:01 .
drwxrwxr-x 11 winchild users 4096 1월 3 22:14 ..
-rw------- 1 winchild users 10889 1월 26 19:01 .bash_history
-rw-r--r-- 1 winchild users 33 12월 11 20:23 .bash_logout
-rw-r--r-- 1 winchild users 443 1월 20 15:51 .bash_profile
-rw-r--r-- 1 winchild users 124 12월 11 20:23 .bashrc
-rw------- 1 winchild users 35 12월 15 10:50 .lesshst
drwxr-xr-x 4 winchild users 4096 12월 11 20:23 .mozilla
-rw------- 1 winchild users 8468 1월 20 17:28 .mysql_history
drwx------ 2 winchild users 4096 12월 15 16:57 .ssh
-rw------- 1 winchild users 12943 1월 26 19:01 .viminfo
-rw-r--r-- 1 winchild users 9 12월 15 16:14 .vimrc
-rw-r--r-- 1 winchild users 20 12월 15 15:51 .virmrc
-rw-r--r-- 1 winchild users 658 12월 11 20:23 .zshrc
-rw-r--r-- 1 winchild users 1963 1월 14 14:52 calendar.gif
-rw-r--r-- 1 winchild users 36597 12월 30 16:35 g4_onenetview.sql

그냥 ls 를 할때와는 많이 다르지요?

[winchild@zerozone01 ~]$ ls -l
합계 1012
-rw-r--r-- 1 winchild users 1963 1월 14 14:52 calendar.gif
-rw-r--r-- 1 winchild users 36597 12월 30 16:35 g4_onenetview.sql

즉 앞에 . (dot) 가 포함된 파일들이 나타납니다.
이것은 hidden 파일을 말하는 것인데 흥미로운것으로 . (single dot) 와 .. (double dot) 가 있습니다.
single dot 는 현재의 디렉토리를 나타내며, double dot 는 상위디렉토리를 나타냅니다.

이것을 이용하여 리눅스 파일시스템은 경로를 명확해 해주어야 합니다.
즉 "./command" 은 현재의 디렉토리에 있는 "command" 를 실행하라는 것입니다. 앞의 "./" 를 입력하지 않으려면 PATH 를 지정해 주면 됩니다.

쉘에 따라 다르지만 bash 가 보편적이므로

export PATH=./:$PATH

하면 됩니다. 윈도우즈는 기본적으로 현재의 디렉토리를 지정해 주지 않아도, 현재디렉토리를 최우선으로 찿기때문에 필요없는것 이지만 기본원리는 마찬가지 입니다. 리눅스에서 명확하게 지정하도록 하였으며, 이것은 다른 디렉토리에 같은 화일명이 있을 경우 사용자에게 어느 디렉토리의 파일을 실행시킬것인가의 주도권을 이양하는 의미도 있습니다.

근데, 그냥 공부하지 마시고, 리눅스 기본 도서는 한권정도 사서, 공부하시기 바랍니다. 가능하면 두꺼운책 사세요. 단순 따라하기보다, 지금 제가 이야기 하는것과 같은 리눅스의 철학적인 면을 좀 아셔야 할 필요가 있습니다.

- 겨울아찌 -
winchild@kldp.org

- 겨울아찌 -
winchild@gmail.com

블루스크린의 이미지

보안문제상 현재경로의 path 지정은 바람직하지 않습니다

ls 했을때 현재디렉토리에 ./ls라는 악성코드가 있으면 문제가 심각해지는거죠

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

bigblues의 이미지

뇌를자극하는 페도라
리눅스 실무바이블 3.0
이렇게 보고 하는데 이해가 안가는 부분이 좀 많아서요.

하다보면 자꾸 인터넷 검색해서 기초를 다시 보게 되더군요.

두권다 실무를 다루는 책이라서 기초가 좀 덜나온듯합니다 ㅠㅠ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.