[ Ubuntu ] 자주 사용하는 명령어 모음 ( vi 에디터 명령어 포함 )
본문 바로가기
OS/Linux

[ Ubuntu ] 자주 사용하는 명령어 모음 ( vi 에디터 명령어 포함 )

by 코딩하는 핑가 2020. 12. 30.
반응형

* 이 포스팅은 devyang97.log님과 do-jeon님의 포스팅을 참고하여 리눅스마스터 2급에 자주 나온 명령어와 설명을 추가하여 작성됐습니다.

* 오탈자 혹은 잘못된 정보가 있다면 댓글달아주세요.

* 2차가공 및 재배포를 금지합니다.

* ctrl + f로 원하는 명령어를 빠르게 검색해보세요.

* 출처 : velog.io/@devyang97/ + do-jeon.tistory.com/

 

* 리눅스 명령어는 대소문자가 중요

 

* [ 명령어 ] --help를 하면 해당 명령어에 대한 설명이 나옵니다.

 

* man [ 명령어 ] : /[ 찾고 싶은 단어 ] 사용해서 단어 찾기가 가능합니다. ( manual )

- 각 명령어들의 도움말을 상세히 알고 싶을 때 사용

( 예 )

- man ls : ls에 대한 상세 설명을 보여줌

- man cd : cd에 대한 상세 설명을 보여줌

 

 

[ 현재 위치 확인 ]

* pwd

* 현재 작업 중인 디렉터리를 확인할 때 사용하는 명령어 ( 절대 경로  - print working directory )

$ pwd

 

[ 명령창 내용 삭제 ]

* clear

$ clear

 

[ 단축키 만들기 ]

* alias

$ alias l = 'ls -al' - l을 입력하면 ls -al의 출력이 나옴

 

[ 디렉터리 구조 확인 명령어 ]

* tree + 옵션 + 디렉터리

- tree 명령어는 기본적으로 존재하는 명령어가 아니기 때문에, yum이나 apt를 이용해서 설치를 해줘야함

$ yum install tree*
$ apt install tree*
$ tree -f
- 디렉터리 경로까지 표시
$ tree -d
- 디렉터리만 표시
$ tree -a
- 숨긴 파일까지 표시
$ tree -p
- 파일이 권한까지 표시

 

[ 디렉터리 관련 명령어 ]

* ls + 옵션 + [ 파일명 ]

- 디렉터리 목록 확인 ( list )

$ ls
$ ls -al
- 권한 정보와 숨겨진 정보들 모두 상세히 출력
- 감춰진 파일은 .이 붙는다. a 옵션을 사용하면 해당 파일을 확인할 수 있다.
$ ls -l
- 디렉터리 및 파일 리스트를 권한 정보를 포함하여 상세 출력
$ ls -a
- 디렉터리 및 파일 리스트의 숨겨진 정보들까지 모두 출력

* mkdir + 옵션 + [ 파일명 ]

- 새 디렉터리 생성 ( make directory )

$ mkdir [ 디렉토리명 ]
$ mkdir -p [ 디렉토리명/디렉토리명/... ] : 여러 디렉토리 생성

* cd

- 디렉토리 이동 ( change directory )

$ cd [ 디록토리명 ]
$ cd .. : 부모 디렉토리로 이동
- 디렉토리명이 너무 길 때 조금만 쓰고 tab 키 누르면 자동 완성

* rm

- 디렉토리 삭제 ( remove directories and their contents recusively )

$ rm -r [ 디렉토리명 ]
- 해당 디렉토리 아래에 있는 내용들도 삭제함
- 디렉터리를 삭제할 때는 -r 옵션을 줘야 한다.
$ rm -f
- 디렉터리 안의 파일을 삭제할 때 사용자에게 확인을 요구하지 않음
$ rm -i
- whrite permission이 없는 파일의 삭제를 위해 대화식으로 확인
$ rm -p
- 디렉터리 dir-name과 비어있는 부모 디렉터리를 사용자가 제거할 수 있으며, 전체 경로명이 삭제되거나 어떤 이유로 인해 경로명의 일부가 남은 것과 무관하게 표준 출력에 메시지가 출력됨
$ rm -s -p
- 선택항목 지정 시 표준 오류에 출력되는 메시지를 삭제

( 참고 ) 디렉터리 저장 위치

/ 모든 디렉터리의 최상위 디렉터리
/root 시스템 관리자 root의 사용자 홈 디렉터리
/boot 부트이미지 저장 디렉터리
/bin 실행파일(cp, mkdir, rmdir, mv, rm, cat) 디렉터리
/etc 각종 시스템 설정 파일 저장 디렉터리
/home 사용자 홈 저장 디렉터리
/lib 라이브러리 저장 디렉터리
/usr 리눅스의 응용프로그램이 설치되는 디렉터리
/usr/local 사용자 소스를 컴파일하여 프로그램 설치 디렉터리
/var 메일 로그관련, 데이터 저장
/dev 하드디스크, CD-ROM 등 장치를 파일화 관리
/tmp 임시저장을 위한 디렉터리

 

[ 파일 관련 명령어 ]

* touch

- 비어있는 파일 생성

$ touch [ 파일명 ]
$ touch + -amc + MMDDhhmmYY + 파일명
- 파일이나 디렉터리의 최근 업데이트 일자를 현재 시간으로 변경
( 최근 업데이트 일자는 ls - l 명령으로 확인할 수 있음 )
- 파일이나 디렉터리가 존재하지 않으면 빈 파일을 만듦
$ touch -a
- 파일의 액세스 시간을 바꿈
$ touch -m
- 파일의 갱신 시간을 바꿈
$ touch -c
- 파일명이 존재하지 않는다면 새로운 파일을 만들지 않음

* rm

- 파일 삭제 

$ rm [ 파일명 ]

* cp + 옵션 + [ 원본 파일명 ] + [ 목적 파일명 / 디렉터리명 ]

- 파일 복사 ( copy )

$ cp [ 파일 위치 및 파일 이름 ] [ 목적지 파일 위치 및 파일 이름 ]
$ cp -r
- 디렉터리 내부까지 복사
$ cp -i
- 파일 복사 시 동일 파일명이 있을 시에 사용자에게 덮어쓸 것인지를 물어봄
$ cp -f
- 동일 파일명 발생 시에도 모두 강제적으로 복사함
$ cp -p
- 원본 파일의 시간 및 소우 권한 보존

* mv

- 파일, 디렉터리 이동 또는 파일 이름 변경 시 ( move )

$ mv [ 파일 위치 및 파일 이름 ] [ 목적지 파일 위치 및 파일 이름 ]
$ mv [ 원래 파일 이름 ] [ 바꾸고 싶은 파일 이름 ]

* vi [ 파일명 ] / nano [ 파일명 ]

- 파일 만들고 편집

$ vi [ 파일명 ] / $ nano [ 파일명 ]
- 새 파일 작성 혹은 존재하는 파일 수정

* cat

- 파일 내용 보기 ( concatenate )

- 파일의 내용을 출력하거나, 파일들을 합치거나, 새로운 파일을 만들거나, 다른 파일에 내용을 덧붙일 때 사용 가능

$ cat [ 파일명 ]

* locate / find / whereis

- 파일 위치 검색

$ locate *.log
- 확장자가 .log인 파일 찾기
- 디렉토리에서 찾는게 아닌 데이터베이스(mlocate)에서 찾음
$ find . *.log
- 디렉토리에서 찾음
$ whereis ls
$ whereis rm
- 실행파일 위치 찾기

* more + ncdflspu + 줄번호 + [ 파일명 ]

- 파일 내용 한 번에 한 화면씩 보여줌

$ more + -ncdflspu + 줄번호 + [ 파일명 ]

* head

- 파일의 앞부분을 보고싶은 줄 수 만큼 보여줌

- 옵션 미 지정 시 상위 10줄

$ head + -카운트 + [ 파일명 ]

* tail

- 파일의 뒷부분부터 보고싶은 줄 수 만큼 보여줌

- 옵션 미 지정 시 하위 10줄

$ tail + -카운트 + [ 파일명 ]

( 참고 )

- -F 옵션을 주고 실행하면, 파일 내용을 화면에 계속 띄워주고 파일이 변하게 되면 새로운 업데이트된 내용을 갱신해줌

- 주로 실시간으로 내용이 추가되는 로그파일을 모니터링할 때 유용하게 사용

 

* grep

- 파일 내부의 텍스트 내용으로 파일 찾기

$ grep + 옵션 + 패턴 + [ 파일명 ]
$ grep - c
- 파일 내에서 패턴과 일치하는 줄의 총 수를 구함
$ grep -h
- 여러 개의 파일을 검색할 때, 출력에 파일명이 나타나는 것을 방지
$ grep -i
- 대 소문자 구별하지 않음
$ grep -n
- 일치하는 줄의 줄 번호도 같이 출력
$ grep -v
- 패턴과 일치하지 않는 줄만 출력

 

[ 쉘 관련 명령어 ]

* grep [ 사용자명 ] /etc/passwd

- 현재 사용하고 있는 쉘 확인

* cat /etc/shells

- 현재 사용할 수 있는 쉘들의 목록 확인

* chsh -s /bin/dash [ 사용자명 ]

- 사용하고 있는 쉘 변경

* ./ex_shell   sh ex_shell   bash ex_shell

- 쉘 스크립트 실행 방법

 

( 참고 ) 쉘 관련 파일 및 디렉터리

/etc/profile 모든 사용자에 적용되는 환경변수와 시작관련 프로그램 설정 지정파일
/etc/bashrc 모든 사용자에게 적용되는 alias와 함수를 설정
~/.bash_profile 개인 사용자의 환경 설정과 시작 프로그램 설정
~/.bashrc 개인 사용자가 정의한 alias와 함수들이 있는 파일
~/.bash_logout 개인 사용자가 로그아웃할 때 수행하는 설정을 지정하는 파일

 

[ 권한 관련 명령어 ]

* ls

- 파일 허가권, 소유권 확인

$ ls
$ ls -l [ 파일명 ]
- 결과 : -rwxrw-rw- 1 user user2 80 dec 29 17:15 [ 파일명 ]
- -rwxrw-rw
[d] : 디렉터리 파일
[s] : 소켓
[b] : 블록형 장치 파일 ( 주로 디스크. /dev/sda )
[c] : 문자형 장치 파일 ( 주로 입출력에 사용 )
[|] : 기호(심볼릭) 링크
[p] : 파이프파일
[-] : 일반적인 파일 ( 텍스트 파일, 바이너리 파일 등 보편적으로 쓰이는 파일 )
- user : 소유권을 가진 사용자
- user2 : 그룹 소유권

* chmod / chown / chgrp

- 권한 변경

- 특정 파일 또는 디렉터리의 퍼미션 수정

- 권한 변경은 문자모드(알파벳 기호로 사용)와 숫자모드(8진수의 값을 사용)가 있음

- 권한의 표시 : r, w, x

- 사용자의 지정 : u, g, o, a

- 설정 기호 : +(더하기), -(빼기), =(초기화한 후 지정한 권한만 설정)

- 숫자모드(4, 2, 1, 0)을 조합 

- r = 4 / w = 2 / x = 1 / 권한 없음 = 0

$ chmod ugo+rwx [ 파일명 ]
= $ chmod a+rwx [ 파일명 ]
= $ chmod 777 [ 파일명 ]
- 모든 사용자에게 권한을 줌
$ chmod 755 [ 파일명 ]
- [ 파일명 ] 파일에 소유자는 읽기, 쓰기, 실행이 가능하고 그룹 및 다른 사용자는 읽기와 실행만 가능
$ chmod o=r /etc/fstab
- /etc/fstab라는 디렉터리를 다른 사용자가 읽을 수만 있도록 설정
- = : 기존 권한 초기화한 후 지정한 권한 설정
$ chmod -R go-rwx
- 하위 디렉터리를 포함한 현재 디렉터리의 모든 파일에 대해 그룹 및 다른 사용자가 접근할 수 없도록 설정
$ chown + 옵션 + [ 파일명 ]
- 파일이나 디렉터리의 소유자, 소유 그룹 수정
$ chown + 옵션
- 파일이나 디렉터리의 소유 그룹 수정

 

[ 패키지 매니저 ( Package Manager ) ]

- 기본으로 내장되어 있는 패키지(프로그램)가 아닌 새로운 패키지(프로그램)를 설치하려고 할 때 도와주는 소프트웨어

- apt, yum 등

 

* apt-get update

- 패키지 목록 업데이트

- 설치 전 패키지 매니저를 통해 설치할 수 있는 패키지 목록들을 업데이트함

- 패키지가 설치되는 것이 아닌 패키지 목록들이 업데이트되는 것

$ apt-get update

* apt-cache search [ 패키지명 ]

- 패키지 찾기

$ apt-cache search [ 패키지명 ]
- 저장된 패키지 목록 중에 해당 패키지 찾기
- 관련된 패키지 목록까지 나옴

* apt-get install [ 패키지명 ]

- 패키지 설치

$ apt-get install [ 패키지명 ]

* apt-get upgrade

- 패키지 업그레이드

$ apt-get upgrade
$ apt-get upgrade [ 패키지명 ]

* apt-get remove

- 패키지 삭제

$ apt-get remove [ 패키지명 ]

 

[ 프로세스 관련 명령어 ]

- 프로세스 : 실행중인 프로그램을 프로세서라고 하고 실행시에 번호(PID)가 할당되어 관리된다. 프로세스는 크게 두 가지로 나눌 수 있는데 사용자의 입력에 관계없이 실행되는 백그라운드, 프로세스와 명령 입력 후 수행 종료까지 기다려야하는 포어그라운드 프로세스가 있다.

 

* ps

- 프로세스 목록 확인

$ ps 명령 옵션
- USER : BSD 계열에서 나타나는 항목으로 프로세스 사용자의 이름
- VSZ : K단위, 페이지 단위의 가상메모리 사용량
- RSS : 실제 메모리 사용량 ( Resident Set Size )
- TTY : 프로세스와 연결된 터미널
- STAT : 현재 프로세스의 상태 코드
- TIME : 총 CPU 사용 시간
- PPID : 부모 프로세스의 PID
- PID : 프로세스의 식별 번호
- PRI : 실제 실행 우선 순위 

* fg

- 작업을 전면 작업으로 변환하는 것 ( foreground )

- 모니터에 실행되는 모습을 사용자에게 직접 보이며 작업하는 것

* bg

- 작업을 후면 작업으로 전환하는 것 ( background )

- 사용자의 눈에는 실행되는 모습이 보이지 않으면서도 실제로는 일을 하는 것

$ 명령어 &
- 후면 작업으로 전환

* ps aux

- 백그라운드 프로세스 목록까지 확인

$ ps aux
$ ps aux | grep apache2
- 'ps aux'의 출력에서 apache2가 포함된 행 출력

* kill

- 프로세스 강제 종료

- 특정 프로세스를 정해서 종료하고 싶을 때 사용, 보통 kill 명령어는 ps 명령어 다음에 사용

$ kill [ pid ]
$ killall
- 특정 프로세스를 모두 종료
$ killall5
- 모든 프로세스 종료

* top / htop

- 그 외 프로세스 목록 확인 명령어

$ top
$ htop - top과 비슷하지만, 시각적인 측면에서 더 좋음

 

[ sudo - super user do ]

* 리눅스는 다중 사용자 운영체제이며 사용자마다 어떤 일에 대한 권한이 있다.

* 중요한 일에 대한 권한은 super user(root)만 가지고 있으며 super user의 권한이 필요할 때 sudo를 사용한다.

* 직접 root 계정에 접속해서 명령어를 실행 시킬 수도 있지만, 안전을 위해 일반 사용자로 로그인한 후 sudo를 사용해야한다.

* ~$로 끝나면 일반 사용자

* ~#로 끝나면 root 사용자

 

* id / who

- 다중 사용자

$ id
- 현재 접속한 계정의 정보 확인

$ who
- 이 컴퓨터에 누가 접속해있는지 확인

 

* sudo useradd / sudo adduser

- 사용자 추가

$ sudo useradd -m [ 사용자명 ] - /home에서 확인 가능
- 이렇게 만들면 권한이 없기 때문에 sudo 명령어 사용 불가

$ sudo adduser [ 사용자명 ]
- 계정 생성 시 비밀번호까지 입력받으며 기본 정보를 바로 입력시켜줄 수 있음
- 홈 디렉토리 또한 자동으로 생성됨

* sudo userdel

- 사용자 삭제

$ sudo userdel localuser
- localusesr 이름의 사용자 삭제

* sudo addgroup

- 그룹 추가

$ sudo addgroup localgroup
- localgroup 신규 등록

* sudo groupdel

- 그룹 삭제

$ sudo groupdel localgroup

* sudo usermod

- sudo 사용할 수 있도록 변경

$ sudo usermod -aG sudo [ 사용자명 ]
# grep "sudo" /etc/group 에서 확인

* sudo passwd

- 비밀번호 설정 ( 설치 후 필수로 해야할 것 )

$ sudo passwd [ 사용자명 ]

* su - [ 사용자명 ]

- 로그인 ( su 사용 )

$ su - [ 사용자명 ]

 

[ cron ]

- 정기적으로 실행시키고 싶은 작업이 있을 때 사용

- 시스템 운영에 필요한 작업은 root 권한으로 /etc/crontab에 등록해서 주기적으로 수행할 수 있고, 사용자는 crontab이라는 명령을 수행해서 등록

$ crontab -l
- 설정된 crontab의 내용 출력 
$ crontab -e
- crontab의 내용 작성 및 수정 ( 처음 실행했을 땐 에디터 선택해야함 )

$ crontab -r
- crontab의 내용 삭제
$ crontab -u
- root 사용자가 특정 사용자의 crontab 파일을 다룰 때 사용

$ crontab -e -u user
- user 사용자의 crontab 내용을 작성하거나 수정


m h dom mon dow command
- m : 분 주기 ( 10 : 매 시간 10분에 한 번 / */1 : 1분에 한 번 )
- h : 시간 주기 ( * : 시간에 상관없이 / 1 : 매 1시에 )
- dom : day of month ( 24 : 매 달 24일에 한 번 )
- mon : month
- dow : day of weeek ( 요일 )
- command : 주기적으로 실행할 명령어

 

[ vi 에디터 관련 ]

- vi는 다른 편집기들과 다르게 모드형 편집기이다.

모드 역할 및 특징
명령모드 - 기본이 되는 모드로 커서의 이동, 수정, 삭제, 복사, 붙이기, 탐색등을 한다.
- 입력모드 전환키 : i, a, o, l, A, O
- 명령모드로 다시 전환 : Esc 키
입력모드 - 글자를 입력하는 문서를 만드는 모드
ex 명령모드 - 명령모드에서 ':'키를 입력했을 때 화면 맨 아랫줄에서 명령을 수행하는 모드로 저장, 종료, 탐색, 치환 및 vi 환경설정 등의 역할을 하는 모드

 

* vi 입력모드로 전환하기

명령키 설명
i 현재 커서 앞에 입력
a 현재 커서 뒤에 입력
o 커서가 위치한 행의 다음 행에 입력
I ( 대문자 i ) 커서가 위치한 행의 첫 컬럼으로 이동하여 입력
A 커서가 위치한 행의 마지막 컬럼으로 이동하여 입력
O 커서가 위치한 행의 이전 행에 입력

 

* 사용 예

$ vi +15 index.html
- 커서를 15번째 줄로 보낸다.

$ vi -c 15 index.html
- 커서를 15번째 줄로 보낸다.(위와 동일)

$ vi + index.html
- 커서의 위치를 마지막 라인에 둔다.

$ vi -r
- vi 작업 중 비정상적으로 종료되어 생성된 스왑 파일의 목록을 출력한다. 작업중이던 파일명이 a.txt이면 같은 디렉터리내에 .a.txt.swp라는 이름의 스왑 파일 생성

$ vi -r a.txt - a.txt가 비정상적인 종료가 발생한 경우 스왑 파일(.a.txt.swp)의 내용을 불러온다. 이울러 작업 후에는 스왑 파일인 .a.txt.swp 파일을 삭제하도록 한다.

 

* vi 관련 명령어

명령 설명
vi 커서 이동하기
h 커서를 왼쪽으로 이동
i 커서를 아래로 이동
k 커서를 위로 이동
l 커서를 오른쪽으로 이동
$ 줄의 맨 끝으로 이동
vi 명령 취소하기
u 명령 취소
U 해당 행에서 한 모든 명령 취소
:e! 마지막으로 저정한 내용 이후의 것을 모두 취소
vi 범위 지정
1, $, % 1행부터 마지막 행까지 범위 지정
1,. 1행부터 커서가 있는 행까지 지정
.,$ 커서가 있는 행부터 마지막 행까지 지정
.,.+2 현재 행과 두번째 아랫행까지 지정
10,20 10행부터 20행까지 지정
vi 내용 검색
/문자열 문자열을 커서 아래 방향으로 검색
?문자열 문자열을 커서 위 방향으로 검색
n 원래 방향으로 다음 문자열 검색
N 반대 방향으로 다음 문자열 검색
vi 내용 치환
:s/[ 대상문자열 ]/
[ 바꿀문자열 ]
커서가 위치한 행에서 첫번째로 나오는 대상문자열을 바꿀 문자열로 바꿈
:%s[ 대상문자열 ]/
[ 바꿀문자열 ]
파일 전체에서 모든 대상문자열을 바꿀문자열로 바꿈
:[ 범위 ] s [ 대상문자열 ]
/ [ 바꿀 문자열 ]
범위 내 모든 각 행에서 첫 번째로 나오는 대상문자열을 바꿀 문자열로 바꿈
:[ 범위 ] s [ 대상문자열 ]
/ [ 바꿀문자열]g
범위 내 모든 행에서 대상문자열을 바꿀문자열로 바꿈
:[ 범위 ] s [ 대상문자열 ]
/ [ 바꿀문자열 ]gc
범위 내 모든 행에서 대상문자열을 바꿀문자열로 바꾸되 수정할지 여부를 물음
vi  내용 복사하기
yy
[ 복사할 행 수 ] YY
현재 커서가 위치한 줄을 버퍼에 복사
dd
[ 잘라내기 할 행 수 ] dd
커서가 위치한 행을 잘라내기함
삭제와 같은 명령어
dd 앞에 잘라내기할 행 숫자 입력 가능
p(소문자) 버퍼에 들어있는 내용으로 현재 커서가 위치한 줄 아래에 붙임
P(대문자) 버퍼에 들어있는 내용으로 현재 커서가 위치한 줄의 위에 붙임
vi 내용 수정하기
r 커서가 위치한 글자를 다른 글자로 수정
cw
[ 수정할 단어 수 ] cw
커서 위치에서부터 단어의 끝까지 수정
숫자 cw는 커서 위치로부터 지정한 숫자의 단어만큼 수정
s
[ 수정할 글자 수 ] s
커서 위치로부터 ESC키를 입력할 때 까지 수정
숫자 s는 커서 위치로부터 지정한 숫자만의 글자를 수정
cc 커서가 위치한 행의 내용을 모두 수정
C 커서 위치로부터 행의 끝까지 수정
vi 내용 삭제하기
x
[ 삭제할 글자 수] x
커서가 위치한 글자를 삭제
x 앞에 삭제할 글자 수 지정 가능
dw
[ 삭제할 단어 수 ] dw
커서가 위치한 단어를 삭제
dw 앞에 삭제할 단어 수 지정 가능
dd
[ 삭제할 행 수 ] dd
현재 커서가 위치한 줄을 삭제
dd 앞에 삭제할 행 수 지정 가능
D 커서 위치로부터 행의 끝까지 삭제
ex 명령 모드
:w 작업중인 내용을 저장
:w 파일명 지정한 '파일명'으로 저장
:w! 무조건 저장한다. ( 읽기 전용 파일시 사용 )
:q 종료한다. 수정된 사항 있으면 종료안됨
:wq 변경된 내용을 저장하고 종료
:wq 파일명 지정한 파일명으로 저장
:wq! 무조건 저장 종료한다.
:q! 저장하지 않고 무조건 종료
vi 화면 이동하기
Ctrl + u 화면의 절반만큼 위로 이동
Ctrl + o 화면의 절반만큼 아래로 이동
Ctrl + b
Page Up
한 화면 위로 이동
Ctrl + f
Page Down
한 화면 아래로 이동
Ctrl + y 화면을 한 행 위로 이동
Ctrl + e 화면을 한 행 아래로 이동

 

* vi 환경설정

* vi 환경설정 방법

- 사용자 홈 디렉터리에 .exrc파일로 저장

( vi 시작할 때 자동으로 이 설정파일을 읽어 적용 )

- 쉘의 환경변수 EXINIT에 지정

- vi의 마지막 행 모드에서 명령으로 설정 

( vi가 종료될 때 설정이 초기화 )

$ set nu, se nu, set number
- 행의 앞에 행 번호 표시

$ set nonu
- 행의 앞에 붙은 행 번호 표시를 없앰

$ set al
- 엔터키 입력 다음 행으로 이동했을 때 위 줄과 같은 열에 커서를 위치시킴

$ set noal
- al설정을 해제 ( = set noautoindent )

$ set
- 주요 환경변수를 보여줌

$ set all
- 설정되어 있는 모든 환경변수와 값을 보여줌

$ set ts=10
- 탭 크기를 10으로 설정 ( tabstop )

$ set list
- 눈에 보이지 않는 특수문자를 표시

$ set nolist
- 특수문자 감춤

$ set showmode
- 현재 모드 표시

$ set noshowmode
- 현재모드 감춤

 

[ tar 압축관련 ]

- 여러 파일을 하나의 파일로 묶거나 풀어주는 명령어

- 지원되는 압축 형식 : compress(tar.Z), gzip(tar.gz), bzip(tar.bz2), xz(tar.xz)

 

* tar 명령 옵션

옵션 내용
-c 지정한 파일이나 디렉터리를 하나로 묶어 새로운 tar 파일을 생성
-x 생성된 tar 파일을 품
-v 어떤 명령을 실행할 때 대상이 되고 있는 파일을 보여줌
-r 기존의 tar 파일 뒤에 파일을 추가
-t tar 파일 안에 묶여 있는 파일의 목록을 출력
-p 모든 퍼미션 정보를 유지
-f 파일명 작업대상이 되는 tar 파일의 이름을 지정
-m 파일의 변경 시간 정보를 유지하지 않음
-Z compress 관련 옵션 tar.Z에 사용
-z gzip 관련 옵션 tar.gz에 사용
-j bzip2 관련 옵션 tar.bz2에 사용
-J xz관련 옵션 tar.xz에 사용

 

$ tar cf test.tar user/
- user라는 디렉터리 서브 디렉터리의 모든 파일을 test.tar로 묶는다.

$ tar xvf test.tar
- 현재 디렉터리에 test.tar 파일을 푼다.

$ tar rvf test.tar test2.txt test3.c
- 현재 디렉터리에 있는 test2.txt와 test.c라는 파일을 test.tar라는 파일에 추가로 묶는다.

$ tar zcvf test.tar.gz
- gzip 압축과 동시에 test.tar.gz파일로 묶는다.

$ tar zxvf php-4.0.4.tar.gz
- gzip으로 압축한 phhp-4.0.4.tar.bz2 파일을 푼다.

$ tar Jxvf php-5.5.4.tar.xz -c /usr/local/src
- xz로 압축된 php-5.5.4.tar.xz를 /usr/local/src에 푼다.

 

[ 시스템 종료 ]

* shutdown 옵션 + 시간 + 메시지

- 시스템을 종료할 때 사용되는 명령어

$ shutdown -t
- n t 옵션 뒤에 n초를 명시해서, 경고 메시지를 보낸 후 n초 후에 kill 시그널을 보냄
$ shutdown -h
- shutdown시 halt를 실행
$ shutdown -r
- 시스템 종료를 완료하고 나서 다시 부팅 과정을 수행 ( 리부팅 )
$ shutdown -c
- 이미 예약되어 있는 shutdown을 취소
$ shutdown -k
- 모든 동작을 제대로 수행하지만 시스템을 종료할 시간이 되면 아무것도 하지 않음
반응형

'OS > Linux' 카테고리의 다른 글

[ Bash Shell ] sed 명령어  (0) 2021.04.08

댓글