리눅스 기본 명령어

P·2021년 10월 26일
0

pwd

현재 위치한 디렉토리의 경로 표시

a@test:~$ pwd
/home/a
a@test:~/folder1$ pwd
/home/a/folder1

mkdir

현재 디렉토리 위치에서 새로운 디렉토리 생성

a@test:~$ mkdir folder2

ls

현재 디렉토리의 파일 및 디렉토리 목록 출력

a@test:~$ ls
folder1 test.txt

ls -옵션

ls -a : 숨김파일 및 디렉토리까지 출력
a@test:~$ ls -a
. .. .bash_logout .bashrc .cache folder1 .profile .sudo_as_admin_successful text.txt
ls -l : 파일 및 디렉토리를 자세히 출력
a@test:~$ ls -l
total 8
drwxrwxr-x 2 a a 4096 Oct 26 00:28 folder1
-rw-rw-r-- 1 a a    8 Oct 26 00:46 test.txt
(권한)(포함된 파일 수)(소유자)(그룹)(파일크기)(수정일자)(파일이름)
ls -R : 현재 디렉토리에 있는 하위 디렉토리의 파일 및 디렉토리까지 출력
a@test:~$ ls -R
.:
folder1 test.txt
./folder1:
ls -h : 파일 크기의 단위값을 표시하여 출력
a@test:~$ ls -alh
total 32K
drwxr-xr-x 4 a    a    4.0K Oct 26 00:47 .
drwxr-xr-x 3 root root 4.0K Oct 25 23:33 ..
-rw-r--r-- 1 a    a     220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 a    a    3.7K Feb 25  2020 .bashrc
drwx------ 2 a    a    4.0K Oct 25 23:34 .cache
drwxrwxr-x 2 a    a    4.0K Oct 26 00:28 folder1
-rw-r--r-- 1 a    a     807 Feb 25  2020 .profile
-rw-r--r-- 1 a    a       0 Oct 25 23:35 .sudo_as_admin_successful
-rw-rw-r-- 1 a    a       8 Oct 26 00:46 test.txt
(권한)(포함된 파일 수)(소유자)(그룹)(파일크기)(수정일자)(파일이름)

cd

변경할 디렉토리 경로 지정
cd .. => 상위 디렉토리로 이동(상대경로)
cd ~ 사용자의 home 디렉토리로 바로 이동

a@test:~$ cd folder1
a@test:~/folder1$ pwd
/home/a/folder1
a@test:~/folder1$ cd ..
a@test:~$ pwd
/home/a
a@test:/$ pwd
/
a@test:/$ cd ~
a@test:~$

rm

파일 및 디렉토리 삭제

a@test:~$ rm test.txt

폴더의 경우 -r 옵션을 이용하여 삭제할 수 있음
(-r, recursively 재귀적 => 디렉토리에 속해있는 하위 디렉토리 또는 파일을 순차적으로 삭제함)

a@test:~$ rm -r folder1

help

명령어에 대한 도움말 출력

a@test:~$ ls --help
a@test:~$ rm --help

man

help명령어와 유사하나 독립적인 페이지로써의 명령어에 대한 매뉴얼 제공

a@test:~$ man ls

cp

파일 또는 디렉토리 복사 명령어

a@test:~$ cp test1.txt folder1
// test1.txt 파일을 folder1 디렉토리 안으로 복사
a@test:~$ cp -r folder1 folder2
// folder1 디렉토리를 folder2 디렉토리 안으로 복사
// 디렉토리 복사 시 -r옵션을 이용하여야 함
// folder1 에 복사한 test.txt 파일이 있기 때문에 해당 파일까지 복사하기 위함
a@test:~/folder2/folder1$ pwd
/home/a/folder2/folder1
a@test:~/folder2/folder1$ ls
test.txt

mv

파일 또는 디렉토리 이동 또는 이름변경
이동할 디렉토리가 없으면 파일의 이름변경

a@test:~$ mv test.txt folder1
a@test:~$ cd folder1
a@test:~/folder1$ ls
test.txt
a@test:~$ mv test.txt test2.txt
a@test:~$ ls
folder1 folder2 test2.txt

sudo, su

슈퍼유저 권한으로 실행한다(super user do)라는 의미로 리눅스 시스템에 영향을 미치는 작업을 실행할 때 필요한 명령어
su: 슈퍼유저가 되기 위한

a@test:~$ sudo apt-get install git

wget

웹 사이트에 있는 파일 및 이미지 등을 다운 받을 수 있는 명령어

a@test:~$ wget http://kor.theasian.asia/wp-content/uploads/2019/06/6000220501_20090417.jpg

또는 다른 이름으로 저장 (-O 저장할이름)

a@test:~$ wget -O 5manwon.jpg http://kor.theasian.asia/wp-content/uploads/2019/06/6000220501_20090417.jpg

git

버전관리에 특화된 툴
github등을 통해 clone을 받아 사용할 수 있음

a@test:~$ git clone https://github.com/facebook/react.git

cat

두개 이상의 파일을 연결해서 출력할 때 사용, 하나의 파일만 출력도 가능
-n 옵션을 사용하여 행 번호를 붙혀 출력 가능

a@test:~$ cat test.txt
hi my name is linux
a@test:~$ cat test2.txt
aaaiii
a@test:~$ cat test.txt test2.txt
hi my name is linux
aaaiii
a@test:~$ cat -n test.txt
	1 hi my name is linux

파일의 특정 행까지만 출력하기 위한 명령어 (-n 명령어를 통해 출력할 행을 결정 가능)

a@test:~$ head -n1 test3.txt
total 184

I/O Redirection

입력과 출력의 방향을 제어하는 행위
(>) : output redirection (출력하는 방향, 1은 Standard output, 2는 Standard error)
(<) : input redirection (입력하는 방향)
(>>): append redirection (원래 있는 데이터를 유지하면서 뒷 부분에 내용을 추가)

a@test:~$ ls -l 1> test3.txt
(ls -l의 결과를 test3.txt파일로 저장)
a@test:~$ ls -l >> test3.txt
(ls -l의 결과를 test3.txt파일의 마지막에 추가로 저장)
a@test:~$ rm test4.txt 2> error.log
(test4.txt 파일이 없기 때문에 1>로 redirection하면 오류가 나기 때문에 2>로 error 출력)
a@test:~$ cat < test3.txt
(cat의 Standard Input으로 test3.txt를 입력)
a@test:~$ cat test3.txt
(cat의 인자로서 test3.txt를 전달)

locate

파일의 위치를 찾기 위한 명령어
파일을 하나씩 검색하면서 찾는것이 아닌 DB에 저장되있는 경로를 확인하여 출력

a@test:~$ locate *.log
/home/a/error.log

find

파일의 위치를 찾기 위한 명령어
디렉토리를 지정하여 해당 디렉토리부터 하위디렉토리까지 직접 검색하여 경로를 확인하여 출력
(. = 현재 디렉토리부터 검색, ~ = 자신의 home 디렉토리부터 검색, / = root 디렉토리부터 검색)

a@test:~$ find . -name *.log	// 현재 디렉토리에서 하위 디렉토리까지 검색
./error.log
a@test:~$ find . -type f -name "test*.txt"	// type지정, f는 파일
./test2.txt
./test.txt
./folder2/folder1/test.txt
./test3.txt

whereis

명령어의 위치를 찾기 위한 명령어
명령어와 man파일의 위치까지 표시

a@test:~$ whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz

$PATH = 리눅스에서 만든 환경변수
whereis 명령어를 사용하면 $PATH에 있는 경로값을 모두 검색하여 찾고 싶은 명령어의 위치가 발견되면 실행 (: 콜론으로 경로를 묶음)

a@test:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

ps

현재 실행중인 프로세스를 출력

a@test:~$ ps
 PID	TTY	    TIME	CMD
1325	tty1	00:00:00	bash
1337	tty1	00:00:00	ps
a@test:~$ ps -ef
...

ctrl+z

현재 실행중인 프로세스를 백그라운드로 전환
'jobs' 명령어로 현재 백그라운드에 있는 프로세스 확인 가능
'fg' 명령어로 포그라운드로 다시 불러오기

a@test:~$ jobs
[1]+ Stopped	vim
a@test:~$ kill -9 %1
[1]+ Killed	vim

id, who

id: 자신의 이름 및 속해있는 그룹 등을 표시
who: 현재 리눅스 시스템에 접속해 있는 유저 표시

a@test:~$ id
uid=1000(a) gid=1000(a) groups=1000(a), 4(adm), 24(cdrom), 27(sudo), 30(dip), 46(plugdev), 116(lxd)
a@test:~$ who
a	tty1	2021-10-28 01:10

새로운 계정 만들기

a@test:~$ sudo useradd -m b		// b라는 사용자 생성
a@test:~$ sudo passwd b			// b 사용자의 비밀번호 생성
a@test:~$ sudo adduser b sudo		// b 사용자에게 sudo 권한을 부여
Adding user 'b' to group 'sudo'...
Adding user b to group sudo
Done.
a@test:~$ su - b
Password:
$
profile
개인 정리 공간

0개의 댓글