。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

[네이버클라우드] 클라우드 기반의 개발자 과정 7기/리눅스

[리눅스] SHELL, 명령어 모음

quarrrter 2023. 5. 7. 00:33

SHELL : 사용자들이 내리는 명령어 해석하여 기계어 번역 후 kernel 전달

 

echo $SHELL 

현재 사용자의 기본 쉘 확인

 

ls : 디렉터리 or 파일 목록 출력

ls /  : 최상위 디렉토리 가기

ls -l : 탐색기가서 목록보는 것처럼 상세 정보 
ls -a : .으로 시작하는 (. : 숨김 속성을 가진 파일) 도 표시 (a = all) 
ls -al :디렉터리 내 각 파일들의 권한, 날짜 및 이름을 한꺼번에 볼 수 있다.
ls -al /etc   :etc 디렉토리 보겠다     ls -al .    :. 숨김속성 파일 보겠다 

ls -S  : 내림차순

ls -Sr : 오름차순
대소문자, 슬래시 구분

 

 

파일 다루기

  파일 디렉터리
생성 touch mkdir
vi mkdir -p
cat (파일 만들기, 내용보기 둘 다)  
복사 cp cp -r
-i  
-f  
이동 mv mv
이름 바꾸기 mv, rename mv
삭제 rm rmdir, rm -r

옵션

-i interactive 대화형 모드 ( 덮어쓸지 물어봄)
-f force 강제
-r recursive 재귀적 작업, 하위디렉터리까지 포함(cp -r, rm -r)

mkdir c{1..100}

 

rm 삭제
rm a* : a로 시작하는거 다 지우기
rm [b-f]*
rm [^xyz]* : xyz 빼고 삭제
rm * : 전부 삭제

rm -rf c*  : c로 시작하는 모든 파일 삭제

 

2>/dev/null: 에러 안 뜨게

 

cp 복사하기
cp -r /etc/s* . 2>/dev/null
=>etc 에서 s로 시작하는 파일 복사, 에러뜨면 무시

cp /etc/vtrgb .    ;   cp /etc/magic .     (.은 현재 폴더에 복사)
ㅣ: 목록보기

 

[a4가 파일일때]
cp /etc/magic a4  : magic을 복사하면서 이름은  a4 로 바꾸기
cp /etc/magic a4 -f : 안 물(중복 시)
cp /etc/magic a4 -i:  묻 (중복 시)

 

[d200이 디렉토리일때]
cp /etc/magic d200
 디렉토리 d200안에 매직 복사

cp /etc/magic d200/a9
디렉토리 d200안에 a9 이름으로 매직 복사

 

** alias cp='cp -i' 만들어 놓으면 cp 할때마다 물어볼것임 

 

mv 이름 바꾸기 & 이동

mv sh psh : 1. sh 파일 명을 psh로 변경 2. sh파일을 psh 디렉터리로 이동

 

ll /tmp : tmp 열어보기

mkdir d20 && cd d20 : d20을 만들고 d20으로 들어가기
rename s/\.conf/.777/g *.conf   :.conf를 .777로 바꿔라   <--아직 모르겠음

 

 

**프로그램 목록 보기**

apt: 설치된 프로그램 
apt list // cntl c : 끊기
apt list --installed
apt list --installed | nl

apt list --installed | wc -l 몇갠지만 보기 

 

 

**파일 내용 보기 nl, cat ,head, tail **

head , tail / 10줄씩만 
head -5 
more  / 엔터: 라인단위, 스페이스 : 페이지 단위, b: 페이지 백 , q: 나오기
less (검색 가능) : /apache : apache 파일 검색 , 스페이스 : 페이지 단위, b: 페이지 백 , q: 나오기

 

**매뉴얼 사용하기 man,info, help**

man ls  / info ls /  ls --help

/name :name이란 문자열 검색

 

file

file은 지정된 파일의 종류(타입)을 확인하는 명령어

사용법 :  file 파일명

 

■sort : 파일 내용을 분석하여 행을 기준으로 구분하고 결과를 정렬하여 출력 (a부터 z까지)

sot -r : 리버스정렬

ls -l /var/log | sort -k 5 : 5번째가 파일 크기목록이므로 파일 크기 순으로 정렬 

ls -l /var/log | sort -n -k 5 :     -n : 숫자크기순으로 정렬 

*who | sort // 파이프 활용 

 

■wc문서의 행과 단어 그리고 문자의 개수를 카운트하고 출력

wc -l , wc -w, wc-c

who | wc -l

apt list --installed | wc -l

 

■grep : 지정한 특정 문자열 검색하여 동일한 문자열이 있는 줄의 패턴을 찾아 출

grep http s : s 파일에서 http 가 들어가있는 라인만 검색 

grep domain s -c  / c: count 

grep domain s -i / : i 대소문자 무시

grep domain s -v :반대로 없는 것만 출력 

grep domain s -n : n 몇번재 행에 있는지 보여

grep ^http s -n : ^  http 로 시작하는것만 출력 

grep ice$ s -c : ice로 끝나는 것만 출력

ls -al /etc |grep "^d" : 디렉토리만 찾겠다

 

 

■pipe |  연결,,

who | sort 

who | sort | nl 

who | sort | nl | column

 

■dpkg

설치된 패키지 검색

 dpkg를 이용해서 설치된 패키지를 검색하는 방법은 -l 옵션(list)으로 아래와 같이 가능하다.

 

$ dpkg -l 패키지_이름

-l 옵션만 쓰고 뒤에 아무 이름도 명시하지 않으면 설치된 모든 패키지가 화면에 출력된다. 만약 정확한 이름이 기억나지 않아서 패키지 이름으로 검색되지 않는 경우에는 아래와 같이 grep 명령을 추가해서 키워드로 검색할 수 있다. 참고로 -l과 grep 사이에 쓴 막대기는 역슬래시(\) 문자를 쉬프트(Shift) 키와 함께 누른 것이다. (리눅스 파이프라인에 쓰는 문자)

 

$ dpkg -l | grep "패키지_이름의_일부"

 

■find 검색

find [찾을 위치] [option] [수행할 명령]

find ~ -name *.c : ~홈에서 .c 파일 이름을 찾아

2>/dev/null 오류 무시

 

find / -size +30M -exec ls -Alh {} \; 2>/dev/null

-exec ls -al {} \;     검색되었을 때 특정 명령 수행

 

■filter

-tr

tr 명령어는 문자를 변환하는 필터로 인용 부호나 [ ]를 사용하여 지정한 내용을 변경한다.

echo {a..z} | tr 'a-z' 'A-Z'    : 소문자를 대문자로 변환 

 

-sort

-uniq

uniq my.txt : 중복은 제외하고 출력

uniq my.txt -c : 카운트

uniq my.txt -i : 대소문자 구분 없이 

uniq my.txt -i | sort -r : 리버스로 정렬

 

-shuf

shuf -e 'ace' 'king' 'korea' : 랜덤 출력

shuf -i 1-10 : 1에서 10까지 랜덤 출력

shuf -i 1-45 -n 6 | paste - - - : 1에서 45까지 6개 3줄로 랜덤 출력

 

■압축 

gzip<->gunzip

bzip2<->bunzip2

xz<->unxz

 

■tar 묶기 

c: 새로운 tar 파일 생성

x: 풀기, 추출하기

v: 상태 보여주기 

z: 압축 

wget &&&***.tar.gz
gunzip ***.tar.gz
tar xf ***.tar
du ***     //파일크기 확인 
gzip ***.tar
tar cf a.tar ***   //저쩌구 디렉토리를 a.tar로 묶기
gzip a.tar



tar cfz b.tar.gz *** //  ***디렉토리를 b.tar.gz로 묶음과 압축 한 번에
tar xfz b.tar.gz   // b.tar.gz 압축파일을 묶음해제와 압축해제 한 번에