📝 Linux
📌 명령어
* 컨트롤+s : 저장
* rm 파일명 : 파일삭제
* pwd : 현재 작업중인 폴더 경로
* -F : 분류해주는 옵션
* ls -l : 자세히 알려주는것 dr(ead)w(rite)x(execute)r : d 는 폴더 , -: 파일 ==> 권한들을 보여주는것, 첫번쨰 오너를 위한 권한 두번쨰 그룹의 멤벌르 위한 권한 세번째 모든 다른유저들의 권한
*
* cal : 캘린더
* cal 2023
* clear
* car -y : 올해달력
* date 현재 날짜 시간
* history : 입력값 명령어 뭐했는지
* history -c; history : 히스토리 내역지우기
* echo hello : echo : 출력
* !4,!3 : !뒤에 잇는 히스토리 내역의 호출 다시 사용
* !! 이전 히스토리 내용 사용
* exit : 터미널 종료
* commandname -option input : 저순으로 입력 해넣으면된다
* which cal : 어디 있는지 위치
* cal 12 2023 :12월의 달력을 보여달라
* ls/usr/share/zoneinfo/Asia
* sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime -> password : 한국시간으로 바꾸기
* date -u : -u 가 옵션임
* date --help : 어떤 옵션들을 사용할 수 있는지 나옴
* 대소문자 구분 잘해야댐
* cal -A 1 12 2023 : -A 1: after 하나만 ,-B : before
* echo $PATH : commandnames 들은 쉘의 검색 path 안에 있어야됨
* -u : 짧게 짝대기 하나
* --universal : 옵션 길게하려면 짝대기 2개
* man 1 which : 메뉴얼 첫번째께 뭐잇는지
* man sol : sol 에 해당하는거 볼수 있음
* man -k which : 위치가 들어간 페이지 찾는것
* [] 대괄호 안에있는 것은 선택사항 <> 필수사항 ... : 반복가능 ex which echo wich ,THIng | THING2 둘중 하나만 사용 해야댐
* man cd 없으면 help cd 하면됨
* help pwd 도 잇고 man pwd 에도 잇을수 있음
* ls : list direcotry contents
* ls * :모든 폴더안에 있는 파일 나열
* ls D* : D로시작하는 모든 폴더의 파일들 나열
* touch 파일명.확장자 : 해당 폴더에 파일 만듬
* ls ?.확장자 : 한글자의 저확장자
* ls *.확장자 : 해당확장자 전부
* ls file?.txt : file 이라는 명뒤에 한글자 한글자 붙은 txt 확장자 파일 보기
* ls file[123A].txt : file1,file2,file3,fileA 찾음
* ls file[1-5] : file1,file2,~~,file5
* ls file[a-z] : 해당하는 파일이 있으면 나오고 없어도 에러안뜸 a 만잇으면 filea 하나만 출력
* locate 파일,폴더 : 어느 경로에 있는지 나옴, 데이터베이스 이용
* sudo updatedb : 최산화
* find 폴더,파일 : 데이터베이스 이용 x ,빠름, 폴더에 있는 내용까지 전부 나열
생성
* mkdir 폴더명 : 폴더생성
* mkdir -p folder3/folder4 : 폴더 3생성 그리고 그안에 4까지 생성
* mkdir a b c : a ,b,c 생성
* mkdir 'a b c': a b c 폴더생성
* mkdir {a,b,c,d,e,f,g}_{1,2,3) : a_1,b_1,c_1 ....a_2,b_2.... 이렇게 생성됨 파일도 동일
파일 삭제
* rm 파일 : 삭제하기
* touch ~/Doucments/delet.txt : 최상위 폴더에서 다큐먼트로가서 delet.txt 를 만들어라
* {} 활용잘하기 각각 적용되는 느낌
* rm ~/Doucments/delet.txt
* rm *2* : 2가 포함된 파일 삭제
* rm *[1,3]* 1또는 3이 들어가면 삭제
* rm -r 폴더명/ : 폴더삭제
* rm -ri 폴더명/ : 대화형으로 하나씩 지울건지 아닌지 묻는다 게속 지우고싶은것만 지우기가능
* rmdir 폴더명 : 파일이 없는 폴더만 삭제
복사
* cp 복사할파일명 붙여넣을파일명
* cp 복사할파일명 복사할파일명 폴더명/
* cp 폴더/* . :현재경로에 폴더안에있는 파일복사
* cp -r 폴더명 어디에복사할폴더명 : 폴더복사
* mv 파일,폴더명 변경할파일,폴더명 : 이름변경
파일 이름변경 이동
* touch file{1..3}.txt : 1~3 파일 생성
* mv newfolder/* . : 현재경로로 전부 파일 전부 이동
* mv file* newfolder : newfolder 로 파일들 전부이동
* 띄워쓰기 참 중요하네
* mv newfolder/ ~/Documents/ : 폴더이동
* mv ~/Documents/newfolder/ ./newnamefolder : 이름변경하면서 갖고오기
* cat 파일명 : 파일을 순서대로 읽고 읽은 순서대로 표준 출력
* standard output,input,error 은 표준 데이터 스트림
* standard ouput,error 은 기본적으로 터미널에 연결
redirect
* cat 1> ouput.txt : 표준출력을 1 로한다 standard ouput 자체가 원래 1임 생략해도됨 1> 뛰우면안된다잉
* cat > ouput.txt : 생략해도됨,새로 입력해서 덮어쓰면 원래 있떤거 사라짐 , >output.txt 요래는 됨
* cat >> output.txt : 2개하면 안덮어쓰고 그 뒤에 사용됨
* cat 2>> error.txt : 오류 데이터는 표준이 2임
* cat -k asdaf 2>error.txt 에러 파일로 보냄
* 2>>똑같음 꺽쇠 2개면 쌓여서 출력
* cat 1>> output.txt 2>> error.txt : 출력은1 오류는 2파일에 1>> 에서 1은 생략 가능
* cat > input.txt
* cat 0< input.txt
* cat 0< input.txt 1> hello.txt
* tty : 터미널의 위치
* cat 0< input.txt 1> /dev/pts/1 : 다른 터미널을 열어서 위치를 확인하고 아웃풋을 저쪽으로 보다 이소리
piping(|)
* 한 출력을 다른 명령의 표준 입력에 연결 하는것
* cut : 필요한 부분만 짜르기
* --delimiter : long form ,어떤 기준으로 나눌껀지 ' ' < 공백을 기준으로 몇번쨰 영역
* cut < date.txt --delimiter " " --field 1
* date | cut --delimiter ' ' --fields 1 > today.txt --> 데이터의 아웃풋을 또 cut의 인풋으로 넣어서 아웃풋을 만든단 소리
* date | cut tdoay.txt --delimiter ' ' --fields 1
* ls | sort | less
Tee
* date > date.txt | cut --delimiter ' ' --feilds : 작동할 것 redirect 가 한번 일어나면 파이프가 끊기기에 뒤에 동작은 작동 하지 않는다. 그래서 cut 뒤에부터는 작동하지 않음
* tee 를 사용해서 연결되게 하는것
* date | tee date.txt | cut --delimiter =' ' --fields 1 -> tee 명령어는 date의 현재 상태를 date.txt 에 저장해주고 그다음 동작을 하는것
* date | tee.date.txt | cut --delimiter=" " --fields 1 > today.txt
xargs
* 입력을 처리하여 명령어 실행
* date | echo : 파이프가 인풋으로 받아들이는건데 echo 가 인풋을 받아들이지 않는 명령어기에 실행이 안된다.
* date | xargs echo 'hello world' : 처리됨 echo 먼저 출력
* date | cut --delimiter=' ' --fields=1 | echo : 아무것도 안나옴
* date | cut --delimiter=' ' --fields=1 | xargs echo : 나옴 마지막 : 전달된 입력을 출력
* cat file.txt | xargs rm : 파일안에 적혀있는 파일이 있으면 지워짐
Aliases(별칭)
* 파이프라인과 명령을 기억하기 쉬운 별명으로 저장하여 나중에 쉽게 사용 가능
* alias 는 명령어와 pipeline 을 위한 닉네임
* home 폴더에 .bash_aliases 파일 안에서 생성
* alias aliasName = 'command1 -options args | connamd2 -option args ...'
* 적용후 터미널을 다시 시작해야 적용
cd 명령어 (change directory)
* cd /home/hak2881/들어갈파일명
* cd ~ : 첫 경로로옴
* cd ~/들어갈폴더경로 : 현재있는 경로에서 들어갈경로
* cd 들어갈폴더/ : 들어가짐
* ls -a : 숨겨진 폴더 까지 보여줌
* cd . : 현재폴더
* cd .. : 디렉토리 한단계 전으로
* tab 버튼 누르면 : 해당하는 것 자동으로 입력됨 여러개면 이중에 뭔지 보여줌
* ls [] : 이 로케이션에대해 나열
File Extension (확장자)
* 리눅스는 확장자 .txt,.py 이 의미가 없음 처음
* 만들어진 파일의 헤더를 데이터를 읽어서 보기에 확장자 변경하는거 의미가없음, 존재하는 확장자로 바꾸면 바뀌지만 그 확장자를 쓸 수는 없음 올바른 확장자로 써야함
Wild Card
- 정규식은 텍스트를 일치시키는데 사용할 수 있는 패턴
- 파일 이름과 일치하는 정규식을 만드는 것을 글로빙 이라 함
- ls ~/*.txt : 홈디렉토리의 모든 txt 파일 나열하기
- ?
nano 파일명 (편집기)
* 컨르롤 +r +파일명 +엔터 : 해당파일 내용 읽기
* 컨트롤 +w : 해당글자 찾기~ : 그다음 동작은 맥에선 옵션키 + 해당동작