배운것/LINUX

리눅스 쉘 마스터 - 기초 명령어

SangPedia 2021. 9. 14. 13:42

1. echo의 사용법

  • 인용부호 " " ,' '를 사용해 공백 문자 1개 이상일 때 사용할 수 있다.
echo hello world hello world echo "hello world" hello world echo hello world hello world
  • -e 옵션은 특수문자를 사용할 때 제어문자를 사용할 때 유용하고 줄 바꿈 \n의 개수만큼 가능하다.
echo -e "hello world \n\n\n" hello world echo "hello world \n\n\n" hello world \n\n\n
  • -n은 줄바꿈 처리가 되지 않는다
  • echo $`\a`
  • echo * 명령어로 파일 목록을 볼 수 있다. (=ls -ld)
  • 화면 출력으로 사용 print와 동일하다.

 

2. 명령의 구조

  • ls -l 자세한 목록 보기 명령어이다.
  • ls -l /usr 명령어, 옵션, 전달 인자 순으로 나타나며 구분자 스페이스로 구분한다.
  • ls —l /usr 하이픈 2개를 이용할 수 있는데 기능상으로는 차이점이 없다.

 

3. glob과 공백

  • touch : 파일이 없으면 빈파일로 생성해주고 파일이 존재한다면 현재 시간으로 파일의 수정 시각을 업데이트 해준다.
mkdir mydir

cd mydir

ls
touch orange apple banana

ls
apple   banana  orange

ll
total 0
-rw-r--r--    1 testwork UsersGrp         0 Sep 13 11:31 apple
-rw-r--r--    1 testwork UsersGrp         0 Sep 13 11:31 banana
-rw-r--r--    1 testwork UsersGrp         0 Sep 13 11:31 orange
  • rm * (globe)를 활용하여 현재 디렉터리의 모든 파일을 제거한다.
rm apple rm * ls

 

4. 인용문

  • 공백 문자에 ' '를 이용하지 않으면 공백 기준으로 파일이 생성된다. 따라서, 인용문(' ')을 이용한다.
  • ' ' or " " 사용 가능하다.
rm 'Gone With the wind.mp3'
rm: can't remove 'Gone With the wind.mp3': No such file or directory

touch 'Gone With the wind.mp3'
ls
Gone With the wind.mp3
touch Gone With the wind.mp3

ls
Gone                    Gone With the wind.mp3  With                    the         
wind.mp3

 

5. [..]와 테스트

  • test 명령어 [ ] 대괄호는 테스트하는 개념으로 사용되며 현재 해당 디렉터리에 파일이 있는지 확인한다.
  • 리눅스에서 공백 문자를 사용해야 하는 때를 잘 아는 것은 매우 중요하다.
cd/ ~/desktop
ls
cd mydir: [ -f "Gone With the wind.mp3" ] 
cd mydir; [-f 'Gone With the wind.mp3']
bash: cd: mydir: No such file or directory
bash: [-f: command not found
# 대괄호를 내용에 붙어서 사용하면 error를 발생 함

 

6. 명령어(wc)

# 지정한 파일의 단어 갯수
wc -w fruits.txt

# 라인 의 갯수
wc -l fruits.txt

# 해당 파일의 가장 긴 단어의 글자수
wc -L fruits.txt

# 해당 파일에 몇개의 글자수가 있는지 확인
wc -c fruits.txt

 

7. 명령어(tail)

  • + 연산자를 이용해서 해당 라인부터 맨 마지막까지 출력하도록 한다.
pwd
seq 1 200 > num200

cat num200

# 뒤에 3개 출력
tail -n 3 num200
198
199
200

# 10번째 부터 출력
tail -n +10 num200
10
11
12
...
200

 

8. 별칭(alias)

  • 단축 명령어로 사용, h 만 입력하면 history를 입력한 것과 동일하며 작동하며 편리합니다.
  • alias는 전달 인자(argument)를 넘겨주지 못합니다. 함수(function)가 이에 대한 대안입니다.
  • minicom은 Unix와 유사한 운영체제를 위한 텍스트 기반 모뎀 제어 및 터미널 에뮬레이터 프로그램입니다.
    (CTRL+A을 누르고 X 입력으로 종료)
    # sudo apt-get install minicom  명령어로 설치
  • 스크립트 파일 내부에서 사용이 불가능하다.
# history h로 단축하기
alias h='history'

# -p를 제외하고 mkdir 사용하기 (하위폴더까지 생성)
alias mkdir='mkdir -p'

mkdir dir123/dir1/dir2/dir3

# minicom 사용을 alias로 단축하기
alias m='minicom -w -D/dev/ttyS0'
m 

alias m='minicom -w -D/dev/ttyS0'
alias m1='minicom -w -D/dev/ttyS1'
alias m2='minicom -w -D/dev/ttyS2'

# 함수 사용의 예
function mm() { minicom -w -D/dev/ttyS${1}; }
mm 1
mm 2

 

9. 명령어(pushd/popd)

  • pushd 명령어는 해당 경로를 stack에 저장하며 중첩하여 사용할 수 있다.
  • popd 명령어를 이용해 이전 경로로 돌아가며 원래 경로로 복귀하는 방법으로 사용 가능하다.
  • cd - : 명령어로 두 개의 경로를 왔다 갔다 할 수 있다.
pwd
/home/user/Desktop

pushd .
/home/testworks /home/testworks

cd /etc/

pushd .
/etc /etc /home/testworks

popd
/home/testworks

cd /var/log

popd

 

10. 명령어(printf)

  • 화면에 형식화된 출력이 가능하다. ex) "%02d"
  • 다음과 같은 용도로 사용 가능하며, -v legend 변수의 출력 결과가 변수에 저장됩니다.
  • 변수의 선언 : 대입 연산자 앞과 뒤에 공백 문자가 없는 것이 특히 중요합니다. ex) name=michael
  • 변수의 참조 : 선언한 변수를 참조할 때는 꼭 달러 싸인($)을 적어준다.
printf "%02d" 1
01

printf "%05d\n" 1
00001

name=michael; printf -v legend "%s jackson" $name; echo $legend
michael jackson

 

11. 명령어(read)

  • 사용자로부터 입력을 받는다.
  • 입력값이 v 라는 변수에 저장된다.
  • -n 1  1 문자만 입력 받음 입력 후 엔터키를 누르지 않아도 되는 장점이 있다.
  • -s  silent 사용자의 입력을 화면에 에코 하지 않는다.
  • -t 3  3초 동안 입력이 가능하다.
pwd
/home/user/Desktop

read num
12345

echo $num
12345

read -p "what is your phone number" v
what is your phone number010-123-1234

echo $v
010-123-1234

read -n 1 -p "Are you over 16?" v
Are you over 16?

read -s -n 1 -p "Are you ove 16?" v

read -s -n 1 -p -t 3 "Are you ove 16?" v

 

12. while.. do.. done

  • while과 do 사이에는 참과 거짓을 나누는 TEST (비교를 위한 명령어나 키워드가 사용되는 곳)
    평가가 참이 됐을 때 do와 done 사이에 결과를 실행한다.
no=1; while (( no < 10 )); do printf "%02d\n" $no; ((no++)); done
01
02
03
..
09

 

13. 실행파일을 사용하는 방법 4가지

  • 첫 번째, 기존 실행 파일들이 존재한 경로에 복사하여 사용하기 (./ 없이 스크립트 이름만으로 실행이 가능)
    ex) cp (파일명) /usr/bin
  • 두 번째, pwd 입력 후 실행 파일의 전체 경로를 표현하기
  • 세 번째, 실행 파일의 경로를 환경 변수 PATH에 추가하기 ex) PATH=$PATH:경로 
  • 네 번째, 현재 경로에서 실행하기  ex) ./helloworld.sh
ehco 'echo hello world' > helloworld.sh
chmod +x hellowworld.sh


1)
sudo cp helloworld.sh /usr/bin
[sudo] password for user: root
# sudo 루트권한 부여 : 루트권한을 필요로 하는 명령을 실행할 때 사용

helloworld.sh
hello world

sudo rm /usr/bin/helloworld.sh
helloworld.sh
helloworld
#지우고 나서도 되는 이유는 PATH 안에 넣어 놓았기 때문임

2)
pwd
/home/user/Desktop/shell_cmd

/home/user/Desktop/sehll_cmd/helloworld.sh
hello world

3)
echo $PATH
/usr/local/sbin:/usr/local/bin: /usr/sbin: /usr/bin:/sbin:/bin:/usr/games:/usr/local/games

PATH=$PATH:~/Desktop/shell_cmd

echo $PATH
/usr/local/sbin:/usr/local/bin: /usr/sbin: /usr/bin:/sbin:/bin:/usr/games:/usr/local/games: /home/user/Desktop/shell_cmd

4)
./helloworld.sh
hello world

 

반응형