Linux - 기본 명령어와 사용자 관리
기본 명령어
ls
해당 디렉토리에 있는 파일의 목록을 나열(LiSt)
ls # 현재 디렉토리의 파일 목록
ls /etc/sysconfig # /etc/sysconfig 디렉토리의 목록
ls -a # 현재 디렉토리의 목록(숨김 파일 포함)
ls -l # 현재 디렉토리의 목록을 자세히 보여줌
ls *.cfg # 확장자가 cfg인 목록
ls -l /etc/sysconfig/a* # 해당 디렉토리에 있는 목록 중 앞 글자가 'a'
# 인 것의 목록을 자세히 보여줌
cd
디렉토리를 이동하는 명령(Change Directory)
cd # 현재 사용자의 홈 디렉토리로 이동
cd ~centos # centos 사용자의 홈 디렉토리로 이동
cd .. # 바로 상위의 디렉토리로 이동
cd /etc/sysconfig # 해당 디렉토리로 이동
pwd
현재 디렉토리의 전체 경로를 화면에 표시(Print Working Directory)
pwd
rm
파일이나 디렉토리를 삭제(ReMove)
파일이나 디렉토리를 삭제할 권한이 있어야 함
rm abc.txt # 해당 파일을 삭제
rm -i abc.txt # 삭제 시 정말 삭제할지 확인하는 메시지가 나옴
rm -f abc.txt # 삭제 시 확인하지 않고 바로 삭제(force)
rm -r abc # 해당 디렉토리를 삭제(recursive)
rm -rf abc # r 옵션과 f옵션을 합친 것으로, abc 디렉토리와 그 아래에
# 있는 하위 디렉토리를 강제로 전부 삭제
⚠️ root 사용자는 모든 명령을 실행할 수 있는 권한이 있으므로 `rm` 과 같은 명령어를 사용할 때는 주의해야한다. 특히 리눅스에서는 Windows의 휴지통 개념을 잘 사용하지 않으므로 삭제한 파일이나 폴더를 복구하기가 상당히 어렵다.
cp
파일이나 디렉토리를 복사(CoPy)
새로 복사한 파일은 복사한 사용자의 소유가 되므로 명령어를 실행하는 사용자는 해당 파일의 읽기 권한이 필요
cp abc.txt cba.txt # abc.txt를 cba.txt라는 이름으로 바꿔서 복사
cp -r abc cba # 디렉토리 복사
touch
크기가 0인 새 파일을 생성하거나, 이미 파일이 존재한다면 파일의 최종 수정 시간을 변경
touch abc.txt
mv
파일이나 디렉토리의 이름을 변경하거나 다른 디렉토리로 옮김(MoVe)
mv abc.txt /etc/sysconfig/ # abc.txt를 해당 디렉토리로 이동
mv aaa bbb ccc ddd # aaa, bbb, ccc 파일을 /ddd 디렉토리로 이동
mv abc.txt www.txt # abc.txt의 이름을 www.txt로 변경해서 이동
mkdir
새로운 디렉토리 생성(MaKe DIRectory)
생성된 디렉토리는 명령어를 실행한 사용자의 소유가 됨
mkdir abc # 현재 디렉토리 아래에 /abc/라는 디렉토리 생성
mkdir -p /def/fgh # /def/fgh 디렉토리를 생성하는데, 만약 /fgh의
# 부모 디렉토리가 없다면 자동으로 생성(parents)
rmdir
디렉토리 삭제(ReMove DIRectory)
해당 디렉토리의 삭제 권한이 있어야 하며, 디렉토리는 비어있어야 함
파일이 들어 있는 디렉토리를 삭제하려면 rm -r
을 실행
rmdir abc
cat
파일의 내용을 화면에 표시(conCATenate)
cat a.txt b.txt # a.txt와 b.txt를 연결해서 파일의 내용을 화면에 보여줌
head, tail
텍스트 형식으로 작성된 파일의 앞 10행 또는 마지막 10행만 화면에 출력
head anaconda-ks.cfg # 해당 파일의 앞 10행을 화면에 출력
head -3 anaconda-ks.cfg # 3행만 화면에 출력
tail -5 anaconda-ks.cfg # 마지막 5행만 화면에 출력
more
텍스트 형식으로 작성된 파일을 페이지 단위로 화면에 출력
space를 누르면 다음 페이지로 이동하며, B를 누르면 앞 페이지로 이동, Q를 누르면 종료
more anaconda-ks.cfg
more +100 anaconda-ks.cfg # 100행부터 출력
less
more
명령어와 용도가 비슷하지만 기능이 더 확장
화살표 키나 Page Up, Page Down도 사용 가능
less anaconda-ks.cfg
less +100 anaconda-ks.cfg # 100행부터 출력
file
해당 파일이 어떤 종류의 파일인지를 표시
file anaconda-ks.cfg # 텍스트 파일이므로 아스키 파일(ASCII)로 표시
file /usr/bin/gzip # gzip은 실행 파일이므로 Executable 파일로 표시
clear
현재 사용 중인 터미널 화면을 깨끗하게 지워줌
사용자 관리
사용자와 그룹
리눅스는 다중 사용자 시스템(Multi-User System)이다. 즉, 1대의 리눅스에 사용자 여러 명이 동시에 접속해서 사용할 수 있다. 리눅스를 설치하면 기본적으로 root라는 이름을 가진 super user가 있고, 이 root 사용자에게는 시스템의 모든 작업을 실행할 수 있는 권한이 있다. 또한 시스템에 접속할 수 있는 사용자를 생성할 수 있는 권한도 있다.
사용자
gedit
이나 vi
Editor로 /etc/passwd 파일을 열면 시스템에 존재하는 사용자를 확인할 수 있다.
vi /etc/passwd
# Output Example
centos:x:1000:1000:centos:/home/centos:/bin/bash
위 커맨드를 실행하면 아래와 같은 형식으로 사용자 정보가 나온다.
💻 **사용자이름:암호:사용자ID:사용자가소속된그룹ID:전체이름:홈디렉토리:기본셸**사용자 이름은 centos고, 암호가 x로 표시되어 있는데 이는 etc/shadow 파일에 비밀번호가 지정되어 있다는 의미이다. centos의 사용자 id는 1000번이고, centos가 속한 그룹의 id는 1000번이다. 전체 이름도 centos로 사용하며, centos 사용자의 홈 디렉터리는 /home/centos이고, 로그인 시 제공되는 셸은 /bin/bash이다.
그룹
gedit
이나 vi
Editor로 /etc/group 파일을 열면 시스템에 존재하는 그룹을 확인할 수 있다.
vi /etc/group
# Output Example
centos:x:1000:centos
💻 **그룹 이름:비밀번호:그룹ID:그룹에 속한 사용자 이름**
마지막 '그룹에 속한 사용자 이름'은 참조로 사용된다. 즉, 해당 부분에 아무 것도 써있지 않다고 해서 그룹에 소속된 사용자가 없다는 뜻은 아니다.
명령어
사용자 및 그룹과 관련된 명령어로는 다음과 같은 것들이 있다.
useradd 또는 adduser
새로운 사용자를 추가한다. 이 명령어를 실행하면 /etc/passwd, /etc/shadow, /etc/group 파일에 새로운 행이 추가된다.
useradd newuser # newuser라는 사용자 생성
useradd -u 1111 newuser # 사용자ID를 1111로 지정
useradd -g mygroup newuser # mygroup 그룹에 newuser사용자를 포함시킴
# (mygroup 그룹을 먼저 만들어놓아야 함)
useradd -d newhome newuser # newuser 사용자를 생성하면서
#홈 디렉터리를 /newhome으로 지정
useradd -s /bin/csh newuser # 기본 셸을 /bin/csh로 지정
passwd
사용자의 비밀번호를 지정하거나 변경한다.
passwd newuser # newuser 사용자의 비밀번호를 지정(또는 변경)
usermod
사용자의 속성을 변경한다. 옵션은 useradd와 동일하다.
usermod -g root newuser # newuser 사용자의 그룹을 root 그룹으로 변경
userdel
사용자를 삭제한다.
userdel newuser # newuser 사용자를 삭제
userdel -r newuser # newuser 사용자를 삭제하면서 홈 디렉터리까지 삭제
chage
사용자의 암호를 주기적으로 변경하도록 설정한다.
chage -l newuser # newuser 사용자에 설정된 사항을 확인
chage -m 2 newuser # newuser 사용자에 설정한 암호를 사용해야
# 하는 최소 일자
chage -M 30 newuser # newuser 사용자에 설정한 암호를 사용할 수
# 있는 최대 일자
chage -E 2019/12/12 newuser # newuser 사용자에 설정한 암호 만료되는 날짜
chage -W 10 newuser # newuser 사용자에 설정한 암호가 만료되기
# 전에 경고하는 기간.
# 지정하지 않았을 경우 기본 값은 7일
group
사용자가 소속된 그룹을 보여준다.
groups # 현재 사용자가 소속된 그룹을 보여줌
groups newuser # newuser가 소속된 그룹을 보여줌
groupadd
새로운 그룹을 생성한다.
groupadd newgroup # newgroup을 생성
groupadd -g 2222 newgroup # newgroup을 생성하면서 그룹 ID를 222로 지정
groupmod
그룹의 속성을 변경한다.
groupmod -n new group my group # newgroup 그룹의 이름을 mygroup으로 변경
groupdel
그룹을 삭제한다.
groupdel newgroup # newgroup 그룹을 삭제(단, 해당 그룹을 주요 그룹으로
# 지정한 사용자가 없어야 함)
gpasswd
그룹의 암호를 설정하거나 그룹 관리를 수행한다.
Author And Source
이 문제에 관하여(Linux - 기본 명령어와 사용자 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rymyung/Linux-기본-명령어저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)