리눅스

생활코딩 – 리눅스

 

https://www.youtube.com/watch?v=DsG-JWrFJTc&list=PLuHgQVnccGMBT57a9dvEtd6OuWpugF9SH

 

https://opentutorials.org/module/2538/14160

 


 

 

  1. 파일 & 디렉토리 1
  2. 파일 & 디렉토리 2
  3. –help 와 man
  4. 필요한 명령을 검색으로 찾는 법
  5. 파일 편집 (nano)
  6. 패키지 매니저 (apt-get 또는 yum)
  7. 파일 다운로드 : wget
  8. 소스 다운로드 : git
  9. CLI 사용 이유 – 연속 실행 (세미콜론)
  10. CLI 사용 이유 – 파이프라인
  11. IO Redirection1 : output
  12. IO Redirection2 : input
  13. IO Redirection2 : append
  14. Shell 1 intro
  15. Shell 2 : bash vs zsh
  16. Shell script

 

 


 

1. 파일 & 디렉토리 1

ls
현재 디렉토리의 파일 목록을 출력하는 명령어.
‘ls -al’ : -a 는 숨김 파일 표시, -l 은 자세히 표시

pwd
현재 위치하고 있는 디렉토리를 알려주는 명령어

mkdir
mkdir 새로 생성할 디렉토리명

 

 


 

2. 파일 & 디렉토리 2

 

cd
cd 이동할 디렉토리의 경로명

상대경로
현재 디렉토리의 위치를 기준으로 다른 디렉토리의 위치를 표현

..
부모 디렉토리를 의미합니다.

cd ..
현재 디렉토리의 부모 디렉토리로 이동하는 명령입니다.

.
현재 디렉토리를 의미

절대경로
최상위 디렉토리를 기준으로 경로를 표현하는 것을 의미합니다.
최상위 디렉토리는 루트(root) 디렉토리라고 하고 ‘/’ 입니다.
‘cd /’는 최상위 디렉토리로 이동한다는 뜻입니다.
‘cd /home/egoing’은 현재 디렉토리가 무엇이건 언제나 ‘/home/egoing’을 의미하는데 이런 식의 경로 표현을 절대경로라고 합니다.

rm
rm 파일명
rm -r 디렉토리명 // -r은 디렉토리 및 서브 디렉토리를 재귀적으로 지움

–help
명령어 뒤에 –help를 붙이면 명령의 사용설명서가 출력됩니다.

예)
ls –help
rm –help
mkdir –help
pwd –help


3. –help 와 man

명령어의 도움말을 보려면

방법1
–help 를 붙인다.

방법2
man 을 이용. 예) man ls
1) sort 검색 하려면 => /sort
2) /sort 검색 후에 n 키를 누루면 검색한 sort 를 하나씩 스크롤해준다.
3) 종료는 q

mkdir -p dir1/dir2/dir3/dir // -p 옵션은 상위 디렉토리가 없다면 만들어준다.


 

4. 필요한 명령을 검색으로 찾는 법

 

mkdir 폴더명
디렉토리 생성

cp 원본파일 대상파일
파일 복사

mv 원본파일 대상파일
파일 이동과 파일 이름 변경

 


 

5. 파일 편집 (nano)

 


 

6. 패키지 매니저 (apt-get 또는 yum)

 

sudo apt-get update (패키지 목록 다운로드)

sudo apt-cache search htop (패키지 목록에서 htop 프로그램 찾기)

top (작업관리자) q는 빠져나가기

htop (작업관리자 더 그래픽하게)

sudo apt-get (도움말)

sudo apt-get install htop (htop 설치)

sudo apt-get upgrade htop (최신 버전으로 업그레이드)

sudo apt-get upgrade (설치된 프로그램을 모두 최신 버전으로 업그레이드)

sudo apt-get remove htop (htop 삭제)

sudo htop (더 정확하게 실행, 모두 표시)

 


 

Ubuntu의 apt-get 명령어 정리

https://blog.outsider.ne.kr/346

apt-get
커맨드라인 패키지 매니저
apt-get은 패키지에 대한 인덱스 정보를 가지고 있는데 이 인덱스 정보는 /etc/apt/sources.list에 있습니다.

sudo apt-get update
최신 패키지 목록을 다운로드 합니다.

sudo apt-get upgrade
설치된 패키지 업그래이드 : 설치되어 있는 패키지를 모두 새버전으로 업그래이드 합니다.

sudo apt-get dist-upgrade
의존성 검사하며 설치하기

sudo apt-get install 패키지이름
패키지 설치

apt-get –reinstall install 패키지이름
패키지 재설치

sudo apt-get remove 패키지이름
패키지 삭제 : 설정파일은 지우지 않음

sudo apt-get –purge remove 패키지이름
설정파일까지 모두 지움

sudo apt-get source 패키지이름
패키지 소스코드 다운로드

sudo apt-get build-dep 패키지이름
위에서 받은 소스코드를 의존성있게 빌드

sudo apt-cache search 패키지이름
패키지 검사

sudo apt-cache show 패키지이름
패키지 정보 보기

apt를 이용해서 설치된 deb패키지는 /var/cache/apt/archive/ 에 설치가 됩니다.


 

7. 파일 다운로드 : wget

wget https://www.youtube.com/download (파일 다운로드)
mv download hello.jpeg (이름 변경)

wget -O paris.jpeg 주소 (파일명을 지정)

ls -l
wget –help

 


 

8. Source download : git

Source download : git (버전 관리 프로그램)

sudo apt-get install git (없다면 다운로드하라)

사용법) git clone git주소 폴더 (github 의 소스 코드들을 폴더에 복제한다)

예) git clone https://github.com/facebook/react.git react_src

 

 


 

9. CLI 사용 이유 – 연속 실행 (세미콜론)

 

세미콜론으로 한 번에 두 개 이상의 명령어 실행 가능
mkdir why;cd why;pwd

 


 

10. CLI 사용 이유 – 파이프라인

 

| : 파이프 앞의 출력을 파이프 뒤의 입력으로 보냄

nano linux.txt
cat linux.txt (화면에 출력)

grep linux linux.txt (linux가 포함된 행만을 출력)

ls –help | grep sort (앞의 출력을 뒤 grep 의 입력으로 줌)
ls –help | grep sort | grep file (sort가 포함된 줄을 찾겨 그 결과에서 file이 포함된 줄을 찾음)

ps aux (현재 실행되고 있는 프로그램의 리스트 표시)
ps aux | grep apache (apach 가 들어있는 줄만 표시)

 


 

11. IO Redirection1 : output

 

파일에 저장하는 방법

– nano 를 이용
nano ls_result.txt (텍스트를 복사해서 붙여넣는다.)

– 리다이렉션 기호 ‘>’ 를 이용
ls -l > result.txt (Standard Output) stdout
cat result.txt

모니터로 출력이 기본인데 다른 곳으로 돌린다. 리다이렉션

rm rename2.txt (파일이 없으면 에러가 뜬다.)

rm rename2.txt > result.txt (1이 생략되어 있음)
rm rename2.txt 1> result.txt (1을 써도 됨, 위와 같음)

rm rename2.txt 2> error.log (Error에 대한 Standard Error) stderr

rm rename2.txt 1> result.txt 2> error.log (두개를 결합, 정상 실행은 result.txt 에 저장, 에러가 나면 error.log에 저장)

 


12. IO Redirection2 : input

 

cat hello.txt
hello

cat (기본적으로 사용자가 키보드로 입력하는 정보를 받음) Standard Input
hi
hi (위의 입력을 모니터에 출력함)
컨트롤 + D 종료

cat hello.txt (커맨드 라인 인자)
cat < hello.txt (hello.txt를 입력으로 받음) Standard Input

head linux.txt (앞부분 일부만을 출력 10줄)
head -n1 linux.txt (1줄만을 출력, 커맨드 라인 인자)
head -n1 < linux.txt (standard input)
head -n1 < linux.txt > one.txt (표준 입력 리다이렉션, 표준 출력 리다이렉션 이용

 


 

13. IO Redirection2 : append

 

ls -al > result.txt (덮어씀)
ls -al >> result.txt (리다이렉션 결과를 뒤에 추가한다.)

– mail 앱을 이용해서 표준입력 append 예제

mail egoing@gmail.com << hi
> my
> name
> is
> egoing
> eot

mail egoing@gmail.com << hello
> It’s
> me
> hahahoho

ls -al > /dev/null (화면에도 출력하지 않고 파일에도 저장하지 않고 싶을 때, 휴지통 개념)

 


 

14. Shell 1 intro

Hardware – Kernel – Shell – Applications
사용자가 명령어를 입력하면 Shell 이 명령어를 해석해서 -> Kernel이 이해할 수 있는 방식으로 전달 -> 하드웨어에 전달
다시 하드웨어 -> 커널 -> 쉘로 전달하여 처리결과를 보여줌

 


 

15. Shell 2 : bash vs zsh

 

echo “hello” (뒤에 문자열을 출력)
echo $0 (shell 카테고리에서 사용하고 있는 프로그램)
-bash

sudo apt-get install zsh

echo $0 (현재 동작하고 있는 shell을 출력)
zsh (지셀이 동작하고 있는 상태, 입력하는 명령은 zsh을 이용해서 커널로 전달)
(커널에서 만들어진 결과는 zsh를 통해서 화면에 출력되고 있음)

bash vs zsh

cd탭 을 눌렀을때 약간의 차이 (숨겨진 항목도 보여주는가 bash)

bash) cd /home/ubuntu
zsh) cd /h/u 탭키를 누루면 자동완성

bash) cd /home/ubuntu/why/
zsh) cd /h/u/w (자동완성됨)

zsh) cd why dir1 (why 디렉토리에서 dir1 디렉토리로 이동)

자기가 선호하는 shell을 설치하면 자기에 맞는 shell을 선택할 수 있음

각각의 사용자들이 shell을 선택해서 사용할 수 있음

User – Shell (built-in commands) – UNIX Kernel and Device Drivers

Unix Shell user -> Standard input -> Shell -> Kernel -> Unix OS environment -> Hardware
-> Unix OS environment -> Kernel -> Shell -> Standard output -> Unix Shell user

 


 

16. Shell script

 

Shell script 1 : intro

mkdir script
cd script/
touch a.log b.log c.log
ls -l
mkdir bak
cp *.log bak
ls -l bak

 

Shell script 2 : example

echo $0
-bash (Shell 카테고리의 프로그램)
ls /bin (기본 프로그램들이 있음)

nano backup

—————————————-
#!/bin/bash // bash 해석기를 사용하겠다.
if ! [ -d bak ]; then // 현재 디렉토리에 bak 디렉토리가 존재하지 않는다면
mkdir bak
fi // if의 끝
cp *.log bak
—————————————-

backup 파일에 실행가능의 권한을 줘야 한다.
chmod +x backup // x는 executable 약자로 실행가능한

rm -rf bak
ls -l
./backup // 현재디렉토리라는 걸 알려줘야함 앞에 ./ 를 붙임
ls -l bak

 

 

 

Related posts

Leave a Comment