20. readonly(읽기 전용) |
1) 경로 : /usr/bin/readonly
2) 요약 : 파일을 읽기 전용으로 출력
3) 사용 방법 : readonly [옵션] [이름...]
4) 옵션
-f : 함수를 읽기 전용으로 출력
-p : 모든 읽기 전용 변수 목록을 출력
5) 추가 설명
readonly 명령어는 주어진 이름을 읽기 전용으로 표기하고, 대입문에 이름값이 바뀌지 않도록 합니다. --인수는 나머지 인수에 대한 점검을 하지 않습니다.
다음을 제외하고는 반환되는 값은 0입니다.
§ 잘못된 옵션이 있는 경우
§ 이름 중에 적합할 쉘 변수가 없는 경우
§ -f 옵션 다음에 나온 이름이 함수가 아닌 경우
21. rm(파일 또는 디렉터리 삭제) |
1) 경로 : /bin/rm
2) 요약 : 파일과 디렉터리를 삭제
3) 사용 방법 : rm [옵션] 파일명
4) 옵션
-f, --force : 강제로 파일이나 디렉터리를 삭제하고, 삭제할 대상이 없을 경우 메시지를 출력하지 않음
-i, --interactive : 매법 삭제할 때마다 사용자에게 물어봄
-I(대문자 아이) : 셋 이상의 파일을 삭제하거나 하위의 파일이나 디렉터리가 있을 경우 사용자에게 물어봄. -i 옵션보다는 확인 절차가 적으나 대부분의 사용자 실수는 막을 수 있음
--interactive[=WHEN] : 상호 대화형 모드로 값(WHEN)을 지정. 이 값은 once(-I(대문자 아이) 옵션과 같음)나 always(-i 옵션과 같음)가 올 수 있음. 값을 지정하지 않으면 always가 기본값
--no-preserve-root : "/"을 특별하게 취급하지 않음
--preserve-root : "/"을 삭제하지 않음(기본값)
-r, -R, --recursive : 하위 디렉터리를 포함하여 모든 내용을 삭제
-v, --verbose : 지워지는 파일의 정보를 화면에 출력
--help : 도움말 출력
--version : 버전 정보 출력
5) 추가 설명
rm 명령어는 디렉터리나 파일을 삭제하는 명령으로 지정된 파일을 하나씩 삭제합니다. 특별한 옵션을 지정하지 않으면 디렉터리를 삭제하지는 못합니다.
# file foo.directory
foo.directory directory
# rm foo.directory
rm: cannot remove 'foo.directory': Is a directory
$HOME/.bashrc 파일에 alias rm='rm -i'를 설정하여, 실수를 미연에 방지하기를 권장합니다.
$ rm linux-2.6.32-/Documentation/kernel-docs.txt
rm: remove 'linux-2.6.32/Documentation/kernel-docs.txt' ?
삭제할 대상이 확실할 경우에는 -rf 옵션으로 디렉터리를 포함한 모든 하위 내용을 삭제 할 수 있습니다.
$ ls commands.dir
pathck.fooo chan2 newuser.test patch test.fooo
chan chan3 newuser.test2 patch.test.fooooo
$ rm -rf commands.dir
-ir 옵션은 yes/no를 선택하여 하위 디렉터리 중 원하는 파일만 삭제할 수있습니다.
# rm -ir commands.dir/
rm: descend into directory 'commands.dir/'? y
rm: remove regular file 'commands.dir/.swap'? y
rm: remove regular file 'commands.dir/.swn'? y
rm : remove regular empty file 'commands.dir/path.fooo'? y
rm : remove regular empty file 'commands.dir/chan2'? n
rm : remove regular empty file 'commands.dir/patch'? n
rm: remove regular file 'commands.dir/newuser.test'? n
22. rmdir(디렉터리 삭제) |
1) 경로 : /bin/rmdir
2) 요약 : 빈 디렉터리를 삭제
3) 사용 방법 : rmdir [옵션] 사용자
4) 옵션
--ignore-fail-on-non-empty : 디렉터리가 비어 있지 않은 경우 삭제할 수 없음. 이 때 메시지를 출력하지 않음
-p, --parents : 상위 경로도 삭제. 상위 디렉터리도 비어 있어야 함
--verbose : 상세한 정보를 출력
--help : 도움말 출력
--version : 버전 정보 출력
5) 추가 설명
rmdir 명령언느 현재 위치를 기준으로 하위에 파일이나 디렉터리가 비어 있을 경우에만 삭제합니다. 아래와 같이 rmdir 명령어는 디렉터리에 파일이 존재할 경우 삭제 할 수 없습니다.
$ ls commands.dir
pathck.fooo chan2 newuser.test patch test.fooo
chan chan3 newuser.test2 patch.test.fooooo
$ rmdir commands.dir/
rmdir: failed to remove 'commands.dir/': Directory not empty
--ignore-fail-on-non-empty 옵션은 디렉터리에 파일이 존재하더라도 경고 메시지를 출력하지 않음
$ rmdir --ignore-fail-on-non-empty commands.dir/
-p, --parents 옵션은 지정한 디렉터리의 상위 디렉터리까지 삭제합니다.
$ mkdir - a/b/c
$ rmdir a/b/c
$ find ./ -type d
./
./a
./a/b
위의 예제에서 옵션을 지정하지 않으면 가장 하위의 디렉터리를 삭제하지만 -p 옵션은 지정한 디렉터리의 전체 경로를 삭제합니다.
$ mkdir -p a/b/c
$ rmdir -p a/b/c/
$ find ./ -type d
./
-rf 옵션은 하위 디렉터리의 파일이나 디렉터리가 존재하더라도 강제로 삭제 합니다.
$ rmdir -rf commands.dir
23. sudo(명령 실행) |
1) 경로 : /usr/bin/sudo
2) 요약 : 다른 사용자로 명령을 실행
3) 사용 방법 : sudo [옵션] [명령어]
sudoecit [옵션] 파일
4) 옵션
-b : 백그라운드로 명령을 실행
-e : 하나 이상의 파일을 편집 모드로 염
-h : 사용법 출력
-H : HOME 환경 변수를 지정
-i : 지정한 사용자의 로그인 쉘로 실행
-k : 타임 스탬프를 사용자히 않음. 타이머 동작을 멈춤
-K : 사용자의 타임 스탬프 전체를 제거. -k와는 달리 패스워드를 요구하지 않음
-l(엘) : 사용자에게 허용 혹은 금지된 명령어 목록을 출력
-L : sudoers 파일의 기본 파라미터 목록을 출력
-p prompt : 패스워드 프롬프트(prompt)를 지정
-P : 사용자의 그룹을 그대로 사용
-s : 지정한 쉘 환경 변수로 실행
-S : 터미널 디바이스 대신 표준 입력에서 패스워드를 지정
-u user : 실행할 사용자(user)를 지정
-v : 사용자의 타임 스탬프 필드를 확인한 후에 타임아웃 시간을 늘림
-V : 버전 정보 출력
- : 명령행의 인자 읽기를 중지. 이는 -s 옵션과 같이 사용
5) 추가 설명
사용자로 로그인한 후에 쉘을 변경하지 않고 슈퍼유저 권한의 명령어를 실행할 경우에 sudo 명령어를 사용합니다. su 명령어는 잠시 동안 슈퍼유저의 쉘 환경을 빌려서 쓴다고 할 수 있습니다.
아래와 같이 sudo 명령어는 슈퍼유저의 권힌이 필요한 apt-get과 같은 명령어를 실행할 수 있습니다.
$ apt-get update
E: 잠금 파일 /var/lib/apt/lists/lock 파일을 열 수 없습니다 - open (13: Permission denied)
E: 목록 디렉터리를 잠글 수 없습니다.
$ sudo apt-get update
[sudo] password for user:
기존 http://kr.archive.ubuntu.com karmic Release.gpg
--- 생략 ---
/etc/sudoers 파일은 sudo 명령어를 실행할 수 있는 사용자와 허용할 명령어 목록을 관리하는 설정파일 입니다. 아래는 chan 사용자에게 mounts.cifs 명령을 허용한 예제입니다.
$ vi /etc/sudoers
root ALL=(ALLL) ALL
chan ALL=/sbin/mount.cifs
위와 같이 sudoers 파일은 "user host=commands"의 구조로 되어 있습니다. user는 sudo 명령어를 실행할 수 있는 사용자를 등록하고, host는 호스트네임, 그리고 commands는 실행할 명령어들을 콤마(,)로 구분하여 나열합니다.
아래와 같이 특정 사용자의 권한으로 index.html 파일을 편집할 수 있습니다.
-u 옵션은 chan 사용자를 지정하고, 이 사용자의 권한으로 /home/chan/www/htdocs/index.html 파일을 편집할 수 있습니다.
$ sudo -u chan vi ~www/htdocs/index.html
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 커널 명령어 1탄(depmod, insmod, lsmod, modinfo) (0) | 2020.03.24 |
---|---|
[RHEL6] 일반 명령어 6탄(sync, touch, xargs, zdump) (0) | 2020.03.24 |
[RHEL6] 일반 명령어 4탄(mv, printf, pd, readlink) (0) | 2020.03.23 |
[RHEL6] 일반 명령어 3탄(info, ln, ls, man, mkdir) (0) | 2020.03.23 |
[RHEL6] 일반 명령어 2탄(date, dir, dirname, iconv, id) (0) | 2020.03.20 |
댓글