Linux 명령어

DokBak·2022년 6월 24일
0

Linux

목록 보기
2/6

Linux 명령어

1. 환경 변수 설정 명령어 / 환경 변수 확인용 명령어

1-1. env : 환경변수 출력

  • 모든 환경변수 출력
  • 문법 : env
    • 특정 환경 변수의 정보 출력 : env | grep [환경 변수명]]
env

1-2. cat : 현재 OS에 설치되어 있는 셸 확인

  • 문법 : cat /etc/shells
cat /etc/shells

1-3. $SHELL : 현재 사용중인 셸 확인

  • 사용할 셸 환경변수 : SHELL
  • 문법 : echo $SHELL
echo $SHELL

1-4. chsh -s : 기본 셸 변경

  • 문법 : chsh -s [사용할 쉘]
  • 터미널 재시작시 기본 셸이 바뀌어 실행된다.
chsh -s /bin/zsh
chsh -s /bin/bash
chsh -s /bin/csh

1-5. export : 환경 변수 추가(수정) : 임시 적용(터미널 종료시 저장 안 됨)

  • 문법 : export [환경변수명[값]

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

1-6. PS1 : 터미널 출력 타입 설정

  • 셸 표시 모양 결정 변수 : PS1

  • 셸 환경 변수 파일()에 추가 할 내용

    • PS1="DokBak %1~ $ "; clear;
  • 기본 변수 내용 확인

    • 명령어 : echo $PS1 (1)
    • 결과 : %n@%m %1~ %#
    • 결과 분석
      • %n = 접속해있는 유저명 (2)
      • @ = 문자열 @
      • %m = 사용중인 컴퓨터 이름 (3)
      • %1 = 표시할 디렉토리 경로 갯수 (4)
      • ~ = 홈 디렉토리 표현방법
      • %# = 각 라인의 입력이 시작되는 표시기호
  • clear; = PS1 변수 내용 변경하는 처리를 보이지않도록 초기화 후 터미널을 실행하도록 함

    • 셸2 표시 모양 결정 변수 : PS2

1-7. unset : 환경 변수 해제

  • 문법 : unset [환경변수명]
unset JAVA_HOME

1-8. locale : 로케일 설정

  • Locale(로케일) : 세계의 각 나라는 각자 다른 언어가 존재하기에 프로그램 수행시 입맛에 맞게 환경을 설정할 수 있도록 만든 것.

  • locale 내부 변수 설명

    • LANG : * 전역 로케일 설정값, 다른 값이 설정되어 있지 않을 때만 적용되며 우선 순위가 가장 낮다.
    • LC_COLLATE : 문자열의 정렬 순서를 결정하는 설정
    • LC_CTYPE : 문자 분류, 글자수, 대소문자 구분 설정
    • LC_MESSAGES : 메시지를 표시하는 기준이 되는 설정
    • LC_MONETRAY : 통화나 금액 관련 숫자의 설정
    • LC_NUMERIC : 숫자와 관련 된 설정
    • LC_TIME : 날짜, 시간 관련 된 설정
    • LC_ALL : * 전역 로케일 설정값, 우선순위가 가장 높다.
  • 문법 : locale

    • 내 PC에서 사용가능한 모든 locale : locale -a
    • 검색하고 싶은 locale만 검색 : locale -a | grep ko_KR
  • locale값 설명

    • ko_KR_UTF-8
      • ko : 한글(language)
      • KR : 한국(territory)
      • UTF-8 : 문자코드(codeset)
  • locale 설정 방법

    • export LANG=ko_KR.UTF-8
    • export LC_ALL=ko_KR.UTF-8
    • export LANG=ja_JP.UTF-8
    • export LC_ALL=ja_JP.UTF-8
  • PC에 원하는 로케일정보가 없는 경우(locale -a 결과에 원하는 로케일이 없을 때)

    • 설치 방법1 : localedef -f UTF-8 -i ko_KR ko_KR.UTF-8
    • 설치 방법2 : locale-gen ko_KR.UTF-8
locale

참고자료

https://www.44bits.io/ko/keyword/locale


1-9. 셸 별 환경 변수 파일 수정 / 갱신 : (영구 수정)

  • 환경 변수 파일 수정 / 갱신
vi ~/.zshrc
vi ~/bash_profile
source ~/.zshrc
source ~/bash_profile

2. 디렉토리 관련 명령어

2-1. 리눅스 다중 명령

  • 문법1 : 명령1;명령2;
    • 각각의 개별적인 명령이 순차적으로 실행된다.(명령1 -> 명령2)
    • 명령1이 에러가 발생해도 명령2가 실행된다.
  • 문법2 : 명령3 && 명령4
    • 명령이 순차적으로 실행되며 선두의 명령에 에러가 발생시 뒤의 명령은 실행되지 않는다.
  • 문법3 : 명령5 || 명령6
    • 명령이 순차적으로 실행되며 선두의 명령이 실행되면 뒤의 명령은 실행되지 않는다.


echo $SHELL; date; pwd;
#echo $SHELL -> 결과 출력
#date -> 결과 출력
#pwd -> 결과 출력

echo $SHELL && date2 && pwd
# echo $SHELL -> 결과 출력
# date2 -> 명령어 에러로 결과 미출력
# pwd -> 선두 에러 출력으로 결과 미출력

echo $SHELL || date || pwd
# ehco $SHELL -> 결과 출력
# date -> ehco $SHELL 명령어 출력되어 date 명령은 생략
# pwd -> ehco $SHELL 명령어 출력되어 pwd 명령은 생략

2-2. man : 사용 방법 메뉴얼 확인

  • 문법 : man [명령어]
man ls
man cd

2-3. ls : 디렉토리 구성

  • 문법 : ls [디렉토리패스]
    • 숨김 파일까지 확인 : ls -a [디렉토리패스]
    • 디렉토리의 목록을 자세히 출력 : ls -l [디렉토리패스]
    • 각 파일의 파일의 일련번호(inode)를 출력 : ls -i [디렉토리패스]
    • 옵션이 너무 다양하기에 사용해 볼때마다 추가 작성하도록한다.
ls documents

2-4. pwd : 현재 디렉토리 확인

  • 문법 : pwd [-L | -P]
    • 논리적 현재 디렉토리 출력 : pwd -L (pwd만 쳤을 때 이 동작이 실행)
    • 심볼릭 링크 폴더의 본래의 파일 패스가 출력된다. (ln 명령어의 설명 참조)
pwd

2-5. cd : 디렉토리 이동

  • 문법 : cd [디렉토리패스]
    • 홈 디렉토리로 이동 : cd
    • 상위 디렉토리로 이동 : cd ..
cd documents/pjt

2-6. history :명령어 실행 기록 확인

  • 문법 : history
history

2-7. ! : 명령어 재실행

  • 문법 : ![재실행방법]
    • [재실행방법]에 작성한 문자열이 포함된 명령어 중 가장 최근에 실행된 명령을 실행 : ![문자열]
    • 가장 최근에 실행한 명령을 재실행 : !!
    • n번째에 실행하였던 명령을 재실행 : !-[n]
    • 다중 명령 실행시, 앞의 명령을 재실행 : !#
!env
!!
!-2
date;!#

2-8. rm : 파일이나 디렉토리 삭제

  • 문법 : rm [파일명]
    • 별도의 확인 없이 즉각 삭제 : rm -f [파일명]
    • 디렉토리 삭제 : rm -r [디렉토리명]
    • 해당 디렉토리와 하위 디렉토리 모두 삭제 : rm -rf [디렉토리명]
rm
rm -f documents.txt
rm -r documents

2-9. cp : 파일 복사

  • 문법 : cp [복사대상패스][복사장소패스]
    • 하위 항목들까지 모두 복사 : cp -r [복사대상패스][복사장소패스]
cp aaa bbb
cp -r aaa bbb

2-10. mkdir : 디렉토리 생성

  • 문법 : mkdir [디렉토리명]
    • 하위 디렉토리 까지 생성 : mkdir -p aaa/bbb
mkdir aaa
mkdir -p aaa/bbb

2-11. cat : 파일의 내용을 출력

  • 문법 : cat [파일명]
    • 여러 개의 파일을 지정가능 : cat [파일명1][파일명2]
cat test.txt

2-12. head : 파일 내용의 앞에서부터 10행 출력

  • 문법 : head [파일명]
    • 앞에서부터 n행 출력 : head -n [파일명]
head test.txt
head -3 test.txt
head -11 test.txt

2-13. tail : 파일 내용의 뒤에서부터 10행 출력

  • 문법 : tail [파일명]
    • 뒤에서부터 n행 출력 : tail -n [파일명]
tail test.txt
tail -3 test.txt
tail -11 test.txt

2-14. file : 파일의 정보를 출력

  • 문법 : file [파일명]
    • 파일의 인코딩 정보를 출력 : file -I [파일명]

2-15. ln : 링크 걸기(바로가기 만들기)

  • 문법 : ls -s [링크폴더로만들디렉토리패스][링크이름]

    • -s : 심볼릭 설정(Windows의 바로가기와 비슷)
  • 설정된 링크 폴더로 이동 후 현재의 작업 디렉토리를 확인하기

ls -s documents/pjt pj # documents/pjt폴더를 pj라는 명칭으로 링크 지정
cd pj # pj로 이동
pwd 
/pj # 심볼릭 링크 이름으로 디렉토리가 표시된다.
pwd -P
/documents/pjt # 원래의 절대 경로가 표시된다.

2-16. chmod : 권한 변경

  • 문법 : chmod [권한][파일명]
    • 권한분류 -> XYZ : 권한은 3자리 숫자로 부여하며 각각의 자리수는 각 그룹을 의미한다.
      • X : 파일의 소유자(작성자)를 의미
      • Y : 지정된 그룹을 의미(리눅스상에선 파일소유자와 같은 이름)
      • Z : X,Y 이외의 제 3자의 조작 권한을 의미
    • 권한내용 -> r(4):읽기, w(2):쓰기, x(1):실행 권한
      • 761로 권한 부여시, 소유자는 모든 권한(읽기, 쓰기, 실행이 모두가능), 설정된 그룹의 권한은(읽기, 쓰기), 이 이외의 유저의 권한은(실행만 가능)
    • 권한 동시 수정
      • chmod +x [파일명] -> 지정된 파일의 모든 그룹에 x(실행)권한 부여
      • chmod +w [파일명] -> 지정된 파일의 모든 그룹에 w(쓰기)권한 부여
      • chmod +r [파일명] -> 지정된 파일의 모든 그룹에 r(읽기)권한 부여

2-17. chown : 권한의 소유주 변경(Root사용자만 가능)

  • 문법 : chown [유저명]:[그룹명][파일명]
    • 지정된 파일의 소유주가 작성된 [유저명]:[그룹명]으로 변경
    • 하위 디렉토리까지 모두 권한 지정 방법 : chown -R [유저명]:[그룹명][파일명]

2-18. touch : 수정 일자 변경 / 0바이트 빈 파일 생성

  • 문법 : touch [파일명]
    • 입력된 파일명이 존재 할 경우 파일의 수정 일자 변경, 파일이 존재하지 않을 경우 0바이트의 파일이 생성
    • 지정된 폴더에 생성 : touch [파일명][디렉토리패스]

2-19. echo : 내용 출력(printf)

  • 문법 : echo [출력할내용]
    • test.txt파일의 내용을 읽어서 터미널에 출력 : echo cat test.txt
      • 이때 ``으로 감싸준다.
    • 출력할 내용을 파일에 덮어쓰기(>)
      • echo "tester1" > tester.txt
    • 출력할 내용을 파일에 이어쓰기(>>)
      • echo "tester2" >> tester.txt

0개의 댓글