Linux 명령어
1. 환경 변수 설정 명령어 / 환경 변수 확인용 명령어
1-1. env : 환경변수 출력
- 모든 환경변수 출력
- 문법 : env
- 특정 환경 변수의 정보 출력 : env | grep [환경 변수명]]
env
1-2. cat : 현재 OS에 설치되어 있는 셸 확인
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 : 환경 변수 추가(수정) : 임시 적용(터미널 종료시 저장 안 됨)
1-6. PS1 : 터미널 출력 타입 설정
1-7. unset : 환경 변수 해제
unset JAVA_HOME
1-8. locale : 로케일 설정
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 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
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 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