티스토리 뷰
ls : 디렉토리 내의 파일이나 디렉토리 리스트를 보여준다
>>사용법 : ls (option)
option {
-a : . 으로 시작되는 파일을 숨기지 않음(숨긴 파일을 보여준다)
-c : 수정된 날짜의 정렬로 보여줌
-i : 각 파일의 고유 숫자를 보여줌
-l : 길게 열거된 형식으로 사용함
-o : group 정보를 제외한 리스트 형식을 보여줌
-r : 정렬된 역순으로 보여줌
-s : 블록 형태로 각 파일의 크기를 보여줌
-S : 파일 사이즈 순서로 정렬함
-t : 수정된 날짜 순서로 정렬함
-u : 최근에 접속한 순서로 정렬함
-(숫자) : (숫자) 줄로 보여준다
-al : 숨겨진 파일을 포함하여 길게 + 길게 열거된 형식으로 사용
}
whoami : 현재 접속한 계정명 출력.
pwd : 현재 경로 보기.
cp : 파일을 복사 한다.
>>사용법 : cp (option) [복사할 파일명 혹은 디렉토리] [대상파일]
1)cp main.c /mnt/hgfs/shared 대상 파일을 대상 디렉토리로
2)cp /mnt/hgfs/shared main.c 대상 디렉토리의 파일을 현재 디렉토리 대상으로
option {
-a : -dpR의 기능을 합한 것
-d : 연결을 보존함
-p : 속성을 보존함
-l : 복사를 하는 대신 연결함
-s : 복사하는 대신 특정 링크를 만든다
-u : 새롭게 갱신된 파일만 복사
-v : 작업된 내용을 보여줌
}
rm : 파일을 삭제한다.
>>사용법 : rm (option) [삭제할 파일명 혹은 디렉토리]
option {
-f : 무조건 지움. 아무런 메시지가 나타나지 않음.
-i : 어떤 작업을 하기 전에 무조건 메시지를 묻는다.
-r : 파일을 포함하고 있는 디렉토리도 삭제한다 / 물어본다.
-v : 작업된 내용을 보여준다.
}
mkdir : 디렉토리를 만든다
>>사용법 : mkdir (option) [디렉토리]
option {
-m : 퍼미션 설정을 함께함.
-v : 작업된 내용을 보여준다.
}
mv : 파일 혹은 디렉토리를 만들거나 이름을 변경한다.
>>사용법 : mv [소스 디렉토리 혹은 파일] [신규 디렉토리 혹은 파일]
mv file1 ~ 이렇게 하면 현재 머물고 있는 디렉토리 내의 file1을 내 홈 디렉토리로 옮긴다. 물결 표시는 로그인한 유저의 홈 디렉토리를 의미한다. 옮길 목적지 디렉토리가 없다면 디렉토리를 만들어서 옮긴다.
mv filename destination 처럼 사용한다.
mv는 파일 이름이나 디렉토리 이름을 바꾸는 데도 사용한다.
mv old.txt new.txt 라고 하면 old.txt라는 파일이름을 new.txt라는 파일이름으로 바꾼다.
리눅스에서는 "rename"이라는 명령어가 따로 없다. mv가 그 역할을 한다.
cd : 디렉토리 이동(DOS의 CD와 같음) 사용할 때는 cd 다음에 스페이스를 넣어주자.
1)cd (root로 이동)
2)cd ..(상위 디렉토리로 이동)
3)cd /mnt/hgfs/shared (원하는 디렉토리로 이동)
chmod : 파일 혹은 디렉토리의 속성값을 설정함.
>>사용법 : chmod (option) [디렉토리 혹은 파일]
option {
-c : 퍼미션 설정 시 작업하는 내용을 출력함.
-v : 작업된 내용을 보여줌.
}
*참고 ls -al의 명령어를 사용하면 -rwxr--r--와 같이 파일 앞에 속성값이 출력된다.
r : 4(읽기) lw : 2(쓰기) lx : 1(실행)
du : 파일 혹은 디렉토리의 크기를 보여줌
>>사용법 : du (option) [소스 디렉토리 혹은 파일]
option {
-a : 디렉토리가 아닌 파일의 쓰여진 줄 수를 출력.
-b : bytes의 크기로 출력.
-c : 각 파일 및 디렉토리 내부의 파일 각각의 크기를 출력.
-k : kilobytes로 출력.
-m : megabytes로 출력.
-l : 파일 혹은 디렉토리의 셀 수 있는 크기를 출력.
-s : 합계를 출력.
}
passwd : 자신의 패스워드 바꾸기
>>사용법 : passwd
다음과 같이 진행된다
[root@]$passwd
[root@]$Changing password for user Your_ID
[root@]$(current) UNIX password : (현재 사용중인 비밀번호)
[root@]$New UNIX password : (새로 갱신할 비밀번호)
[root@]$Retype new UNIX password : (확인을 위한 재입력)
*주의 : 새 비밀번호는 특수부호가 포함된 8자 이상의 비밀번호이어야 함.
echo : 텍스트의 라인을 보여 줌.
>>사용법 : echo (option) [텍스트]
option {
-d : 새로운 라인의 끝을 출력하지 않는다.
-e : 아래의 option(\문자)의 내용을 가능하게 한다.
\a : alert(bell)알림(소리)
\b : backspace
\\ : 백슬래쉬를 사용 할 수 있도록 한다.
}
su
수퍼유저, 즉 root로 로그인하겠다는 명령어다. 일반 유저로 로그인했다가 root로 작업해야 할 필요가 있을 때 사용한다. 이 명령어를 치면 password:라는 메시지가 뜨면서 root의 암호를 묻는다.
반대로, 현재 root로 있는 상태인데 다른 유저로 돌아가고 싶다면 su 유저명 하면 된다.
whereis
어떤 프로그램이 인스톨되어 있는지를 쉽게 알아보는 명령어다. 예를 들어 자바가 설치되어 있는지 알고 싶다면, whereis java 라고 하면 java 의 위치를 알려 준다. 아무 것도 안 나오면 인스톨이 안 되어 있는 것이다. 비슷한 명령으로 which가 있다. which java 처럼 사용한다.
참고 : tab 키, CTRL-u, CTRL - w
굳이 명령어를 모두 타이핑하지 않아도 명령어를 자동완성(auto completion)하는 방법이 있다. 명령어의 처음 몇 자를 친 다음 [tab키]를 누르면 된다. 예를 들어, history라는 명령어를 타이핑한다면 굳이 history를 다 칠 필요가 없이 "his"까지만 치고 탭키를 누르면 history로 자동완성된다. 타이핑한 글자로 시작되는 명령어가 여러 개인 경우에는 탭 키를 한 번 더 누르면 그 글자로 시작되는 모든 명령어가 다 나타난다. 예를 들어 pr이라고 치고 탭키를 두 번 누르면 "pr"로 시작되는 모든 명령어를 모두 보여 준다.
명령어를 타이핑하다가 다 지우고 다시 시작하려면 백 스페이스 키를 여러 번 누를 필요 없이 [CTRL-u]를 누르면 된다. 비슷한 것으로 한 단어만 다시 지우고 싶을 때에는 [CTRL- w]입니다. "u"는 "undo", "w"는 "word"라고 생각하면 쉽게 외울 수 있다.
퍼미션 (Permission)
퍼미션은 이름처럼 '허가'를 뜻한다. 파일이나 디렉토리를 누가 볼 수 있으며 누가 새로운 내용을 기록할 수 있으며 또 실행할 수 있는지 설정하는 것이다. 유닉스(리눅스)에서는 개별 파일 별로 퍼미션을 설정할 수 있다. 바꿔 말하면 "파일 수준의 보안"이 가능하다. 유닉스의 큰 강점 중 하나다. 퍼미션이 없는 사용자가 특정 파일이나 디렉토리에 접근하면 "Permission denied"라는 메씨지가 뜨면서 사용자의 행동을 차단한다. 개별 파일 별로 확실한 보안이 이뤄지는 것이다.
위의 ls 명령어 설명에서 잠깐 보았지만 퍼미션은 총 10개의 알파벳으로 이뤄져 있다. 맨 첫 번째 자리는 파일인지, 디렉토리인지를 나타내는 것으로 퍼미션과 직접적인 관계가 없다. 첫 번째 자리는 파일인 경우 -, 디렉토리인 경우 d로 표시되어 있다. 그 다음부터 나오는 9개의 알파벳이 해당 파일 또는 디렉토리의 퍼미션을 나타낸다.
퍼미션에는 크게 세 종류가 있다. r은 "read"를 뜻하고, w는 "write", x는 "execute"을 뜻한다. 읽기 허가, 쓰기 허가, 실행 허가다.
퍼미션을 나타내는 9개의 알파벳은 3개씩 끊어서 각각 "user", "group", "others"의 퍼미션을 나타낸다. 예를 들어, 어떤 파일의 퍼미션이 다음과 같다면,
-rwxrw-r--
이것은 세 개씩 끊어서, rwx, rw-, r--로 읽고 (맨 앞의 -는 파일이라는 의미로 퍼미션과 직접 상관 없다.) 각각이 "user"의 퍼미션, "group"의 퍼미션, "others"의 퍼미션이다. user 퍼미션은 rwx이므로, 읽기/쓰기/실행 모든 것이 다 허용되어 있다. group 퍼미션은 rw-이므로 "read", "write" 이므로 읽기,쓰기 퍼미션이 허용되어 있다. others 퍼미션은 r--이 므로 읽기 퍼미션만 허용되어 있다. 그러므로 이 파일은, 파일의 owner(user)는 읽기,쓰기,실행 모든 것을 다 할 수 있고 owner와 같은 그룹에 속하는 사용자는 읽기,쓰기까지 할 수 있으며, owner도 아니고 owner가 속한 그룹도 아닌 사용자는 오직 읽기만을 할 수 있다.
디렉토리의 경우, r,w,x의 의미가 조금 달라진다. r은 해당 디렉토리에 있는 파일의 목록을 읽을 수 있는가의 여부를 가르키고(즉, cd를 해들어갈 수 있느냐의 여부), w는 그 디렉토리에 새로운 파일을 첨가하거나 기존의 파일을 지울 수 있는가의 여부, x는 해당 디렉토리에 들어있는 파일에 관한 정보를 리스팅할 수 있느냐의 여부를(즉, ls를 할 수 있느냐의 여부) 의미한다.
파일(디렉토리)의 owner는 대개 그 파일(디렉토리)를 만든 사람으로 처음에 설정된다. 특별히 퍼미션을 지정하지 않는 경우 기본적으로 설정되는 퍼미션은 rw-r--r-- 이다. user는 읽기,쓰기가 허용되고 group을 포함한 다른 사용자는 오직 읽기만 가능한 파일(디렉토리)가 만들어지는 게 기본설정(default)이다.
퍼미션을 바꾸고 싶다면 어떻게 할까? 이 때 사용하는 커맨드가
chmod 이다. chmod는 "change mode"의 약자다. chmod는 두 가지 사용법이 있다. 첫 번째 사용법은 + 기호나 - 기호를 사용한다. 예를 들어, myprogram이라는 파일에 쓰기 퍼미션을 부여하고 싶다면,
chmod +w myprogram
라고 하면 된다. 이렇게 하면 user(owner), group, others 모두에 쓰기 퍼미션이 첨가됩니다.
user에만 쓰기 퍼미션을 첨가하고 싶다면 어떻게 할까?
chmod u+w myprogram
라고 하면 된다. user는 u이다. 마찬가지로 g는 "group", o는 "others"를 의미한다. 그러므로 원하는 대로 퍼미션에 변화를 줄 수 있다.
퍼미션을 없애는 것도 같은 방법이다. 만약, others의 쓰기,실행 퍼미션을 없애고 싶다면,
chmod o-wx myprogram
라고 하면 된다. 다음 코맨드는 어떤 의미일까?
chmod ug+wx myprogram
myprogram의 user와 group에 실행,쓰기 퍼미션을 주는 것임을 쉽게 알 수 있다.
chmod를 사용하는 다른 방법도 있다. "u+x"처럼 알파벳을 이용해서 퍼미션을 변경하는 방법을 "symbolic mode"라고 한다. 이와 달리 8진법을 사용하는 방법을 "absolute mode"라고 한다. 일단, r은 4, w는 2, x는 1이라고 보면 된다. 8진법을 이용한 퍼미션 설정은, user, group, others 각각에 대해 퍼미션 알파벳에 해당하는 숫자를 합쳐주는 것이다. 예컨대, 어떤 퍼미션이 -rwxr-xr-x라면, 이것은 755로 바꿀 수 있다. user 퍼미션은 rwx이므로 (4+2+1) = 7, group과 others는 r-x이므로 (4+1) = 5 이므로 755다.
chmod 500 myprogram
chmod 777 myprogram
첫 번째 것은 myprogram 파일을 -r-x------로 바꾸는 것이다. 두 번째 것은, -rwxrwxrwx 이다.
chown, chgrp
퍼미션 관련 명령어의 마지막으로, user와 group을 바꿔주는 커맨드를 살펴보자. 이름 그대로다. chown는 해당 파일(디렉토리)의 user(owner)를 바꾸는 것이고 chgrp는 group을 바꾸는 것이다.
chown myprogram linuxer
chgrp myprogram mygroup
물론 바꿀 수 있는 퍼미션이 있을 때에만 가능하다. 예를 들어 root로 로그인한 상태거나 그 파일의 원 소유자인 경우다.
rpm 관련
rpm -Uvh
레드햇(RedHat) 리눅스를 사용하는 경우 소프트웨어들이 rpm 패키지 형태로 배포되는 것을 볼 수 있다. rpm 패키지를 다루는 명령어 중 자주 쓰이는 것은 사실 몇 개 없다.
먼저, rpm -Uvh다. 이것은 rpm을 이용해서 소프트웨어를 인스톨할 때 사용한다. 원래 "U"의 의미는 새로 인스톨할 패키지와 기존에 인스톨되어 있는 것의 버전을 비교해서 더 최신 버전이면 "U"pdate한다는 것이지만 거의 모든 경우에 위와 같은 명령어로 다 인스톨 할 수 있다.
rpm -Uvh package-1.0.0.rpm
와 같은 형태로 사용한다. 의존성(dependency) 때문에 인스톨이 안 되는 경우에는 rpm -Uvh --nodeps라고 하면 된다.
rpm -qa : 현재 머신에 어떤 rpm 패키지가 인스톨되어 있는지를 질의(query)하는 커맨드다. 설치된 모든 rpm 패키지가 버전과 함께 뜬다.
rpm -e : 지우는 명령이다. 먼저 질의를 한 다음 거기 나온 이름을 rpm -e 뒤에 붙여 주면 된다.
압축, 해제 관련
tar xvzf
타르(tar)로 묶은 다음 gzip으로 압축된 파일들을 한 번에 압축 해제부터 보따리 풀기까지 시행해 주는 명령어다. 가운데의 "z"를 빠뜨리면 안된다. tar는 "tape archive"의 약자로, 전통적으로 유닉스에서 파일을 백업할 때 테잎 장치를 사용한 데서 비롯된 명령어다. 이런 형태로 쓴다.
tar xvzf downloaded.tar.gz
tar cvzf : 위와 반대로 여러 개의 파일을 tar로 묶은 다음 압축하는 명령이다. c니까 "compress", x니까 "expand" 이다.
tar cvzf tarfile.tar.gz .
와 같은 형태로 쓴다. 현재 디렉토리 .에 있는 모든 파일을 묶어서 압축한 tarfile.tar.gz 파일을 만들게 된다.
tar cvf "z"가 빠진 것이므로 압축은 하지 않고 묶어 주기만 한다.
tar cvf tarfile.tar .
처럼 쓴다. 현재 디렉토리 .에 있는 파일을 모두 묶어서 tarfile.tar로 만드는 코맨드다.
gzip : gzip 압축 방식으로 압축하는 명령어다.
gzip documnet.txt 라고 하면 document.txt의 gzip 압축 파일인 document.txt.gz이 생긴다.
gunzip : .gz 파일을 푸는 명령어다.
gunzip document.txt.gz
압축된 파일은 없어지고 압축이 풀린 "document.txt"라는 파일이 새로 생긴다.
bunzip2 : 리눅스 커널의 경우, .bz2라는 확장자가 붙은 압축 파일 형태로 배포되는 경우가 있다. 바로 그 .bz2를 풀어 주는 명령어다. 이렇게 사용한다.
bunzip2 linux-version.bz2
'공부 > Linux' 카테고리의 다른 글
Mac에서 파이썬 설치 (0) | 2016.11.28 |
---|---|
R 설치 (0) | 2016.11.28 |
Hadoop 설치 - 클러스터링 구축 (0) | 2016.11.28 |
Linux Python, jdk8 설치 (0) | 2016.11.23 |
리눅스의 종류 (0) | 2016.11.23 |