sudo: 권한을 빌려온다.
su: 유저를 바꾼다.
-만해도 root로 접속이 된다.
-> root 계정으로 자동로그인 되도록 설정변경
![]()
nano /etc/gdm3/custom/conf
- 이런 창이 뜬다.
AutomaticLogin=rootAutomaticLoginEnable=True- security :
AllowRoot = True입력
->ctrl + x->yes->enter->reboot
- reboot후 다시 root 계정으로 로그인 후
nano /etc/pam.d/gdm-autologin으로 들어간다.
- 2번째 줄에
#추가(주석처리) : 루트로 접속하는 것을 막는 것
->ctrl + x->yes->enter
nano /etc/pam.d/gdm-password
- 2번째 줄에
#추가(주석처리)- ->
ctrl + x->yes->enter->reboot
-> root로 자동로그인이 된다.
snapshot을 또 찍어두자.
-> 한국어 설정하는 방법
- add 해서 원하는키 등록하면 된다.
cd --help
- 메뉴얼이 나온다.
스크롤을 하려면 방향키 위의 키(page up/down) 누르면 된다.
혹은 space + 방향키를 누르면 움직인다.
clear을 하면 싹 지워준다.!c: c로 시작한 명령어 중 제일 최신것을 찾아 실행해준다. (검색 이력 중)
![]()
- 메모장이며 윈도우의 메모장과 동일하게 사용가능하다.
gedit newFile파일이름을 설정할 수도 있다.
- save시 바탕화면에 저장된다.
참고) root directory는 root만 사용가능하다.
리눅스는 계층구조이다.
/ : 최상단 -> home , etc.....등
/home : user들이 저장되는 디렉터리이다.
- 절대 경로 : 맨 위에서 부터 해당 위치를 다 적는 것이다.
- 상대 경로 : 내 위치에 따라서 경로를 적는다.
./test: 내 위치(.)에서 test폴더로 이동한다.- cd ./test
/test: 최상단(/) 폴더에 있는 test폴더로 이동한다.- cd /test
../test: 내 위치에서 상위폴더에 있는 test폴더로 이동한다.
cd ../test
ls ./
- 현재 디렉터리에 있는 파일들을 보여주세요. 여기서 현재디렉터리는 바탕화면 이기때문에 newFile을 보여준다.
ls /
pwd : 내 현재 위치 찾기
- Root폴더에서 Other Locations / Computer은 최상단 디렉터리이다.
nano
nano /etc/default/useradd
- useradd 로 사용자들 만들면 가장 기본 셸 (기능이 없는)
SHELL=/bin/sh 이다.
- SKEL=/etc/skel
사용자를 만들 때 사용자의 홈디렉토리에 어떤 파일들을 기본 설정해줄 수 있다.- CREATE_MAIL_SPOOL=yes
사용자의 기본 메일 Address를 만든다.
nano /etc/default/useradd
(계정 생성 관련 설정파일) - 사용자 생성시 아래 내용으로 생성
- GROUP=100 사용자 계정 생성 시 기본적으로 포함되어지는 기본 그룹 ID
- HOME=/home 사용자 계정의 기본 홈디렉터리
- INACTIVE=-1 패스워드 만료시 실제 계정비활성화 여부(-1:사용X, 0:바로 중지, 1:하루 뒤, 2: 이틀 뒤, 3: 3일 뒤)
- EXPIRE= 계정 만료기간을 날짜형태로 지정 '2025-05-22'
- SHELL=/bin/sh 기본 셸을 설정
- SKEL=/etc/skel skel의 경로 설정 (사용자 생성 시 skel디렉터리에 있는 내용 전부copy해서 사용자의 홈 디렉터리에 넣어줌)
- CREATE_EMAIL_SPOOL=yes 사용자의 메일함 생성 여부
- 터미널 그룹
- 사용자를 만들면 id 설정시 1000번부터 시작하는 이유는 GID_MIN이 1000이기 때문임.
MAIL_DIR : 임시메일함 경로지정(사용자의 메일이 저장되는 경로)
PASS_MAX_DAYS : 사용자 패스워드의 최대 사용일
PASS_MIN_DAYS : 사용자 패스워드의 최소 사용일
PASS_MIN_LEN : 패스워드 설정 시 최소길이
- root가 아닌 user로 패스워드를 바꾸려면 비밀번호 정책에 맞게 바꿔야한다..그 중에 하나가 이것이다.
PASS_WARN_AGE : 패스워드 만료 전 경고일
UID_MIN : 사용자 생성 시 할당되는 UID 최소값
UID_MAX : 사용자 생성 시 할당되는 UID 최대값
GID_MIN : 사용자 생성 시 할당되는 GID 최소값
GID_MIN : 사용자 생성 시 할당되는 GID 최대값
UMASK : 홈디렉터리의 UMASK값을 설정
USERGROPS_ENAB : 사용자계정 삭제 시 그룹에 다른 멤버가 없을 경우 그룹도 함께 삭제 여부 설정
CREATE_HOME : 사용자 생성 시 홈 디렉터리 생성 여부
ENCRYPT_METHOD : 패스워드 설정 시 암호화 방식

명령어[옵션] [옵션값]
useradd -m user
-p / --password-> 메아리 친다!
: 리눅스의 디렉토리는 계층 구조로 이루어져 있다.
d : Directory- : 일반 파일b : Block device(블록 디바이스)c : 입출력 장치l : Link(링크), Windows의 바로가기 아이콘과 비슷한 개념으로, 연결된 파일을 의미: list, window의 dir명령과 같은 역할. 해당 폴더에 있는 파일의 목록을 나열한다.
- 리눅스는 숨김 파일 속성이 따로 존재하지 않고 파일이나 디렉터리의 제일 앞글자를 .으로 하면 자동으로 숨김 파일이 된다.
root@Server:/# ls -l 합계 : 76 l rwxrwxrwx 1 root root 7 5월 6 21:13 bin -> usr/bin [file type][파일허가권][연결된 디렉토리 수][소유 사용자명][소유 그룹명][파일크기][수정된 날짜][파일명(->링크파일)]
ls: 모든파일
ls t* : t로 시작하는 파일들
ls *t* : t를 포함한 파일들
ls ?t : t앞에 ?에 한자리가 무조건 있는 파일들
ls -a : all 모든 파일
ls -a -l == ls -al 똑같다.
: 크기가 0인 새 파일을 생성하거나, 이미 파일이 존재한다면 최종 수정 시간을 변경
#touch [옵션][파일명]
touch abc : abc라는 파일을 생성한다.
touch .bbb : .bbb 숨김파일 생성
- 그냥 ls로 조회했을 때는 숨김파일로 생성한 파일은 뜨지 않는다.
ls -al
- -al로 조회를 해보면 숨긴파일이 뜬다.
- 접근시간 : 파일이 열리거나 읽혀졌을 때
- 수정시간 : 안의 데이터가 바뀌었을 때(데이터가 바뀐것이기 때문에 접근시간 또한 변경되어야한다.)
touch abc
- 다시 치게 되면 수정시간이 변경 된다.
stat abc
- 접근시간, 수정시간에 대한 정보가 뜬다.
: Change Directory, 디렉터리를 이동하는 명령어
: Copy. 파일이나 디렉터리를 복사한다.
- 해당 파일이나 폴더의 읽기 권한이 있어야 가능하다.
- 복사한 파일은 복사한 사용자의 소유가 됨
#cp [원본파일명][복사할파일명]
jwserver에 복사해보자
: Move. 파일이나 디렉터리의 이름을 변경하거나 다른 디렉터리로 이동시킴.(i-node table의 정보를 갱신)
#mv[원본파일명][변경할 파일명 혹은 이동할 경로]
![]()
- nowFile로 이름 변경
cat nowFile로 확인을 해보니이름이 변경 되었다.
- mv -i nowFile testFile22
- 파일을 덮어쓸것인지 물어본다.
: Print Working Directory 현재 디렉터리의 전체 경로를 보여줌.
#pwd
: Remove. 파일이나 디렉터리를 삭제
#rm[옵션][파일/디렉터리명]
: Make Directory. 새로운 디렉터리를 생성
#midir[옵션][디렉터리명1, 디렉터리명2,...]
- 하나의 디렉토리만 생성.
- 한번에 여러개를 만들 수 있다. ( touch도 똑같이 적용이 된다.)
- 이러한 경로로 디렉토리를 만들고 싶은데 이렇게 쓰면 오류다.
mkdir -p test/new/java로 써야한다.ls -R test로 test디렉토리안에 파일을 조회해보니 잘 들어갔다~
: concatenate. 파일 내용을 화면에 출력함.
- 여러 개 파일을 나열하면 파일의 내용을 연결해서 출력함
#cat a.txt b.txt
- cat1, cat2를 연결해서 본다.
- 여러개의 파일을 함께 보고 싶을 때 사용.
: 텍스트 형식을 작성된 파일을 페이지 단위로 화면에 출력함
- 'space bar'을 눌러 다음 페이지로 이동. 'B'를 누르면 앞 페이지. 'Q'를 누르면 종료.
- 파일을 전체적으로 읽은 후 앞부분 부터 보여주기 때문에 파일의 크기가 클수록 성능이 떨어짐.
#more /etc/system/system/conf
- 출력했을 때 한페이지씩 볼 수 있다.
- cat1만 출력
- cat1, cat2 함께 출력. 두 개를 따로 보여준다.
- cat1이 먼저보이고 엔터누르게 되면 cat2를 보여준다.
: more에서 확장된 명령어로, 추가로 화살표키와 page UP, PageDown 키도 사용 가능.
- 자료의 내용이 맣으면 less 사용 적으면 more 사용.
: 텍스트 형식을 작성된 파일의 or 뒤 원하는 행만 출력함.
- 앞에서 3줄보여준다.
- 숫자를 정하지 않으면 기본으로 10줄이나온다.
: 2개의 프로그램을 연결하는 연결 통로
- '|'를 사용하여 연결
- 앞의 명령의 결과를 입력으로써 뒤로 보내준다.
#ls -l /etc|less
- 이 결과에서 마지막 세줄만 보여달라는 의미
: 사용자가 필요한 것만 걸러주는 명령어로, 주로 파이프와 함께 사용됨.
- 대표적으로 grep, tail, wc, sort, awk, sed 등이 존재
#ps -ef | grep bash
: 표준 입출력의 방향을 바꿔주는 명령어
- 표준 입력 : 키보드 / 표준 출력 : 모니터
- 표준출력은 터미널에 나오게 되있다. 그것을 파일에 출력을 하게 하던지 방향을 바꾼다.
#ls -l >list.txt
>: 출력. 덮어씀- '>>` : 출력. 이어씀
<: 입력
- 출력방향을 newFile로 바꾸는데 newFile이 생기고 조회해보면 newFile에 test가 입력된 것을 확인할 수 있다.
<한번 사용 : 원래있던 내용을 덮어쓰게 된다.
- test는 사라지고 안녕하세요만 남아있는 것을 확인할 수 있다.
예제1)
# adduser finduser # su - finduser # mkdir findDir # mkdir findDir/a1 findDir/b2 findDir/c3 = # mkdir -p findDir/{a1,b2,c3} /{a1000, b2100, c3210} # nano findDir/a1/a1000 - 내용작성 # nano findDir/b2/b2100 - " # nano findDir/c3/c3210 - " # mkdir tmp # cp findDir/b2/b2100 tmp/.b2100 (디렉토리에 파일이 하나만 있으면 탭누르면 자동완성 된다.) # touch -t 201010210340 findDir/c3/c3210
예제2)
# tail -4 /etc/passwd >> newPasswd # head -2 /etc/group >> newPasswd
: 특정 파일의 위치를 검색하는 명령어
#find [검색할 위치][옵션][액션]
- etc디렉터리에서 찾겠다. 이름은 conf라는 확장명을 가진 애를 찾고싶다.
- 파일이나 디렉터리 / 숨김파일 따지지 않고 다 찾아준다.
-> 에러를 찾아보자
0 : 표준입력 1 : 표준출력 2 : 표준에러
- 에러만(여기서 2라는 숫자)골라내서
/dev/null에 출력하겠다라는 의미있다./dev/null: 블랙홀/쓰레기통. 여기 들어가면 다 사라진다. 에러는 다 버리겠다는 의미.
-> 크기로 찾아보자
- 크기가 10kb보다 크고 100kb보다 작은 것을 찾아달라는 의미
-> 날짜로 찾아보자.
- 하루이내에 만들어진 모든 파일을 찾아달라는 의미
- 현재 디렉토리에서 파일만 찾아달라는 의미
- 현재 디렉토리에서 디렉토리만 찾아달라는 의미
- find의 action을 통해 검색 결과에 해당하는 파일들에게 추가 명령 작업 가능
-exec와\;는 외부 명령어의 시작과 끝을 의미- { } 내부에 find의 실행 결과들이 하나씩 들어간다.
find [경로][옵션] -exec { } \;
- 홈디렉터리에서 2kb이하이고 타입이 파일인 애들을 찾겠다.
-> OK
- {} 안에 하나씩 들어가기 때문에 enter을 할 때마다 하나하나씩 '~을 찾았는데 실행을 할 래?' 라고 물어본다.
- sources.list 작성
예제 3)
-> 1번
find /home/finduser/findDir -type d
-> 2번
find /home/finduser/findDir -type f -name *1* ls -l {} \;
-> 3번
find /home/finduser/findDir -type f -size +3k
-> 4번
find /home/finduser/findDir -name ".*"
-> 5번