Linux Beginner Module 1

2025. 1. 13. 16:11Linux

 

- Command and Argument

- Command Types

Internal or Built - in Commands
echo, cd, pwd, set etc

 

echo 

텍스트나 변수의 값을 출력하는 데 사용

 

ex) ech $PATH

PATH 는 실행 파일이 저장된 directory 경로들의 리스트를 담고 잇는 환경 변수로 위의 명령어는

환경변수 PATH 의 값을 출력한다.

 

External Commands

mv, date uptime, cp, etc

 

** Basic Linux Commands **


pwd(present working directory)

ls (List contetns)

 

mkdir (make a new directory)

ex) mkdir Asia

ex) mkdir Europe Asia Africa

 

mkdir india/mumbai

india 라는 parent 가**

 

 

- Command and Argument

 

- Command Types

 

Internal or Built - in Commands

echo, cd, pwd, set etc

 

 

 

External Commands

 

mv, date uptime, cp, etc

 

 

 

** Basic Linux Commands **

 

pwd(present working directory)

 

ls (List contetns)

 

 

 

mkdir (make a new directory)

 

ex) mkdir Asia

 

ex) mkdir Europe Asia Africa

 

 

 

mkdir india/mumbai

 

india 라는 parent 가 존재해야 하위 폴더 인 mumbai 가 생성됨

 

mkdir -p india/mumbai

상위 존재에 상관없이 생성 만약 india 가 없으면 india file 을 만들고 그 안에 mumbai 를 생성

 

cd = change directory

 

Pro Tip - pushd / popd

pushd

  • 현재 디렉토리를 **디렉토리 스택(stack)**에 저장하고, 지정한 디렉토리로 이동합니다.
  • 여러 디렉토리를 스택에 쌓아두면서 이동 경로를 기록

 

popd 

 

디렉토리 스택의 맨 위 항목(최근 pushd로 저장된 경로)을 제거하고 해당 디렉토리로 이동합니다.

 

mv

왼쪽에 있는 위치에 있는 파일 Morocco 를  오른쪽 위치로 옮김

 

cp ( copy file )

 

왼쪽이 source file

오른쪽이 directory

 

cp -r <source_directory> <destination_directory>

-r 은 recursive  으로 directory 내부의 모든 파일을 새 directory로 복사하라는 의미

 

 

rm(Remove file or directory)

 

cat(concatenate)

파일 내용을 출력하거나 파일을 결합하는 데 사용

1) 파일 내용 출력

cat <파일내용> / cat file.txt

 

2) 여러 파일 결합 및 출력

cat file1.txt file2.txt

1,2 의 내용을 순서대로 출력 

 

3) 파일 생성

새로운 파일을 생성하고 내용을 입력함

cat > newfile.txt

newfile 을 생성하고 입력을 받을 준비를 함. 내용을 입력한 후 Ctrl + D 를 통해 저장하면 됨

 

4) 파일 내용을 다른 파일로 복사

cat file1.txt > file2.txt

1의 내용을 2에 복사하여 덮어쓰기

 

5) 파일 결합 후 저장

여러 파일의 내용을 결합하여 새 파일로 저장합니다.

 cat file1.txt file2.txt > combined.txt

두 내용을 결헙하여 새 파일로 저장한다.

 

6) 번호 매김과 옵션 사용

* 자주 사용하는 옵션

cat -n file.txt

각줄 번호를 붙여서 출력

 

cat -E file.txt 

줄 끝에 $를 표시(줄바꿈 위치 확인용으로 사용)

 

cat -s file.txt

빈 줄을 압축( 여러 개의 빈 줄을 한 줄로 표시한다)

 

반대되는 개념

 

cat vs tac

cat 는 파일을 위에서 아래로 출력

tac 는 파일을 아래에서 위로 역순으로 출력

 

touch (create a new file)

touch /home/Country.txt

Create a new empty file

 

more는 긴 파일의 내용을 한 화면씩 출력하며 읽기 편하도록 하는 데 사용

 

 

less 는 more 과 비슷하지만 더 많은 기능과 유연성을 제공하는 파일 뷰어

less와 more의 주요 차이점

  1. 뒤로 스크롤 가능
    • less는 b 키로 뒤로 스크롤이 가능합니다.
    • more는 주로 앞쪽으로만 스크롤하며 뒤로 스크롤이 제한적입니다.
  2. 파일 전체를 읽지 않음
    • less는 파일 전체를 메모리에 로드하지 않고 필요한 부분만 로드합니다.
    • 따라서 큰 파일도 빠르고 효율적으로 읽을 수 있습니다.
  3. 검색 기능이 더 강력함
    • 텍스트를 찾을 때 /keyword로 검색 후, n 키를 눌러 다음 결과로 이동하거나 N으로 이전 결과를 볼 수 있습니다.

 

- Using Command Line to Get Help

whatis date: date 명령어의 간략한 설명을 출력.
man date: date 명령어의 매뉴얼 페이지를 출력.
date --help: date 명령어의 사용법과 옵션을 간단히 출력.
apropos modpr: modpr와 관련된 명령어나 설명을 검색.

apropos : Searches the manual page names and descriptions for the specified keyworkd and displays matching results

 

** Shell **

Shell은 사용자가 컴퓨터와 상호작용할 수 있도록 해주는 명령어 해석기입니다. 운영 체제(OS)와 사용자 간의 인터페이스 역할을 하며, 주로 명령어 입력을 통해 작업을 수행합니다. 리눅스나 유닉스 시스템에서 매우 중요한 구성 요소

 

Shell과 커널의 관계

  • 커널(Kernel): 운영 체제의 핵심으로, 하드웨어와 소프트웨어 간의 중개 역할.
  • Shell: 사용자와 커널 사이의 인터페이스로, 사용자가 입력한 명령을 커널로 전달하고, 결과를 다시 사용자에게 반환.

 

Shell Types

Bourne Shell (sh)

간단하고 가벼운 구조 , 스크립트 작성에 적합하며 다른 Shell 의 기반이 됨

sh

현재는 대부분의 시스템에서 sh 가 bash 로 대체되었으나 여전히 호환성을 위해 사용

 

C Shell (csh or tcsh)

C 프로그래밍 언어와 유사한 구문을 가진 Shell

 

Korn Shell (ksh)

위의 두 Shell 의 장점을 결합한 Shell

 

Z shell (zsh)

Bourne again Shell (bash)

현대적인 Shell

 

- Bash Sheel Freatures

 

Bash Auto - Completion

ls Documents <Tab>

명령어나 파일 경로를 자동으로 완성해주는 기능

Tab 을 누르면 Documents 가 자동 완성됨 (해당 디렉토리가 있는 경우)

 

 

 

Alias

alias dt=date

자주 사용하는 명령어의 짧은 별칭을 정의 가능

date 를 dt 로 설정

dt

(print date)

 

 

history

show the history of log

 

Bash Environment Variables

 

ech $SHELL

 

env

 

which obs-studio

obs-studio 가 어디에 위치해 있는 지, 즉 경로를 출력한다.

2번째에 경로가 출력되지 않은 건 해당 실행 파일을 찾지 못했기 때문이다.

 

export PATH=$PATH:/opt/obs/bin

PATH 환경 변수에 /opt/obs/bin directory 를 추가한다.

 

  • $PATH: 기존의 PATH 값.
  • :/opt/obs/bin: 새로운 경로를 추가.

 

  • obs-studio 실행 파일이 /opt/obs/bin 디렉토리에 있지만, 초기에는 PATH에 이 디렉토리가 포함되어 있지 않아 명령어를 찾을 수 없었습니다.
  • export PATH=$PATH:/opt/obs/bin 명령어로 /opt/obs/bin 디렉토리를 PATH에 추가한 후, 시스템이 해당 디렉토리를 검색할 수 있게 되었습니다.
  • 이후 which obs-studio를 통해 실행 파일의 경로를 확인할 수 있었고, 명령어 실행이 가능해졌습니다.

 

Bash Prompt

기본 프롬프트

[~]$

~ : 현재 디렉토리(홈 디렉토리를 의미)

/home/user

$: 일반 사용자를 나타내는 프롬프트 심볼 

#: 루트 사용자일 경우(관리자 권한을 의미)

 

 

PS1 : Bash Prompt 를 정의하는 변수이다.

echo $PS1 을 통해서 현재 Bash Prompt 의 설정을 확인할 수 있다.

 

 
  •  

 

 

P1) Change the Shell for Mick from bash to Bourne Shell

sudo chsh -s /bin/sh Mick

sudo 는 슈퍼유저 권한(Superuser Privilege)으로 명령을 실행하기 위해 사용

chsh -s 는 사용자의 기본 쉘을 변경하는 명령어 

 

echo $SHELL 로 확인 가능

 

echo 'export MY_VARIABLE="example_value"' >> ~/.profile

  1. export MY_VARIABLE="example_value":
    • 새로운 환경 변수 MY_VARIABLE을 설정하고 그 값을 "example_value"로 지정합니다.
    • export를 사용하면 이 변수가 **현재 사용자 세션과 자식 프로세스(하위 쉘)**에서도 사용 가능하게 됩니다.
  2. >> ~/.profile:
    • 이 명령은 export MY_VARIABLE="example_value"를 **현재 사용자의 프로필 파일(~/.profile)**의 마지막 줄에 추가합니다.
    • >>는 파일 끝에 내용을 추가(append)하는 역할을 합니다.
  3. 결과:
    • 앞으로 사용자가 로그인하거나 새 터미널 세션을 열 때마다 ~/.profile이 실행되고, MY_VARIABLE이 자동으로 설정됩니다.

 

Working Q