본문 바로가기

잡다/linux?

[linux] 업무에 필요한 리눅스 명령어들

명령어는 계속 추가될 예정...

명령 설명 / 사용법
shutdown -k <number>: number 분 뒤에 종료한다고 가짜 메시지 발송(유저는 진위 알 수 없음)
-h <number>: number 분 뒤에 컴퓨터 종료
-h 0: 바로 종료
-c: shutdown 명령을 취소
tree 폴더 구조를 tree view로 보기
ls 디렉토리 내 파일 목록 나열 (=dir)
cd <dir> 디렉토리 간 이동
pwd 현재 작업 중인 경로 출력
whoami 현재 작업 중인 유저 출력
init 런레벨 변경  => init <run_level>
- 0: 종료
- 1: 시스템 복구
- 3: 텍스트 모드
- 5: 그래픽 모드
- 6: 재시작
cat /etc/*release* 현재 운영체제 버전 확인
uname 운영체제 정보 확인
ps 현재 실행 중인 프로세스 보기
kill 프로세스에 지정된 시그널을 보내는 명령어. 거의 종료하는데 사용할 예정

-9, SIGKILL: 프로세스 종료 (강제. 핸들러 X)
-15, SIGTERM: 프로세스 종료 (권유. 핸들러 Ok)
파일 관련
touch <name> 크기가 0인 파일 생성, 존재하면 수정
rmdir <name> 폴더 삭제. 폴더가 비어 있을 때만 삭제 가능
rm <name> 파일 / 폴더 삭제
- f: 폴더 삭제
- r: 재귀적으로 삭제(폴더의 경우)

-rf 옵션은 매우매우 위험하므로 사용 자제해야 함
cp <a> <b> a를 b 이름으로 복사
mv <a> <b> a 파일 / 디렉토리를 b로 이동. 다른 “이름으로” 이동한다는 개념이라 파일 / 디렉토리 이름 변경하는 경우 사용
mkdir <name> 폴더 생성
-p: 경로에 해당하는 폴더가 없으면 재귀적으로 만들기
cat <file> 파일 내용을 텍스트로 화면 출력
head, tail <file> 파일 앞 / 뒤 라인부터 출력
- <n>: 출력할 줄 개수(n)
more -n <file>
less ( 확장판 )
파일을 화면에 페이지 단위로 출력 
위아래 키로 이동, Q 클릭 시 종료
n 지정 시 n 줄 단위로 넘어가며 볼 수 있음
file <target> target이 어떤 종류의 파일인지 표시
text, block, executable 등 다양한 종류 있음

block special은 블록 단위 I/O ~= 입출력 장치 
stat 파일의 접근, 수정, 변경 시간 확인
- atime(u): 마지막으로 파일에 접근한 시간
- mtime(t): 마지막으로 파일 내용을 수정한 시간
- ctime(c): 마지막으로 파일의 메타데이터(소유권..)를 변경한 시간
ln <base> <link> base에 대해 이름이 link인 링크를 생성한다
-s: soft link 생성. 없으면 hard link
mount 장치를 특정 폴더에 마운트
-(인자 X): 현재 마운트 된 목록을 보여준다.
<device> <dir>: 디바이스를 특정 디렉토리에 마운트한다. 
- o loop: iso 이미지를 디바이스인 것처럼 마운트한다.
umount <device> 장치를 언마운트한다.

디바이스 이름 / 마운트 된 폴더 중 어떤 이름을 써도 ok
genisoimage
<dest> <target>
target 폴더를 dest라는 이름을 가진 iso 이미지로 만든다.

find 파일 검색

[옵션]

-name: 이름   ex) find /etc -name “*.conf”
-user: 소유자
-newer: 전,후
-perm: 허가권
-size: 크기   ex) find /etc -size +10k -size -100k (10이상 100 이하)

[액션]

-print: 기본값
-exec: 외부 명령 실행 ex) find /home -name “*.swp” -exec rm { } \;
            \; 로 외부 명령의 끝을 표시한다.
which PATH에 설정된 디렉토리만 검색
whereis 실행파일 / 소스 / man 페이지 파일까지 모두 검색
locate 파일목록 데이터베이스에서 검색.
사용하기 위해서는 updatedb 명령어를 실행해서 파일 데이터베이스를 만들어 줘야 한다.
네트워크
ip addr 현재 장치의 ip 정보 찾기
ip link 링크 확인
ufw enable 방화벽 활성화
ifconfig ens32 (우분투) 네트워크 설정 정보 출력
ifdown ens32 네트워크 장비 정지
ifup ens32  네트워크 장비 가동
nm-connection-editor 네트워크 설정을 GUI 기반으로 편집
nmtui 네트워크 설정을 CLI 기반으로 편집 가능
ifconfig <장치> 장치의 IP 주소 설정 출력. ip addr과 출력 내용물 유사
nslookup <주소> DNS 서버에게 질의, 대상 도메인 주소 확인
ping <주소> 해당 호스트가 네트워크 상에서 응답하는지 테스트 (ICMP 기반)
일반
clear 터미널 화면 지우기
history 현재까지 cli 창에 입력했던 명령 리스트 보기
gedit 일종의 메모장 에디터 오픈
man 모르는 명령어를 검색 ( manual )
유저 관련
adduser <user> 새로운 사용자 추가
–uid: id 지정
–gid: 그룹 지정
–home: 홈 디렉터리 지정
–shell: 쉘 지정
passwd <user> 사용자의 비밀번호를 지정하거나 변경
usermod <user> 사용자의 속성 변경
userdel <user> 사용자를 제거
chage <user> 사용자의 암호를 주기적으로 변경하도록 설정
groups 현재 사용자가 속한 그룹 보여줌
groupadd 새로운 그룹 생성
groupmod 그룹 수정
chmod mod file 파일의 접근 권한을 변경
ex) chmod 777 target
chown own:grp file 파일의 소유권을 변경.
소유권은 보안 측면에서 중요한 개념이기 때문에 슈퍼 유저(root) 권한이 있는 유저만 실행할 수 있는 명령이다.

ex) chown ubuntu:ubuntu target
설치
dpkg debian package의 준말. 패키지 설치 / 조회 / 삭제 기능 포함
- i: 설치
- r: 삭제
- P: 삭제(설정도 삭제)
- l: 설치된 패키지 목록 조회
- L: 패키지로 설치한 파일 목록 조회
--info: 패키지 자체에 대한 정보 조회
apt 의존성을 자동으로 설치하는 패키지 설치 기능

1. install <패키지>: 패키지 설치
2. update: 패키지 목록 업데이트
3. remove/purge <패키지>: 패키지 제거
4. autoremove: 사용하지 않는 패키지 자동 제거
5. clean/autoclean: 내려 받은 파일 제거
6. search <text>: 패키지 검색
apt-cache 패키지 정보 & 의존성 파악하기 위한 명령

1. show 패키지: 패키지 정보 보기
2. depends 패키지: 패키지 의존성 확인
3. rdepends 패키지: 패키지 역의존성 확인
axel <주소> <주소>의 데이터를 다운로드
압축 & 해제
xz, bzip2, gz 등 xz 파일명
xz -d 파일명.xz

bzip 파일명
bzip -d 파일명.bz …
zip / unzip windows와 호환되는 압축 / 해제 방식

zip    압축파일이름.zip          압축할파일이름1 … 
         -r   압축파일이름.zip    압축 경로

unzip    압축파일이름.zip    -d /파일/풀/경로
tar 파일 묶기 기능을 수행 ( 리눅스는 압축과 묶기가 별개의 개념 )

c: 묶기
x: 풀기
t: 풀기 전에 경로 확인하기
C: 지정된 디렉터리에 압축 풀기(없으면 tar 파일 위치에)
f: 압축 파일 이름 지정
v: 파일 압축 / 해제 과정 시각화
J: tar + xz
z: tar + gzip
j:tar + bzip2
이외
systemctl 서비스 관리 명령어

- start <서비스>
- stop <서비스>
- restart <서비스>
시간 관련
rdate 타임 서버와 시간을 동기화
ex) rdate time.bora.net

timedatectl 시간을 보거나 설정하기 위한 명령
스케줄링
at 일회성 작업을 스케줄링
작업 정의:

  at <시간>
  명령 1
  명령 2
  ctrl + D

작업 조회: at -l
작업 제거: atrm <number>

 

'잡다 > linux?' 카테고리의 다른 글

[wsl] wsl gui 속도 높이기  (0) 2024.11.14
[WSL2] WSL2에서 vscode가 작동하지 않을 때  (0) 2021.12.08
[Linux] WSL2 alias 저장  (0) 2021.12.02