unix에서 작업할 때, 파일을 압축하는 경우 친숙한 zip을 쓴다. 

물론, tar도 있지만... 옵션이 너무어려워서...

파일 구조 파악

$ls -R

이렇게 나올 것이다.

.:
123  123.txt  dir1  dir2  dir3

./dir1:
test1.txt  test2.txt

./dir2:
test1.txt  test2.txt

./dir3:
file1.py  file2.py  file3.py

 

압축

이 때 zip 명령어와 함께 -x 를 사용해서 포함시키지 않을 파일들을 추가시킬 수 있는데,

아래처럼 추가할 수 있다.

$ zip -r zip_file_name.zip target_dir \
      -x target_dir/ignore_dir \*.git/\*

-x 명령어가 제외할 파일 이름들을 등록할수 있다. 

상대 path 전체를 써서 특정 dir을 삭제할수도 있고

\*.git/\*와 같이 *를 써서 path에 해당 문자열이 포함되어 있으면 압축 시 무시하도록 할 수 있다. 

$ zip -r test.zip . -x \*dir1/\* \*dir2\*
updating: 123 (stored 0%)
updating: 123.txt (stored 0%)
updating: dir3/ (stored 0%)
updating: dir3/file2.py (stored 0%)
updating: dir3/file3.py (stored 0%)
updating: dir3/file1.py (stored 0%)

$ ls
123  123.txt  dir1  dir2  dir3  test.zip

 

환경

Ubuntu 18.04에서 동작 확인

방법

terminal을 열어서

 gsettings set org.gnome.mutter workspaces-only-on-primary false

 

풀고 싶으면 이 설정을 true 바꿔주면 된다.

짱 유용하다.

워크 스페이스 이동 시 메인 모니터 뿐 아니라 서브 모니터도 같이 움직이게 할 수 있다.

혹시 모를 사람들을 위해서 workspace 변경은

cmd(win)+PgUp, cmd(win)+PgDn

Alt+ctrl+up(방향키),Alt+ctrl+down (방향키)

두가지 단축키로 사용 가능하다.

 

갑자기 새로운 친구가 프로젝트에 합류해서 해당 AWS서버를 공유해줘야 하는 상황이다.

새로운 계정을 파서 그 계정으로 접속하게 하고 싶었는데 알다시피 AWS linux에 접속하려면 공개키로 접속하는 형식이다. aws는 암호가 없이 private키를 소유하고 있는 사람이 접속할 수 있는 방식이라 내 계정을 그대로 넘겨야(즉 내 private key를 공유...) 해야 했다. 실제로 저번 프로젝트의 경우에는 그런 식으로 운영을 했었다 .

근데 문득 리눅스 자체가 여러 유저가 한 컴퓨터에 접속하는게 가능한 OS인데 (multi user!) 굳이 이렇게 할 필요가 있나 싶었다.

그래서 새로운 계정을 만들어 나눠줘볼까 라는 생각을 했다. 즉 새로운 유저 계정을 만들고 그 계정에 키페어를 만든 후 그 키를 가져오는 방법!

[ubuntu ~]$ sudo adduser newaccount

새로운 유저를 만든다.

[ubuntu ~]$ sudo su - newaccount

새로운 계정으로 변경한다.

[newaccount ~]$ ssh-keygen -t rsa

ssh-keygen은 keypair를 만드는 명령어다. 다음 명령어를 사용한다면 뭔가 이것저것 물어보는데 그냥 enter, enter, enter, enter 쳐보도록하자. 수행이 완료되면 .ssh라는 폴더가 생긴다.

[newaccount ~]$ ls -al

쳐서 확인해보도록 하자. 이 폴더 안에는 두가지 파일이 존재하는데 id_rsa 와 id_rsa.pub이다. 여기서 id_rsa는 우리가 로그인을 하기위해 필요로 하는 private 키고 id_rsa.pub는 public key이다. AWS에는 이 퍼블릭 키의 이름이 반드시 authorized_keys라는 이름이어야한다. (이름을 안바꿔주면 정상 작동을 하지 않더라... 확인 필요 ㅠ)

[newaccount ~]$ mv .ssh/id_rsa.pub .ssh/authorized_keys

이제 준비는 다 끝났다. 우리가 접속할 때 필요한 파일은 바로 id_rsa다. 외부에서 newaccount계정으로 접속하려면 이 파일이 필요하다.

방법1. 이 파일을 내 컴퓨터로 이동시켜야하는데 그냥 복붙 하시면 된다. 이 경우에는 권한을 바꿔줘야한다.

[mycomputer ~] vim myrsa

[mycomputer ~] chmod 600 myrsa

[mycomputer ~] ssh -i "myrsa" newaccount@[instance DNS]

방법2. 마찬가지로 컴퓨터로 이동시켜야 하는데 좀 더 간지가 나게 옮길 수가 있다.

[ubuntu ~] sudo mv /home/newaccount/.ssh/id_rsa /home/ubuntu

[ubuntu ~] sudo chown ubuntu:ubuntu ./id_rsa

[ubuntu ~] exit

[mycomputer ~] sudo scp -i "ubuntukey.pem" ubuntu@[instance DNS]:/home/ubuntu/id_rsa ./

[mycomputer ~] sudo ssh -i "id_rsa" newaccount@[instance DNS]

이제 이 키를 팀원에게 나눠주면된다. 개꿀 ^ㅇ^

+ Recent posts