소프트웨어 개발자, 데이터 과학자, IT 인프라 관리자 또는 전문 기술자가 되든 간에 Linux와 MacOS에서 터미널을 사용하는 방법을 아는 것은 필수적입니다. 문제는 기억해야 할 명령어가 너무 많다는 것입니다. 엄청난 기억력이 없으면 인터넷에서 Linux 명령이나 해당 명령을 자주 검색해야 합니다.
귀중한 시간을 벌기 위해 MySQL과 Docker 치트시트를 가져와서 오늘 가장 흔하고 유용한 셸 명령을 공유하겠습니다.
기초
명령에 대한 도움말
cp
에 대한 명령을 기억하지 못하십니까? Learn more regarding paras online casino. mkdir
명령에는 어떤 옵션 이 있습니까? 몇 가지 도움을 찾으십시오.
help nano # "nano"명령에 대한 간략한 요약 man nano # "nano"명령에 대한 자세한 정보
파이프
한 명령의 출력을 다른 명령의 입력에 연결하거나 파일에 쓰는 것이 종종 유용합니다.
a | b # 파이프 : 명령 출력을 b 명령 입력에 삽입 a > file.txt # 명령 a의 출력을 file.txt에 저장 (덮어 쓰기) a >> file.txt # 명령 a의 출력을 file.txt에 저장 (추가) echo " 안녕하세요! " | xargs echo # 첫 번째 명령의 출력을 두 번째 명령의 인수로 삽입
출력 필터링
명령의 출력이 너무 긴 경우도 있습니다.이 경우, more
또는 less
명령을 사용하여 페이지로 분할 하거나 grep
을 사용하여 특정 단어 또는 문장이 포함 된 행을 출력할 수 있습니다.
cat verylongfile.txt | more # 페이지에서 분할 된 verylongfile.txt의 내용을 표시 cat verylongfile.txt | less # 스크롤 및 뒤로 탐색을 지원하는 페이지로 분할 된 verylongfile.txt의 내용을 표시 cat verylongfile.txt | grep " I love you " # " I love you " 문자열이있는 줄을 표시
화면 청소
터미널에 너무 많은 텍스트가 있습니까? clear
를 입력하여 작업의 초점을 복구하십시오
clear # 콘솔 청소
시스템
시스템에 대한 정보
다음 명령을 사용하면 컴퓨터에 대한 모든 세부 정보를 쉽게 얻을 수 있습니다.
uname -a # 시스템에 대한 정보(예: 아키텍처, 아키텍처)를 출력 sudulshw #(리눅스만 해당) 모든 하드웨어 구성 요소를 나열 sudulshw - short #(Linux만 해당) 요약 테이블을 하드웨어 구성 요소와 함께 나열 lscpu #(Linux만 해당) CPU에 대한 정보 표시 lsusb #(Linux만 해당) 플러그된 USB 장치를 나열 date # 현재 날짜 및 시간 출력
실행중인 프로세스
다음 명령은 시스템에서 실행중인 모든 프로세스의 개요를 제공합니다. macOS 및 일부 Linux 배포판에는 htop
이 설치되어 있지 않습니다 . 사용하기 전에 기본 패키지 관리자 ( macOS의 Homebrew )를 사용하여 설치해야합니다.
ps # 터미널 세션에서 지금 실행중인 프로세스를 보여줌 ps aux # 컴퓨터에서 실행중인 모든 프로세스를 보여줌 htop # 터미널에 활동 모니터를 표시
사용자 변경
터미널 창을 열면 입력 한 모든 명령이 현재 사용자와 함께 실행됩니다. 그러나 권한있는 사용자로 실행해야하는 경우가 많으므로 셸에서 사용자간에 전환하는 방법을 아는 것이 중요합니다.
su # 현재 사용자를 루트로 변경 su- # 현재 사용자 및 지역 변수를 루트로 변경 su maria # 현재 사용자를 "maria"로 변경 sudo nano # root 사용자로 "nano"명령을 실행
클립 보드에 복사하여 붙여 넣기
텍스트를 선택하고 Ctrl + C 또는 Ctrl + V를 눌러 터미널에서 텍스트를 복사하고 터미널에 붙여 넣을 수 있습니다 . 그러나 경우에 따라 클립 보드에 직접 액세스 할 수 있습니다. 아래에서 볼 수 있듯이 Linux이든 macOS이든 이보다 쉬울 수는 없습니다!
# Linux echo " 안녕 내 친구! " | xclip # copy "Hello my friend!" 클립 보드에 xclip -o >> pasted_text.txt # 클립 보드의 내용을 텍스트 파일에 붙여 넣기 # macOS echo " 안녕 내 친구! " | pbcopy # copy "안녕하세요!" 클립 보드에 pbpaste >> pasted_text.txt # 클립 보드의 내용을 텍스트 파일에 붙여 넣기
변수 및 경로
두 가지 방법으로 컴퓨터 셸에서 변수를 정의 할 수 있습니다. 실시간으로 (터미널에 해당 명령을 입력하여) 또는 .bashrc
홈 디렉토리 의 파일에 정의하여 영구적으로 유지합니다.
echo "헬로" # 헬로 인쇄 콘솔 echo $USER # 콘솔에서 변수 USER의 값을 인쇄 env # 모든 환경 변수를 인쇄 set #모든 지역 변수를 인쇄 MY_Friends(MY_FRIENDS) # 로컬 변수 MY_Friends(MY_Friends)를 생성 MY_Friends(친구들) = $MY_Friends: John:Anna # 값어치 'John'과 'Anna'를 MY_Friends에 연결 export MY_Friends #로컬 변수를 환경 변수로 생성 unset MY_Friends #변수 MY_Friends를 삭제
또 다른 흥미로운 명령어는 alias
입니다. 긴 명령을위한 명령어입니다. 만드는 방법을 살펴 보겠습니다.
alias clone_my_repo = " git clone http://verylongurl.com " # 별칭 생성
모르는 사람들을 위해 경로는 시스템이 실행 파일을 찾을 디렉토리 목록이므로 위치를 알 필요없이 이름 만 입력하여 실행할 수 있습니다. 다음 명령을 사용하여 경로에 폴더를 추가하고 실행 파일이있는 디렉토리를 가져올 수 있습니다.
export PATH = $ PATH : / home / john / myprogram # 경로에 / home / john / myprogram 디렉토리 추가 which nano # 는 "nano"의 실행 파일이 어디에 있는지 보여줌 whereis nano # 는 "nano"의 실행 파일, 매뉴얼, 소스 코드 등이 어디에 있는지 보여줌
파일 및 디렉토리
현재 디렉토리 변경
파일 시스템의 디렉토리 사이를 이동하려면 cd
명령 사용 방법 만 알면 됩니다.
pwd # 현재 디렉토리 가져오기 cd # 현재 디렉토리를 홈 디렉토리로 변경 cd /bin # 현재 디렉토리를 /bin으로 변경 cd .. # 상위 디렉토리로 이동
디렉토리 내용 나열
이 ls
명령은 디렉토리 내의 파일 및 폴더와 그 속성을 표시하는 데 필수적인 도구입니다.
ls # 현재 디렉터리에 있는 파일 및 디렉터리 목록 ls/bin # /bin의 파일 및 디렉터리 목록 ls -l # 상세 정보(크기, 날짜...) ls -a # 숨김 파일 및 디렉터리 표시 ls -ld # 현재 디렉터리(파일 아님)에 대한 정보 표시 ls my* # my로 시작하는 파일 목록 tree # 현재 디렉터리를 트리형식으로 표시
디렉토리 생성
폴더를 만들고 싶습니까? 그런 다음 mkdir
명령을 사용하십시오 .
mkdir movies # 현재 디렉토리 안에 "movies"라는 폴더를 만듬 mkdir -p movies / genres / scifi # "movies"라는 폴더를 만들고 "genres"폴더 안에 "scifi"폴더를 만듬
복사, 이동 및 제거
일반적으로 파일 탐색기에서 수행하는 복사, 이동 및 제거 작업은 터미널에서도 수행 할 수 있습니다.
rmdir movies # 빈 디렉토리 영화 제거 rm -rf movies # 영화와 그 파일의 디렉토리 제거 rm file1.txt # file1.txt 파일 제거 mv /home/michael/myfile.txt /home/john/important.txt # / home / michael에서 / home / john으로 파일 이동 cp /home/michael/myfile.txt /home/john/important.txt # / home / michael에서 / home / john으로 파일 복사 cp -R letters / memories / # "memories"폴더 안에 "letters"폴더의 내용을 복사 cp -R letters ~ / Desktop # "letters"폴더를 데스크탑에 복사
권한 및 소유자
chmod
및 chown
각각 을 사용하여 파일 또는 디렉토리의 권한과 소유자를 변경합니다 .
chmod 777 script.sh # script.sh 파일의 권한 변경 chmod + x script.sh # script.sh 파일을 실행 가능하게 만듬 chown guille script.sh # "script.sh"파일의 소유자를 "guille"사용자로 변경 ./script.sh # script.sh 실행
파일 검색
Contacts.json 파일이 어디에 있는지 기억 나지 않습니까? 폴더 안의 모든 PDF 파일을 나열 하시겠습니까? find
명령어로 이 작업 및 기타 작업을 수행할 수 있습니다.
find . -name hello.txt # 현재 디렉토리에서 "hello.txt"라는 파일을 찾음 find / home / joe / Downloads -name * .pdf # 다운로드 폴더에서 PDF 파일을 찾음 find / -executable -atime -10 # 10 분 전에 액세스 한 루트 디렉토리에서 실행 파일을 찾음 find ~ -newer reference.txt # "reference.txt"파일 다음에 편집 된 홈 디렉토리에서 파일을 찾음
파일의 SHA256 체크섬 계산
인터넷에서 소프트웨어를 다운로드 할 때 터미널에서 수행하기 매우 쉬운 SHA 체크섬을 확인하여 올바르게 다운로드되었는지 확인하는 것이 좋습니다.
# Linux sha256sum file.txt # 파일에 대한 SHA256 체크섬 계산 echo -n " foobar " | sha256sum # "foobar"라는 단어에 대한 SHA256 체크섬을 계산 # macOS shasum -a 256 file.txt # 파일에 대한 SHA256 체크섬 계산 echo -n " foobar " | shasum -a 256 # "foobar"라는 단어에 대한 SHA256 체크섬을 계산
TAR / ZIP 파일 압축 및 압축 해제
TAR 파일이든 ZIP 파일이든 터미널에서 압축을 풀 수 있습니다. 기존 폴더에서 디렉터리를 하나 생성합니다.
# tar/ untar tar -cvzf myfile.tar myfolder # "myfile.tar"파일에서 "my_folder"폴더를 압축 tar -xvzf myfile.tar # 현재 디렉토리에있는 myfile.tar 파일의 압축 해제 tar -C / opt / abc -xvzf myfile.tar # / opt / abc에있는 myfile.tar 파일의 압축 해제 # Zip/ unzip zip -r myfile.zip myfolder # "myfile.zip"파일에서 "my_folder"폴더 압축 unzip myfile.zip # 현재 디렉토리에서 myfile.zip 파일의 압축 해제
자유 공간
하드 디스크 드라이브에 여유 공간이 얼마나 있는지 알고 싶습니까? 아니면 외장 드라이브에서? 아니면 현재 디렉터리의 여유공간? df
명령은 모든 질문에 대한 답을 가지고있다.
df -k . # 현재 디렉토리의 여유 공간 df -k # 마운트 된 모든 볼륨의 여유 공간
파일 읽기
터미널에서 텍스트 파일의 내용을 볼 수있을뿐만 아니라 내용별로 줄을 필터링 및 정렬하고, 줄, 단어 및 문자 수를 계산하고, 파일에 열이있는 경우 열 선택과 같은 많은 분석을 수행합니다. 표 형식. 이 모든 것이 실제로 작동하는지 살펴 보겠습니다.
# grep : 줄로 필터링 grep 455 sales.txt # 455가 있는 줄을 인쇄 # cut : 일부 열 표시 cut -f 3 sales.txt # 세 번째 열만 인쇄 cut -f 2-3 sales.txt # 두 번째 및 세 번째 열만 인쇄 cut -c 9-19 sales.txt # 각 줄에 대해 9 번째부터 19 번째 문자까지만 인쇄 cut -f 1 -d ' ; ' clients.txt # clients.txt 파일은'; '를 사용합니다. 구분 기호 대신 탭 # awk : cut과 동일하지만 구분 기호가 더 많고 필터가 더 많으며 계산적으로 더 복잡 awk ' {print $ 3} ' sales.txt # 세 번째 열만 인쇄 awk ' {print $ 2 ","$ 3} ' sales.txt # 두 번째 및 세 번째 열을 쉼표로 구분하여 인쇄 awk ' {print $ 2 + $ 3} ' sales.txt # 두 번째와 세 번째 열의 합계를 인쇄 AWK ' 길이 ($ 0)> 20 ' sales.txt #은 길이가 긴 20 자 그 라인을 인쇄 AWK ' $ 2> 100 ' sales.txt # 번째 컬럼의 값이 100보다 큰 그 라인을 프린트 # wc wc sales.txt # 텍스트 파일의 줄, 단어 및 문자 수를 인쇄 ls -1 | wc # 현재 디렉토리에있는 각 파일의 줄, 단어 및 문자 수를 인쇄 # sort : 알파벳 기준에 따라 파일 줄을 정렬 sort sales.txt # 파일 라인 정렬 sort -r sales.txt # 줄을 역순으로 정렬 sort -R sales.txt # 무작위 순서로 라인 정렬 종류 -t $ ' \ t ' -k 3N, 3 sales.txt의 # 종류의 라인 숫자에 따라 3 열 # uniq : 파일의 반복되지 않거나 중복 된 줄을 연속적으로 표시 uniq hello.txt # 연속 된 중복 줄을 건너 뜀 uniq -d hello.txt # 연속 된 중복 행만 표시 uniq -u hello.txt # 중복되지 않은 줄만 표시 uniq -c hello.txt # 각 행에 대해 복제 횟수 표시