디렉토리 이동이 많은 경우 이전 디렉토리 혹은 특정 위치를 기억해 뒀다가 이동해야 하는 경우가 있다.

다음 커맨드로 커버 가능하다.

  • 바로 이전 디렉토리로 이동: cd -
  • 현재 디렉토리를 저장: pushd .
  • push한 디렉토리로 이동: popd


참고: http://superuser.com/questions/113219/go-back-to-previous-directory-in-shell

El Capital 사용중에 가끔 사용중에 팬 소음이 엄청 심해져서 

어떤 프로세스가 CPU를 많이 잡아먹나 봤더니 mdworker였고 이 프로세스는 Spotlight 검색에서 띄운 것이었다.

MacOS Sierra로 업그레이드 해도 마찬가지여서 다음 커맨드로 아예 서비스를 내려버렸다. 

그랬더니 팬 소음이 최저로 내려갔다. peace~


Spotlight 해제하기

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist


혹시나 마음이 바뀌어서 기능을 키고 싶다면 다음과 같이 하면 된다.

      sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist



참고: http://forums.macrumors.com/threads/mdworker-process-100-deleting-it-with-terminal.1718772/


confluence가 동작을 안해서 보니 기존 옵션이 1.8에서는 먹히지 않았다. 

그래서 버전을 1.7로 돌려야 하는데 다음 쉘스크립트를 사용하여 해결했다.


function setjdk() {

  if [ $# -ne 0 ]; then

   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'

   if [ -n "${JAVA_HOME+x}" ]; then

    removeFromPath $JAVA_HOME

   fi

   export JAVA_HOME=`/usr/libexec/java_home -v $@`

   export PATH=$JAVA_HOME/bin:$PATH

  fi

 }

 function removeFromPath() {

  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")

 }

setjdk 1.7




참고:

https://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/




다음 코드를 사용하면 된다.



def getType(x):

    return {

        0: 'A',

        1: 'B',

        2: 'C'

    }[x]



>>> getType(0)

'A'



'[Lang] Python' 카테고리의 다른 글

pip command 리스트  (1) 2019.11.09
country code로 timezone 구하기  (0) 2016.11.09

ec2에서 sudo pip install이 안되는 경우가 있다.


[ec2-user@ip-172-31-17-194 ~]$ sudo pip install boto3
Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3138, in <module>
    @_call_aside
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3124, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3151, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 663, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 676, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 849, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==6.1.1' distribution was not found and is required by the application
[ec2-user@ip-172-31-17-194 ~]$ which pip
/usr/local/bin/pip


우와 같이 나오는 경우 경로를 다음과 같이 경로를 수정하면 된다. 


sudo /usr/local/bin/pip


디렉토리 생성


mkdir -pv ~/.vim/ftdetect
mkdir -pv ~/.vim/indent
mkdir -pv ~/.vim/syntax


파일 복사


wget --no-check-certificate https://lampsvn.epfl.ch/trac/scala/export/18260/scala-tool-support/trunk/src/vim/ftdetect/scala.vim -O ~/.vim/ftdetect/scala.vim
wget --no-check-certificate https://lampsvn.epfl.ch/trac/scala/export/18260/scala-tool-support/trunk/src/vim/indent/scala.vim -O ~/.vim/indent/scala.vim
wget --no-check-certificate https://lampsvn.epfl.ch/trac/scala/export/18260/scala-tool-support/trunk/src/vim/syntax/scala.vim -O ~/.vim/syntax/scala.vim


참고 문서: https://blog.outsider.ne.kr/523








ADHOC-JOB으로 시작하는 클러스터 아이디를 뽑아내고 싶다면 쉘에서 다음과 같이 입력하면 클러스터 아이디를 추출할 수 있다.



CLUSTER_ID=`aws emr list-clusters --active --query 'Clusters[?starts_with(Name, \`ADHOC-JOB\`) == \`true\`].Id' | jq .[] | sed -e 's/^"//' -e 's/"$//'`



aws cli 커맨드에서 --query 옵션을 넣으면 JSON결과를 필터링해서 볼 수 있다.



emr CORE 인스턴스중 RUNNING인 인스턴스를 찾고 아이디만 출력하기


$ aws emr list-instances --cluster-id j-1RFIG3YHLDOXX --instance-group-types CORE --query 'Instances[?Status.State==`RUNNING`].Ec2InstanceId' [ "i-51d9f1xx", "i-55d9f1xx", "i-085653xx", "i-656d67xx", "i-1a6d67xx" ]



현재 동작중인 emr인스턴스명과 동작시간 가져오기.

$ aws emr list-clusters --active --query 'Clusters[*].[Name,NormalizedInstanceHours]' | jq [ [ "20160825-1135", 192 ], [ "20160825-1109", 448 ], [ "20160825-1100", 672 ] ]





1000시간 이상으로 필터링하고 Name:Value 쌍으로 값을 가져오기 (주의: []가 아니라 {}를 써야함)

$ aws emr list-clusters --query 'Clusters[?NormalizedInstanceHours > `1000`].{Name:Name, Time:NormalizedInstanceHours}' | jq '.' [ { "Name": "20160822-0900", "Time": 1632 }, { "Name": "20160804", "Time": 1320 }, { "Name": "20160804", "Time": 1848 }, { "Name": "20160802-2", "Time": 29064 } ]





기본 커맨드

$ aws ec2 describe-volumes
{
    "Volumes": [
        {
            "AvailabilityZone": "us-west-2a",
            "Attachments": [
                {
                    "AttachTime": "2013-09-17T00:55:03.000Z",
                    "InstanceId": "i-a071c394",
                    "VolumeId": "vol-e11a5288",
                    "State": "attached",
                    "DeleteOnTermination": true,
                    "Device": "/dev/sda1"
                }
            ],
            "VolumeType": "standard",
            "VolumeId": "vol-e11a5288",
            "State": "in-use",
            "SnapshotId": "snap-f23ec1c8",
            "CreateTime": "2013-09-17T00:55:03.000Z",
            "Size": 30
        },
        {
            "AvailabilityZone": "us-west-2a",
            "Attachments": [
                {
                    "AttachTime": "2013-09-18T20:26:16.000Z",
                    "InstanceId": "i-4b41a37c",
                    "VolumeId": "vol-2e410a47",
                    "State": "attached",
                    "DeleteOnTermination": true,
                    "Device": "/dev/sda1"
                }
            ],
            "VolumeType": "standard",
            "VolumeId": "vol-2e410a47",
            "State": "in-use",
            "SnapshotId": "snap-708e8348",
            "CreateTime": "2013-09-18T20:26:15.000Z",
            "Size": 8
        }
    ]
}


다음 조건의 데이터만 나오도록 하기

$ aws ec2 describe-volumes --query 'Volumes[?AvailabilityZone==`us-west-2a`]'


일부 필드만 나오도록 조정하기

$ aws ec2 describe-volumes --query 'Volumes[*].{ID:VolumeId,InstanceId:Attachments[0].InstanceId,AZ:AvailabilityZone,Size:Size}'
[
    {
        "InstanceId": "i-a071c394",
        "AZ": "us-west-2a",
        "ID": "vol-e11a5288",
        "Size": 30
    },
    {
        "InstanceId": "i-4b41a37c",
        "AZ": "us-west-2a",
        "ID": "vol-2e410a47",
        "Size": 8
    }
]


일부 필드와 값만 나오도록 조정하기

$ aws ec2 describe-volumes --query 'Volumes[*].[VolumeId, Attachments[0].InstanceId, AvailabilityZone, Size]'
[
    [
        "vol-e11a5288",
        "i-a071c394",
        "us-west-2a",
        30
    ],
    [
        "vol-2e410a47",
        "i-4b41a37c",
        "us-west-2a",
        8
    ]
]





참고 페이지: 커맨드 결과 제어하기 

http://docs.aws.amazon.com/ko_kr/cli/latest/userguide/controlling-output.html





+ Recent posts