[Linux] 리눅스 명령어
Contents
생활코딩 리눅스 명령어 정리
file & directory
pwd: 현재 경로 확인ls: 현재 위치에 있는 파일, 디렉토리들 확인ls -l: 파일, 디렉토리들 정보도 같이 확인 가능ls -a: 감춰진 것들도 확인 가능ls -al: 위 두개를 동시에 확인
mkdir 디렉토리이름: 디렉토리 만들기cd 특정위치: 특정위치로 이동 (절대경로, 상대경로 모두 사용가능)rm: 파일 삭제rm -r 디렉토리: directory를rm으로 삭제가 안되고 이 명령어 사용rmdir: directory를 삭제
touch: 파일 만들때 쓰는듯
help & man
명령어 --help: 해당 명령어에 대한 설명이 나옴man 명령어: 더 자세히 설명이 나오는듯
파일이동, 복사
cp 복사당할파일위치 복사할파일위치: 파일복사- 예시)
cp /home/a.txt /home/move/b.txt
- 예시)
mv 이동당할파일위치 이동할파일위치: 파일이동- 파일이름 바꾸때도
mv쓰면 되겠구나
- 파일이름 바꾸때도
sudo
sudo: super user do- 각각의 사용자마다 권한을 다르게 지정되어있는데 일반적인 사용자의 경우
sudo를 통해 강한 권한
package manager
- apt라는 package manager를 사용해보자
apt-get update: 이 명령어를 통해 최신상태 소프트웨어 목록을 다운받는다apt-cache search 원하는소프트웨어: 위에서 다운받은 목록에서 원하는 소프트웨어와 관련한 내용을 보여준다apt-get install 원하는소프트웨어: 해당 소프트웨어 다운apt-get upgrade 원하는소프트웨어: 해당 소프트웨어 업그레이드apt-get upgrade그냥 이렇게 하면 전부 다 업그레이드
apt-get remove 원하는소프트웨어: 해당 소프트웨어 삭제
file download : wget
wget 다운받을주소: 파일다운로드wget -O 저장하고싶은이름 다운받을주소: 원하는 이름으로 파일이 저장된다
why CLI?
- GUI보다 메모리도 덜 먹고 편함
- 연속적으로 명령이 가능!
- 예를 들어
mkdir minsoo; cd minsoo ;세미콜론은 그냥 편의상 명령어를 구분하는 역할- 근데 주의! 앞의 명령어가 오류가 나도 뒤의 명령어가 진행된다
- 예를 들어
pipeline
cat sample.txt: sample.txt 파일을 보여준다grep 특정단어 특정파일: 특정파일에 특정단어가 들어가있는 행을 보여준다.- pipeline 예시 (
|사용)ls --help | grep sort
IO Redirection
>ls -l > result.txt: 앞의 내용(standard output)을 result.txt로 redirection해서 파일을 만든다.- 근데 이때
>는1>을 의미한다. 이는 standard output을 redirection할때 사용하는 것이다. - 근데
rm result.txt이 에러가 나는 명령어라고 가정하면 이는 standard error이고 이를 rediection하기 위해서는rm result.txt 2> error.txt해야한다.
catcat result.txt와cat < result.txt는 똑같은 결과는 낸다. 다른점은?- 전자의 경우는 result.txt를 Command-line Argument로 받은 것이고 후자는 Standard input으로 받은 것!
>>- 기존에 result.txt 파일이 있다고 하면 예를 들어,
ls -al >> result.txt하면ls -al의 결과가 result.txt에 append된다.
- 기존에 result.txt 파일이 있다고 하면 예를 들어,
Directory structure
/bin: user binaries, 우리가 사용하는 명령어들/sbin: system binaries/etc: configuration files, 설정/var: variable files/home: home directories, user들의 file- 기타등등
file find : locate, find, whereis
locate 원하는파일: 원하는 파일 찾을 수 있다find 원하는파일: 원하는 파일 찾을 수 있다- 더 다양한 사용법이 존재
whereis: 주로 명령어, binary 파일 위치 찾을 때 쓰는듯which: 사용하는 명령어의 위치 알려줌
background execute
- 어떤 프로그램을 사용하다가
Ctrl+Z를 누르면 해당 프로그램이 background로 간다 - 그리고
jobs라는 명령어를 치면 background에 돌아가는 프로그램을 보여준다 - 원하는 background에 있는 프로그램에 돌아가려면
fg %해당프로그림의번호명령어를 이용하면 된다 &- 시간이 오래걸리는 프로그램이 있으면
~명령어~ &를 통해서 바로 background로 보내고 나는 다른 일을 하면 된다
- 시간이 오래걸리는 프로그램이 있으면
daemon
ls, rm ...과 같은 프로그램은 필요할 때만 사용- 그렇다면 항상 켜져있도록하는 프로그램도 있을 것!
- ex) server
- 이를 daemon이라고 한다
/etc/init.d: 여기에 daemon 파일들이 있다service 프로그램 start,service 프로그램 stop
- 컴퓨터 시작할 때 자동으로 실행되도록 하고 싶으면
/etc/rc3.d에 link를 만들면 된다
CRON
- CRON : 정기적으로 명령을 실행시켜주는 도구
- 예를 들어,
- 사용자가 server로 메일을 보내면 바로 완료되었다고 뜨지만 server에서는 해당내용을 체크만 하고 cron을 통해서 체크된 내용을 정기적으로 진행한다
crontabcrontab -e명령어를 치면 에디터가 열리고 거기에 명령어를 만들어주면 된다
startup scipt
- shell을 시작할 때, 특정 명령어 실행되도록 하는 것
- 에디터로
.bashrc파일을 열어보면 이미 만들어져있다- 여기에 원하는 명령어를 추가하면 된다
- 예를 들어,
alias l='ls -al'이렇게 별명을 붙여주기가 가능하는데 이런거는 미리 만들어두면 편하게 이용할 수 있을 것이다
Mult user
idid명령어를 치면 지금 user에 대한 정보 보여준다
whowho명령어를 치면 누가 접속했는지 보여준다
Root user
- 리눅스에는 크게 두 가지 user
- super(root) user
- user
sudo명령어로 user가 root user처럼 명령할 수 있다- 하지만 아무나 사용은 못하고 이를 사용할 수 있도록 명령어를 추가로 해야한다
su 사용자이름명령어를 통해 user를 바꿀 수 있다
Add user
useradd -m 이름: 해당 이름 user가 만들어진다passwd 이름: 해당 이름에서 사용한 비밀번호 지정
Permission
- file, directory에 대해 user의 권한을 지정
- read, write, excute 에 대한 권한을 지정
-rw-r--r-- 1 root root 485 Jul 2 12:38 result.txt:ls -l result.txt라는 명령어를 친 결과-rw-r--r--에서 맨 앞은 type(file or directory), 뒷부분은 access mode를 의미rw-r--r--: 여기에서rw-는 owner의 권한,r--는 그룹의 권한,r--는 나머지들의 권한root root에서 앞부분은 owner, 뒤부분은 group을 의미
- directory에서 read를 안에있는 파일을 읽을수있는지, write는 안에있는 파일을 수정할수있는지, execute는 해당 directory에 들어갈수있는지
chmodr: read,w: write,x: excute- 위에서
chomod o-r result.txt하면 나머지들은 read도 못한다 추가는chomod o+r result.txt이런식으로 가능u,g,o,a에+,-,=연산자와 mode 이용
- Octal modes도 있다 예를들어
chomod 111 result.txt처럼 owner, group, other 모두 한번에1(excute only)이 되도록 한다
Reference
- (생활코드)[https://www.youtube.com/playlist?list=PLuHgQVnccGMBT57a9dvEtd6OuWpugF9SH]