◎ Terminal 기초 command
- Ctrl + C: 현재 실행 중인 프로세스를 종료합니다.
- Ctrl + D: 현재 터미널 세션을 종료합니다.
- Ctrl + Z: 현재 실행 중인 프로세스를 일시 중지합니다.
- Ctrl + L: 터미널 화면을 지웁니다.
- Ctrl + A: 커서를 현재 줄의 맨 앞으로 이동시킵니다.
- Ctrl + E: 커서를 현재 줄의 맨 끝으로 이동시킵니다.
- Ctrl + U: 현재 줄에서 커서 앞에 있는 텍스트를 삭제합니
◎ Shell 기초 command
- shell 명령어 기호 의미
$ | - 일반사용자 | |||
# | - 관리자 | su - root |
◎ 기본정보 확인
▽ ' 더보기' 를 눌러서 펼치시면 기본정보 확인에 대한 코드를 보실 수 있습니다.
◦ 리눅스 배포판 버전 확인
cat /etc/*release | 리눅스 배포판 버전 확인 |
~$ cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
◦ 여러 정보 확인
- uname: 시스템의 기본 정보를 확인하는 명령어에요.
- uname -a: 시스템의 모든 정보를 확인할 수 있어요.
- uname -s: 커널 이름을 확인할 수 있어요.
- uname -r: 커널 버전을 확인할 수 있어요.
- uname -v: 커널의 빌드 버전을 확인할 수 있어요.
- uname -m: 시스템의 아키텍처를 확인할 수 있어요.
- uname -p: 프로세서 타입을 확인할 수 있어요.
- lsb_release: Linux Standard Base(LSB) 정보를 확인하는 명령어에요.
- lsb_release -a: 시스템의 LSB 정보를 모두 확인할 수 있어요.
- cat /etc/os-release: OS 릴리즈 파일을 확인하여 시스템 정보를 확인할 수 있어요.
- hostnamectl: 호스트 이름과 시스템 정보를 확인하는 명령어에요.
- df: 디스크 사용량을 확인하는 명령어에요.
- df -h: 인간이 읽기 쉬운 포맷으로 디스크 사용량을 확인할 수 있어요.
- free: 메모리 사용량을 확인하는 명령어에요.
- free -h: 인간이 읽기 쉬운 포맷으로 메모리 사용량을 확인할 수 있어요.
- top 또는 htop: 현재 실행 중인 프로세스와 시스템 리소스 사용량을 확인
- CPU 정보 확인:
- lscpu: CPU에 대한 자세한 정보를 출력합니다.
- cat /proc/cpuinfo: CPU 정보를 출력합니다.
- nproc: CPU 코어 수를 출력합니다.
- 그래픽 카드 정보 확인:
- lspci | grep VGA: 시스템에 설치된 그래픽 카드 정보를 출력합니다.
- RAM 정보 확인:
- free: 메모리 사용량과 여유 용량을 출력합니다.
- cat /proc/meminfo: 메모리 정보를 출력합니다.
- 하드 드라이브 용량 확인:
- df: 디스크 사용량과 여유 용량을 출력합니다.
- df -h: 인간이 읽기 쉬운 포맷으로 디스크 사용량을 확인합니다.
- lsblk: 하드 드라이브와 파티션의 정보를 출력합니다.
- fdisk -l: 하드 드라이브와 파티션의 자세한 정보를 출력합니다. (root 권한이 필요합니다)
◦ 커널 정보확인
uname -a | 커널 버젼 확인 |
~$ uname -a
Linux project-feac44a7-211d-4f25-bf31-26e6e0acf6c5 5.13.0-1033-gcp #40~20.04.1-Ubuntu SMP Tue Jun 14 00:44:12 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
◦ Shell
-현재 사용하고 있는 shell정보
echo $SHELL | 현재 사용하고 있는 shell 정보확인 |
cat /etc/shells | 현재 설치된 os에서 지원하고 있는 shell유형 확인 |
~/test_fold/bb$ echo $SHELL
/bin/bash
~/test_fold/bb$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
/bin/csh
/usr/bin/csh
/usr/bin/fish
/usr/bin/screen
/bin/tcsh
/usr/bin/tcsh
/bin/zsh
/usr/bin/zsh
-sh, dash등을 terminal에 치면 shell을 변경 할 수 있다.
shell에 대해서 자세히 알고자하면 man sh등으로 확인 가능하다.
로그인시 어떤 shell로 시작하는 지 cat /etc/passwd을 통해서 확인가능
◦ 명령어에 대한 설명과 옵션을 출력하기
man | manual | 설명을 볼 수 있다 |
manual {커맨드이름} |
~/test_fold/aa$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically
if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
..
..
q를 눌러서 상태에서 나갈 수 있다.
◦ 현재 위치 출력
pwd | Print Working Directory | 현재 작업중인 디렉토리 출력 |
~$ pwd
/home/user
◦ shell창 정리
clear | shell 창 정리 |
~/test_fold/aa$ clear
◦ 현재 디렉터리의 파일과 폴더 목록을 출력
ls | List | 디렉토리 내용 나열 |
ls, ls-l, ls -R, ls -a |
~$ ls
2023-07-25-file-1.term aa bb cc dd ee ff test_fold
-l Argument를 이용하면 더 자세한 내용을 볼 수 있다.
~/test_fold$ ls -l
total 5
drwxr-xr-x 2 user user 3 Jul 26 04:17 aa
drwxr-xr-x 2 user user 4 Jul 26 04:47 aa_copy
drwxr-xr-x 2 user user 2 Jul 26 02:11 bb
drwxr-xr-x 2 user user 2 Jul 26 02:11 cc
drwxr-xr-x 2 user user 2 Jul 26 02:11 dd
drwxr-xr-x 2 user user 2 Jul 26 02:11 ee
drwxr-xr-x 2 user user 2 Jul 26 02:11 ff
drwxr-xr-x 2 user user 2 Jul 26 02:11 gg
drwxr-xr-x 2 user user 2 Jul 26 02:11 hh
drwxr-xr-x 2 user user 2 Jul 26 02:11 ii
-l | Long Format | 자세한 형식 출력 |
.. 을 붙이면 상위 목록 출력
~/test_fold$ ls ..
2023-07-25-file-1.term test_fold
ls -a | 앞에 점(.)이 붙은 숨겨진 파일 표시 |
ls -l | 파일에 대한 상세한 정보 표시 |
ls -lF | 폴더의 경우 끝에 /을 붙여서 보기쉽게 해줌 |
ls -tl | 최근 수정된 날짜 순서로 정렬 |
ls -rtl | 오래된 순서로 정렬 |
ls -R | 하위 디렉터리 까지 표기 |
ls .. | 상위 디렉터리 표시 |
-a | All | |
-l | Long Format | 자세한 형식 출력 |
-F | classify | 파일과 디렉토리구분 |
-t | timestamp | |
-r, -R | Recursive | 하위 디렉토리 포함 재귀적인 동작 |
ls -R | less | 페이징 사용 - 한페이지씩 내용을 확인 할수 있다. space(다음) b(이전페이지) q(종료) |
너무긴 출력줄은 Ctrl + C 를 통해서 중단시킬 수 있다.
◦ 폴더 만들기
mkdir | Make Directory | 디렉토리 생성 |
mkdir 폴더이름 mkdir 폴더이름 폴더이름 폴더이름 mkdir -p 폴더이름/이름/이름 |
~/test_fold$ mkdir aa
~/test_fold$ ls
aa
아래와 같이 한 번에 여러 폴더의 생성이 가능하다
~/test_fold$ mkdir bb cc dd ee ff gg hh ii
~/test_fold$ ls
aa bb cc dd ee ff gg hh ii
-p Argument를 이용하면 계층적 구조를 가진 폴더생성이 가능하다
~/test_fold/bb$ mkdir -p bb1/bb2/bb3
-p | parents |
◦ 디렉터리 변경
cd | Change Directory | 디렉토리 변경 |
cd 폴더이름 cd /home/user ~$ cd .. cd cd/ |
- 기본 command형식
~$ cd test_fold
~$ cd /home/user
위 2번째 처럼 절대 경로도 가능하다.
- 예제
~$ pwd
/home/user
~$ ls
2023-07-25-file-1.term test_fold
~$ cd test_fold
~/test_fold$ pwd
/home/user/test_fold
~/test_fold$ ls
aa bb cc dd ee ff gg hh ii
~/test_fold$
- 활용
- cd를 누루고 단어의 일부만 치고 tab키를 누르면 자동완성되거나 검색이 된다.
- cd/ root로 이동
- cd home으로 이동
- cd .. 이전
. | - 현재 디렉토리 의미 - 파일이름 앞에 적으면( .file) 숨긴파일의미 |
||
.. | - 상위 디렉토리 | ||
~ | - 현재 위치 |
~/test_fold$ pwd
/home/user/test_fold
~/test_fold$ ls
aa bb cc dd ee ff gg hh ii
~/test_fold$ cd aa
~/test_fold/aa$ ls
~/test_fold/aa$ cd ..
~/test_fold$ pwd
/home/user/test_fold
~/test_fold$ ls
aa bb cc dd ee ff gg hh ii
~/test_fold$ cd
~$ pwd
/home/user
~$ ls
2023-07-25-file-1.term test_fold
~$ cd test_fold
~/test_fold$ pwd
/home/user/test_fold
~/test_fold$ ls
aa bb cc dd ee ff gg hh ii
◦ 파일 만들기
touch | 빈 파일을 생성하거나, 이미 존재하는 파일의 수정 시간을 변경 | ||
touch {filename} touch {filename} {filename} {filename} touch /home/user/test_fold/cc/cc_00.txt |
~/test_fold/aa$ touch aa_00.txt
~/test_fold/aa$ ls
aa_00.txt
touch –c file1
|
file1의 수정 시간을 현재 시간으로 수정
|
touch –r file1 file2
|
file1의 수정 시간을 -> file2의 수정 시간에 덮어씌움
(file2dp 복수의 파일을 적어도 되고 **라고 적어서 모든 파일의 시간을 바꿀 수도 있다) |
※ find 명령을 이용하여 수정된지 n일 이상 된 파일을 삭제하도록 스케줄을 걸어 놓는 경우가 있습니다.
이럴때 파일의 시간을 변경함으로써 내일 삭제되지 않도록, 또는 내일 삭제되도록 할 수 있습니
~/test_fold/bb$ ls -l
total 2
-rw-r--r-- 1 user user 0 Jul 26 06:22 bb_01.txt
-rw-r--r-- 1 user user 0 Jul 26 06:22 bb_02.txt
-rw-r--r-- 1 user user 0 Jul 26 06:22 bb_03.txt
~/test_fold/bb$ touch -c bb_01.txt
~/test_fold/bb$ ls -l
total 2
-rw-r--r-- 1 user user 0 Jul 26 07:21 bb_01.txt
-rw-r--r-- 1 user user 0 Jul 26 06:22 bb_02.txt
-rw-r--r-- 1 user user 0 Jul 26 06:22 bb_03.txt
~/test_fold/bb$ touch -r bb_01.txt bb_02.txt
~/test_fold/bb$ ls -l
total 2
-rw-r--r-- 1 user user 0 Jul 26 07:21 bb_01.txt
-rw-r--r-- 1 user user 0 Jul 26 07:21 bb_02.txt
-rw-r--r-- 1 user user 0 Jul 26 06:22 bb_03.txt
- 다른 파일 생성의 예
vim | 이 명령어를 입력하면 Vim 편집기가 열리고, 새 파일을 만들거나 기존 파일을 편집할 수 있습니다. (vi 에서 강제로 나가기 esc를 누루고 :q! 입력) |
vim filename |
nano | 이 명령어를 입력하면 Nano 편집기가 열리고, 새 파일을 만들거나 기존 파일을 편집할 수 있습니다. |
nano {filename} |
echo | 이 명령어는 주어진 문자열을 파일에 쓰거나, 파일을 생성하여 해당 문자열을 저장 |
echo "Hello" (출력만) echo "Hello" > filename |
cat | 이 명령어를 입력하면 터미널에서 입력한 내용을 파일에 쓸 수 있는 편집기가 열립니다. 원하는 내용을 작성한 후 Ctrl + D를 눌러 저장하고 편집기를 종료할 수 있습니다 |
cat > filename |
◦{파일, 디렉터리}의 {이동, 이름} 변경
mv | Move | {파일,디렉토리}의 {이동,이름} 변경 |
- 이동할 폴더가 존재한다면 이동, 없다면 {파일, 디렉터리} 이름 변경
- 상위로 이동하려면 'mv {파일,디렉터리} ..' , ..을 사용한다.
- 위치에 절대 경로를 적어도 된다.
~/test_fold$ mv aa /home/user
◦ { 파일, 디렉터리 } 복사
cp | Copy | {파일, 디렉토리} 복사 |
-r | Recursive | 하위 디렉토리 포함 재귀적인 동작 |
~/test_fold$ cp aa aa_copy
~/test_fold$ cp -r aa aa_copy
~/test_fold/aa_copy$ cp aa_00.txt aa_copy_00.txt
~/test_fold$ ls
aa bb cc dd ee ff gg hh ii
~/test_fold$ cp -r aa aa_copy
~/test_fold$ ls
aa aa_copy bb cc dd ee ff gg hh ii
~/test_fold/aa_copy$ mv aa_00.txt aa_copy_00.txt
~/test_fold/aa_copy$ ls
aa_copy_00.txt
~/test_fold/aa_copy$ cp aa_copy_00.txt aa_copy_01.txt
~/test_fold/aa_copy$ ls
aa_copy_00.txt aa_copy_01.txt
◦ 디렉터리 삭제
rmdir | remove | rmdir 폴더이름 |
rmdir의 경우 -r을 지원하지 않는다. 내용이 있을 경우 rm -r을 사용하면 된다
◦ {파일, 디렉터리 } 삭제
rm | remove directory | ||
rm example.txt rm -r 폴더이름 |
rm {이름} {이름} | 복수 파일 삭제가능 |
rm -r | 하위 디렉터리까지 |
rm -ri | i를 붙이면 지울지 물어본다. 휴먼에러를 줄일 수있다. |
-r | Recursive | 하위 디렉토리 포함 재귀적인 동작 |
-i | interactive | 대화식 모드 작동 |
폴더의 경우 -r을 추가적으로 적으면 하위에 파일까지 삭제
rm만 적으면 빈폴더만 삭제
◦ 화면에 프린트
echo | echoes and prints | 화면에 프린트 |
echo "Hello" (출력만) echo "Hello" > filename (저장) echo –e “hello\nWorld" |
- e 옵션은 escape 문자열을 인식하여 출력
echo "hello\nworld"위 경우 \n을 인식하여 줄바꿈이 일어난다.
◦ 파일 읽기
cat | catenate | 파일을 읽을 수 있다. |
cat a.txt cat a.txt|more |
- cat은 모든 파일의 내용을 출력하므로 |more를 이용하면 보다 보기편하다. |more상태에서 나오고자 하려면 q를 누루면된다.
cat a.txt |more | ||
cat > filename |
◦ 파일의 처음 부분 출력
head | 앞에 10줄을 출력한다 |
head a.txt head -n20 a.txt |
~/test_fold/bb$ head bb_01.txt
head -n20 a.txt | -n숫자의 형태로 쓰면 줄을 지정해서 출력 할 수 있다. |
-n | number |
◦ 파일의 끝 부분 출력
tail | 끝에 10줄을 출력한다 | |
tail a.txt tail -n20 a.txt |
~/test_fold/bb$ tail bb_01.txt
tail -n20 a.txt | -n숫자의 형태로 쓰면 줄을 지정해서 출력 할 수 있다. |
-n | number |
◦ 파일의 줄, 단어, 문자 수 세어주기
wc | wc a.txt |
~/test_fold/bb$ wc bb_01.txt
45 39 137 bb_01.txt
줄, 단어, 문자 의 순으로 출력됨
◦ 과거 명령어 기록보기
history | history history 10 history |less |
과거 모든 기록을 보거나 입력된 숫자만큼의 최근 기록을 볼 수 있다.
'OS > Linux_ubuntu' 카테고리의 다른 글
[OS][linux] 리눅스 우분투 한글설정 (0) | 2023.07.29 |
---|---|
[OS][Linux] Vim command (리눅스 빔 명령어) (0) | 2023.07.26 |
[OS][Linux] cocalc : 리눅스 설치 없이 클라우드상에서 연습 (0) | 2023.07.25 |
[OS] 리눅스 우분투 다운로드와 설치 그리고 usb 파티션 삭제 (0) | 2023.07.22 |
[OS] Linux command meaning (Basic) (0) | 2023.07.12 |