>  기사  >  운영 및 유지보수  >  리눅스에서 파일을 실행하는 방법

리눅스에서 파일을 실행하는 방법

藏色散人
藏色散人원래의
2019-11-13 10:03:0512390검색

리눅스에서 파일을 실행하는 방법

리눅스에서 .sh 파일 실행하기

리눅스에서 .sh 파일 실행하기

1. .sh 파일은 텍스트 파일이므로 실행해야 합니다. 실행 권한을 부여하려면 chmod a+x xxx.sh를 사용하십시오.

bash 스크립트인가요?

touch test.sh #을 사용하여 test.sh 파일을 만들 수 있습니다.

vi test.sh # test.sh 파일 편집

콘텐츠 추가

#! /bin/bash
mkdir test

저장하고 종료합니다.

chmod a+x test.sh # test.sh 실행 권한 부여

예를 들어 test,sh 파일은 /home/work 파일 아래에 있습니다.

실행

방법 1 자체 디렉터리에서 실행

Enter cd /home /workwen 파일 아래에서 ./test.sh

명령을 실행하면 현재 디렉터리에 "test" 디렉터리가 생성됩니다.

방법 2 절대적인 힘으로 실행

/home/work/test.sh 실행

방법 3 자체 디렉터리에서 실행

sh test.sh

최종 제안:

C 코드 사용

1.man SH an man sh SH 소개 좀 보세요~

추천 : "

linux tutorial

" linux.sh 문법 소개 :

1 시작 프로그램은 다음과 같아야 합니다 다음 줄로 시작합니다(파일의 첫 번째 줄에 배치해야 함):

#!/bin/sh

기호 #!는 그 뒤에 있는 매개변수가 다음을 실행하는 데 사용되는 프로그램임을 시스템에 알리는 데 사용됩니다. 파일. 이 예에서는 /bin/sh를 사용하여 프로그램을 실행합니다.

스크립트 작성이 완료되면 스크립트를 실행하려면 실행 가능하게 만들어야 합니다.

스크립트를 실행 가능하게 만들려면:

./filename으로 실행할 수 있도록 chmod +x 파일 이름을 컴파일합니다.

댓글 2개

쉘 프로그래밍을 할 때 #으로 시작하는 문장은 이 줄 끝까지의 코멘트를 나타냅니다. 프로그램에 주석을 사용하는 것이 좋습니다.

코멘트를 활용하면 오랫동안 스크립트를 사용하지 않았더라도 짧은 시간 안에 스크립트의 기능과 작동 원리를 이해할 수 있습니다.

3 변수

다른 프로그래밍 언어에서는 변수를 사용해야 합니다. 쉘 프로그래밍에서는 모든 변수가 문자열로 구성되므로 변수를 선언할 필요가 없습니다. 변수에 값을 할당하려면 다음과 같이 작성할 수 있습니다:

#!/bin/sh

#변수에 값 할당:

a=”hello world”

# 이제 변수 a의 내용을 인쇄합니다. :

echo “A는 다음과 같습니다:"

echo $a

때때로 변수 이름은 다음과 같이 다른 텍스트와 쉽게 혼동됩니다:

num=2

echo "this is the $numnd"

이것은 인쇄되지 않습니다 out "this is the 2nd" ", 그러나 "this is the "만 인쇄합니다. 왜냐하면 쉘이 변수 numnd의 값을 검색하지만 이 변수에는 값이 없기 때문입니다. 중괄호를 사용하여 num 변수를 인쇄하고 싶다고 쉘에 알릴 수 있습니다:

num=2

echo “this is the ${num}nd”

이것은 인쇄됩니다: this is the 2nd

4 환경 변수

내보내기 키워드로 처리되는 변수를 환경 변수라고 합니다. 환경 변수는 일반적으로 로그인 스크립트에서만 사용되므로 논의하지 않습니다.

5 셸 명령 및 프로세스 제어

셸 스크립트에서는 세 가지 유형의 명령을 사용할 수 있습니다.

1) Unix 명령:

모든 Unix 명령을 셸 스크립트에서 사용할 수 있지만 상대적으로 더 일반적으로 사용되는 명령이 여전히 있습니다. . 이러한 명령은 일반적으로 파일 및 텍스트 작업에 사용됩니다.

일반적으로 사용되는 명령 구문 및 기능

echo “some text”: 화면에 텍스트 내용 인쇄

ls: 파일 목록

wc –l 파일 wc -w 파일 wc -c 파일: 줄 수 계산 파일에 포함된 단어 수를 계산합니다. 파일에 포함된 문자 수를 계산합니다.

cp sourcefile destfile: 파일 복사

mv oldname newname: 파일 이름 바꾸기 또는 파일 이동

rm 파일: 파일 삭제

grep 'pattern' 파일: 파일 내에서 검색 문자열 예: grep 'searchstring' file.txt

cut -b colnum 파일: 표시할 파일 내용 범위를 지정하고 이를 표준 출력 장치로 출력합니다. 예: 출력. 각 줄의 5~9번째 문자 - b5-9 file.txt는 cat 명령과 혼동해서는 안 됩니다.

이들은 완전히 다른 두 가지 명령입니다.

cat file.txt: 파일 내용을 표준 출력 장치로 출력합니다( 화면)

file somefile: 파일 형식 가져오기

read var: 사용자에게 입력을 요청하고 입력을 변수에 할당

sort file.txt: file.txt 파일의 줄 정렬

uniq: 중복 삭제 다음과 같이 텍스트 파일에 나타나는 줄: sort file. txt | uniq

expr: 수학 연산 수행 예: 2와 3을 더하면 expr 2 "+" 3

find: 파일 검색. 파일 이름 찾기 . -name 파일 이름 -print

tee: 다음과 같이 표준 출력 장치(화면) 및 파일에 데이터를 출력합니다. somecommand | tee outfile

basename 파일: basename /bin과 같이 경로 없이 파일 이름을 반환합니다. /tux는 tux

dirname 파일을 반환합니다. 예: dirname /bin/tux는 /bin

헤드 파일을 반환합니다. 처음 몇 개를 인쇄합니다. 텍스트 파일 줄

# 🎜🎜#tail 파일: 텍스트 파일의 마지막 몇 줄 인쇄

sed: Sed는 기본 검색 및 바꾸기 프로그램입니다. 표준 입력(예: 명령 파이프)에서 텍스트를 읽고

결과를 표준 출력(화면)으로 출력할 수 있습니다. 이 명령은 정규식(참조 참조)을 사용하여 검색합니다. 셸의 와일드카드와 혼동하지 마세요. 예: linuxfocus를 LinuxFocus로 교체: cat text.file | sed ’s/linuxfocus/LinuxFocus/’ >newtext.file

awk: awk는 텍스트 파일에서 필드를 추출하는 데 사용됩니다. 기본적으로 필드 구분 기호는 공백입니다. -F를 사용하여 다른 구분 기호를 지정할 수 있습니다.

cat file.txt | awk -F, '{print $1 "," $3}'여기서 첫 번째와 세 번째 필드를 동시에 인쇄하기 위해 필드 구분 기호로 사용합니다. 파일 내용이 다음과 같은 경우: Adam Bor, 34, IndiaKerryMiller, 22, USA, 명령 출력은 다음과 같습니다: Adam Bor, IndiaKerry Miller, USA

2) 개념: 파이프라인, 리디렉션 및 백틱#🎜 🎜#

시스템 명령은 아니지만 정말 중요한 명령입니다.

파이프(|)는 한 명령의 출력을 다른 명령의 입력으로 사용합니다.

grep "hello" file.txt | wc -l

file.txt에서 "hello"가 포함된 줄을 검색하고 줄 수를 계산합니다.

여기서 grep 명령의 출력은 wc 명령의 입력으로 사용됩니다. 물론 여러 명령을 사용할 수도 있습니다.

리디렉션: 명령 결과를 표준 출력(화면) 대신 파일로 출력합니다.

> 파일에 쓰고 이전 파일을 덮어씁니다.

>> 이전 파일 내용을 유지하면서 파일 끝에 추가합니다.

백슬래시

백슬래시를 사용하여 한 명령의 출력을 다른 명령의 명령줄 매개 변수로 처리할 수 있습니다.

명령:

find . -mtime -1 -type f -print

은 지난 24시간을 찾는 데 사용됩니다(-mtime -2 지난 48시간 이내에 수정된 파일을 의미합니다). 발견된 모든 파일을 하나의 패키지로 패키징하려면 다음 Linux 스크립트를 사용할 수 있습니다:

#!/bin/sh

# 틱은 백틱입니다(` ) 일반 따옴표 아님('):

tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`

3) 프로세스 제어# 🎜 🎜#

1.if

조건이 true인 경우 "if" 표현식은 then 이후의 부분을 실행합니다.

if ….then#🎜🎜 #

….

elif ….; then

….

else

….# 🎜 🎜#

fi

대부분의 경우 테스트 명령을 사용하여 조건을 테스트할 수 있습니다. 예를 들어 문자열을 비교하고, 파일이 존재하는지, 읽을 수 있는지 등을 확인할 수 있습니다.

일반적으로 "[ ]"는 조건부 테스트를 나타내는 데 사용됩니다. 여기의 공백은 중요합니다. 대괄호 사이에 공백이 있는지 확인하십시오.

[ -f "somefile" ] : 파일인지 확인

[ -x "/bin/ls" ] : /bin/ls가 존재하고 파일인지 확인 사용 가능한 실행 권한

[ -n "$var" ] : $var 변수에 값이 있는지 확인

[ "$a" = "$b" ] : 결정 $a 와 $b 가 같은지 여부 ​​

man 테스트를 실행하여 테스트 표현식으로 비교하고 판단할 수 있는 모든 유형을 확인합니다.

다음 스크립트를 직접 실행합니다:

#!/bin/sh

if [ "$SHELL" = "/bin/bash" ] ; then

echo “귀하의 로그인 쉘은 bash입니다(bourne again 쉘)”

else

echo “귀하의 로그인 쉘은 bash가 아니지만 $ SHELL”

fi

변수 $SHELL에는 /bin/bash와 비교한 로그인 셸의 이름이 포함되어 있습니다.

단축 연산자

C 언어에 익숙한 친구들은 다음 표현을 좋아할 것입니다:

[ -f "/etc/shadow" ] && echo “이 컴퓨터는 섀도우 비밀번호를 사용합니다”

여기서 &&는 단축 연산자입니다. 왼쪽의 표현식이 true이면 오른쪽의 명령문이 실행됩니다.

논리연산의 AND 연산이라고도 생각하시면 됩니다. 위의 예는 /etc/shadow 파일이 존재하는 경우 "이 컴퓨터는 섀도우 비밀번호를 사용합니다"를 인쇄함을 의미합니다. 쉘 프로그래밍에서도 동일한 OR 연산(||)을 사용할 수 있습니다. 예는 다음과 같습니다.

#!/bin/sh

mailfolder=/var/spool/mail/james

[ -r "$ mailfolder" ]' '{ echo “$mailfolder를 읽을 수 없습니다” ; 1 종료; }

echo “$mailfolder에 보낸 메일이 있습니다:”

grep “^From ” $ mailfolder

이 스크립트는 먼저 메일 폴더를 읽을 수 있는지 여부를 확인합니다. 읽을 수 있으면 파일의 "From" 줄을 인쇄합니다. 읽을 수 없으면 OR 연산이 적용되고 오류 메시지를 인쇄한 후 스크립트가 종료됩니다. 여기에 문제가 있습니다. 즉, 두 개의 명령이 있어야 합니다:

◆오류 메시지 인쇄

◆프로그램 종료

익명 함수 형태로 두 개의 명령을 하나의 명령으로 묶기 위해 중괄호를 사용합니다. 일반적인 기능은 아래에 언급되어 있습니다.

if 표현식을 사용하면 AND 및 or 연산자 없이 무엇이든 할 수 있지만 AND or 연산자를 사용하는 것이 훨씬 더 편리합니다.

위 내용은 리눅스에서 파일을 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.