pwd : 현재 작업중인 디렉토리 정보 출력
$ pwd /home/downloads
cd : 경로이동
절대경로와 상대경로 둘 다 이동 가능
$ cd /home/downloads/mydir $ pwd /home/downloads/mydir
$ cd .. $ pwd /home/downloads
cp : 파일 혹은 디렉토리 복사
디렉토리 복사 시 -r 옵션 사용해야함
$ ls testdir/ testfile1
$ cp testfile1 testfile_cp $ ls testdir/ testfile1 testfile_cp
$ cp -r testdir testdir_cp $ ls testdir/ testdir_cp/ testfile testfile_cp
mv : 파일 혹은 디렉토리 이동
원하는 위치로 이동할 때 뿐만 아니라, 이름을 변경하는 용도로도 사용된다. cp와는 달리 디렉토리를 이동시킬 때도 별다른 옵션이 필요 없다.
$ ls testdir/ testfile1
$ mv testfile testfile_mv $ ls testdir/ testfile_mv
$ mv testfile_mv testdir/ $ ls testdir/
$ ls testdir/ testfile_mv
mkdir : 디렉토리 생성
-p 옵션을 통해 하위 디렉토리까지 한 번에 생성 가능
$ ls testfile
$ mkdir testdir $ ls testdir/ testfile
$ mkdir -p a/b/c/d/e/ $ ls -R a/ a/: b/ a/b: c/ a/b/c: d/ a/b/c/d: e/ a/b/c/d/e:
rm : 파일이나 디렉토리 삭제
디렉토리를 삭제할 때는 -r 옵션 사용
-f 옵션을 사용하면 삭제 여부를 묻지 않고 바로 삭제
디렉토리를 삭제하면 하위 디렉토리까지 모두 삭제된다.
$ ls testdir/ testfile1 testfile2
$ rm -f testfile1 $ ls testdir/ testfile2
$ rm -rf testdir/ $ ls testfile2
touch : 파일이나 디렉토리의 최근 업데이트 일자를 현재 시간으로 변경
최근 업데이트 일자는 ls -l 명령을 통해 확인 가능하다.
파일이나 디렉토리가 존재하지 않으면 빈 파일을 만든다.
$ ls -l total 0 -rw-r--r-- 1 itholic 197121 0 11월 6 22:08 testfile1
$ touch testfile1 $ ls -l total 0 -rw-r--r-- 1 itholic 197121 0 11월 6 22:43 testfile1
$ touch testfile2 $ ls -l total 0 -rw-r--r-- 1 itholic 197121 0 11월 6 22:43 testfile1 -rw-r--r-- 1 itholic 197121 0 11월 6 22:44 testfile2
cat :
$ ls file1 file2 file3
(1) 파일 내용 출력 기능
$ cat file1 1
$ cat file2 2
$ cat file3 3
(2) 파일 여러개를 합쳐 하나의 파일로 만드는 기능
$ cat file1 file2 > file1_2 $ ls file1 file1_2 file2 file 3
$ cat file1_2 1 2
(3) 기존의 한 파일의 내용을 다른 파일에 덧붙이는 기능
$ cat file1 >> file2 $ cat file2 2 1
(4) 새로운 파일을 만드는 기능 ( 작성이 끝나면 ctrl+d 로 파일 저장 )
$ cat > file4 hello world
$ cat file4 hello world
파일의 앞부분을 보고싶은 줄 수만큼 보여준다.
옵션을 지정하지 않으면 상위 10줄을 보여준다.
$ cat testfile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$ head -3 testfile 1 2 3
$ head testfile 1 2 3 4 5 6 7 8 9 10
파일의 뒷 부분을 보고싶은 줄 수만큼 보여준다.
옵션을 지정하지 않으면 하위 10줄을 보여준다.
-F 옵션을 통해 파일 내용을 화면에 띄워주고 파일이 변하게 되면 새롭게 업데이트된 내용을 갱신시켜준다.
주로 실시간으로 내용이 추가되는 로그파일을 모니터링할 때 유용하게 사용한다.
$ cat testfile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$ tail -3 testfile 13 14 15
$ tail testfile 6 7 8 9 10 11 12 13 14 15
$ tail -F testfile 6 7 8 9 10 11 12 13 14 15
(명령어가 종료되지 않고 계속 해당 화면을 출력하며, 파일 내용 변경시 자동으로 갱신해준다)
특정 파일이나 디렉토리를 검색한다.
사용 방법은 이렇다.
$ find [검색경로] -name [파일명]
'*'를 통해 특정 확장자명을 찾을 수 있다.
$ ls dir1/ dir3/ file1 file3 picture1.jpg picture3.jpg dir2/ dir4/ file2 file4 picture2.jpg picture4.jpg
$ find ./ -name 'file1' ./file1
$ find ./ -name "*.jpg" ./picture1.jpg ./picture2.jpg ./picture3.jpg ./picture4.jpg
추가적으로 특정 확장자만 찾아 바로 삭제할 수도 있다.
exec 옵션을 이용하면 된다.
$ find ./ -name "*.jpg" -exec rm {} \; $ ls dir1/ dir2/ dir3/ dir4/ file1 file2 file3 file4
또, -type d 와 -type f 옵션을 통해 디렉토리나 파일만 지정해서 검색할 수 있다.
$ find ./ -type d ./ ./dir1 ./dir2 ./dir3 ./dir4
$ find ./ -type f ./file1 ./file2 ./file3 ./file4
다음과 같이 wc -l 옵션과 같이 사용하면,
특정 디렉토리에 find 조건에 맞는 결과 값이 몇개 존재하는지 숫자로 간편히 알아볼 수 있다.
$ find ./ -type f | wc -l 4
이는 파일 개수가 욜라리 많을 때 아주 유용하다.
마지막으로 특정 조건에 해당하는 파일들의 내용을 전부 찾아 바꿔주는 커맨드를 소개한다.
$ find ./ -name "*.txt" -exec sed -i 's/hi/hello/g' {} \;
위에 포함되어있는 sed 명령어는 testfilel1.txt 이라는 파일의 모든 'hi' 문자열을 'hello'로 바꾸는 역할을 한다.
$ sed -i 's/hi/hello/g' testfile1.txt
find문에 결합된 sed는 조건에맞는 파일들을 찾고, 찾은 파일들에대해 해당 명령어(sed)를 수행할 수 있도록 한 것이다.
위의 커맨드들!! 정말 실무에서 쓸 일이 많을까 궁금하다. 계속해서 공부해보자😄