제일 처음 로그인시 자신의 로그인 아이디와 동일한 디렉토리 위치에서 프롬프트 시작
ls -l : 구체적인 정보
ls -al : 숨겨진 차일 전부 출력
ls -li : 링크된 파일 포함해서 출력
change mod
chmod 권한 파일명
예시
chmod 775 a.out : rwx rwx r-x로 변경
chmod 664 a.out : rw- rw- r--로 변경
chmod 764 a.out : rwx rw- r--로 변경
chmod 400 TripLive.pem : r-- --- ---로 변경
다른 명령어 (u g o, + -, r w x)
chmod g-x a.out : 그룹의 실행 권한을 빼버림
chmod o+x a.out : other의 실행 권한을 추가함
chmod u-w a.out : 유저의 쓰기 권한을 빼버림
디렉토리와 파일을 만들기 위해서는 아래와 같이 명령어를 사용
mkdir 디렉토리명 : 디렉토리 생성
rm -r 디렉토리명 : 디렉토리 삭제
touch 파일명 : 파일 생성
rm -f 파일명 : 파일 삭제
/
/root
/home
/home/guest1
/home/guest1/dir1
/home/guest1/dir2
/ 절대 위치 기준
./ 현재 위치
../ 현재보다 상위 위치
~/ Home 위치 기준
절대 경로 기준 cd /home/guest1/dir1
현재 경로 기준 cd ./dir1
홈 경로 기준 cd ~/dir1
cd /home/guest1/dir1
파일과 디렉토리를 이동하거나 이름을 바꿀 수 있는 mv 명령어
이동시키면서 이름도 변경할 수 있음
mv source destination
mv myfile yourfile : "myfile"을 "yourfile"로 변경
mv yourfile ./dir/. : "yourfile"을 dir안으로 이동
copy
cp source destination
cp file2 file3 : "file2"를 "file3"로 복사
cp file2 ./dir2/myfile2 : "file2"를 dir2 내 "myfile2" 이름으로 복사
cp -r srcdir desridr : 경로 디렉토리 복사
하드링크는 동일한 물리주소를 가지는 파일을 같은 주소로 참조하게 만드는 경우를 의미
원본과 복사본이 동일한 주소를 참조하는 경우임
두 파일 중 하나만 수정되더라도 동시에 수정되는 효과를 가짐
둘 중 하나를 삭제해도, 다른 한쪽의 파일에는 영향을 주지 않음 (Ref 값이 2였는데, 단순히 1로 변하는 것)
파일에만 사용할 수 있음, 디렉토리 사용 불가
ln -s source target
ln file1 myfile : file1과 myfile은 같은 주소를 참조 중(ls -li로 확인 가능)
윈도우의 바로가기 버튼과 같음
디렉토리 파일의 바로가기 기능
소프트링크는 링크파일이 링크파일을 참조하는 기능
ln -s source target
ln -s dir1 dir
라이브러리 개발시 이러한 형태를 가짐
ln -s library.0.1.so library.so : library.so -> library.0.1.so
touch library.0.2.so : library.0.2.so 파일 생성
rm -f library.so : library.so 파일 삭제
ln -s library.0.2.so library.so : library.so -> library.0.2.so
파일 입출력 관련 명령어
cat 파일명
cat test.c : 모니터에 출력
cat test.c | more : 파이프라인을 통해 보기 편하게 출력
cat source > target : 출력의 방향을 변화 : 복사와 동일
cat a.c > b.c
cat b.c
cat a.c >> b.c : a.c 내용을 b.c 에 두번 복사해서 붙여넣기
파일의 일부 명령어 만 출력
head test.c
tail test.c
tail -f 파일명 : 파일 마지막에 데이터가 추가되는 즉시 화면에 출력
tail -f system.log
검색하고자 하는 문자열을 옵션으로 주면 해당 문자와 일치하는 파일이 있는지 찾아줌
grep 문자열 파일이름
grep -H test *.log
grep -H test1 *.log
grep -w 문자열 파일이름 : 정확하게 일치하는 문자찾기
grep -Hw test1 *.log
압축하거나 압축된 파일을 풀어보는 명령어
압축하는 경우 : tar cvfz 압축파일명 압축하고자하는파일디렉토리
tar cvfz backup.tar.gz ./dir3 ./file3 ./system.log
tar cvfz backup.tar.gz *
압축 해제하는 경우 : tar xvfz source.tar.gz ... ...
x = extract
root = 리눅스 시스템의 최고 권력 = 슈퍼 관리자
ip 설정, 네트워크 작업, 웹 서버, 인증서 설치, rebooting, halt, ...
root = sudo
root가 처음 한번은 sudo 권한 부여를 위해 설정을 해야 함
루트로 접속하기
vi /etc/sudoers
root 계정 아래 사용할 user를 추가할 것
예시:
guest1 ALL=(ALL:ALL) NOPASSWD:ALL
sudo 명령어 옵션
파일 또는 디렉토리의 소유자와 그룹명을 변경하는 명령어
change own
change user : group target
sudo chown guest2:guest2 test.c
검색 조건이 상당히 많음, 거의 모든 기준으로 파일을 검색할 수 있음
찾고자하는 파일이나 디렉토리 위치 검색에서 주로 사용
find 경로 조건 target
find . -name system.log : 현재 디렉토리에서 이름으로 system.log를 찾아라
명령어가 어느 위치에 있는지 찾는 것
which ls : ls 명령어의 위치
which python3 : python3 명령어의 위치
운영중인 서버의 CPU와 메모리 상태를 확인할 수 있는 명령어
상단에 있는 정보 : CPU와 메모리 사용률
하단에 있는 정보 : 프로세스별 CPU/메모리 사용률
기본적으로 갱신되는 시간은 3초
변경하고 싶으면 top 화면에서 "d" 누르고 "1" 입력 후 엔터
아니면 top 명령어 실행시
top -d 1
리눅스에 접속한 사용자를 확인할 수 있는 명령어
w
접속한 계정정보, IP, 로그인 시간, CPU 사용률, 현재 어떤 작업을 진행중인지 출력
간단하게 who를 사용해서 간단하게 확인할 수도 있음
who
네트워크 설정이 잘되어있는지 인터넷이 잘 동작하는지 알아보기 위해 알아보는 명령어
ping 도메인주소
ping google.com
ping 216.58.200.78
ip 정보와 레이턴시가 얼마인지도 출력
도메인 주소를 ip주소로 변환시켜주는 명령어
nslookup domain
nslookup google.com
현재 리눅스 서버의 구동 중인 프로세스의 정보를 출력해주는 ps 명령어가 있음
Processor = CPU
Process = 실행 파일이 메모리에 업로드된 상태
즉, 실행중인 파일이 무엇인지 알아보는 명령어
ps -ef | grep 문자열 : 특정 프로세스의 상태를 확인하는 명령어
ps -ef : 현재 리눅스 서버에서 구동중인 모든 프로세스 상태 출력
ps -ef | grep apache
프로세스 id : 각 프로세스마다 할당된 유니크한 번호 (inode와 유사한 개념)
부모 프로세스의 번호 (프로세스 id 뒤의 id)
사용자 계정 추가/삭제 명령어
adduser 사용자ID
sudo adduser guest2
비밀번호 입력 및 비밀번호 확인
su -l 사용자ID : 다른 사용자로 변경
su -l guest2 : guest2 계정으로 접속하기
exit : 계정 빠져나오기
deluser 사용자ID
sudo deluser --remove-home guest2
uname -a : 시스템 정보확인
hostname : 이 서버의 별명 = 리눅스 설치할 때 정한 이름
sudo reboot : 시스템 재시작
halt : 시스템 완전 셧다운
halt -p : 시스템 완전 셧다운(전원까지)
리눅스 명령어 메뉴얼을 보는 명령어
개발자를 위한 프로그래밍 메뉴얼 기능 제공
예시
man cat
man 3 라이브러리(함수명)