"리눅스"
윈도우와 맥 OS, iOS, Android 등은 모두 개발자가 아닌 사람들 즉, 사용자를 위해 만들어진 것으로, 가능한 어려운 조작없이 사용할 수 있는 거에 초점이 맞춰져 있다.
그렇기 때문에 위와 같은 OS들은 개발자가 프로그래밍을 하기에 제한적인 부분이 많을 수 밖에 없다. (이미 다 만들어놓은 상태에서 사용자들이 사용할 수 있는 환경이기 때문 : GUI)
리눅스로는 좀 더 개발자들이 이것저것 만져보며 조립할 수 있는 구조이다. 다시 말해보면 리눅스는 오픈소스 운영체제(공짜)로 소스도 볼 수 있고, 소스를 수정하여 개조도 할 수 있다는 말이다.
그렇기 때문에 단순히 서버 역할을 하는 컴퓨터가 필요하다고 했을 때, 굳이 비용을 줘서 윈도우나 비싼 맥OS을 사는 것은 비용적으로 비효율적인이다! => 즉 리눅스를 사용하여 서버 전용 컴퓨터를 만들어 돌리는 게 효율적이다!!(서버 외에도 IoT, 모바일 등 개조해서 사용할 수 있다.)
"말이 길어졌지만 아무튼! 리눅스를 써야만 하는 상황이 발생하여 리눅스 환경에서 명령어를 내리는 경우가 빈번하게 일어난다. 그래서 리눅스 기본 명령어들을 정리해보고자 한다."
기본 명령어들
root@goorm:/workspace/Linux_study# ls -l
합계 12
-rw-r--r-- 1 root root 2000 1월 12 2021 README.md
-rw-rw-r-- 1 root root 592 9월 17 09:10 goorm.manifest
drwxrwxr-x 3 root root 4096 9월 15 08:54 practice
=> 권한, 생성 시간, 생성자, 파일 이름 등을 확인할 수 있다.
root@goorm:/workspace/Linux_study# ls -a
. .. .temp README.md goorm.manifest practice
=> 숨겨진 파일을 볼 수 있다.
root@goorm:/workspace/Linux_study# ls -t
goorm.manifest practice README.md
=> 가장 먼저 생성된 것부터 표시
root@goorm:/workspace/Linux_study# ls -rt
README.md practice goorm.manifest
=> 가장 오래된 것(생성된지)부터 표시
root@goorm:/workspace/Linux_study# cd practice/sample
root@goorm:/workspace/Linux_study/practice/sample
oot@goorm:/workspace/Linux_study/practice/sample# cd .
root@goorm:/workspace/Linux_study/practice/sample#
root@goorm:/workspace/Linux_study/practice/sample# cd ..
root@goorm:/workspace/Linux_study/practice#
root@goorm:/workspace/Linux_study/practice# cd -
/workspace/Linux_study/practice/sample <= 이전 경로
root@goorm:/workspace/Linux_study/practice/sample#
root@goorm:/workspace/Linux_study/practice/sample# cd /
root@goorm:/#
root@goorm:/workspace/Linux_study/practice# cd ~
root@goorm:~#
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt <= 기존 목록
root@goorm:/workspace/Linux_study/practice/sample# touch text002.txt
=> 파일 생성
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt
=> 생성됨
root@goorm:/workspace/Linux_study/practice/sample# ls -l
합계 4
-rw-rw-r-- 1 root root 27 9월 15 08:53 text001.txt
-rw-rw-r-- 1 root root 0 9월 17 10:07 text002.txt
=> 기존 파일 목록
root@goorm:/workspace/Linux_study/practice/sample# touch -c text001.txt
=> 시간 갱신
root@goorm:/workspace/Linux_study/practice/sample# ls -l
합계 4
-rw-rw-r-- 1 root root 27 9월 17 10:09 text001.txt
-rw-rw-r-- 1 root root 0 9월 17 10:07 text002.txt
=> 갱신된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample# ls -l
합계 4
-rw-rw-r-- 1 root root 27 9월 17 10:09 text001.txt
-rw-rw-r-- 1 root root 0 9월 17 10:07 text002.txt
=> 기존 파일 목록
root@goorm:/workspace/Linux_study/practice/sample# touch -t 202309101939 text002.txt
=> 원하는 날짜/시간으로 갱신
root@goorm:/workspace/Linux_study/practice/sample# ls -l
합계 4
-rw-rw-r-- 1 root root 27 9월 17 10:09 text001.txt
-rw-rw-r-- 1 root root 0 9월 10 19:39 text002.txt
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample# ls -l
합계 4
-rw-rw-r-- 1 root root 27 9월 17 10:09 text001.txt
-rw-rw-r-- 1 root root 0 9월 10 19:39 text002.txt
=> 기존 파일 목록
root@goorm:/workspace/Linux_study/practice/sample# touch -r text002.txt text003.txt
=> text003.txt = text002.txt(시간 동일하도록)
root@goorm:/workspace/Linux_study/practice/sample# ls -l
합계 4
-rw-rw-r-- 1 root root 27 9월 17 10:09 text001.txt
-rw-rw-r-- 1 root root 0 9월 10 19:39 text002.txt
-rw-rw-r-- 1 root root 0 9월 10 19:39 text003.txt
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt text003.txt
=> 기존 목록
root@goorm:/workspace/Linux_study/practice/sample# mkdir tmpfile
=> 디렉터리 생성
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt text003.txt tmpfile
=> 변경된 목록
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt text003.txt tmpfile
=> 기존 목록
root@goorm:/workspace/Linux_study/practice/sample# mkdir tmp01 tmp02
=> 파일 여러개 생성
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt text003.txt tmp01 tmp02 tmpfile
=> 변경된 목록
root@goorm:/workspace/Linux_study/practice/sample# mkdir tmp03 tmp04 tmp05
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt text003.txt tmp01 tmp02 tmp03 tmp04 tmp05 tmpfile
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt text003.txt tmp01 tmp02 tmp03 tmp04 tmp05 tmpfile
=> 기존 파일 목록
root@goorm:/workspace/Linux_study/practice/sample# mkdir tmpfile/itfile01
=> 있는 디렉토리에 하위 디렉토리 추가(-p를 안쓸 경우 기존 디렉토리에 하위디렉토리 추가밖에 안됨.)
root@goorm:/workspace/Linux_study/practice/sample# ls
text001.txt text002.txt text003.txt tmp01 tmp02 tmp03 tmp04 tmp05 tmpfile
root@goorm:/workspace/Linux_study/practice/sample# cd tmpfile
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# ls
itfile01
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# mkdir -p itdir/itfile02
=> -p를 쓰면 없는 상위 디렉토리/하위 디렉토리 다 같이 생성된다.
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# ls
itdir itfile01
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# cd itdir
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itdir# ls
itfile02
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# mkdir -p itdir2/itfile03
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# mkdir -p itdir3/itfile03.txt
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# ls
itdir itdir2 itdir3 itfile01
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# cd itdir3
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itdir3# ls
itfile03.txt
=> 디렉토리가 아니라 파일이여도 생성된다.
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# ls -l
합계 16
drwxrwxr-x 3 root root 4096 9월 17 10:27 itdir
drwxrwxr-x 3 root root 4096 9월 17 10:28 itdir2
drwxrwxr-x 3 root root 4096 9월 17 10:28 itdir3
drwxrwxr-x 2 root root 4096 9월 17 10:25 itfile01
=> 기존 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# mkdir -m 700 itdir4
=> 권한 부여
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# ls -l
합계 20
drwxrwxr-x 3 root root 4096 9월 17 10:27 itdir
drwxrwxr-x 3 root root 4096 9월 17 10:28 itdir2
drwxrwxr-x 3 root root 4096 9월 17 10:28 itdir3
drwx------ 2 root root 4096 9월 17 10:30 itdir4
drwxrwxr-x 2 root root 4096 9월 17 10:25 itfile01
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# ls
practice01.txt
=> 기존 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# cp practice01.txt practice02.txt
=> 파일 복사
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# ls
practice01.txt practice02.txt
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# ls -l
합계 0
-rw-rw-r-- 1 root root 0 9월 17 10:34 practice01.txt
-rw-rw-r-- 1 root root 0 9월 17 10:57 practice02.txt
=> 기본 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# cp practice01.txt practice02.txt
=> -f없이 파일 복사
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# ls -l
합계 0
-rw-rw-r-- 1 root root 0 9월 17 10:34 practice01.txt
-rw-rw-r-- 1 root root 0 9월 17 10:57 practice02.txt
=> 기본 파일 목록(변경이 안된 것을 볼 수 있다)
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# cp -f practice01.txt practice02.txt
=> -f 추가 파일 복사
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# ls -l
합계 0
-rw-rw-r-- 1 root root 0 9월 17 10:34 practice01.txt
-rw-rw-r-- 1 root root 0 9월 17 10:58 practice02.txt
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# ls
practice01.txt practice02.txt
=> itfile01 디렉토리 파일 목록
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile01# cd ..
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# cp -r itfile01 itfile02
=> 경로와 하위 파일들도 같이 복사
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# ls
itdir itdir2 itdir3 itdir4 itfile01 itfile02
root@goorm:/workspace/Linux_study/practice/sample/tmpfile# cd itfile02
root@goorm:/workspace/Linux_study/practice/sample/tmpfile/itfile02# ls
practice01.txt practice02.txt
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice# ls
sample text01.txt text02.txt
=> 기존 파일 목록
root@goorm:/workspace/Linux_study/practice# mv sample tmp
=> 파일 이동
root@goorm:/workspace/Linux_study/practice# ls
text01.txt text02.txt tmp
=> 변경된 파일 목록
root@goorm:/workspace/Linux_study/practice/tmpdir# ls
root@goorm:/workspace/Linux_study/practice/tmpdir# cd ..
root@goorm:/workspace/Linux_study/practice# ls
text02.txt text01.txt tmpdir
root@goorm:/workspace/Linux_study/practice# mv text01.txt ./tmpdir
=> 이동
root@goorm:/workspace/Linux_study/practice# cd tmpdir
root@goorm:/workspace/Linux_study/practice/tmpdir# ls
text01.txt
root@goorm:/workspace/Linux_study/practice/tmpdir# ls
text01.txt
=> 기존 목록
root@goorm:/workspace/Linux_study/practice/tmpdir# cd ..
root@goorm:/workspace/Linux_study/practice# ls
text02.txt text03.txt tmpdir
root@goorm:/workspace/Linux_study/practice# mv text02.txt text03.txt ./tmpdir
=> 파일 이동 tmpdir 디렉토리에
root@goorm:/workspace/Linux_study/practice# ls
tmpdir
root@goorm:/workspace/Linux_study/practice# cd tmpdir
root@goorm:/workspace/Linux_study/practice/tmpdir# ls
text01.txt text02.txt text03.txt
=> 이동 완료 확인
root@goorm:/workspace/Linux_study/practice# ls
tmpdir tmpdir2
=> 기존 디렉토리 목록
root@goorm:/workspace/Linux_study/practice# mv ./tmpdir ./tmpdir2
=> 이동
root@goorm:/workspace/Linux_study/practice# ls
tmpdir2
root@goorm:/workspace/Linux_study/practice# cd tmpdir2
root@goorm:/workspace/Linux_study/practice/tmpdir2# ls
tmpdir
root@goorm:/workspace/Linux_study/practice/tmpdir2# cd tmpdir
root@goorm:/workspace/Linux_study/practice/tmpdir2/tmpdir# ls
text01.txt text02.txt text03.txt
=> 이동 확인
root@goorm:/workspace/Linux_study/practice# ls
text01.txt text02.txt tmp
root@goorm:/workspace/Linux_study/practice# rm tmp
rm: 'tmp'를 지울 수 없음: 디렉터리입니다
root@goorm:/workspace/Linux_study/practice# rm -r tmp
root@goorm:/workspace/Linux_study/practice# ls
text01.txt text02.txt
root@goorm:/workspace/Linux_study/practice# ls
text01.txt text02.txt
root@goorm:/workspace/Linux_study/practice# rm text01.txt
root@goorm:/workspace/Linux_study/practice# ls
text02.txt
root@goorm:/workspace/Linux_study/practice# rm -f text02.txt
root@goorm:/workspace/Linux_study/practice# ls
root@goorm:/workspace/Linux_study/practice/tmp# cat text01.txt
호호호호
호호홓
cat file1 file2 : file1과 file2의 내용을 출력
cat file1 file2 | more : file1과 file2의 내용을 페이지별로 출력
cat file1 file2 | head : file1과 file2의 내용을 처음부터 10번째 줄까지만 출력
cat file1 file2 | tail : file1과 file2의 내용을 끝에서부터 10번째 줄까지만 출력
root@goorm:/workspace/Linux_study/practice/tmp# cat > text01.txt
호호호호
호호홓
=> 내용 작성
root@goorm:/workspace/Linux_study/practice/tmp# cat text01.txt
호호호호
호호홓
=> 기존 내용
root@goorm:/workspace/Linux_study/practice/tmp# cat > text01.txt
안녕
=> 내용 변경
root@goorm:/workspace/Linux_study/practice/tmp# cat text01.txt
안녕
=> 변경된 내용
root@goorm:/workspace/Linux_study/practice/tmp# cat text01.txt
안녕
=> 기존 내용
root@goorm:/workspace/Linux_study/practice/tmp# cat >> text01.txt
하이
=> 추가할 내용
root@goorm:/workspace/Linux_study/practice/tmp# cat text01.txt
안녕
하이
=> 기존 내용 + 추가한 내용
+ cat file1 file2 > file3 : file1, file2의 명령 결과를 합쳐서 file3라는 파일에 저장
root@goorm:/workspace/Linux_study/practice/tmp# cat text01.txt text02.txt > text03.txt
root@goorm:/workspace/Linux_study/practice/tmp# ls
sample text01.txt text02.txt text03.txt tmpdir
root@goorm:/workspace/Linux_study/practice/tmp# cat text01.txt
안녕
하이
root@goorm:/workspace/Linux_study/practice/tmp# cat text02.txt
내용입니다.
root@goorm:/workspace/Linux_study/practice/tmp# cat text03.txt
안녕
하이
내용입니다.
+ cat file4 >> file3 : file3에 file4의 내용 추가
oot@goorm:/workspace/Linux_study/practice/tmp# cat text04.txt
내용ㅇㄹ
아아아
root@goorm:/workspace/Linux_study/practice/tmp# cat text04.txt >> text03.txt
=> 내용 추가(text04 내용을 text03 내용에 추가)
root@goorm:/workspace/Linux_study/practice/tmp# cat text03.txt
안녕
하이
내용입니다.
내용ㅇㄹ
아아아
+ cat < file1 : file1의 결과 출력
root@goorm:/workspace/Linux_study/practice/tmp# cat < text03.txt
안녕
하이
내용입니다.
내용ㅇㄹ
아아아
+ cat < file1 > file2 : file1의 출력 결과를 file2에 저장
root@goorm:/workspace/Linux_study/practice# cat text01.txt
우우우
아아아
root@goorm:/workspace/Linux_study/practice# cat text02.txt
아아아아아아ㅏㅇ
=> 기존 내용
root@goorm:/workspace/Linux_study/practice# cat < text01.txt > text02.txt
root@goorm:/workspace/Linux_study/practice# cat text01.txt
우우우
아아아
root@goorm:/workspace/Linux_study/practice# cat text02.txt
우우우
아아아
=> 변경된 내용