본문 바로가기
  • Welcome J-Kyu Tstory
카테고리 없음

Linux 기본명령어

by regularity 2022. 4. 15.

리눅스 기본 명령어

 

 

모든 명령어는 명령어 뒤에 --help 옵션을 주면 자세한 사용 방법이 나옴

예를들어 ls 명령어의 자세한 사용 방법과 모든 옵션을 알고싶으면 ls –help를 입력하면 된다.

 

 

rpm -qa |grep java

 

 

tar 확장자 설치

jdk-8u321-linux-x64.tar.gz 파일을 설치하려고할때

tar xzvfp jdk-8u321-linux-x64.tar.gz

 

pwd (print working directory)

현재 작업중인 디렉토리 정보 출력

$ pwd
/home/itholic

 

cd (change directory)

경로 이동

절대 경로와 상대 경로로 이동 가능하다.

절대 경로와 상대 경로에 대해 더 자세히 알고싶다면 해당 포스팅 참조

$ cd /home/itholic/mydir
$ pwd
/home/itholic/mydir


$ cd ..
$ pwd
/home/itholic

 

ls (list)

디렉토리 목록 확인

$ ls
testfile1  testfile2  testfile3


$ ls -l
total 0
-rw-r--r-- 1 itholic 197121 0 11월  6 22:08 testfile1
-rw-r--r-- 1 itholic 197121 0 11월  6 22:08 testfile2
-rw-r--r-- 1 itholic 197121 0 11월  6 22:08 testfile3


$ ls -a
./  ../  testfile1  testfile2  testfile3


$ ls -al
total 4
drwxr-xr-x 1 itholic 197121 0 11월  6 22:08 ./
drwxr-xr-x 1 itholic 197121 0 11월  6 22:08 ../
-rw-r--r-- 1 itholic 197121 0 11월  6 22:08 testfile1
-rw-r--r-- 1 itholic 197121 0 11월  6 22:08 testfile2
-rw-r--r-- 1 itholic 197121 0 11월  6 22:08 testfile3

 

cp (copy)

파일 혹은 디렉토리를 복사

디렉토리를 복사할때는 -r 옵션을 주어야함

 
$ ls
testdir/  testfile


$ cp testfile1 testfile_cp
$ ls
testdir/  testfile  testfile_cp


$ cp -r testdir testdir_cp
$ ls
testdir/  testdir_cp/  testfile  testfile_cp

 

rm (remove)

m abc.txt

<모든파일 삭제>
rm *.txt

<바로삭제>
rm -f abc.txt

<디렉토리는 삭제하지않고 모든파일삭제>
rm -f *

 

 

 

mv (move)

파일 혹은 디렉토리 이동

실제로 원하는 위치로 이동할때도 사용하지만, 이름을 변경하는 용도로도 사용한다.

cp와는 달리 디렉토리를 이동할때도 별다른 옵션이 필요 없다.

 
$ ls
testdir/  testfile


$ mv testfile testfile_mv
$ ls
testdir/  testfile_mv


$ mv testfile_mv testdir/
$ ls
testdir/


$ ls testdir/
testfile

 

mkdir (make directory)

디렉토리 생성

-p 옵션을 주면 하위 디렉토리까지 한 번에 생성 가능

아래 예제중 ls -R 옵션은 디렉토리의 하위목록까지 전부 보여주는 옵션인데,

내 경우 실제로 많이 사용하진 않아서 ls 명령어에서 따로 설명하진 않았다.

mkdir -p 옵션 예제에서 실제로 하위디렉토리가 생성되었다는 것을 보여주기 위해 사용하였다.

 
$ ls
testfile


$ mkdir testdir
$ ls
testdir/  testfile


$ mkdir -p a/b/c/d/e/
$ ls -R a/
a/:
b/

a/b:
c/

a/b/c:
d/

a/b/c/d:
e/

a/b/c/d/e:

 

rm (remove)

파일이나 디렉토리를 삭제

디렉토리를 삭제할때는 r 옵션을 주어야 한다.

-f 옵션을 주면 사용자에게 삭제 여부를 묻지 않고 바로 삭제한다.

디렉토리를 삭제할 때에는 하위 디렉토리까지 모두 삭제되므로 유의하자.

 
$ ls
testdir/  testfile1  testfile2


$ rm -f testfile1
$ ls
testdir/  testfile2


$ rm -rf testdir/
$ ls
testfile2

 

touch

파일이나 디렉토리의 최근 업데이트 일자를 현재 시간으로 변경한다.

최근 업데이트 일자는 ls -l 명령을 통해 확인할 수 있다.

아래 예제에서 ‘11월 6 22:08’ 이라고 쓰여진 부분이다.

파일이나 디렉토리가 존재하지 않으면 빈 파일을 만든다.

$ ls -l
total 0
-rw-r--r-- 1 itholic 197121 0 11월  6 22:08 testfile1


$ touch testfile1
$ ls -l
total 0
-rw-r--r-- 1 itholic 197121 0 11월  6 22:43 testfile1


$ touch testfile2
$ ls -l
total 0
-rw-r--r-- 1 itholic 197121 0 11월  6 22:43 testfile1
-rw-r--r-- 1 itholic 197121 0 11월  6 22:44 testfile2
 

 

cat (concatenate)

cat 명령은 활용 방법이 꽤나 다양하다.

단순히 파일의 내용을 출력할 수도 있고,

파일 여러개를 합쳐서 하나의 파일로 만들 수도 있다.

그리고 기존 한 파일의 내용을 다른 파일에 덧붙일수도 있다.

새로운 파일을 만들때에도 사용된다.

file1, file2, file3 파일에는 각각 간단하게 숫자 1, 2, 3 이 적혀있다.

$ ls
file1  file2  file3


$ cat file1
1


$ cat file2
2


$ cat file3
3


$ cat file1 file2 > file1_2
$ ls
file1  file1_2  file2  file3


$ cat file1_2
1
2


$ cat file1 >> file2
$ cat file2
2
1


$ cat > file4
hello
world
(작성이 끝나면 ctrl +d 로 파일 저장)


$ cat file4
hello
world
 

 

파일의 앞부분을 보고싶은 줄 수만큼 보여준다.

옵션을 지정하지 않으면 파일 상위 10줄을 보여준다.

$ cat testfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


$ head -3 testfile
1
2
3


$ head testfile
1
2
3
4
5
6
7
8
9
10

 

tail

파일의 뒷부분을 보고싶은 줄 수만큼 보여준다.

옵션을 지정하지 않으면 파일 하위 10줄을 보여준다.

참고로 -F 옵션을 주고 실행하면,

파일 내용을 화면에 계속 띄워주고 파일이 변하게되면 새로운 업데이트된 내용을 갱신해준다.

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

$ cat testfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


$ tail -3 testfile
13
14
15


$ tail testfile
6
7
8
9
10
11
12
13
14
15


$ tail -F testfile
6
7
8
9
10
11
12
13
14
15
(명령어가 종료되지 않고 계속 해당 화면을 출력하며, 파일 내용 변경시 자동으로 갱신해준다)

 

find

특정 파일이나 디렉토리를 검색한다

사용법이 앞의 명령어들에비해 살짝 복잡하므로, 기본 사용법을 언급하자면 다음과 같다.

find [검색경로] -name [파일명]

파일명은 직접 풀 네임을 입력해도 되지만,

다음 예제처럼 특정 조건을 적용해 검색할수도 있다.

나같은 경우 주로 특정 확장자명을 찾기 위해 사용한다.

$ ls
dir1/  dir3/  file1  file3  picture1.jpg  picture3.jpg
dir2/  dir4/  file2  file4  picture2.jpg  picture4.jpg


$ find ./ -name 'file1'
./file1


$ find ./ -name "*.jpg"
./picture1.jpg
./picture2.jpg
./picture3.jpg
./picture4.jpg

확장자가 .jpg인 파일을 찾았다.

하지만 여기서 그치지 않고, 확장자가 .jpg인 파일만 찾아서 바로 삭제할수도 있다.

exec 옵션을 사용해 다음과 같이 처리하면 된다.

$ find ./ -name "*.jpg" -exec rm {} \;
$ ls
dir1/  dir2/  dir3/  dir4/  file1  file2  file3  file4

그리고 다음과 같이 -type 옵션을 주면, 디렉토리나 파일만 지정해서 검색할수도 있다.

$ find ./ -type d
./
./dir1
./dir2
./dir3
./dir4


$ find ./ -type f
./file1
./file2
./file3
./file4

다음과 같이 wc -l 옵션과 같이 사용하면,

특정 디렉토리에 find 조건에 맞는 결과 값이 몇개 존재하는지 숫자로 간편히 알아볼 수 있다.

$ find ./ -type f | wc -l
4

지금처럼 파일 갯수가 4개밖에 없을땐 그냥 일일이 세면 되지만,

파일이 수백, 수천, 수십만 개가 있을땐 아주 유용하다.

 

마지막으로 아래 내용은 명령어가 조금 복잡하지만, 알아두면 유용해서 적어둔다.

특정 조건에 해당하는 파일들의 내용을 전부 찾아서 바꾸는 것이다.

예를들어 10만개의 파일이 있는데,

그 중에 확장자가 .txt인 파일만 찾아내고,

txt 파일 안에 있는 ‘hi’ 라는 문자열을 ‘hello’로 바꾸려면 다음과 같이 하면 된다.

find ./ -name "*.txt" -exec sed -i 's/hi/hello/g' {} \;

짧게 설명하자면,

다음 sed 명령어는 testfile1.txt 이라는 파일의 모든 ‘hi’ 라는 문자열을 ‘hello’로 바꾸는 역할을 한다.

sed -i 's/hi/hello/g' testfile1.txt

<단축키>
▶vi ~/.bashrc
▶source ~/.bashrc
▶cntrl+space
▶cntrl+:
▶:w
▶:wq

-ipconfig
-ip주소 고정

▶컨트롤 c

▶시프트 스페이스 (토글) 
 :(한글로 설정 후) 영어 ->한글/한글 ->영어

▶저장 -> 시프트+콜론:
▶q -> 저장 X
▶wq-> 저장 후 나감
▶컨트롤+z -> 빠져나감
▶fg-> 다시 들어가기

▶대문자 o -> 위에 인서트
▶그냥 o -> 아래 인서트
▶se nu ->번호를 보여줌
▶se nonu -> 번호를 다시 숨기고 싶다
/(찾고싶은내용)

▶k ->위로
▶j ->아래로  시프트+J -> 한줄에 합침
▶l(엘) -> 오른쪽 
▶h->왼쪽
▶컨트롤 +f /컨트롤+b -> 한 화면 위아래로 이동
▶컨트롤 +e /컨트롤+y -> 한 행 위아래로 이동
▶10 + j -> 10칸 밑으로 내려간다
▶10+k -> 위로
▶10 +ㅣ(엘) -> 오른쪽으로 10칸
▶10+h -> 왼족
▶시프트 +g ->제일 마지막 끝으로

▶:6  -> 행번호로 가짐
▶:$ -> 마지막행으로
▶r->커서가 위치한 글자하나를 바꿀때
▶u ->언두 삭제를 복구
▶x ->한글자 지울때
▶dw -> 한 단어를 지울때
▶시프트+d ->한 행을 지우고 싶을때

<범위를 설정해서 문자를 바꾸고 싶을때>
▶s/태극기/만국기 ->해당 커서에서 태극기를 만국기로 바꿔라
▶%s/태극기/만국기/g   g->전체  , 태극기를 만국기로 모두 바꿔라



▶!명령문 -> 그전에 실행했던 명령문을 실행
▶.(점) -> 방금한 작업을 반복


▶i(앞에서 입력),a(뒤에서 입력),o(커서가 위치한 행의 다음 행에 입력),I(대문자i,커서가위치한 행의 첫 칼럼 이동 후 입력)
	A(커서가 위치한 행의 마지막 칼럼 이동 후 입력),O(커서가 위치한 행의 이전 행에 입력)
2. vi편집툴에서 라인의 번호를 보이는 명령어를 제시하시오?
▶se nu
3. 5개의 라인을 복사하는 명령어를 제시하시오?
▶5Y (yanked)
4. 10라인을 지우고자 한다. 이에 대한 명령어를 제시하시오?
▶10+dd
5. 두줄을 합치려고 한다. 이에 대한 명령어는?
▶shift +J
6. 단어 1개를 지우는 명령어는?
▶dw
7. 단어 'a'를 'c'로 바꾸고자 한다. 이에 대한 명령어는?
▶r
8. 한라인에 있는 문자 'Centos'를 'CENTOS'로 치환하는 명령어는?
▶s/Centos/CENTOS
9. 전체 텍스트에서 'boy'를 'girl'로 치환하는 명령어는?
▶%s/boy/gir
10. 전체 텍스트에서 'girl'을 검색하고자 한다. 명령어는?
▶shift+/girl
11. 전체 텍스트에서 첫라인으로 가는 명령어는?
▶shift+h
12. 제일 마지막의 행으로 가는 명령어는(두가지)?
▶shift+g , shift+l(엘), $
13. 현재라인에서 위로 10칸 가는 명령어는?
▶10+k
14. 현재 라인에서 아래로 30칸 가는 명령어는?
▶10+j
15. 방금 실행한 명령어를 반복하는 명령어는?
▶ .(마침표)
16. 방금 3줄을 지웠다 이를 취소하는 명령어는?
▶u (undo)
17. 임시로 빠져나오기 위한 명령어를 제시하시오(2가지)
▶sh  ,q
18. 파일을 'aaa.txt'로 저장하여 빠져나온다. 명령어는?
▶wq AAA.txt
19. 빈파일 bbb.txt를 만들었다. 이에 대한 명령어는?
▶touch bbb
20. 편집중에 현재 위치하여 있는 작업디렉토리 루트를 알고싶다.
이에 대한 명령어는?
▶pwd

 

출처[https://itholic.github.io/linux-basic-command/]

댓글