2025. 1. 13. 16:11ㆍLinux
- 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의 주요 차이점
- 뒤로 스크롤 가능
- less는 b 키로 뒤로 스크롤이 가능합니다.
- more는 주로 앞쪽으로만 스크롤하며 뒤로 스크롤이 제한적입니다.
- 파일 전체를 읽지 않음
- less는 파일 전체를 메모리에 로드하지 않고 필요한 부분만 로드합니다.
- 따라서 큰 파일도 빠르고 효율적으로 읽을 수 있습니다.
- 검색 기능이 더 강력함
- 텍스트를 찾을 때 /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
- export MY_VARIABLE="example_value":
- 새로운 환경 변수 MY_VARIABLE을 설정하고 그 값을 "example_value"로 지정합니다.
- export를 사용하면 이 변수가 **현재 사용자 세션과 자식 프로세스(하위 쉘)**에서도 사용 가능하게 됩니다.
- >> ~/.profile:
- 이 명령은 export MY_VARIABLE="example_value"를 **현재 사용자의 프로필 파일(~/.profile)**의 마지막 줄에 추가합니다.
- >>는 파일 끝에 내용을 추가(append)하는 역할을 합니다.
- 결과:
- 앞으로 사용자가 로그인하거나 새 터미널 세션을 열 때마다 ~/.profile이 실행되고, MY_VARIABLE이 자동으로 설정됩니다.
Working Q