개발자 끄적끄적

리눅스 구조 및 명령어 본문

Linux

리눅스 구조 및 명령어

햏치 2023. 3. 3. 23:08

<리눅스 구조 및 명령어>


<리눅스 사용자 관리>
1. 사용자 계정

[useradd 옵션]
-G : 사용자 계정의 2차 그룹 GID
-d(directory) : 사용자 홈 디렉토리 지정
-e(expire) : 사용자 계정 만료일 지정
-f(effective date) : 사용자 계정 유효일자 지정
-s(shell) : 로그인 시 사용할 기본 셸(Shell)지정
-M : 사용자 홈 디렉토리를 생성X
-c : 주석
-su(switch user) : 사용자 변경


</etc/default/useradd>
- 사용자가 추가되면 사용자에 대한 기본적인 정보를 갖고 있다
- vi/cat 명령을 통해 내용 확인



</etc/default/useradd> 설정
- INCATIVE 
  - 패스워드 기간이 만료되면 사용X
  - 0이면 사용불가, -1이면 이 기능을 사용하지 않는다
- SKEL
  - 새로운 사용자 홈 디렉토리로 복사되는 초기 환경파일들이 있는 
  디렉토리
- CREATE_MAIL_SPOOL
  - 새로운 사용자에게 메일 저장 파일 여부 지정




</etc/login.defs>
- useradd 명령이 실행될 때 기본적인 사용자 정보를 설정



</etc/login.defs> 설정
- MAIL_DIR 
  - /var/spool/mail
  - 메일이 저장되는 디렉토리
- PASS_MAX_DAYS
  - 패스워드를 변경하지 않아도 되는 최대일자
- PASS_MIN_DAYS
  - 패스워드를 가지고 있어야 할 최소일
- PASS_MIN_LEN
  - 패스워드 최소 길이
- PASS_WARN_AGE
  - PASS_MAX_DAYS 전에 경고창을 알려주는 일자
- UID_MIN / UID_MAX / GID_MAX / GID_MIN
- CREATE_HOME 
  - 홈 디렉토리를 만들 것인지 결정(yes)



<change 명령>
- 사용자 패스워드의 만료일을 설정하거나 변경



<change 명령 옵션>
-d : 마지막으로 패스워드를 변경한 일자
-E : 사용자 계정 종료 일자
-I : 지금날짜로 패스워드 유효기간 종료 이후에 계정 비활성화 일 수 
-m : 패스워드를 변경할 수 있는 최소 일 수
-M : 마지막 변경 이후의 패스워드 유효일 수 
-W : 패스워드 만료기간 몇 일 전에 안내 메시지를 보내는 경고날짜
-I user : 현재 사용자 패스워드 만기정보를 출력




<사용자 패스워트(Password)>
- 사용자가 입력한 패스워드는 /etc/passwd 파일과 /etc/shadow파일을
  참조하여 로그인을 수행시킨다



</etc/passwd>



</etc/shadow>
- 패스워드 파일에 패스워드 정보가 없으면 사용자 패스워드는
  shadow 파일에 있다
- 즉, 리눅스 패스워드는 보통 shadow 파일에 별도로 기록된다




<사용자 변경(Switch User)>
- su : 사용자를 변경할 수 있는 명령어
- su 명령을 실행하면 sulog 파일에 사용자 변경 로그를 기록하게 된다




<사용자 설정 변경>
- usermod 명령을 실행




<사용자 계정 삭제>
- userdel




<그룹 생성>
- groupadd 명령



<groupadd 옵션>
-g : 그룹의 GID(Group ID)를 지정
-r(random) : 0~499까지의 GID를 자동 설정




<리눅스에서 그룹정보를 가지고 있는 파일>
1. group 파일
2. gshadow 파일



</etc/group>
- 사용자 계정이 속해 있는 그룹 ID
- 그룹 목록의 정보파일


</etc/gshadow>
- 그룹 암호 저장 파일



<그룹 변경>
- groupmode명령어



<groupmod 옵션>
-g : 그룹의 GID를 지정
-r : 0~499까지 GID를 자동 지정



<그룹 삭제>
- groupdel명령어




<사용자 조회 명령>
- user, who, w, id, groups



<user 명령어>
- 리눅스 로그 파일은 utmp 및 wtmp 파일의 내용을 출력하여
  현재 로그인한 사용자 정보를 확인
*tmp : 임시파일 디렉토리



<last 명령어>
- wtmp파일을 역으로 조회해서 화면에 출력
- 마지막으로 최근에 로그인한 사용자 정보를 보여준디



<who 명령>
- 리눅스 시스템에 사용하고 있는 사용자 계정과 터미널번호, 
  로그인한 시간 정보를 화면에 출력



<w 명령>
- 로그인한 계정과 현재 실행하고 있는 작업의 종류 확인



<id 명령>
- 시스템에 로그인한 자기 자신의 정보를 출력
- UDI, GID 등의 정보를 출력



<id 명령 옵션>
-g : 기본그룹 정보를 표시
-G : 모든그룹 정보를 표시



<groups 명령>
- 사용자의 그룹 정보를 확인할 때 사용




<리눅스 시스템 구조>
- 커널(Kernel), 셸(Shell), 파일 시스템(File System)으로 구성




<리눅스 구조>
1. 커널(Kernal)
- 주기억장치에 상주하여 사용자 프로그램을 관리
- 리눅스 운영체제의 핵심
- 커널구성 : 프로세스, 메모리, 입출력(I/O), 파일관리

2. 셸(Shell)
- 명령어 해석기/번역기로 사용자 명령의 입출력을 수행하며 
  프로그램을 실행
- 종류 : Bourne 셸, C 셸, Korn 셸 등


3. 파일 시스템(File System)
- 여러 가지 정보를 저장하는 기본적인 구조이며, 시스템 관리를 위한
  기본 환경을 제공하고, 계층적인 트리 구조 형태
  (디렉터리, 서브 디렉터리, 파일 등)




<리눅스 파일 시스템 구조>
1. 부트 블록(Boot Block)
- 파일 시스템으로부터 리눅스 커널을 적재시키기 위한 프로그램

2. 슈퍼 블록(Super Block)
- 파일 시스템의 크기, 블록 수 등 이용 가능한 빈 블록 리스트(free block list)
- 빈 블록 리스트에서 그 다음의 빈 블록을 가리키는 인덱스
- 아이노드(inode)목록의 크기, 파일 시스템에 있는 빈 아이노드(inode)의
  수와 목록
- 빈 블록과 빈 아이노드(inode) 목록들에 대한 lock 필드들
- 슈퍼 블록들이 수정되었는지 나타내는 플리그(flag)
- 파일 시스템 이름과 파일 시스템 디스크의 이름

3. 아이노드(iNode)
- 파일이나 디렉터리에 대한 모든 정보를 가지고 있는 구조

4. 데이터 블록(Data Block)
- 실제 데이터가 저장되어 있는 파일 형태




<iNode가 보유하고 있는 데이터>
- 파일 소유자의 사용자 ID
- 파일 크기
- 최근 파일이 사용된 시간
- 파일의 링크된 수
- 데이터 블록 주소
- 파일 소유자 그룹 ID
- 파일이 생성된 시간
- 최근 파일이 변경된 시간
- 접근모드





<파일 시스템 생성>
- 파일 시스템을 생성하기 위해서는 하드 디스크를 초기화하고 필요하면
  파티션(Partition)을 수행하여하드 디스크를 분할해야 한다
- 파티션을 수행하는 리눅스 명령어가 바로 'fdisk'이다




<fdisk(=force disk)>
- 하드 디스크 초기화 및 파티션 생성



<fdisk 옵션>
-l(list)
-v(version)
-s(size)장치명 : 입력 장치 크기를 출력
-d(delete) : 파티션 삭제
-n(new) : 새로운 파티션 생성
-p(present) : 현재 파티션 설정 상태 확인




<mkfs(make file system)>
- 하드 디스크를 파티션 했으면 해당 파티션에 파일 시스템을 생성



<mkfs(make file system)>
-V(Version) : 실행되는 파일 시스템의 특정 명령어 등 모든 정보 출력
-t(select) : 파일 시스템 형식 선택
-c : Bad Block 검사, Bad Block 리스트를 초기화
-l : 파일로부터 초기 Bad Block을 읽음
-v : 현재 진행사항 출력




<mke2fs>
- ext2, ext3, ext4 파일 시스템을 생성하는 명령어
- mke2fs -j 옵션은 저널링 파일 시스템을 ext3으로 생성하는 것





<fsck(file system check)>
- 파일 시스템의 무결성 검사
- 기본적으로 부팅단계에서 자동적으로 실행하게 되고, 
  필요에 따라서 직접 실행할 수도 있다
- 파일 시스템의 무결성을 검사하고 오류가 발생하면 수정 가능
*파일 시스템에는 상위 디렉토리, 하위 디렉토리,
  파일 간의 정보(심볼릭 링크)등을 갖고 있어야 한다




<fsck 옵션>
-s(serial) : 대화형 모드에서 여러 파일 시스템을 점검할 때 fsck동작을 시리얼화
-t(select) : 검사를 수행할 파일 시스템을 지정
-A(All) : /etc/fstab 파일에 기술된 파일 시스템을 모두 검사
-N(Norce) : 검사는 수행X, 수행될 내용 출력
-P(Parallel) : 병렬처리를 수행, 루트 파일 시스템 점검
-R(Root) : 루트 파일 시스템은 제외
-V : 명령을 포함하여 세부 내역을 출력





<파일 시스템 옵션>
-a(auto) : 무결성 검사 후에 자동검사 수행
-r(correction) : 대화형 모드를 수행하며 오류를 수정
-n(normal) : 오류 수정X, 표준 출력으로 출력
-y(modify) : 특정 파일 시스템에 대해서 오류를 자동 수정





<mount>
- 리눅스에서는 특정 디렉토리를 연결할 경우 mount명령을 사용
- a옵션은 명시된 파일 시스템에 대해서 마운트 수행




<mount 옵션>
-v : 자세한 정보 출력모드
-f : 마운트할 수 있는지 점검
-n : /etc/mtab 파일에 쓰기 작업을 하지 않고 마운트
-r : 읽기만 가능하도록 마운트
-w : 읽기 및 쓰기 모드로 마운트
-t vfstype : -t 다음에 쓰이는 인수로 파일 시스템 유형 지정
*fstab 파일은 mount를 수행할 때 참조하는 파일로, 
  파일 시스템 마운트에 대한 정보를 가지고 있다





<fstab 파일의 필드>
1. 파일 시스템 장치(레이블명)
2. 마운트 포인터(디렉토리 명)
3. 파일 시스템 형식(ex2, ex3 등)
4. 옵션(Read Only 및 Read Write) 
5. 파일 점검 옵션(0,1)





<fstab 옵션>
- default : 일반적인 파일 시스템
- auto : 부팅 시에 자동으로 마운트
- exec : 실행 파일이 실행되게 허용
- suid : setuid와 setgid를 허용
- ro : 읽기 전용 파일 시스템
- rw : 읽고 쓰기가 가능한 파일 시스템
- user : 일반 사용자도 마운트 할 수 있는 파일 시스템
- nouser : root만 마운트할 수 있는 파일 시스템
- noauto : 부팅 시에 자동으로 마운트 하지 않음
- noexec : 실행 파일이 실행되지 못함
- nosuid : setuid, getuid를 허용하지 않음
- usrquota : 개별 사용자의 쿼터 설정이 가능한 파일 시스템을 의미
- grpquota : 그룹별 쿼터 설정이 가능한 파일 시스템



<덤프(dump)>
- 0 : 덤프가 실행X
- 1 : 백업을 위해서 덤프를 가능한 파일 시스템



<파일 점검 옵션>
0 : 부팅 시에 fsck가 실행X
1 : 루트 파일 시스템
2 : 루트 파일 시스템을 제외한 나머지 파일 시스템
-> 이것으로 fsck의 순서가 결정



<umount 옵션>
-n : /etc/mtab 파일을 변경하지 않고 마운트 해제
-v(version) : 정보출력
-a(all) : /etc/mtab 파일에 지정된 파일 시스템을 모두 해제
-t 파일 시스템명 : 지정된 파일 시스템을 해제







<CDROM mount, nmount, eject 실행>
# mount/dev/cdrom/mnt/cdrom
- CDROM을 마운트함
*mnt : 임시 마운트용 파일 디렉토리
*dev : 장치 파일 모음
#umount/mnt/cdrom
- CDROM을 마운트 해제

#eject
- CD를 꺼냄






<리눅스 관련 명령어>

<cd(chage directory)>
- 디렉토리를 변경
- cd.. 상위 디렉토리
- cd/ home : home 디렉토리
- cd $HOME : 환경변수에서 홈 디렉토리 값을 읽어와 홈 디렉토리로 변경
- '~' : 홈 디렉토리
- cd : 해당 계정의 홈 디렉토리로 이동
- 현재 디렉토리의 위치를 알고 싶을 때 : pwd(print working directory)






<ls(list segments)>
- dir과 유사한 명령어
- 디렉토리 및 파일 정보를 화면에 출력
- Is 명령어는 /bin/Is에 존재




<Is 옵션>
-a(all) : (.)을 포함하여 경로 내의 모든 내용을 화면에 출력
-A : (.)과 (..)을 제외한 모든 내용을 화면에 출력
-b : 알파벳 형식 리스트 출력
-B : (~)로 끝나는 백업 파일은 출력하지 않음
-c : 마지막 변경 시간을 출력
-d(direction) : 디렉토리의 경로를 출력
-l(list) : 긴 리스트 형으로 화면에 출력
-m(comma) : 콤마로 구분된 형식으로 출력






<history>
- (로그인 이후)사용자가 입력한 명령어들의 기록을 보여주는 것
- 환경변수 정보, 보관할 명령어 개수, 히스토리 크기, 위치 등을 갖고 있다




<histoy 옵션>
-d : 명령어의 번호를 입력하여 명령어를 확인/ history -d 10
-c(clear) : histoy 내용 전체를 한 번에 지우는 명령
!번호 : history에서 확인한 명령어를 다시 사용할 수 있는 기능
         즉, !3으로 3번째 줄의 명령을 실행






<history 환경변수(HIST로 표기)>
- HISTSIZE : 히스토리 스택 크기를 지정, 명령어 개수
- HISTFILESIZE : 히스토리 파일 크기
- HISTFILE : 히스토리 파일의 위치를 보여줌
- HISTCONTROL : 중복되어지는 명령에 대한 기록 유무를 지정하는 변수





<alias(임의로 이름 변경) <-> unalias>
ex) alias limbest="clear", limbest를 치면 clear가 실행




<리다이렉션(Redirection)>
- 표준 스트림을 사용자가 지정한 곳으로 변경할 수 있는 것
ex) 키보드를 입력하면 입력된 글은 모니터로 출력하게 되는데 이것은
  표준 출력(Standard Input)인 키보드의 입력 값을 표준출력(Standard Output)으로
  표시하는 것이다




<리눅스 리다이렉션(Redirection)>
> :  '=1>'과 같은 것으로 1의 의미는 표준출력
     출력방향 전환으로 파일 존재하면 덮어씀
>> : '=1>>'와 같은 의미로 표준출력에 추가
< : 출력방향 전환으로 파일이 존재하면 덮어씀
<< : 표준 출력에 추가함




<파이프(Pipe)>
- 어떤 명령어의 실행 결과를 다른 명령어의 입력으로 전달하는 것
  명령어1 | 명령어2 의 형태로 사용
ex) Is -alp | grep "limbest"
-> Is-alp로 디렉토리 내의 파일 정보를 출력하는 것을 
  grep명령어로 넘겨서 그 이름이 "limbest"인 것만을 출력





<cron(command)>
- crontab명령어는 시스템에서 주기적으로 실행하는 명령어를 설정



<crontab 설정>
- crontab 파일구문(syntax)은 
  "minute hour day_of_month month weekday command"
- minute(분) : 0~59
- hour(시) : 0~34
- day_of_month(일) : 1~31
- month(월) : 1~12
- weekday(요일) : 일요일~토요일(0~6)
- command(명령) : 실행 명령

ex)"0 0 * * 0/bin/myjob.sh"
->매월 일요일 0시 0분에 /bin/myjob.sh 명령어 실행




<crontab 옵션>
-l : 현재 로그인된 계정에 잡혀있는 작업 스케줄 확인
-e(registration) : 현재 로그인 중인 계정에 작업을 등록
-r(reject) : 현재 contab에 등록된 작업을 삭제
-u User명 : 작업을 진행시킬 유저명 설정





<쿼터(Quota)관리>
- 디스크 쿼터(Disk Quota)는 사용자가 많은 서버에서 사용자별로
  디스크 할당량을 제한하는 것




<리눅스 디스크 할당량 관련 명령어>
- quotacheck : 디스크를 사용하는 파일 시스템을 점검하고 업데이트
- edquota : 사용자나 그룹에 쿼터를 설정
- quotaon/quotaoff : 쿼터 설정을 활성화/비활성화
- requota : 쿼터 설정 정보를 출력
- quota : 쿼터 설정 정보를 출력
- setquota : 쿼터 설정 명령



<setquota 명령>
- 디스트 할당량은 쿼터(Quota)를 지정하는 명령
- u옵션은 사용자를 지정하고
- t옵션은 유예시간을 지정



<setquota 옵션>
-u(user) : 사용자 쿼터 설정 시에 사용
-g(group) : 그룹 쿼터 설정 시에 사용
-t(time) : 유예 기간을 설정할 때 사용(초 단위)



<endquota 명령>
- 사용자가 그룹에게 쿼터를 설정하는 명렁



<endquota 옵션>
-u(user) : 사용자 쿼터 설정 시에 사용
-g(group) : 그룹에 대한 쿼터 설정
-t(time) : soft limit를 초과 후 시간제한 설정
-p : 특정 사용자 쿼터를 다른 사용자도 동일하게 적용





<하드 디스크 용량 정보>
- du(disk usage)명령은 리눅스의 디렉토리별 용량을 확인할 수 있는 명령어



<du 명령어 사용>
1. du -sh/home : /home 디렉토리의 전체 사용량을 MB단위로 표시
2. du -h/home : /home 하위의 모든 디렉토리들의 사용량과 합계 출력
3. du -ah/home : /home 하위의 모든 파일과 디렉토리들의 사용량을 출력



<du(disk usage) 명령어>
-a(all) : 모든 파일 정보를 표시
-b(byte) : byte 단위로 용량을 표시
-k(kilo byte) : Kilo Byte 단위로 용량을 표시
-h : 1K, 255M, 2G와 같이 읽기 쉽게 표시
-c(consequence) : 모든 파일의 디스크 사용정보를 제공
-s(size) : 총 사용량만 표시




<파일 압축>
- gzip은 파일 압축을 수행하는 명령어



<gzip 압축 옵션>
-n(number) : 1~9까지의 숫자이며 1이 가장 빠르고 압축률은 가장 낮음
-c(consequence) : 압축결과를 출력, 원본 파일은 그대로 둠
-d(delete) : 압축해제
-f(forcing) : 강제압축
-l(list) : 압축파일의 정보출력
-r(rower rank) : 디렉토리에 포함된 모든 파일을 압축
-t(test) : 압축파일 테스트
-v(version) : 압축 혹은 해제 시 정보 출력






<tar(tape Archiver) 명령어>
- 파일을 압축(CVZF)하거나 해제(TVZF)하는 명령어




<tar(tape Archiver) 옵션>
-z : gzip으로 압축/해제
-x : 압축을 해제
-h : 심볼릭 링크는 묶지 않고 심볼릭 링크가 가리키는 파일을 묶음
-c(create) : 새 저장 파일을 만듦
-f : 파일 이름 지정
-m : 파일의 변경 시간정보를 유지하지 않음
-P : 모든 퍼미션 정보를 유지
-p : 파일 이름의 맨 앞, 문자를 버리지 않음
-s : 저장 파일 목록과 똑같은 순서로 압축을 해제
-v(version) : 처리 중인 파일을 자세하게 보여 줌
-Z : Compress 압축하거나 해제




<zcat 명령>
- 압축파일을 표준 출력으로 출력해서 내용 확인



<zcat 옵션>
-n : 압축파일에서 압축된 파일 헤더를 생략
-V : 현재 버전을 기록하고 옵션을 표준오류로 컴파일 함
*xz[옵션][이름]으로 실행되며,
  데이터 압축을 수행하는 툴이며, 압축률이 우수하다




<xz 옵션>
-z(zip) : 기본 운영모드로 압축을 수행
-d(delete) : 압축을 해제
-t(test) : 압축 파일의 무결성 검사
-l(list) : 압축 파일 정보를 제공






<명령어 확인>
1. which(명령어의 경로)
- 명령어의 경로(Path)를 찾아서 화면에 출력

2. whereis(명령어의 경로+관련 파일 정보)
- 명령어의 경로와 관련 파일의 정보도 제공



<디렉토리 관련 명령어>
생성 : mkdir(make directory)
삭제 : rmdir(remove directory)
실행파일 : /bin/mkdir
*/bin : Common Programs



<mkdir 옵션>
-m : 디렉토리 권한을 설정/ 기본값 755(rwxr-xr-x)
-p(prior) : 상위 디렉토리도 함께 지정
-v : 디렉토리 생성 후 생성된 디렉토리에 대한 메시지 출력
-r : (하위 디렉토리가 존재하면) 하위 디렉토리까지 모두 삭제




<파일관련 명령어>
1. cp(copy)
- 파일 또는 디렉토리를 복사


<cp 옵션>
-f(forcing) : 덮어쓰기를 해서 복사
-r(rank) : 하위 디렉토리 전부를 모두 복사



2. rm(remove)
- 파일을 삭제


<rm 옵션>
-f(forcing) : 물어보지 않고 강제로 삭제
-r(rank) : 디렉토리 삭제 시에 파일과 하위경로 모두 삭제
-v : 파일 삭제 정보를 출력



3. mv(move)
- 파일 및 디렉토리 이동/ 파일의 이름 변경


<mv 옵션>
-b(backup) : 백업 파일을 생성
-f(forcing) : 사용자에게 묻지 않고 파일을 덮어씀
-i(info) : 덮어쓸 경우 사용자에게 물어봄
-n : 파일이 존재하면 덮어쓰지 않음
-S : 지정한 접미사로 백업 생성
-t : 전체 원본파일을 대상 디렉토리로 이동
-u(update) : 파일이 업데이트된 경우에만 이동
-v : 진행상태 정보를 출력




4. touch
- 파일을 생성 또는 파일의 시간정보를 변경
- r옵션 : 파일 시간 동기화를 수행/ 기준파일과 동일하게 시간정보 변경
ex) #touch -r test1 test2 -> test1, test2 파일의 시간 정보를 같게 만든다



5. file
- 파일의 종류를 확인



<file 옵션>
-b : 파일의 유형만 출력
-f(forcing) : 파일목록에서 지정한 파일들에 대해서 명령을 시행
-i : MIME 타입형태로 출력(text/plain, charset=us-ascii 형태)
-m : 매직 파일을 지정
-L : 심볼릭 링크된 파일을 추적
-v(version) : 버전 정보 출력
-z(zip) : 압축된 파일 확인




<파일 관련 명령어>
1. cat(concatenate - 사슬같이 잇다)
- 파일의 내용 확인
- n옵션 : 파일의 내용을 화면에 출력할 때, 행번호를 같이 출력




2. head/tail
- head : 파일을 읽어서 첫 줄부터 10번째 줄까지 화면으로 출력
- tail : 파일 끝부터 위쪽으로 10번째 줄까지의 내용을 화면으로 출력



3. more/less
- more : 파일의 내용을 화면단위로 끊어서 출력
  - q옵션 : 줄단위 보기가 종료
  - b옵션 : 위로 올라가서 앞의 내용 확인
  - <enter> : 한 줄 단위로 파일의 내용 확인
  - <space bar> : 한 페이지 단위로 파일의 내용 확인

- less : (more 명령어와 동일)방향키를 사용할 수 있다





<텍스트 관련 명령어>

1. grep(Regular Expression)
- 특정 파일 내에 있는 문자열을 검색



<grep 옵션>
-c(columns) : 검색 문자열이 속한 행 수를 출력
-H(Head) : 파일명과 함께 출력
-i(isolation) : 대소문자를 구분X
-n(number) : 검색한 문자가 속하는 행번호와 함께 출력
-r(rower) : 현재 경로에서 하위경로까지 검색
-v : 검색하는 문자가 없는 행을 출력
-w(word) : 패턴 표현식을 하나의 단어로 검색




<grep 정규식 표현>
. : 한 글자를 의미
* : 길이와 관계없는 문자열
^ : 행의 첫 시작
$ : 행의 마지막 위치
[] : 한 문자길이 패턴 
[^] : 입력된 문자들의 여집합
\ : 정규식에 사용되는 문자를 그대로 사용
\< : 단어의 시작위치
\> : 단어의 마지막 위치



2. wc(word count)
- 특정 파일의 바이트(Byte) 수나 검색하고자 하는 단어 수 및 행수


<wc 옵션>
-c : 바이트 크기 출력
-m : 문자 수를 출력
-l : 행 수를 출력
-L : 가장 긴 문자만을 출력





3. sort
- 파일의 내용을 정렬(오름파순/내림차순)


<sort 옵션>
-k : 지정한 필드를 기준으로 정렬
-r(rank) : 내림차순 정렬
-f : 모든 문자를 소문자로 식별
-u(unique) : 필드내에서 중복된 값을 제거하여 유일한 값만을 출력 




4. cut
- 텍스트 파일에서 특정 부분을 지정하여 출력



<cut 옵션>
-b : 특정 자리만 출력
-d(standard) : 인자 문자열을 기준으로 해서 출력
-f(field) : d옵션과 함께 사용되어서 구분된 필드를 출력





5. split
- 파일을 나누고 싶을 때, 행 수를 기준 또는 사이즈(용량)을 기준으로 나눈다



<split 옵션>
-b(byte) : 바이트 단위로 파일을 나눈다
-l(line) : 지정된 라인 수 만큼 파일을 나눈다




<파일비교 명령>

1. diff(difference)
- 두 개의 파일 간의 차이점을 알 수 있는 명령어



<diff 옵션>
-c : 파일명, 날짜 등의 차이점을 출력
-d(detail) : 세부적 항목까지 비교
-r(rank) : 재귀적 비교로 하위 디렉토리까지 모두 비교
-s(same) : 파일 비교 시에 동일하면 결과를 출력
-H : 용량이 큰 파일을 비교 시에 사용
-i(isolation) : 대소문자 구분X




2. cmp(compare)
- 두 개의 파일을 비교해서 차이점 확인



<cmp 옵션>
-I : 다른 문자의 개수를 출력하고 다른 문자에 대해서 8진수로 출력
-s(same) : 메시지를 출력하지 않고 두 파일이 같으면 0, 
             다르면 1, 파일에 접근할 수 없는 경우 2를 출력



3. comm
- 두 개의 파일의 차이를 비교
ex) #comm [옵션][파일명][파일명]
# comm -1 파일1 파일2
- 파일1에 있는 행을 무시

# comm -2 파일1 파일2
- 파일2에만 있는 행동을 무시

# comm -3 파일1 파일2
- 파일1과 파일2 모두의 행동을 무시




<리눅스 종료/재부팅 명령어>
- shutdown, reboot, init 6, halt


1. shutdown
- 리눅스를 정지



<shutdown 옵션>
-r(run) : 재부팅 수행
-h : shutdown 완료 후 시스템 종료
-c(cancel) : 진행 중인 shutdown을 취소
-k : 경고 메시지를 출력하고 실제로 shutdown은 수행X
-f : fsck를 실행하지 않고 재부팅
-n : init를 호출하지 않으면서 shutdown 실행
-t sec : 지정한 시간에 재가동
-v : 상세 정보를 출력
ex) 5분 후에 시스템이 종료되도록 하고 싶다면,
-> shutdown -h 5



3. reboot
- 리눅스를 다시 시작


<reboot 옵션>
-n(new) : 연산을 중지하고 다시 시작
-f(forcing) : 강제로 다시 시작
-p(pause) : 연산 중지 시에 전원을 종료
-q : 오류가 없으면 다시 시작하지 않는다
-v : 상세 정보를 출력




3. halt
- 리눅스를 종료


<halt 옵션>
-d : wtmp에 로그를 기록하지 않음
-f(forcing) : 강제로 종료
-n : 종료할 때 동기화를 하지 않음
-w(write) : 실제로 종료하지 않고 /var/log/wtmp에 로그 기록
*/var : Log files, spool files, and other dynamic files
*/tmp : 임시파일 디렉토리



<기타 리눅스 명령어>

1. cal(calender)
- 달력을 보는 리눅스 명령어


<cal 옵션>
-j : 율리우스력으로 출력
-y(year) : 현재 년도에 대해서 모든 달을 보여줌
-v(version) : 버전 정보 출력




2. date
- 리눅스 시스템의 시간정보를 출력
- s옵션 : 시스템의 시간을 변경(시:분:초 순으로 입력)




3. clear
- 터미날을 지우는 명령어



4. tty(teletype writer)
- 표준 입력장치(Standard Input)에 연결된 터미날(Terminal)파일명 출력
*teletype : 리눅스 디바이스 드라이브 중에서 콘솔이나 터미널을 의미

'Linux' 카테고리의 다른 글

리눅스 응용분야  (0) 2023.03.03
네트워크(Network)  (0) 2023.03.03
X Window  (0) 2023.03.03