맨 페이지는 cd와 같은 쉘 내장 명령어에 대한 매뉴얼은 제공하지 않음.
npm과 같이 외부에서 제공하는 소프트웨어의 경우도 마찬가지임
맨 페이지에서 대괄호는 Optional을 상징
> type npm
npm is /home/octavesop/.nvm/versions/node/v18.14.0/bin/npm
type 명령어는 특정 명령어의 위치를 알려준다.
alias인 경우 alias라고 출력해줌
> which clear
/usr/bin/clear
which 명령어도 마찬가지긴 함
help 명령어를 쓰면 cd, pwd, echo와 같은 쉘 빌트인 명령어들의 도움말도 확인해볼 수 있음
윈도우 체제에서는 물리적 / 논리적으로 드라이브가 분리되어있음. ex) C드라이브, D드라이브...
그러나 유닉스 혹은 유닉스 유사 체제 산하에서는 언제나 모든 데이터의 시작 지점이 되는 최상위 폴더를 가지고 있음.
실제로는 '/' 디렉토리의 형태로 되어있음.
xdg-open / <= 명령어로 gui 파일 디렉토리를 볼 수 있음
루트 디렉토리 아래에는 home 디렉토리가 있으며
해당 디렉토리는 octavesop, nnn, eee와 같이 사용자 아이디별로 구분되는 각각의 아이디를 갖고 있음.
루트 디렉토리는 '/'로 표기하며,
홈 디렉토리는 '~'로 표기함.
rm -r <= recursive
rm -v <= 모든 로그를 남김
rm -i <= 대화형, 파일을 삭제할 때마다 삭제할 건지 물어봄
mv test.txt test/ <= 파일을 이동
mv test/ test1 <= 폴더를 이동
만일 해당 폴더가 위치하지 않으면 이는 rename의 역할을 하게 됨
파일도 마찬가지임
mv test.txt TEST.png
ctrl + l => clear
ctrl + a => 라인 시작으로
ctrl + e => 라인 끝으로
ctrl + b => 앞글자로
ctrl + f => 뒷글자로
alt + f => 앞단어로
alt + b => 뒷단어로
ctrl + t => 앞글자와 뒷글자를 바꿈
alt + t => 앞단어와 뒷단어를 바꿈
ctrl + k => 현재 커서 뒤쪽의 모든 글자를 지움
ctrl + d => 현재 커서의 글자를 지움
history => 스페이스바 누르면 다음 페이지임
!1232 => 히스토리에 나오는 번호를 적으면 해당 번호에 해당하는 명령어를 실행함
cat => 여러 파일을 선언하면 두 파일의 텍스트를 합쳐서 출력함
less test.txt => 파일을 보여주고 cat과는 달리 스크롤이나 검색 기능 등을 제공함
history | less 같은 식으로도 사용 가능
맨 페이지에서 쓰는 뷰도 동일한 방식임
tac test.txt => 줄 순서를 뒤집음
rev test.txt => 글자 순서를 뒤집음(줄은 그대로)
head -n 2 test.txt
head --lines 2 test.txt
head -2 test.txt
앞의 두 줄만 출력함
tail -n 2 test.txt
tail --lines 2 test.txt
tail -2 test.txt
뒤의 두 줄만 출력함
tail -f test.txt
파일에 새 줄이 추가되면 계속 출력함
$ wc test.txt
8 7 46 test.txt
줄 수, 단어 수, 바이트 수를 알 수 있음
$ wc -l test.txt // 줄 수
$ wc -w test.txt // 단어 수
$ wc -m test.txt // 문자 수
$ wc -c test.txt // 바이트 수
sort test.txt
// 알파벳 순으로 정렬함
// 소문자 => 대문자 순임
sort -r test.txt
// 정렬 순서를 반대로 함.
sort -n test.txt
// 정렬 순서를 숫자 기준으로 함
sort -u test.txt
// 중복 데이터를 제거하고 출력함
sort -k2 0n test.txt
test 10.123
rwe 12.222
같은 파일을
2번 열을 기준으로 정렬하기
date > today.txt
로 하면 today.txt 파일에 해당 출력값을 기록함
> 는 신규 덮어쓰기고
>>는 업데이트임
echo "test" > test.txt
도 가능함
cat < test.txt > test2.txt
를 사용하면 test.txt의 내용을 test2.txt에 덮어씀
sort < test.txt > test2.txt
를 사용하면 test.txt의 내용을 정렬해 test2.txt에 덮어씀
2>를 쓰면 에러를 기록할 수 있음. 이 경우 에러가 없으면 기록되지 않음.
>는 본래 1>의 약자임.
&> 를 사용하면 에러와 표준 출력을 같이 기록할 수 있음
파이프를 사용하면 특정 명령어를 수행한 결괏값을 다음 명령어로 넘기는 것이 가능하다.
$ ls /usr/bin -1a | wc -l
$ cat -n countries | head -20 | tail -10
# 10번째 줄부터 20번째 줄까지를 조회
$ ls /usr/bin -lh | sort -k5h | tail -3
# 가장 크기가 큰 3개의 파일 찾아내기
tr 명령어를 사용해 특정 문자를 교체하는 것이 가능하다. translate의 약자이다.
$ echo 'test' | tr t T
TesT
$ echo 'test' | tr a-z A-Z
TEST
tee 명령어를 사용하면 표준 입출력 리다이렉션을 인자값으로 다음 파이프라인의 명령어로 전달할 수 있다.
$ cat colors.txt words.txt > colorsWords.txt | tee colorsAndWords.txt | wc
쉘에서도 다음과 같은 기능을 사용할 수 있다. 통틀어 '와일드카드'라고 부른다.
* (아스테리스크)
해당 조건에 부합하는 모든 내용을 출력. 글자 수에 제한이 없다.
$ echo p* => p로 시작하는 모든 파일명을 출력함
$ ls *.html => 현재 디렉토리의 모든 .html 확장자 파일을 출력함
? (물음표)
해당 조건에 부합하는 모든 내용을 출력. 단, 하나의 물음표가 한 글자를 의미한다. sql을 생각하면 편함.
$ ls app.?? => 확장자가 두 글자인 app 파일을 출력함
$ ls pic?.png => pic1, picA, picu 등의 파일명을 가진 파일들을 출력함
'INFRA > LINUX' 카테고리의 다른 글
왜 ssh -t에서만 command not found가 발생할까? (0) | 2024.04.02 |
---|---|
history에 시간값 추가하기 - Ubuntu (1) | 2024.03.15 |
시스템 로그 확인 (0) | 2023.10.20 |
깔끔하게 프로세스 죽이기 (0) | 2023.10.04 |
man 명령어 (0) | 2023.10.04 |