리눅스 기본적으로 알아야할 명령어1
카테고리: Linux
태그: Linux
PM을 하면서 어쩌다보니 기술적인 질의응답도 하게되었다. 현재 수강생들은 최종프로젝트 주차이며
모두 마무리 배포를 준비하고있는데 여기서 문제가 많았다.
CI/CD라던지 SSL인증서라던지 구글링해서 구현하는게 쉽지가 않다.
이유는 내용이 누락된다던지 잘못된 방법으로 포스팅된 블로그가 많다보니
수강생입장에선 블로그 분별이 어렵고, 이로인해 촉박한 시간에서 의미없는 삽질의 연속으로 이어진다.
우선 기본적으로 Linux기본 명령어를 안다면 배포 과정에서 파일 유무나, 로그확인등으로
현재 문제상황을 알수있으니 의미없는 삽질에서 벗어날수 있을것이라고 생각한다.
내가 안써본 명령어도 많기에 한번 정리해본다.
디렉터리 관련 명령
🖥 pwd 명령
현재 디렉터리를 확인 명령 (Print Working Dirctory)
[ec2-user@ip-172-00-00-000 ~]$ pwd
/home/ec2-user
🖥 cd 명령
디렉터리 이동명령 현재위치에서 디렉터리를 변경할 때 사용한다.
이동방식은 절대경로, 상대경로로 나뉜다.
형식 : cd [디렉터리]
절대경로
최상위 디렉터리인 / 부터 전체 경로를 지정하여 현재 위치한 디렉터리에 상관없이 이동
상대경로
현재 디렉터리의 위치를 기준으로 이동하는 방법.
하위 디렉터리나 부모 디렉터리로 이동할 때 사용
- Ex
- 절대경로 이동법. 최상위 디렉터리 / 부터 src 디렉터리로 이동
[ec2-user@ip-172-00-00-000 ~]$ cd /usr/local/src [ec2-user@ip-172-00-00-000 src]$
- 상대경로 이동법. 현재 디렉터리 안에 있는 home 디렉터리로 이동
실제 이동이 되려면 현재 디렉터리 안에 home 이라는 디렉터리가 존재해야 함[ec2-user@ip-172-00-00-000 ~]$ cd home [ec2-user@ip-172-00-00-000 home]$
- 절대경로 이동법 /home 디렉터리로 이동
[ec2-user@ip-172-00-00-000 src]$ cd /home [ec2-user@ip-172-00-00-000 home]$
- 자신의 홈 디렉터리로 이동 - cd
[ec2-user@ip-172-00-00-000 src]$ cd [ec2-user@ip-172-00-00-000 ~]$
- 최상위 디렉터리 /(root) 디렉터리로 이동 - cd /
[ec2-user@ip-172-00-00-000 home]$ cd / [ec2-user@ip-172-00-00-000 /]$
- 현재 디렉터리로 이동 변화 x
[ec2-user@ip-172-00-00-000 home]$ cd . [ec2-user@ip-172-00-00-000 home]$
- 한 단계 위인 부모 디렉터리로 이동
[ec2-user@ip-172-00-00-000 secret]$ cd .. [ec2-user@ip-172-00-00-000 ~]$
- 자신의 홈 디렉터리로 이동 - cd ~
cd 명령의 결과와 같음 ~ (tilde)는 사용자의 홈 디렉터리를 나타내는 특수문자이다.[ec2-user@ip-172-00-00-000 src]$ cd ~ [ec2-user@ip-172-00-00-000 ~]$
- 이동하기 바로 직전의 디렉터리로 이동 - cd -
[ec2-user@ip-172-00-00-000 ~]$ cd secret [ec2-user@ip-172-00-00-000 secret]$ cd ~ [ec2-user@ip-172-00-00-000 ~]$ cd - /home/ec2-user/secret [ec2-user@ip-172-00-00-000 secret]$
- 절대경로 이동법. 최상위 디렉터리 / 부터 src 디렉터리로 이동
🖥 mkdir 명령
디렉터리를 생성 명령어
형식 : mkdir [옵션] [디렉터리]
옵션 : -p
경로로 지정된 서브디렉터리가 존재하지 않을 경우, 함께 생성
- Ex
-
mkdir www
현재 디렉터리에 www라는 이름을 가진 디렉터리 생성 -
mkdir data pic backup
현재 디렉터리에 data, pic, backup 이라는 이름을 가진 디렉터리 3개를 생성 (여러개의 디렉터리 한번에 생성) -
mkdir -p www/practice/pro01
현재 디렉터리에 있는 www 하위의 practice안의 pro01 이라는 디렉터리 생성.
만약, www와 practice 라는 디렉터리가 존재하지 않을 시 오류를 발생시키지 않고 함께 생성(-p)
-
🖥 rmdir 명령
디렉터리를 삭제할 때 사용하는 명령어
형식 : rmdir [옵션] [디렉터리]
옵션 : -p
삭제하려는 디렉터리가 제거된 후에 그 결과로, 삭제된 디렉터리의 부모 디렉터리도 빈 디렉터리가 되면,
그 부모 디렉터리도 삭제
- ex
-
rmdir www www 라는 디렉터리를 삭제
-
rmdir pic data backup pic, data, backup 디렉터리 3개 한번에 모두 삭제
-
rmdir -p www/practice/pro01 최하위 디렉터리인 pro01 삭제 후, 부모디렉터리인 practice가 빈 디렉터리가 되면 practice 삭제. 그 후,
www가 빈디렉터리가 되면 www 까지 모두 삭제
-
🖥 ls 명령
디렉터리 안의 내용을 출력해주는 명령어
형식 : ls [옵션] [디렉터리(파일)]
옵션 :
-
-a : 숨겨진 파일이나 디렉터리(.으로 시작)들을 모두 출력
-
-F : 파일의 형태에 따른 관련정보를 이름 뒤에 함께 출력
실행 가능한 파일 - *
디렉터리 - /
Symbolic Link - @ - -l (ll) : 파일이나 디렉터리 정보표시 (7개의 필드)
[ec2-user@ip-172-00-00-000 secret]$ ll 합계 4 -rw-rw-r-- 1 ec2-user ec2-user 161 9월 25 19:44 secret.yml
1) -rw-rw-r–, 2) 1, 3) ec2-user, 4) ec2-user, 5) 161, 6) 9월 25 19:44, 7) secret.yml
1) 파일접근권한(허가권) : 총 10개의 항목으로 이루어져 있고, 맨 앞글자는 파일의 종류, 나머지 9개는 소유자, 그룹, 기타 사용자들에 대한 권한
2) 하드링크의 개수
3) 파일 소유자를 표시
4) 파일이 속한 그룹을 표시
5) 파일의 크기를 바이트 단위로 표시
6) 파일이 마지막으로 수정된 날짜, 시간을 표시
7) 파일/디렉터리명을 표시
-
-i : 파일이나 디렉터리에 부여된 아이노드 번호를 다음과 같이 함께 출력
-
-r : 파일이나 디렉터리의 목록을 알파벳 역순으로 출력
-
Ex
-
해당 디렉터리의 내용을 출력 - ls
-
숨겨진 파일, 디렉터리(.으로 시작)들을 모두 출력 - ls -a
-
파일, 디렉터리 형태에 따른 관련정보(@, /, *)를 이름 뒤에 출력 - ls -F
-
숨겨진 파일, 디렉터리(.으로시작)와 디렉터리/파일의 형태(*, @, /)를 포함한 정보를 7개의 필드를 통해 한줄씩 길게 출력 - ls alF
-
파일 관련 명령
🖥 cp 명령
디렉터리나 파일을 복사
형식 : cp [옵션] [파일1/디렉터리1] [파일2/디렉터리2]
첫 번째 인자를 원본 파일/디렉터리라고 하고, 두 번째(마지막) 인자를 목적지 파일/디렉터리라고 한다.
옵션
-
-i : 파일2(목적지 파일)가 이미 존재하면 덮어쓸 것인지 확인
-
-r : 디렉터리를 복사할 때 지정
두 인자가 모두 파일인 경우 - ex) cp /etc/passwd test1
/etc/passwd 파일을 test1 이라는 파일로 복사한다.
목적지 파일이 존재하지 않는 경우 - 파일 생성, 원본파일 내용 복사
test1이 존재하지 않는 파일이라면, 해당 파일을 생성하고, /etc/passwd 파일의 내용을 복사
목적지 파일이 이미 존재하는 경우 - 원본파일 내용으로 덮어쓰고, 기존 내용 삭제
test1이 이미 존재하는 파일이라면, 해당 파일의 내용은 원본파일인 /etc/passwd 파일의 내용으로 덮어씌어지고,
기존 test1 파일 안의 내용은 사라진다.
두번째 인자가 디렉터리인 경우 - ex) cp test1 temp
첫번째 인자가 파일이고, 두번째 인자가 디렉터리인 경우 파일을 해당 디렉터리 아래에 복사한다.
또 파일의 이름을 변경하여 디렉터리 아래에 복사할 수도 있다.
-
Ex
-
test1 파일을 temp 디렉터리 아래에 test2 라는 이름으로 복사 - cp test1 temp/test2
인자를 여러개 지정한 경우 - ex) cp /etc/services /etc/hosts temp
cp 명령에서 첫 번쨰 인자의 자리에 파일을 여러개 지정할 수 있습니다. 이때 마지막 인자는 무조건 디렉터리여야 한다. -
마지막에 지정된 디렉터리 temp에 앞서 지정한 파일들( /etc/services, /etc/hosts )이 복사됨 - cp /etc/services /etc/hosts temp
디렉터리를 복사하는 경우
디렉터리를 복사하는 경우에는 첫번째 인자, 두번째 인자에 모두 디렉터리를 지정해 주어야 한다.
또, -r 옵션을 사용해야 합니다. -r 옵션을 사용하지 않고, 디렉터리 복사 시 오류 발생두번째 인자로 저장한 디렉터리가 존재하지 않을 경우 - 목적지 디렉터리 생성, 원본디렉터리 아래 내용이 복사됨
디렉터리가 새로 생성되고, 원본 디렉터리(첫번째 인자) 아래에 있던 내용이 복사된다. -
cp -r temp test1
- 목적지 디렉터리(test1)가 없다면?
- 존재하지 않던 목적지 디렉터리 test1을 새로 생성하고 temp 안에 있는 내용을 복사한다.
- 두번째 인자로 지정한 디렉터리가 이미 존재하는 경우
- 원본 디렉터리가 같은 이름의 디렉터리로 복사되어 목적지 디렉터리 아래로 들어감
- 목적지 디렉터리(test1)가 없다면?
-
댓글남기기