터미널에 입력한 명령을 해석하고, 관리하는 프로그램을 쉘이라고 합니다.
쉘은 사용자와 컴퓨터 사이에 연결해 주는 역할을 담당하고, 작성된 명령을 운영체제가 알아들을 수 있게 해석해 줍니다.
많은 쉘이 있지만 현재에는 가장 많이 사용되는 쉘은 Bash쉘 입니다.
일반적인 기초적인 명령어를 자주 사용을 하였습니다.
cd, ls이중에서 옵션으로 추가할 수 있는 사항이 잇는지, 아니면 추가적인 명령어를 정리하였습니다.
1. -
cd와 사용이 되며 cd - 처럼 사용이 됩니다.
브라우저에서 뒤로가기 버튼과 같은 효과를 냅니다.
하지만 딱 이전 값까지만 기록을 하여 이동하게 됩니다.
예를들어 /etc/home 에서 /etc/test/hoijn/abc 로 이동을 하였을떄
이 상황에서 cd - 를 입력하면 다시 /etc/home로 이동하며
이동한 상황에서 다시 cd - 입력하면 /etc/test/hojin/abc 로 이동하게 됩니다.
2. ``
안에 있는 문자를 명령어로 실행시키는 역할을 합니다.
일반적으로 touch ls 를 입력하면 ls라는 파일이 생성이 되는데
touch `ls`로 입력을 하면 ls라는 명령어가 실행이 됩니다.
2. ''
작은 따옴표 안에 잇는 모든 것을 문자로 인식을 하게 됩니다.
앞선 예시에서 touch 'ls'로 사용하면 일반적인 ls라는 파일을 만들게 됩니다.
3. ""
''와 동일하게 작동을 하지만 일부 특수 문자는 문자로 처리하지 않습니다.
- `, $, \
\ 는 굉장히 특이한 문자 입니다.
일반적으로 *는 모든 경로를 의미합니다.
- echo * 라고 하면 모든 파일을 화면에 보여줄 것 입니다.
하지만 echo \* 라고 적게 된다면 *는 아무런 기능을 하지 않습니다.
- 즉 \ 는 다음으로 오는 문자를 무효화 시키는 역할을 합니다.
매우 매우 중요한 내용 입니다.
일단 기본적으로 리눅스에서 출력에 대한 값은 0 또는 1로 다루게 됩니다.
0인 경우에는 무리 없이 동작하였다는 의미1인 경우에는 에러가 발생 하였다는 의미이러한 결과 값들을 다른 장소로 보낼 수가 있는데 이떄 사용이 되는 것이 방향 재지정 메타 문자 입니다.
총 3가지의 종류가 있지만 사실상 2가지가 주로 사용이 됩니다.
>
표준 출력이나 에러를 재지정 해줍니다.
즉 특정 명령어에 결과를 파일 또는 네트워크로 전송을 합니다.
예를들어 echo "test"라는 명령어는 단순히 test라는 값이 cli에 보이게 되지만
만약 echo "test" > ./file 이라고 적게 된다면
해당 test라는 결과 값이 ./file에 생기게 됩니다.
이때 file이라는 파일이 없다면 새로운 file이라는 파일을 만들고 값이 갱신이 되고
이후 또 echo "hoin" > ./file 이라고 입력을 하게 된다면 기존에 있던 test는 사라지고 hoijn이 생성이 됩니다.
만약 초기화 하는 과정을 없애고 싶다면 echo "hojin" >> ./file 이라고 입력하면 됩니다.
linux의 에러 및 표준 결과에 대한 값은 0 또는 1로 다루어 집니다.
정상적인 결과만을 출력하기를 원한다면
find / -perm -4000 2 > /dev/null 이라고 입력하면 됩니다.
이떄 /dev/null는 일반적으로 휴지통 같은 공간이고
find를 해서 권한으로 검색을 하여 해당하는 권한을 보여주는데
이떄 에러가 발생을 하면 /dev/null로 보내라는 뜻 입니다.
|
굉장히 많이 사용이 되는 명령어 입니다.
특정 명령어에 대한 결과를 다음 명령어에 전달을 해주는 역할을 합니다.
일반적으로 특정 파일에서 특정 값을 보고 싶다면 이렇게 사용을 합니다.
grep root /etc/passwd
하지만 같은 역할을 하는 것이 이와 같습니다.
cat /etc/passwd | grep root
즉 cat을 통해서 나온 결과값에 다시 grep를 적용을 하는 코드를 이런식으로 활용이 가능합니다.
추가적으로는 이렇게도 작성이 가능 합니다.
ls /etc | move
/etc에 있는 항목 들은 move를 통해서 보겠다는 의미 입니다.
만약 특정 라인에 해당하는 글을 보고자 한다면
head -8 /etc/passwd | tail -1
8번쨰 줄만 뽑아서 확인이 가능합니다.
많은 파일이 있지만 크게 3가지 정도를 알아볼 것 입니다.
/etc/profile
시스템 전역에 걸쳐 환경을 설정하는 파일 입니다. 모든 사용자들이 적용이 되는 파일 입니다.
~/.prifile
개별 사용자의 홈 디렉토리에 있는 파일입니다. 특정 사용자의 설정을 담고 있습니다.
~/.bashrc
개별 사용자의 홈 디렉토리에 있는 파일 입니다. 특정 사용자의 쉘 관련 설정을 변경할 떄 사용 합니다.